学生成绩管理系统C语言课程设计报告(共15页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《学生成绩管理系统C语言课程设计报告(共15页).doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统C语言课程设计报告(共15页).doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上C语言课程设计 设 计 报 告 制作人: 学号: 指导老师: 时间:专心-专注-专业一、设计内容和设计要求 1、设计内容 题目:学生成绩管理系统设计 该系统包含20个学生姓名和成绩信息,可对成绩进行排序, 并实现由姓名查找成绩及由成绩查找姓名。 2、设计要求 1)由键盘输入20个学生(姓名)的某门课程的学习成 绩6099分。 2)将分数由低到高排序(用直接排序法和冒泡法),并显示学生姓名和对应的分数。 3) 用线性搜索法检索某个学生的成绩(输入姓名,显示成绩)。 4 )*对分搜索法检索某个学生的成绩(输入成绩,显示姓名)。二、 设计思路 首先是要建立20个学生信息,即
2、学生姓名和学生成绩,使用子函数input输入,学生成绩使用一维数组,学生姓名使用二维数组。然后分别定义四个子函数,即直接排序法、冒泡排序法和线性查找法、对分查找法。在两个排序法中,用字符串拷贝函数来实现姓名的交换,另外,在用成绩查找姓名时,可以用直接查找,也可以用对分查找法,在这里我两种方法都使用了。最后在主函数中来设计人机界面,用switch函数来实现操作选择,对应的情况中就调用之前定义的子函数来完成排序或查找。三、 程序设计流程图 1、程序总体流程 开始 输入学生姓名和成绩 主菜单 排序 退出 查找 直接排序 冒泡排序 查找成绩 查找姓名 对分查找 2、直接排序法流程图子程序入口将i赋给m
3、in将i+1赋给j scorej与scoremin交换同时strcp实现namej与namemin交换全部比较完毕,子程序结束判断是否交换判断scorejscorej+1?N,继续执行YNY4、 线性搜索法NY 子程序结束 不存在此学生输出学生姓名和成绩 For循环检索namei 输入姓名字符ch 子程序入口判断namei=ch? 5、对分搜索法k=scoreikscorei (n+m)/2赋给in赋0值,m赋下标最大值 子程序入口 输入成绩k判断k与scorei的大小关系子程序结束 找到,输出学生成 绩和姓名i-1赋给mi+1赋给n 四、 程序设计中遇到的问题和解决方案最开始编程时,直接排序
4、和冒泡排序法中都是通过swap函数来实现成绩交换和姓名交换,以达到排序目的,但在主函数中调用时却调用不了,程序在排序时就不能正常运行,我的解决方案就是去掉swap函数,因为有可能有些函数的调用有限制条件,这样改变之后,就不存在限制问题,可以正常排序。另外一个问题就是姓名数组的交换问题,这个之前是用中间变量的方式实现交换,结果调试时显示非法,于是经过多次改变和尝试,发现姓名用二维数组更不容易出现问题,于是就将姓名设置为二维数组,然后用字符串拷贝函数来实现交换,以达到最终排序的目的。这样解决之后,一方面可以使姓名不至于限制在一个字符内,另外一个好处就是解决了排序过程中姓名交换的问题。五、 源程序(
5、含注释)及运行界面1、源程序#include#include#include#define NUM 20void input(int a,char b30) /*子函数input输入20个学生姓名*/int i;for(i=0;i99|ai60)printf(error!n); /*成绩大于99或小于60则显示错误*/i=i-1;void zhijie(int a,char b30) /*直接排序法*/int i,j,min,temp;char temp130;for(i=0;iNUM-1;i+) min=i; for(j=i+1;jNUM;j+)if(ajamin)temp=aj;aj=am
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 语言 课程设计 报告 15
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内