《C语言程序设计》课程设计报告学生信息管理系统

上传人:汽*** 文档编号:430792784 上传时间:2023-04-23 格式:DOC 页数:34 大小:428.50KB
返回 下载 相关 举报
《C语言程序设计》课程设计报告学生信息管理系统_第1页
第1页 / 共34页
《C语言程序设计》课程设计报告学生信息管理系统_第2页
第2页 / 共34页
《C语言程序设计》课程设计报告学生信息管理系统_第3页
第3页 / 共34页
《C语言程序设计》课程设计报告学生信息管理系统_第4页
第4页 / 共34页
《C语言程序设计》课程设计报告学生信息管理系统_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《《C语言程序设计》课程设计报告学生信息管理系统》由会员分享,可在线阅读,更多相关《《C语言程序设计》课程设计报告学生信息管理系统(34页珍藏版)》请在金锄头文库上搜索。

1、华中科技大学文华学院C语言程序设计课程设计报告题 目: 学生信息管理系统 学 部: 信息学部 系 : 计算机信息工程系 专 业: 自动化 班 级: 09级(1)班 姓 名: 学 号: 指导老师: 设计时间:2010年12月17日 2010年 12月30日 目录一 设计内容二 设计要求三 设计思路四 流程图五 源程序六 测试与调试七 心得体会八 参考文献一设计内容题目:学生信息管理系统设计要求:学生信息包括:姓名,成绩。试设计一学生信息管理系统,使之能提供以下功能:1、能通过键盘输入学生信息:姓名和成绩2、可将输入的学生信息按成绩高低进行排序(需用两种排序法,可任意选择者两种排序方法)3、学生信

2、息查询功能按姓名查询(需用两种查找法,并可任意选择两种查找法)二设计要求1,由键盘输入25个学生ay的某门课程的学习成绩6099分。2,将分数由低到高排序(用直接排序法和冒泡法),并显示学生姓名和对应的分数。3,用线性搜索法检索某个学生的成绩(输入姓名,显示成绩)4 *, 对分搜索法检索某个学生的成绩(输入姓名,显示成绩)三设计思路设计以菜单方式工作的学生信息管理系统,主要有学生信息输入功能,学生信息排序功能,学生信息查询功能三个模块。本设计的基本操作是通过构造结构体来实现。通过构建结构体类型数组存放25个学生的基本信息。再通过函数调用实现各子函数的功能,如:调通冒泡法排序子函数实现成绩排序。

3、四流程图层次模块图:查询信息退出系统成绩排名主菜单折半法查找直接法查找直接法排序冒泡法排序 直接排序法流程图如下:子程序入口将studenti.score赋给minminstudentj.score?判断是否发生交换交换两学生的全部信息交换,min=studentj;结束,退出冒泡排序法流程图如下:子程序入口开始无交换,令交换标记t=0studentjscorescorej+1.score?令t=1交换两学生的全部信息T=1?退出子程序直接查找法流程图:子程序入口Studenti.name= =Name?退出循环i0?退出子程序输入字符串Name输出该学生的信息输出没有找到该学生对分查找法流程

4、图:子程序入口姓名排序,从小到大leftright?令mid=(left+right)/2studentmid.name=Name?Namenamemid令left=mid+1输入Name输出没有找到输出该学生的信息五程序源代码#include#include#include#define N 5struct student /定义结构体char name10;int score; t, studentN; /定义一个结构体对象和一个结构体数组void input(struct student) /输入信息函数int i=0;int s;char c;doprintf(请输入学生信息:n);p

5、rintf(请输入姓名:); 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;

6、for( i=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=stu

7、dentj+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 search1(struct studen

8、t) /直接查找法查询信息函数int i;char c;char Name10;doprintf(请输入您想要查询的姓名以便查找该学生的成绩: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);elseprintf(没有找到该学生的信息,不妨再次查询n);printf(是否继续查询:yorY:);getcha

9、r(); 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);doprintf(请输入您想要查询的姓名:); scanf(%s,Name); if(strcmp(Name,student0.name)0)printf(该姓名不存在n); while(left=right)mid=(left+right)/2; if(strc

10、mp(Name,studentmid.name)=0)printf(查找的学生姓名是:%10s,成绩为:%5dn,Name,studentmid.score); break; elseif(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=y|c=Y);system(pause); /暂停工作int menu() /主菜单函数int c;do/system(cls); /*清屏*/printf( 欢迎来到学生信息管理系统 n);printf( 主菜单n);printf(

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号