- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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++)
您可能关注的文档
- 《电子线路》课程设计--单稳态红外感应开关.doc
- 《数据结构》课程设计报告--稀疏矩阵运算器.doc
- 《小箱梁桥设计》课程设计说明书.docx
- 《远程教育在线考试系统》开题报告.doc
- 3D打印-人体牙齿开题报告.doc
- 4S店销售管理系统设计开题报告.docx
- 50th三段式连续加热炉设计毕业设计.doc
- 110kV变电所的设计课程设计说明书.doc
- 110KV变电站初步设计毕业设计.doc
- 450td本色生活纸用竹浆制浆车间洗选工段设计毕业设计.docx
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)