7.void Insertinformaton() 此函数用于插入学生数据。由于没有用链表,所以选择插入在最后一个有效数据之后。本函数运用if(student[j].num==0)这个语句找到了最后一个有效数据之后的数组下标j,然后将数据输入到student[j]中,便完成的了插入。插入过程中,调用了Inputfun()函数。
8.void Showthefail() 此函数用于显示不及格学生的信息。能够按要求输出不及格学生的学号、姓名、各科成绩以及平均成绩。首先用这条if语句搜索该学生是否有成绩不及格,当四门课中至少有一门不及格时会输出该学生的相关信息。
9.void Stu_p() 此函数用于输出优秀学生(平均成绩大于90分)的信息,利用for循环和条件判断句输出找出相应的学生输出相关信息。
10.void Chengjitongji()此函数用于按要求统计成绩。有分别统计每门课的平均成绩的功能;还能够按每门课程的成绩对学生进行排序,使学生在该门课的表现一目了然。排序中用到了冒泡排序的方法。 9.void main() 下面对主函数作简要说明。Switch语句是函数的主体:
switch(c)/*利用switch语句集成各个功能函数*/ {
case 1 : Getinformation();break;/*获得学生信息*/ case 2 : Seekinformation();break;/*查找学生信息*/ case 3 : Modifyinformation();break;/*修改学生信息*/
第 11 页 共 37 页
case 4 : Deleteinformation();break;/*删除学生信息*/ case 5 : Insertinformaton();break;/*插入学生信息*/ case 6 : Stu_p();break;/*显示优秀学生信息*/ case 7 : Showthefail();break;/*显示不及格学生信息*/ case 8 : Chengjitongji();break;/*课程成绩的统计*/ case 0 : exit(0);/*退出*/ default: break; }
default: break;}
通过一个数值输入函数,使用户在简单的数值输入后就可轻松调用各模块。
还使用了for (;;)使各模块能够循环调用。
11.最后对程序的整体实现过程作个简要说明。源程序中多处运用continue和break语句,同时配合scanf函数和if条件判断语句,使用户能够根据提示通过简单的数值输入来选择下一步该做什么。中文界面,用户很容易根据提示上手,简单易用。
六、程序流程图
第 12 页 共 37 页
系统启动口令输入a=? N a=1? Y 进入选择菜单 N Y N Y N 查找学生信息 Y c=3?
N 修改学生信息 c=2? 录入学生信息 c=1? 口令错误,系统即将关闭! 开始 c=4? Y N c=5? N Y 删除学生信息 c=6? Y N 优秀学生信息 插入学生信息 c=7? N Y Y N 课程成绩统计 c=8? 不及格学生信息 N
结束 以上为主函数流程图,主函数下八个供选择的模块只是简单的用一个
第 13 页 共 37 页
执行框表示。现分别画出八个模块的流程图: 1、录入学生成绩:
开始 输入学生信息及成绩
是否继续?继续按1,结束按0 · 1 0
结束
2、查找学生信息: 开始 2 按学号查找请按1, 1 输出相应学号所对应的信息 输出相应姓名所对应的信息 按姓名查找请按2 1 是否继续?继续按1,结束按0 0 0 结束 3、修改学生信息:
第 14 页 共 37 页
开始 调用查找函数找到要修改的信息 输入修改后的信息 1 是否继续?继续按1,结束按0 0
4、删除学生信息:
1 是否继续?继续按1,结束按0 0
第 15 页 共 37 页 结束 是否删除?是按1,否按0 调用查找函数找到要删除的信息 开始 结束 1 删除成功