




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、XXXX大学C语言进阶与试题剖析课程综合设计课程报告课题名称: 微型学生成绩管理系统二级学院: XXX学院 学生姓名: XXX 学 号: XXX 主讲教师: XX 2011 年6月1日1、 提出问题设某班有n位同学,每位同学的数据包括以下内容:学号(字符串)、姓名(字符串)、数学成绩(字符串)、程序设计成绩(字符串)。设计程序完成以下五项功能:新建数据档案、添加数据、删除数据、对输入的数据进行排序和查询。注:采用模块化程序设计思想对系统进行设计;学生的数据要求用文件保存;学生的学号作为关键字段,不能相同,姓名可以相同。要求使用结构体,链或数组等实现。2、 分析问题最初我们要对文件名进行规定,主
2、要包括数据库文件、数学成绩排序文件、程序设计成绩排序文件。其次在程序偏斜忠要应用结构体、采取全局变量用来记录学生的学号、姓名、数学成绩、程序设计成绩以及总分等。然后我们要明确课题中的要求:(一)程序运行时,首先显示主菜单如下 1.新建数据 2.添加数据 3.删除数据 4.排序 5.查询 6、退出(二)在主菜单中选择序号4,弹出子菜单选择排序方式1数学成绩排序 2程序设计成绩排序 3总分排序 4返回主菜单(三)在主菜单中选择序号5,弹出子菜单选择查询方式1学号查询 2姓名查询 3数学成绩查询 4程序设计成绩查询5总分查询 6返回主菜单三、解决问题(一)数据结构学号:char xh() 姓名: c
3、har xm() 数学成绩:int sxcj程序设计成绩 int cxcj() 总分 int zf 全局变量 int t (二)算法描述1. 在主函数中,我们只需做6个部分(1新建学生数据、2添加学生数据、3删除学生信息、4对分数进行排序包括数学成绩,程序设计成绩,总成绩、5对某一个学生的信息进行查询6退出这个学生查询系统)建立人机对话框,根据用户所选的模块进行相应的操纵,调用相应的子函数,完成想用的功能。2. 新建学生信息函数。学生信息包括学生学号、学生姓名、学生数学成绩、学生程序设计成绩、总成绩以及显示函数3. 删除学生信息。由于学号是关键字,我们应首先根据学号比较出是否有这个学生信息的存
4、在,如果不存在就不处理,如果存在,就删除信息4. 排序函数这里有三个需要排序的数据,分别任数学成绩,程序设计成绩以及总成绩。只是我们需要设计一个界面。根据用户的选择选用不同的模块进行排序。5.查找函数。主要是根据不同的分数查找出不同的人数,如对于数学成绩查询,输入某一分数,然后逐一遍历原有的数据,查找出相同的就输出。其他的两个也一样。(三)源程序#include#includestruct studentchar xh12; /*学号*/ char xm12; /*姓名*/ int sxcj; /*数学成绩*/ int cxcj; /*程序设计成绩*/ int zf; /*总分*/stu60;
5、int t; /全局变量void main() int n; void creat_data(); void add(); void delet(); void sort_stu(); void search(); do printf(ttt主菜单n); printf(tn); printf(ttt1.新建数据n) ; printf(ttt2.添加数据n); printf(ttt3.删除数据n); printf(ttt4.排序n); printf(ttt5.查询n); printf(ttt6.退出n); printf(tn); printf(请输入序号选择相应操作:); scanf(%d,&n
6、); switch(n) case 1:creat_data();break; case 2:add();break; case 3:delet();break; case 4:sort_stu();break; case 5:search();break; case 6:printf(欢迎使用n);break; default: printf(输入错误); while(n!=6);void sum_stu() /分数总和 int i; for(i=1;i=t;i+) stui.zf=stui.sxcj+stui.cxcj;void print() int i; printf(tt学号 姓名
7、数学成绩 程序设计成绩 总分n); printf(tt-n); for(i=1;i=t;i+) printf(tt%s %s %d %d %dn,stui.xh,stui.xm,stui.sxcj,stui.cxcj,stui.zf); printf(tt-nn);void creat_data() /新建数据 int i; printf(The number of students you want to creat: ); scanf(%d,&t); for(i=1;i=t;i+) printf(n请输入学生学号:); scanf(%s,stui.xh); printf(n); print
8、f(请输入学生姓名:); scanf(%s,stui.xm); printf(n); printf(请输入学生数学成绩:); scanf(%d,&stui.sxcj); printf(n); printf(请输入学生程序设计成绩:); scanf(%d,&stui.cxcj); printf(n); sum_stu();print(); void add() /添加数据 char ch; do printf(n请输入学生学号:); scanf(%s,stut+1.xh); printf(n); printf(请输入学生姓名:); scanf(%s,stut+1.xm); printf(n);
9、printf(请输入学生数学成绩:); scanf(%d,&stut+1.sxcj); printf(n); printf(请输入学生程序设计成绩:); scanf(%d,&stut+1.cxcj); printf(n); t+; printf(是否继续添加y/n:); getchar(); ch=getchar(); printf(n); while(ch=y); sum_stu(); print();void delet()/删除 char xh110; int i,j,count=0; printf(输入想要删除的学生的学号); scanf(%s,xh1); for (i=1;i=t;i
10、+) if(strcmp(xh1,stui.xh)=0) for(j=i;jt+1;j+) stuj=stuj+1; count+; t-; if(count=0) printf(没有该生信息!); else print();void sort_stu() /排序 int k,j,i; struct student temp; printf(tt-n); printf(ttt1.数学成绩排序n); printf(ttt2.程序设计成绩排序n); printf(ttt3.总分排序n); printf(ttt4.返回主菜单n); printf(tt-n); printf(请按序号选择相应操作:);
11、 scanf(%d,&k); if(k=1) for(i=1;it;i+) for(j=i+1;j=t;j+) if(stui.cxcjstuj.cxcj) temp=stui;stui=stuj;stuj=temp; print(); else if(k=2) for(i=1;it;i+) for(j=i+1;j=t;j+) if(stui.cxcjstuj.cxcj) temp=stui;stui=stuj;stuj=temp; print(); else if(k=3) for(i=1;it;i+) for(j=i+1;j=t;j+) if(stui.zfstuj.zf) temp=st
12、ui;stui=stuj;stuj=temp; print(); else main(); void search_sxcj() int m,i,count=0; printf(输入数学成绩:); scanf(%d,&m); for(i=1;i=t;i+) if(m=stui.sxcj) printf(%s %s %d %d %dn,stui.xh,stui.xm,stui.sxcj,stui.cxcj,stui.zf);count+; printf(人数:%dn,count); if(count=0) printf(没有大于该分数的同学!n); void search_cxcj() int
13、m,i,count=0; printf(输入程序设计成绩:); scanf(%d,&m); for(i=1;i=t;i+) if(m=stui.cxcj) printf(%s %s %d %d %dn,stui.xh,stui.xm,stui.sxcj,stui.cxcj,stui.zf);count+; printf(人数:%dn,count); if(count=0) printf(没有大于该分数的同学!n); void search_zf() int m,i,count=0; printf(输入分数:); scanf(%d,&m); for(i=1;i=t;i+) if(m=stui.zf) printf(%s %s %d %d %dn,stui.xh,stui.xm,stui.sxcj,stui.cxcj,stui.zf);count+; printf(人数:%dn,count); if(count=0) printf(没有大于该分数的同学!n); void search() /查询 int k; printf(tt-n); printf(ttt1.数学成绩查询n); printf(ttt2.程序设计成绩查询n); printf(ttt3.总分查询n); printf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全款购买别墅合同范例
- 买卖金矿合同范例框架
- 全网推广服务合同范例
- 中介介绍项目合同范例
- 仪器打包采购合同范例
- app 开发 验收 合同范例
- 中超球员合同样本
- 交叉持股合同范例
- 产品订作合同范例
- 多模态语义分析驱动的代码复用检测框架-洞察阐释
- 商场运营管理规定范文(2篇)
- 反诈知识竞赛题库及答案(共286题)
- 稀土材料技术基础知识单选题100道及答案解析
- 生理学基础题库(46道)
- 量子储能材料的探索
- 2023年人教版六年级语文下册期末考试卷(A4打印版)
- ESG信息披露、表现和评级综合研究:国内外对比分析
- 2024年全国普法知识竞赛法律知识题库及答案
- DB5101-T135-2021城市公园分类分级管理规范
- 气象行业天气预报技能竞赛理论试题库资料(含答案)
- 水库工程土石方开挖施工方案
评论
0/150
提交评论