网站大量收购独家精品文档,联系QQ:2885784924

《C语言课程设计》报告--学生成绩管理系统.doc

《C语言课程设计》报告--学生成绩管理系统.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言课程设计报告 设计题目:学生成绩管理系统 学 部 : 信息学部 专 业 : 自动化 班 级 : 学 生 : 学 号 : 指导教师 : 设计时间 : 设计内容 1:由键盘输入20个学生的姓名以及某门课程的学习成绩10~99分(也可超过)。 2:分别使用直接排序法和冒泡排序法对所输入的学生成绩精心排序,并显示学生姓名和对应的分数。 3:用线性搜索法检索某个学生的成绩(输入姓名,显示成绩) 4*:对分搜索法检索某个学生的成绩(输入姓名,显示成绩) 设计思路 建立一个新建函数:建立两个数组(p[100][10]、score[100]),并分别将学生姓名及其成绩放在其中。 直接排序法进行排序:即从第一个数开始,逐个与后面的数相比较,如果比较结果是前面的数大则交换,否则不交换,保证较小的数在前面。直到比较到最后两个数据。假设数组有n个元素的话,第一个数需要经过n-1次比较,第二个数需要进行n-2次比较,依此类推…… 冒泡排序法进行排序:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的排序码(两两比较),若发现逆序则交换,使排序码较大的元素逐渐从前部移向后部(从下标较小的单元移向下标较大的单元),就象水底下的气泡一样逐渐向上冒。 线性搜索法进行搜索:从数组的一端开始,顺序扫描数组,依次将扫描到的数组值和待找的值K相比较,若相等,则查找成功,若整个数组扫描完毕,仍末找到关键字等于K的元素,则查找失败。 对分搜索法进行搜索:首先将待查值ch与数组score[low]到score[high]的中点score[mid]上的值进行比较,若相等,则查找成功;否则,若ch score[mid],令high=mid-1,则在score[low]到score[high]中继续查找,若有ch score[mid],则令low=mid+1,在score[low]到score[high]中继续查找。如此不断进行下去直到找到姓名为ch的元素,若当前的查找区间为空,表示查找失败。 程序设计流程图 主体设计: 直接排序法: 冒泡排序法 线性搜索法: 对分搜索法: 四、所遇问题及其解决方案 之前在使用时一直没有考虑到如果搜索时输入的名字之前没有会怎么样,导致在一次操作过程中程序直接崩溃,于是之后加入了一个if语句,如果没有找到,则会输出“查无此人”。 在之前的程序中,每输入一个学生成绩就会需要重新选择进入新建程序,并且会刷新屏幕,之后在主函数中加入了一个do-while语句,则解决此问题。 体会及收获 虽然之前的C语言课程没有挂科,但是当时没有雪的很认真,并且到现在也有一段时间了,所以还是有所遗忘。这学期有开设了C语言课程设计这门课,也算是给了我一个机会重新学习一番,因此,在此次的程序设计中,我是一边学一边做,真正的算是把书本知识与时间相结合,因此也雪的更加牢固,体会也更加深刻。 期初在拿到题目的时候,其实我是很紧张的,因为不知道自己是否能够顺利的完成,但是通过不断地摸索,不断地学习,我也得到了很大的进步。有时候甚至因为自己完成了一个模块的小程序而欣喜不已。特别是在之后的改进过程中,更是一边操作,一边学习,一边改进,让自己的程序做到更好。知道最后,虽然这个程序还有很多值得改进的地方,可我还是特别的激动,因为这个是靠我自己独立学习完成的第一个比较完整的程序了。 最后,我想说,事在人为,只要肯努力,一定会做出成果。 六、源程序 #includestdio.h #includestring.h #includestdlib.h int count=0; //新建学生信息 void New(char p[][10],double *s) { printf(请输入学生姓名:); scanf(%s,p+count); printf(请输入分数:); scanf(%lf,s+count); count++; } //直接排序法 void SelectSort(char p[][10],double *s,int n) { int i,j; double k; //分数交换的中间变量 char a[10]; //姓名交换的中间变量 for(i=0;in-1;i++) for(j=i+1;jn;j++) if(s[i]s[j]) { k=s[i]; s[i]=s[j]; s[j]=k; strcpy(a,p[i]); //利用strcpy以及中间变量a[10]对字符数组进行交换 strcpy(p[i],p[j]); strcpy(p[j],a); } for(i=0;in;i++)

文档评论(0)

li455504605 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档