1、目 录 一、课程设计内容 2 二、课程设计目的 2 三、工具/准备工作 2 四、设计步骤、方法 3 4. 1 菜单管理. 3 4. 2 输入一个班级的学生信息 7 4. 3 按学号查找、修改、删除和保存各个学生的信息 11 4. 4 计算总分和平均分. 19 4. 5 按总分/学号排序 22 4. 6 筛选优秀和不及格学生的信息 . 25 4. 7 每门课程低于平均分的学生. 29 4. 8 写入文本. 31 4. 9 密码管理. 36 五、设计结果及分析 37 5. 1 输入密码. 37 5. 2 输入学生信息 38 5. 3 根据所需功能选择选项 38 5. 4 文件读取. 39 5. 5
2、 排序 40 5. 6 删除 41 5.7 添加 41 5. 8 查找 42 5. 9 低于平均分 . 42 5. 10 高于 90 分 . 44 5. 11 不及格 45 5.12 按 0 结束程序. 45 六、设计结论. 45 七、问题及心得体会 46 八、对本设计过程及方法、手段的改进建议 . 47 参考文献 47 附录 I. 48 分工: . 48 附录 II . 48 源代码: 48 学生成绩统计管理 一一、课程设计内容课程设计内容 1、 输入一个班级的学生的基本信息 (包括学号, 姓名, 性别, 5 门课程成绩) 。 2、 按姓名或者学号查找、修改、删除和保存各个学生的信息。 3、
3、 计算每个学生各门功课总分和平均分, 按学号或总分排序输出每个学生的 基本信息及总分、平均分和名次。 4、 计算全班各门功课的平均分, 显示每门课程中低于平均分的每一个学生的 学号,姓名,性别,科目,成绩。 5、 显示每门科目中,成绩在 90 分以上的学生信息,以及每门科目中不及格 的学生信息。 6、 用菜单进行管理 7、 只有正确输入用户名密码才能使用此系统。 8、 所有内容能够保存到文件中。下次进入系统是从文件中读取原有信息。 二二、课程设计目的课程设计目的 1. 培养学生综合运用所学知识独立完成课题的能力。 2. 使学生更深入地理解和掌握该课程中的有关基本概念, 程序设计思想和方 法。
4、3. 提高对工作认真负责、 一丝不苟, 对同学团结友爱, 协作攻关的基本素质。 4. 培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全 方位考虑问题等科学技术人员应具有的素质。 5. 培养从资料文献、科学实验中获得知识的能力,提高从别人经验中找到解 决问题的新途径的悟性,初步培养工程意识和创新能力。 6. 对掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能 力、书面及口头表达能力进行考核 三三、工具工具/ /准备工作准备工作 查阅相关资料,借鉴他人写过的程序,从中找到突破口。从程序中了解需要的 各种函数准备,再进一步获悉该函数的功能与使用方法。 功能分析: 1.
5、菜单管理:分列功能选项,学生信息的构建,查找、修改、删除和保存各 个学生的信息,计算各科总分,平均分,并排序,查找优秀学生信息及不及 格学生信息。 2. 功能实现:实现各个功能。 3. 写入文件:所有内容能够保存到文件中。下次进入系统是从文件中读取原 有信息。 四四、设计步骤、方法设计步骤、方法 4. 1 菜单管理菜单管理 学 生 成 绩 统 计 管 理 系 统 添加模块 修改模块 查询模块 计算模块 显示模块 文件模块 创建 添加 修改 删除 排序 总分 学生平均分 科目平均分 科目分数=90 科目分数next); 358 tail=find; /将 tail 指向最后一个结点 359 wh
6、ile(tail!=head-next) 360 361 for(find=head;find-next!=tail;find=(*find).next) 362 363 next=(*find).next; 364 if(*find).summarynext=NULL) return head; 384 for(find=head;find!=NULL;find=find-next); 385 tail=find; 386 while(tail!=head-next) 387 388 for(find=head;find-next!=tail;find=(*find).next) 389 390 next=(*find).next; 391 if(*find).num(*next).num) 392 393 temp=(*next); 394 (*next)=(*find); 395 (*find)=temp; 396 temp.next=(*next).next; 397 (*next).next=(*find).next; 39