项目四设计学生成绩管理系统.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【引导问题】 (1) 多名学生1门课程的学生成绩如何存储? (2) 如何录入和输出多名学生1门课程的成绩? (3) 如何查询学生的成绩?如何对学生成绩进行排序? (4) 如何录入和输出多名学生多门课程的成绩? (5) 如何计算每位学生的总成绩? (6) 如何对学生的姓名进行处理? 本项目由5个任务组成。 任务1实现多名学生1门课程成绩的录入/输出; 任务2对学生的成绩进行查询; 任务3对多名学生1门课程的成绩排序; 任务4对多名学生多门课程的成绩进行处理,计算每位学生的总分,并按照总分由大到小的顺序输出班级学生成绩单; 任务5输入/输出学生的姓名。 任务1 录入/输出多名学生1门课程的成绩 任务分析 某班50名学生参加了一次C语言程序设计考试,现要录入和输出全班同学的成绩。本任务要将50名学生成绩录入并全部输出,按照前面学过的知识就需要使用50个简单变量来存储这批数据,光定义这批数据的变量名就需要大量的工作,这显然是不合理的。 如何处理这样大批的数据呢?这就需要引入一个数据结构——数组来存储学生的成绩。 任务实施 在本任务中将定义一个数组int score[50],用来存放50名学生的C语言成绩,采用单循环实现学生成绩的录入和输出。还将设计学生成绩管理系统的菜单界面。 任务1 录入/输出多名学生1门课程的成绩 任务1 输入/输出多个学生一门课程的成绩 一维数组的定义 说明: 常量表达式表示元素的个数,即数组长度。 常量表达式中可以包括常量和符合常量,不能包含变量。 以下对一维整型数组a的正确定义的是: A、int a(10) B、int n=10, a[n] C、int n; int a[n]; D、#define SIZE 10 scanf(“%d”,%n); int a[SIZE]; 试一试 问题4.1 给一个数组元素赋值并输出。 分析:输入和输出数组中的10 个元素,必须使用循环语句逐个输出各下标变量。 1、上例中,语句 average=sum/5.0; 修改为 average=sum/5; 结果如何? 2、练习:从键盘输入5个学生的成绩,求出并输出分数最高的学生序号及最高成绩。 试一试 问题4.3 输出Fibonacci数列的前20项。Fibonacci数列:第一项和第二项为1,以后各项为前两项之和。 分析:前面我们使用迭代法解决了这个问题,现在我们用数组来解决,首先定义一个大小为20的数组,然后f[0]=1, f[1]=1, f[n]=f[n-1]+f[n-2], (n1),运用该公式即可求出数组中后面各项的内容。 任务2 查询学生成绩 任务实施 输入学生的序号,序号减去1,就得到了该学生在数组中的下标,直接对数组元素进行引用即得到该学生的成绩。查找学生成绩的最高分和最低分,关键在于增加两个变量:max表示当前的最高分,min表示当前的最低分。 4.2.2 成绩查询 用初始化方法,把10名学生的数学成绩存储在数组中,再输入一个考分,查找该分数是否存在在数组中,如果是,则输出它是第几名学生的成绩。 分析:采用“顺序查找”法,即将数组中的元素一个一个依次取出,与待查找的数比较,如果相等,则找到了。如果所有元素取出后,都没有找到相等的,则该数不存在。 4.2.3 查询成绩的最大值 从键盘输入10名学生的成绩,输出分数最高的学生序号及最高成绩。 分析:定义一个变量max,它表示当前最大的值,然后把a[0]送入max中作为初始值。再设计一个for语句,从a[1]到a[9]逐个取出并与max中的内容比较,若比max的值大,则把该下标变量的值送入max中,因此max总是在已比较过的下标变量的值中为最大者。比较结束,输出max的值。 任务3 学生成绩排序 任务分析 实现学生成绩管理系统中的成绩排序功能,将某班50位同学参加C语言程序设计考试的成绩,按从高到低的顺序排序并输出。即实现学生成绩管理系统中的第5个功能。 任务实施 数组的排序法有很多, 这里介绍冒泡排序法。 冒泡排序(Bubble sort),顾名思义,就是数据由最大值排列到最小值,像是在水里吐气泡一样,大气泡由于浮力较大,因此会先浮出水面。 4.3.2 冒泡法排序 两层循环结构 外层循环每次把操作范围内最大的数放到最后位置 内层循环每次把较大的数放到靠后的位置 有数组a,其元素值为7、1、5、6、9、3,现要把该数组按从小到大的顺序排列并输出。 1、上例中,如果要按从大到小的顺序排序,该如何修改程序呢? 2、练习:

文档评论(0)

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

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

1亿VIP精品文档

相关文档