欢迎来到天天文库
浏览记录
ID:42010989
大小:87.00 KB
页数:7页
时间:2019-09-06
《高级语言程序设计实训报告C》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、经济管理兼计算机信息管理专业《高级语言程序设计》实訓M告一、设计题目及要求1.综合应用实例一一学生成绩管理编写一个菜单驱动的学牛成绩管理程序。实现如下管理功能:(1)能输入并显示n个学生的m门考试科目的成绩、总分和平均分。(2)按总分进行排序。(3)按学号进行排序。(4)任意输入一个学号,能显示该学生的姓名、各门功课的成绩(5)将输入的学生成绩数据保存到文件中。(6)从文件中读出学牛成绩数据。具体要求如下:1)先用静态的数据结构(结构体数组)来存储和管理n个学生的学号、姓名、成绩等信息,进行编程。2)排序函数是一个具有多种
2、排序方式的、通用的、排序程序,即不仅可以实现成绩的升序排序,还可以实现成绩的降序排序。3)程序能够进行异常处理,检查用户输入数据的有效性,在用户输入数据有错误(如类型错误)或无效时,不会中断程序的执行,程序具有一定的健壮性。4)输出菜单形式如下:1.输入学生记录2.浏览学生记录3.修改学牛记录4.排序0.退出请选择(0-4):5)排序菜单形式如下:排序方式:1.按总分升序排序2.按总分降序排序1.按学号排序0.返回主菜单请选择:二、算法分析及实现步骤总体算法分析的思路就是用调用函数来实现毎个小程序的作用,首先是确定头文件,
3、定义学生成绩结构体类型,用结构体函数实现。然后在函数执行过程中调用主菜单函数,紧接着被调用函数返回一个值给主函数,由返回來的值确定主函数应该执行下面的哪个步骤,再用一个while语句控制下面的几个步骤的循环,里面再嵌套switch语句来控制对每个小菜单程序的执行。例如:当调用函数返回“1”时,经过switch语句的判断之后就会执行相应的程序,最后,又会返回到主菜单程序中。其它的都一样。当调用函数返回的值是“4”时,此时因为排序里面还有一个排序的子菜单,所以此时这里我又用了一个switch语句來实现对排序程序的控制,也就是说
4、在switch语句里面再嵌套switch语句。对排序程序进行的控制。等到跳出排序程序的时候,其它的都和之前的选择那样。其中,浏览每个学生信息的函数先计算岀每个学生的平均成绩然后用for语句来实现每个学生信息的循环输入。修改学生信息的函数里而也用到了for语句,先找到相同的学号,然后在修改后循环执行。后来的排序程序都选用冒泡法来执行。当然-切程序都是从主函数开始执行。三、源程序代码#includestructstudent//定义学生成绩结构体类型{intno;charname[8];floateng
5、,phy,math,sum,ave;};intmenu(students[],intn)//主菜单函数{intk;cout«H欢迎使用学生成绩管理软件M«endl;cout«'fH«endl;coutvv”学生成绩管理系统菜单n«endl;cout«nl.输入学生记录'*«endl;cout«H2.浏览学生记录"«endl;cout«H3.修改学生记录H«endl;cout«M4.排序M«endl;cout«n0.退出H«endl;cout«n请选择(0-4):n;cin»k;returnk;}voidInput(stud
6、ents[],intn)//输入函数{inti;cout«H输入学号:,*«endl;cout«"学号、姓名、英语、物理、数学成绩H«endl;for(i=0;i7、ntn)//浏览每个学生信息的函数{inti;for(i=0;i8、.math«'t*«s[i].suni«,t,«slij.ave«',;}intSort(students[J,intn)//排序的子菜单函数{inty;cout«H排序方式:H«endl;cout«Hl•按总分升序排序K«endl;cout«H2.按总分降序排序M«endl;cout«H3.按
7、ntn)//浏览每个学生信息的函数{inti;for(i=0;i8、.math«'t*«s[i].suni«,t,«slij.ave«',;}intSort(students[J,intn)//排序的子菜单函数{inty;cout«H排序方式:H«endl;cout«Hl•按总分升序排序K«endl;cout«H2.按总分降序排序M«endl;cout«H3.按
8、.math«'t*«s[i].suni«,t,«slij.ave«',;}intSort(students[J,intn)//排序的子菜单函数{inty;cout«H排序方式:H«endl;cout«Hl•按总分升序排序K«endl;cout«H2.按总分降序排序M«endl;cout«H3.按
此文档下载收益归作者所有