学生成绩管理系统C语言课程设计报告资料

学生成绩管理系统C语言课程设计报告资料

ID:39710087

大小:92.35 KB

页数:15页

时间:2019-07-09

学生成绩管理系统C语言课程设计报告资料_第1页
学生成绩管理系统C语言课程设计报告资料_第2页
学生成绩管理系统C语言课程设计报告资料_第3页
学生成绩管理系统C语言课程设计报告资料_第4页
学生成绩管理系统C语言课程设计报告资料_第5页
资源描述:

《学生成绩管理系统C语言课程设计报告资料》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、C语言课程设计设计报告制作人:学号:指导老师:时间:一、设计内容和设计要求1、设计内容题目:学生成绩管理系统设计该系统包含20个学生姓名和成绩信息,可对成绩进行排序,并实现由姓名查找成绩及由成绩查找姓名。2、设计要求1)由键盘输入20个学生(姓名)的某门课程的学习成绩60~99分。2)将分数由低到高排序(用直接排序法和冒泡法),并显示学生姓名和对应的分数。3)用线性搜索法检索某个学生的成绩(输入姓名,显示成绩)。4)*对分搜索法检索某个学生的成绩(输入成绩,显示姓名)。二、设计思路首先是要建立20个学生信息

2、,即学生姓名和学生成绩,使用子函数input输入,学生成绩使用一维数组,学生姓名使用二维数组。然后分别定义四个子函数,即直接排序法、冒泡排序法和线性查找法、对分查找法。在两个排序法中,用字符串拷贝函数来实现姓名的交换,另外,在用成绩查找姓名时,可以用直接查找,也可以用对分查找法,在这里我两种方法都使用了。最后在主函数中来设计人机界面,用switch函数来实现操作选择,对应的情况中就调用之前定义的子函数来完成排序或查找。二、程序设计流程图1、程序总体流程开始输入学生姓名和成绩主菜单排序退出查找直接排序冒泡排序

3、查找成绩查找姓名对分查找2、直接排序法流程图子程序入口将i赋给min将i+1赋给jscore[j]与score[min]交换同时strcp实现name[j]与name[min]交换全部比较完毕,子程序结束判断是否交换判断score[j]score[j+1]

4、?N,继续执行YNY3、线性搜索法NY子程序结束不存在此学生输出学生姓名和成绩For循环检索name[i]输入姓名字符ch子程序入口判断name[i]==ch?5、对分搜索法k=score[i]kscore[i](n+m)/2赋给in赋0值,m赋下标最大值子程序入口输入成绩k判断k与score[i]的大小关系子程序结束找到,输出学生成绩和姓名i-1赋给mi+1赋给n四、程序设计中遇到的问题和解决方案最开始编程时,直接排序和冒泡排序法中都是通过swap函数来实现成绩交换和姓名交换,以达到

5、排序目的,但在主函数中调用时却调用不了,程序在排序时就不能正常运行,我的解决方案就是去掉swap函数,因为有可能有些函数的调用有限制条件,这样改变之后,就不存在限制问题,可以正常排序。另外一个问题就是姓名数组的交换问题,这个之前是用中间变量的方式实现交换,结果调试时显示非法,于是经过多次改变和尝试,发现姓名用二维数组更不容易出现问题,于是就将姓名设置为二维数组,然后用字符串拷贝函数来实现交换,以达到最终排序的目的。这样解决之后,一方面可以使姓名不至于限制在一个字符内,另外一个好处就是解决了排序过程中姓名交换

6、的问题。四、源程序(含注释)及运行界面1、源程序#include#include#include#defineNUM20voidinput(inta[],charb[][30])/*子函数input输入20个学生姓名*/{inti;for(i=0;i

7、f(a[i]>99

8、

9、a[i]<60){printf("error!");/*成绩大于99或小于60则显示错误*/i=i-1;}}}voidzhijie(inta[],charb[][30])/*直接排序法*/{inti,j,min,temp;chartemp1[30];for(i=0;i

10、字符串拷贝函数进行字符数组交换*/strcpy(b[j],b[min]);strcpy(b[min],temp1);}}printf("排序后的学生姓名和成绩为:");for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。