C语言课程设计报告数组版.doc
《C语言课程设计报告数组版.doc》由会员分享,可在线阅读,更多相关《C语言课程设计报告数组版.doc(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、优质文本文华学院信息与科学技术学部课程设计报告201 6 201 7 学年第 一 学期课程名称 C语言课程设计 设计题目 ?学生成绩管理? 学生姓名 周全 学 号 150106000484 专业班级 自动化1502班 指导教师 叶念渝 2016 年 12 月6日 目录一、设计任务书21.1、题目与要求21.2、本程序涉及的知识点2二、功能设计22.1、设计思路22.2、算法设计2主函数。21管理员菜单32学生菜单43网页转跳54翻开文件65登陆程序66输入函数77排序函数88冒泡排序99搜索程序1010对分搜索11三、程序代码设计11四、运行结果展示。24五、在设计过程中遇到的困难28六、C程
2、序设计总结29参考文献29一、 设计任务书1.1、题目与要求1,由键盘输入20个学生姓名的某门课程的学习成绩1099分也可超过。2,将分数由低到高排序用直接排序法和冒泡法,并显示学生姓名和对应的分数。3,用线性搜索法检索某个学生的成绩输入姓名,显示成绩4 , 对分搜索法检索某个学生的成绩输入姓名,显示成绩1.2、本程序涉及的知识点变量的定义、输入和输出函数、if语句、转意字符的使用、调用外部文件、调用Windows下的命令符、清屏语句等等。二、 功能设计2.1、设计思路首先,应该要完成预期的功能,在写功能时又为了检查的方便以及屡次的调用,所以每一个功能我选择了将每一个功能以一个子函数的形式写出
3、来。而要实现某个功能就要用switch语句对某个功能进行调用。写的功能有成绩姓名的录入、直接排序、冒泡排序、线性搜索、对分搜索等。其次,就是个性化的设置,先翻开一个学校的logo,然后打印出主菜单,并且每一个功能实现后都再次出现主菜单,为了美观,每次都将上一步的操作清屏。结合实际,又将成绩的录入和学生成绩的查询分为两个系统,管理员来录入成绩,学生等用户来查询想要的结果。出于平安的考虑又设置了管理员和用户的账号密码,如果连续输错3次密码就将会强制性关机。个性化子函数有调取logo、主界面、系统调转、密码设置等。2.2、算法设计1、本程序实现的功能要求:将各个功能写成子函数,需要时进行调用。主函数
4、。2.3、局部模块流程图1管理员菜单2学生菜单3网页转跳4翻开文件5登陆程序6输入函数7排序函数8冒泡排序9搜索程序10对分搜索三、 运行结果展示。翻开外部文件,为一个logo。账号密码显示。录入成绩。查看成绩。跳转显示。按条件查找成绩。结束。四、 在设计过程中遇到的困难问题一:输入名字会刷屏?解决方法:输入格式以及地址与不是很熟悉,全部对应就可以了。问题二:在进行交换的时候不知道字符型数组该如何交换?解决方法:调用标准函数库里的strcpy()函数问题三:主界面在每个功能执行完后都要出现?解决方法:将主界面放入一个大循环中,然后再进行功能的调用。问题四:当在对应位置与设置输入格式不一致,出现
5、刷屏问题?解决方法:原因是格式不对,一直不能输入,但是数据流还存在于缓存中,所以用fflushstdin对缓存数据进行清空,即可防止刷屏。问题五:线性搜索时如果没有该成绩该如何提示?解决方法:设置一个标志位进行计数,如果该位不相等那么标志位加一,如果最后等于数组的位数,那么就没有查找到需要的成绩。问题六:对分搜索时程序发生崩溃?解决方法:运用调试找出逻辑错误。问题七:对分搜索时不能输出多个人的成绩?解决方法:将查找范围不断缩小,直到查找范围的最低位和最高位相等时结束。将这个范围内的全部输出。五、 C程序设计总结通过此次课程设计,使我更加扎实的掌握了C语言的根底知识,在设计过程中虽然遇到了一些问
6、题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验缺乏。实践出真知,通过亲自动手编程,暴露出我们尚且存在的问题,并通过多种途径去解决它。我认为,在这学期的课设中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会编程中重要的调试。回忆起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以稳固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。例如:外部文件的调用,Windows命令符的使用等。通过这次课程设计使我懂得了
7、理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。六、 程序代码设计#include#include#include#define max1 100/最多人数char namemax120;int chengjimax1;int paimingmax1;void glcaidan()
8、;/管理员菜单void xscaidan();/学生菜单void shuru();/输入函数void paixushuchu();void denglu();/管理员登陆void paiming1();/对学生进行排名void sousuo();void zhuantiao();/网页转跳void swap();/从大到小的排序void wenjian();/翻开文件void duifen();/对分搜索void zhijie(); /直接排序/*主函数*/void main()glcaidan();/管理员菜单zhuantiao();/网页转跳xscaidan();/学生菜单/*/void
9、wenjian() /翻开文件FILE *fp;char ch;char * = .字符图案wenhua.txt;system(cls);if(fp=fopen(,r)=NULL) printf(nSorry, Cant open the file! _n); exit(0);else while(ch=fgetc(fp)!=EOF) printf(%c,ch); fclose(fp); Sleep(2000);system(cls);void zhuantiao()/网页转跳int i;for(i=3;i0;i-)system(cls);printf(nnnnnnnnnttttttttt%d
10、s后将转跳到学生成绩查询系统.,i);Sleep(1000);void swap()/冒泡排序,从大到小的排序int flag;int i,j;char a20;int b;for(i=0;imax1-1;i+)flag=0;for(j=0;jmax1-i-1;j+) if(chengjijchengjij+1)flag=1;strcpy(a,namej+1);b=chengjij+1;strcpy(namej+1,namej);chengjij+1=chengjij;strcpy(namej,a);chengjij=b; if(flag=0)break;paiming1();void zhi
11、jie()/直接排序int i,j;char a20;int b;for(i=0;imax1;i+)for(j=i+1;jmax1;j+)if(chengjii chengjij )strcpy(a,namei);b=chengjii ;strcpy(namei,namej);chengjii =chengjij ;strcpy(namej,a);chengjij =b;void paiming1()/对学生进行排名int a,j;for(a=1,j=0;jmax1;j+)paimingj=a; a+;void glcaidan()/管理员菜单int a,b,c,d,f;char e;a=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 数组
限制150内