高级语言程序设计实训报告C++.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级语言程序设计实训报告C

经济管理系 计算机信息管理专业 《高级语言程序设计》 实 训 报 告 一、设计题目及要求 1.综合应用实例——学生成绩管理 编写一个菜单驱动的学生成绩管理程序。实现如下管理功能: 能输入并显示 n 个学生的 m 门考试科目的成绩、总分和平均分。 按总分进行排序。 按学号进行排序。 任意输入一个学号,能显示该学生的姓名、各门功课的成绩 将输入的学生成绩数据保存到文件中。 从文件中读出学生成绩数据。 具体要求如下: 1 )先用静态的数据结构(结构体数组)来存储和管理 n 个学生的学号、姓名、成绩等信息,进行编程。 2 )排序函数是一个具有多种排序方式的、通用的、排序程序,即不仅可以实现成绩的升序排序,还可以实现成绩的降序排序。 3 )程序能够进行异常处理,检查用户输入数据的有效性,在用户输入数据有错误(如类型错误)或无效时,不会中断程序的执行,程序具有一定的健壮性。 4 )输出菜单形式如下: 1.输入学生记录 2.浏览学生记录 3.修改学生记录 4.排序 0.退出 请选择(0-4): 5) 排序菜单形式如下: 排序方式: 1.按总分升序排序 2.按总分降序排序 3.按学号排序 0.返回主菜单 请选择: 二、算法分析及实现步骤 总体算法分析的思路就是用调用函数来实现每个小程序的作用,首先是确定头文件,定义学生成绩结构体类型,用结构体函数实现。然后在函数执行过程中调用主菜单函数,紧接着被调用函数返回一个值给主函数,由返回来的值确定主函数应该执行下面的哪个步骤,再用一个while语句控制下面的几个步骤的循环,里面再嵌套switch语句来控制对每个小菜单程序的执行。例如:当调用函数返回“1”时,经过switch语句的判断之后就会执行相应的程序,最后,又会返回到主菜单程序中。其它的都一样。当调用函数返回的值是“4”时,此时因为排序里面还有一个排序的子菜单,所以此时这里我又用了一个switch语句来实现对排序程序的控制,也就是说在switch语句里面再嵌套switch语句。对排序程序进行的控制。等到跳出排序程序的时候,其它的都和之前的选择那样。其中,浏览每个学生信息的函数先计算出每个学生的平均成绩然后用for语句来实现每个学生信息的循环输入。修改学生信息的函数里面也用到了for语句,先找到相同的学号,然后在修改后循环执行。后来的排序程序都选用冒泡法来执行。当然一切程序都是从主函数开始执行。 三、源程序代码 #include iostream.h struct student // 定义学生成绩结构体类型 { int no; char name[8]; float eng,phy,math,sum,ave;}; int menu(student s[],int n) // 主菜单函数 { int k; cout欢迎使用学生成绩管理软件endl; cout endl; cout学生成绩管理系统菜单endl; cout1.输入学生记录endl; cout2.浏览学生记录endl; cout3.修改学生记录endl; cout4.排序endl; cout0.退出endl; cout请选择(0-4):; cink; return k;} void Input(student s[],int n) // 输入函数 { int i; cout输入学号:endl; cout学号、姓名、英语、物理、数学成绩endl; for(i=0;in;i++) { cout第i+1位学生的信息:; cins[i].nos[i].names[i].engs[i].phys[i].math; s[i].ave=(s[i].eng+s[i].phy+s[i].math)/3; s[i].sum=s[i].eng+s[i].phy+s[i].math; }} void Ave(student s[],int n) // 浏览每个学生信息的函数 { int i; for(i=0;in;i++) { s[i].ave=(s[i].eng+s[i].phy+s[i].math)/3; s[i].sum=s[i].eng+s[i].phy+s[i].math; } cout学号\t姓名\t英语\t物理\t数学\t总成绩\t平均成绩\n; for (i=0;in;i++) couts[

您可能关注的文档

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档