1、学生信息管理课程设计报告doc华中科技大学文华学院C语言程序设计课程设计报告题 目: 学生信息管理系统 学 部: 信息学部 系 : 计算机信息工程系 专 业: 自动化 班 级: 09级(1)班 姓 名: 王芳黎 学 号: 090108011120 指导老师: 叶老师 设计时间:2010年12月17日 2010年 12月30日 一 设计内容二 设计要求三 设计思路四 流程图五 源程序六 测试与调试七 心得体会八 参考文献一设计内容题目:学生信息管理系统设计要求:学生信息包括:姓名,成绩。试设计一学生信息管理系统,使之能提供以下功能:1、能通过键盘输入学生信息:姓名和成绩2、可将输入的学生信息按成
2、绩高低进行排序(需用两种排序法,可任意选择者两种排序方法)3、学生信息查询功能按姓名查询(需用两种查找法,并可任意选择两种查找法)二设计要求1,由键盘输入25个学生ay的某门课程的学习成绩6099分。2,将分数由低到高排序(用直接排序法和冒泡法),并显示学生姓名和对应的分数。3,用线性搜索法检索某个学生的成绩(输入姓名,显示成绩)4 *, 对分搜索法检索某个学生的成绩(输入姓名,显示成绩)三设计思路设计以菜单方式工作的学生信息管理系统,主要有学生信息输入功能,学生信息排序功能,学生信息查询功能三个模块。本设计的基本操作是通过构造结构体来实现。通过构建结构体类型数组存放25个学生的基本信息。再通
3、过函数调用实现各子函数的功能,如:调通冒泡法排序子函数实现成绩排序。四流程图层次模块图: 直接排序法流程图如下:冒泡排序法流程图如下:直接查找法流程图:对分查找法流程图:五程序源代码#include#include#include#define N 5struct student /定义结构体 char name10; int score; t, studentN; /定义一个结构体对象和一个结构体数组void input(struct student) /输入信息函数 int i=0; int s; char c; do printf(请输入学生信息:n); printf(请输入姓名:);
4、scanf(%10s,&studenti.name); printf(请输入成绩,分数在60-99之间:); scanf(%5d,&studenti.score); if(studenti.score99) printf(分数输入有误,请重新输入:); scanf(%5d,&s); studenti.score=s; i+; printf(是否继续输入:yorY:); getchar(); c=getchar(); while(c=y|c=Y)&iN); system(pause);void sort1(struct student) /直接排序法排列学生成绩 int i,j; for( i=
5、0;iN-1;i+) for( j=i+1;jstudentj.score) /通过比较成绩交换两个学生的全部信息 t=studenti; studenti=studentj; studentj=t; printf(排序后的结果:n); for( i=0;iN;i+) printf(姓名: %s,成绩:%dn,studenti.name,studenti.score); void sort2(struct student) /冒泡法排列学生成绩 int i,j; for (i=0;iN-1;i+) for (j=0;jstudentj+1.score) t=studentj; studentj
6、=studentj+1; studentj+1=t; printf(The sorted result: n); for(i=0;iN;i+) printf(姓名: %s,成绩: %dn,studenti.name,studenti.score);void sortname(struct student) /姓名排序函数 int i,j; for(i=0;iN-1;i+) for(j=i+1;j5;j+) if(strcmp(studentj.name,studenti.name)0) t=studenti; studenti=studentj; studentj=t; void search
7、1(struct student) /直接查找法查询信息函数 int i; char c; char Name10; do printf(请输入您想要查询的姓名以便查找该学生的成绩:n); scanf(%10s,Name); for(i=0;iN;i+) if(strcmp(Name,studenti.name)=0) break; /通过字符串的比较来搜索要查找的姓名 if(iN) printf(查询结果为:n); printf(姓名: %10s,成绩: %5dn,studenti.name,studenti.score); else printf(没有找到该学生的信息,不妨再次查询n);
8、printf(是否继续查询:yorY:); getchar(); c=getchar(); while(c=y|c=Y); system(pause); /暂停工作 void search2(struct student) /折半查找法查询信息函数 int left,right,mid; char Name10; char c; left=0;right=N-1; sortname(student5); do printf(请输入您想要查询的姓名:); scanf(%s,Name); if(strcmp(Name,student0.name)0) printf(该姓名不存在n); while(
9、left=right) mid=(left+right)/2; if(strcmp(Name,studentmid.name)=0) printf(查找的学生姓名是:%10s,成绩为:%5dn,Name,studentmid.score); break; else if(strcmp(Name,studentmid.name)0) left=mid+1; if(strcmp(Name,studentmid.name)!=0)|(leftright) printf(No foundn); printf(是否继续查询:yorY:); getchar(); c=getchar(); while(c=
10、y|c=Y); system(pause); /暂停工作int menu() /主菜单函数 int c; do /system(cls); /*清屏*/ printf( 欢迎来到学生信息管理系统 n); printf( 主菜单n); printf( 1.输入信息n); printf( 2.直接排序法排列成绩n); printf( 3.冒泡法排列成绩n); printf( 4.直接法查找信息n); printf( 5.折半法查找信息n); printf( 6.退出系统n); printf( 请选择操作方式:); scanf(%d,&c); while(c6); return c;void mai
11、n() /主函数 int select; while(1) select=menu(); switch(select) case 1:input(studentN); break; case 2:sort1(studentN); break; case 3:sort2(studentN); break; case 4:search1(studentN); break; case 5:search2(studentN); break; case 6:printf(谢谢使用n); exit(0); /正常退出 六测试与调试 1主菜单界面2.输入信息界面 3.直接排序界面4.冒泡法排序界面5.直接查
12、找信息界面6.折半查找信息界面7.退出系统界面七心得体会通过此次程序设计课程,对于我这个刚入门的人来说,是很有难度的,这次亲手设计的程序也让我学习到不少东西。当然,我也遇到了许多困难,比如说,我一开始连结构体都弄不清楚,因为压根就没学过,但在自己看书查资料以及问同学之后,我还用结构体完成了这次的程序设计。此次设计我受益匪浅,不仅在指针、结构、文件等知识上加深了运用和理解,而且,能够自己解决一些问题使程序更加完整。这次程序设计把平时所学的知识一次性全用上了而且将近半年都没看c语言之类的书了,正好此时有一个程序设计,让我从程序的设计思路到程序的编写过程中把很多以前学过的知识都捡了起来,还把以前没学
13、过的知识也让我学会了,比如结构体,还有,通过张老师给我们补的一节有关指针的课,虽然仅有一次课,但我通过认真听讲,还有上网查相关资料让我对指针了解的更加清楚,通过这次的设计也让我懂得了如何调用函数,如何使用冒泡法排序,如何使用直接查找法查找,更通过了解对分查找法,也让我懂得如何对人名进行排序等,总之这次的程序设计真的让我学到了很多。还有,编写这个程序对于我即将要考的二级c语言等级考试有极大的帮助,我通过到图书馆查书籍以及请教同学们帮忙等途径,还有利用上课时间、课外时间将近百来个小时完成了所有的课程设计内容,通过这个完成的过程让我巩固了之前学的知识,也让我学到了老师没讲的新知识。尽管我的程序与报告
14、做得不是很完善,但已经是我尽最大努力写出来的了,对这份我注入了大量时间与精力的程序能如期完成,我很欣慰。但同时也使我认识到自己所掌握的知识不足,所以在接下来的时间里我要加强C语言方面的知识,尤其是结构体、指针、调用函数以及文件等方面的知识有待加固。还有这次的程序设计让我充分认识到我c语言方面的知识的不足,也让我学到了很多相关的c语言的知识,比如说结构体,相信通过此次的认识与学习以及我今后对c语言知识的加强,我会顺利通过明年3月份的二级c语言等级考试,同时我觉得这次的程序设计很及时,对于学校在这个时候安排的这个课程设计感到非常的高兴。八参考文献程序设计基础教程(c语言) 杨有安 等 人民邮电出版社 2009.C程序设计辅导与实训(第二版 ) 崔武子 等 清华大学出版社2009C语言程序设计(第二版) 谭浩强
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1