```scss
构建学生成绩管理系统
我们设定了一个学生成绩管理系统的基本框架,它能够存储、查询和排序学生的成绩信息。这个系统可以容纳最多 100 名学生的信息。
我们定义了一个结构体 `Student`,包含了学生的学号、姓名和三门课程的成绩(C语言、数学和英语),以及总分和平均分。我们创建了一个名为 `stu` 的数组来存储所有学生的信息,并设定了一个计数器 `count` 来追踪当前已录入的学生数量。
系统的核心是一个简洁明了的菜单,通过打印一系列选项供用户选择。菜单包括:
添加学生记录:允许用户输入新学生的信息并添加到系统中。如果已达到最大学生数量(100人),系统将提示用户人数已满。
显示所有记录:显示所有已录入的学生信息。
按学号查询:根据用户输入的学号,查找并显示对应学生的所有信息。
按总分排序:对所有学生按总分进行排序,方便用户查看。
删除记录:允许用户根据学号删除特定学生的记录。
保存到文件:将系统中所有学生的信息保存至文件,以防数据丢失。
从文件加载:从之前保存的文件中加载学生信息,恢复系统状态。
退出系统:结束程序运行。
当我们选择“添加学生记录”时,系统会先检查是否已达到最大学生数量。如果未满,则提示用户依次输入学生的学号、姓名和三门课程的成绩。系统会自动计算总分和平均分,并将新录入的学生信息添加到 `stu` 数组中,同时更新计数器 `count`。系统会通知用户添加成功。
```c
// 展示所有学生信息
void showAllStudents() {
printf("学号\t姓名\tC语言\t数学\t英语\t总分\t平均分");
for (int i = 0; i < MAX_STUDENTS; i++) {
printf("%s\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f",
stu[i].id, stu[i].name, stu[i].c_score,
stu[i].math, stu[i].english, stu[i].total, stu[i].avg);
}
}
// 按学号查询学生信息
void searchStudentById() {
char id[20];
printf("请输入要查询的学号:");
scanf("%s", id);
for (int i = 0; i < MAX_STUDENTS; i++) {
if (strcmp(stu[i].id, id) == 0) {
printf("查询结果:");
printf("学号:%s 姓名:%s C语言:%.1f 数学:%.1f 英语:%.1f",
stu[i].id, stu[i].name, stu[i].c_score,
stu[i].math, stu[i].english);
return;
}
}
printf("未找到该学生!");
}
// 按总分排序学生信息并展示
void sortStudentsByTotal() {
for (int i = 0; i < MAX_STUDENTS - 1; i++) {
for (int j = 0; j < MAX_STUDENTS - i - 1; j++) {
if (stu[j].total < stu[j+1].total) {
Student temp = stu[j];
stu[j] = stu[j+1];
stu[j+1] = temp;
}
}
printf("排序完成!");
showAllStudents(); // 展示排序后的学生信息
}
}
// 将学生信息保存到文件
void saveToFile() {
FILE fp = fopen("student.dat", "wb");
if (fp == NULL) {
printf("文件打开失败!");
return;
}
fwrite(&count, sizeof(int), 1, fp); // 写入学生数量
fwrite(stu, sizeof(Student), count, fp); // 写入学生信息数组
fclose(fp); // 关闭文件指针并保存数据到文件
程序员的日常:代码的世界里的与挑战
在这个充满技术与创新的时代,程序员们犹如家,勇闯代码的世界,未知的领域。他们的一天,就像一场充满挑战和乐趣的征途。
清晨的阳光刚刚洒满大地,他们便开始了新一天的编程之旅。打开熟悉的编辑器,一行行代码跃然纸上,这是他们与世界沟通的方式。每一个符号、每一个语句,都是他们思维的痕迹,也是他们与计算机共同创作的魔法。
上午的时光,他们在代码的丛林中跋涉。时而遇到复杂的算法,如同解谜一般,需要深思熟虑,寻找最佳的解决方案。每当解决一个难题,他们的内心都会涌现出满满的成就感,仿佛攻克了一座城堡。
午餐过后,他们继续投身代码的世界。调试程序,优化代码,每一个细节都不放过。他们的眼睛犹如鹰一般敏锐,能够发现代码中的微小错误,并迅速地修复。他们的思维如飞流长空,不断地在代码中穿梭,寻找更好的解决方案。
傍晚时分,他们测试着新编写的程序,就像是试飞一架新造的飞机。每一次成功,都让他们欣喜若狂,仿佛到了新的领域。而失败,则是他们前进的动力,让他们更加坚定地,寻找问题的答案。
夜幕降临,他们仍然沉浸在代码的海洋中。编写文档,整理思路,为明天的挑战做好准备。他们的心中充满了对技术的热爱和对未来的憧憬,他们知道,只有不断地和挑战,才能在这个充满变化的世界中立足。
这就是程序员的日常,一场在代码世界中的与挑战。他们用自己的智慧和热情,创造着美好的未来。每一行代码,都是他们的誓言和承诺,他们是这个时代的者,也是未来的创造者。