学生成绩管理系统C语言课程设计报告Word文件下载.docx
- 文档编号:17719145
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:13
- 大小:138.54KB
学生成绩管理系统C语言课程设计报告Word文件下载.docx
《学生成绩管理系统C语言课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C语言课程设计报告Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
并实现由姓名查找成绩及由成绩查找姓名。
2、设计要求
1)由键盘输入20个学生(姓名)的某门课程的学习成绩60~99分。
2)将分数由低到高排序(用直接排序法和冒泡法),并显示学生姓名和对应的分数。
3)用线性搜索法检索某个学生的成绩(输入姓名,显示成绩)。
4)*对分搜索法检索某个学生的成绩(输入成绩,显示姓名)。
2、设计思路
首先是要建立20个学生信息,即学生姓名和学生成绩,使用子函数输入,学生成绩使用一维数组,学生姓名使用二维数组。
然后分别定义四个子函数,即直接排序法、冒泡排序法和线性查找法、对分查找法。
在两个排序法中,用字符串拷贝函数来实现姓名的交换,另外,在用成绩查找姓名时,可以用直接查找,也可以用对分查找法,在这里我两种方法都使用了。
最后在主函数中来设计人机界面,用函数来实现操作选择,对应的情况中就调用之前定义的子函数来完成排序或查找。
3、程序设计流程图
1、程序总体流程
开始
输入学生姓名和成绩
主菜单
排序退出查找
直接排序冒泡排序查找成绩查找姓名
对分查找
2、直接排序法流程图
3、冒泡排序法流程图
4、线性搜索法
5、对分搜索法
4、程序设计中遇到的问题和解决方案
最开始编程时,直接排序和冒泡排序法中都是通过函数来实现成绩交换和姓名交换,以达到排序目的,但在主函数中调用时却调用不了,程序在排序时就不能正常运行,我的解决方案就是去掉函数,因为有可能有些函数的调用有限制条件,这样改变之后,就不存在限制问题,可以正常排序。
另外一个问题就是姓名数组的交换问题,这个之前是用中间变量的方式实现交换,结果调试时显示非法,于是经过多次改变和尝试,发现姓名用二维数组更不容易出现问题,于是就将姓名设置为二维数组,然后用字符串拷贝函数来实现交换,以达到最终排序的目的。
这样解决之后,一方面可以使姓名不至于限制在一个字符内,另外一个好处就是解决了排序过程中姓名交换的问题。
5、源程序(含注释)及运行界面
1、源程序
<
>
20
(a[]b[][30])/*子函数输入20个学生姓名*/
{
i;
(0<
)
{
("
请输入第个学生的姓名:
"
1);
[i]);
请输入第个学生的成绩:
(a[i]>
99[i]<
60)
{
("
!
\n"
);
/*成绩大于99或小于60则显示错误*/
1;
}
}
}
(a[]b[][30])/*直接排序法*/
1[30];
1)
{
;
(1<
(a[j]<
a[])
[j];
a[j][];
a[];
(1[j]);
/*字符串拷贝函数进行字符数组交换*/
(b[j][]);
(b[]1);
("
排序后的学生姓名和成绩为:
[i][i]);
(a[]b[][30])/*冒泡排序法*/
;
(a[j]>
a[1])
a[j][1];
a[1];
(b[j][1]);
(b[1]1);
1(a[]b[][30])/*线性查找,由姓名查找成绩*/
[30]0;
(([i])0)
该学生成绩为\n"
;
(0)
!
2(a[]b[][30])/*由成绩查找姓名*/
0k;
请输入成绩:
([i])
该学生姓名为,成绩为\n"
(a[]b[][30])/*对分查找,由成绩查找姓名(排序后)*/
对分查找,请输入成绩:
01;
((k<
a[0])(k>
a[1]))
(n<
()/2;
{("
学生姓名为,成绩为\n"
(k>
a[i])
((a[i])(n>
m))
()/*主函数及界面*/
[][][30];
***************************************************************\n"
欢迎来到学生成绩管理系统\n"
请输入20个学生的姓名和成绩\n"
();
输入的学生姓名和成绩分别为:
\t"
[x][x]);
*****************学生成绩管理系统***************\n"
*********成绩排序直接法请按0成绩排序冒泡法请按1*******\n"
*********姓名查找方法一请按2成绩查找方法二请按3*******\n"
*********退出系统请按4*******\n"
请选择:
(1)
(t)/*操作选择*/
0:
();
;
1:
2:
请输入学生姓名:
1();
3:
2();
4:
(0);
/*退出系统*/
:
请在0到4之间选择!
2、运行界面
输入学生信息
主菜单
直接排序
冒泡排序
线性查找
对分查找
6、体会及收获
1、关于体会
这次C语言课程设计给我最大的体会是充分调用了我们已有的C语言知识储备,我想,难度就在于这里,要求我们对每一个知识点,每一个内容板块都了如指掌。
如果有哪里不清楚,编程时就会频繁出错,或者是达不到想要的结果,比如像循环语句、条件语句、选择语句这些常用的就必须烂熟于心。
如遇到问题,尝试独立思考,若还没有解决就再翻书或找找资料,自行琢磨,不断尝试用新的方法解决问题也是给我的一个很深的体会。
2、关于收获
这次有以下几方面收获:
1)再次温习了所学的C语言知识,加深了理解,同时之前没有注意的一些细节问题引起了重视;
2)遇到瓶颈时,尽量独立思考,不断努力,自行解决;
3)当程序没有出现语法错误但运行不正常时,就要用新的方式替换,不能一味地陷在死胡同里,用新的思维方式想问题或许会达到想要的效果;
4)多花时间钻研问题,坚持不懈地努力,多掌握一些知识,今后解决学习问题才会得心应手。
编程不仅只是考查知识是否掌握牢固,也不只是一个时间问题,更重要的是一种毅力,一种坚持,一种迎难而上的韧劲!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 语言 课程设计 报告