c语言程序设计报告_第1页
c语言程序设计报告_第2页
c语言程序设计报告_第3页
c语言程序设计报告_第4页
c语言程序设计报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言课程设计报告题目:成绩管理系统专业年级:自动化一班学号:姓名:指导教师:叶念渝2015年12月17日一.设计内容(1)输入功能:由键盘输入20个学生(姓名)的某门课程 的学习成绩10为9分(也可超过)。(2)运算功能:将分数由低到高排序(用直接排序法和冒泡法),并 显示学生姓名和对应的分数。(3)检索功能:用线性搜索法检索某个学生的成绩(输入姓名,显 示成绩)。(4)查询功能:对分搜索法检索某个学生的成绩(输入姓名,显示 成绩)。二.设计要求(1)可以输入若干名学生信息(包括姓名/成绩等);(2)在源代码中将若干名同学的信息输出;(3)在源代码中能够将若干名同学的成绩排序(升序/降序均可

2、);(4)可以根据不同的查询条件(线性/对分搜索)来查询到相关学生的 信息;三设计思路首先进入软件界面,以菜单为提示的成绩管理系统分别建立输 入学生信息函数输入学生信息,建立排序函数实现排序功能,建立查 找函数实现查找功能.通过建立数组在函数运行中进行同步调换实现各信息间分联系,达到信息相对应的目的,在主函数中分别调用各功 能函数完成程序目的.四程序设计流程图1学生信息输入函数输入完毕退出子程序2直接排序法流程图score i=(1).输入人的姓名时为什么要用二维数组?因为输入了多个人的名字所以我们要建立一个名字的二维数组。(2).在输入函数中我开始用的是if语句定义输入范围结果只提示一次错误

3、。 后來我加了一个do-while循环,就可以一直执行下去了。(3).在冒泡排序法中没有理解strcpy函数的用法把字符串复制到字符串中去 了,真正用法是将字符串复制的字符数组中去。(4).将直接排序法和冒泡排序法弄混了,平时直接习惯有冒泡法,后來只有 从书上一步一步的分析其数值的变化。终于本质上的理解了两种排序的作用是如 何实现的。冒泡法是每比较一轮产生一个最小(大)的数放在第一个位置,而直 接排序法是找出数值最小(大)的小标与第一个调换。(5) .在设计主函数时我用的是switch函数调用分函数,在进行搜索时我没加循 环结果只能查找一个人的不能进行查多个人和判断是否能查到此人。后来我在搜

4、索法中加了个whi 1 e循环问题就解决了。(6) .在调试过程中我遇到的主要问题是输出姓需时第一个人的名字输出不出 來,后來我一句句的看源程序,也不知道为什么。我问班上同学才知道我用的是 gets (nameEil):输入字符串占用了一个字符所以输出第一姓名时名字数输不出 來,我把它改成scanfC%s,z,&namei);就可以输出了。从这件事中我明白了 要学会多思考即使你是参考书上的也要每一步弄懂,不然一个小的细节就会导致 程序出问题,我还是对这两种输入字符串函数没有本质的了解。(7) .程序有许多小问题都是在自己一遍遍调试下更正了,比如程序差东西、有 问题等,做好一个程序编程还是要自己

5、慢慢探索,理解每一个函数语句。六.心得体会与感受C语言课程设计总有两周时间,在第一次上课老师交给我们任务不知从何 下手到最后将整套学生管理系统的程序准确无误的编出來,对我来说无疑乂是一 大进步,在这段时间里我遇到了不少的问题。产生了许多的疑问,但是随着自己 的追随问题的根源,不断的温习书本上的知识,反复进行上机的操作,思路一步 一步的清晰起來了,所遇到的一些问题也逐渐得到就解决,本不是那么情愿做的 程序到因为解决了一些问题所产生的成就感反到激起了我兴趣。于是借着心中的 那一股劲,反复的程序进行摸索,把以前很多没学好的地方都捡了起來,还学会 了很多新的知识。这一切都源于老师对我们的严格要求,还有

6、自己的刻苦专研才 有了这样的成果。如果老师要求没有那么严格,或者是自己不去努力是做不出來 学生管理系统的。在设计的过程中,在我印象中最深刻的挺多的。冒泡和直接排序法的比较, 在二维数组的比较时也遇到了一些问题,主要是对二维数组的概念不清楚,性质 不了解,所以在运用时就有一些错误。当然在设计过程中因为输入法的错误、函 数层次不清晰变量名重复定义,也花了很多时间去解决。所以在这次编程过程中, 不仅仅只是完成作业而己,更多的是要用一种肯专研的学习态度,养成一个良好 学习习惯。作为一个合格的编程人员不仅仅要有专业知识,还要有一个良好的编 程习惯和一颗仔细的心,更需要一种负责认真编程态度。七.源程序in

7、clude include ttdefine N 5入函数绩排序输出(直接排序法)void sortl (char nameN8, int score )int i, j, max, tempi;char temp2100:for(i=0;iN-l;i+)max二i;for (j=i+l;jN;j+)if (scoremaxscorej) max=j;templ=scorei;scorei=scoremaxj;scoremax=templ;strcpy (temp2, name i);绩排序输出(冒泡法)void sort2(char nameN8, int score )int i, j,

8、t;char h100;for(j=0;jN;j+)for(i=0;iscore i+1)t二scorei;scorei=score i+1;scorei+1二t;strcpy(h, nameti);strcpy(namei, namei+1);strcpy (namei+1, h);printf (The sorted result:n);for(i=0;iN;i+)printf (,z姓名:%10s 成绩:3dn, namei, scorei);性搜索法检索学生的成绩分搜索法检索学生的成void searchi (char nameN8, int score) 绩void search2

9、(int score,char nameN8)int a, b, c, i ;char d;while (1)a=0;b=N-l;printfC请输入学生成绩:);scanf&c);getchar ();while(a=b)i=(a+b)/2;if (scorei=c)break:if (scoreic)b=il;if (scorei!=c)printf (无此成绩n);else*4线性搜索法printf (姓名:%10s 成绩:%3dn,z, name i, score i);printfC 继续查询吗Y/N:); d=getchar ();if(d= y川(d*) continue;elsebreak;void main ()int scoreN;char nameN8;int a, b;pri ntf (,z*n)printf(*n)printf (“*n)printf(“*学生成绩管理系统1. 输入学生信息2. 直接排序法3. 冒泡排序法*n)*n )printfC* 5对分搜索法b二 1;while(b=l)菜单界面2. 信息输入界面3. 直接排序法排序界面4. 冒泡排序法排序界面235456?889程珈K5 线性搜索法(输入姓名查找成绩)索生45|厶刖: J新名 戋请n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论