版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 C 语 言 课 程 设 计题 目: 学生信息管理系统设计者 : 梁天江专 业: 机械设计制造及其自动化班级学号: 072084-31所属院系: 机电学院指导教师: 吴湘宁 2010年7月17日1. 题目和要求:1.1问题提出与要求:学生成绩管理系统要求 设计一个学生成绩管理系统,对在校某班学生几门课程的考试成绩进行统一管理。每个学生记录包括学号、姓名、年龄、数学、英语、物理成绩,默认以学号为序存放。(1)一个文件按以班为单位存储学生记录。(2)将允许的操作分为六种A:插入一个新的学生记录(录入学生信息)B:修改学生记录C:删除一个学生记录D:登记成绩E:修改成绩F:浏览全班成绩 (3)计算学
2、生的总成绩 (4)输出全班成绩表1.2需求分析.根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.2.功能实现设计:2.1总体设计:分析系统:根据题目的需求分析,可将这个系统设计为六大模块(见下图):插入学生信息,修改,删除,登记,浏览,统计。学生信息管理系统显示修改删除浏览退出插入2.2详细设计: 1、主函数主函数设计得比较简洁,只提供输入、功能处理和输出部分的函数调用。其中各功能模块用菜单方式选择;其流程图如下:开始显示一系列功能选项输入n,判断n是否是16? 根据n
3、的值调用各功能模块函数结束程序void main()int a; do printf("ttttn"); printf("tttt学生成绩管理系统n"); printf("n"); printf("ttt作者:梁天江 班级:072084-31 学号:n"); printf("ttt-nn"); printf("t 1.插入新的学生记录n"); printf("t 2.修改学生记录n"); printf("t 3.删除学生记录n"); p
4、rintf("t 4.显示学生成绩和总分n"); printf("t 5.浏览全班成绩n"); printf("t 6.退出nn"); printf(" 输入你要操作的序号 : "); scanf("%d",&a); switch(a) case 1:printf("n");input();break; case 2:printf("n");change();break; case 3:printf("n");del();bre
5、ak; case 4:printf("n");allgrade();break; case 5:printf("n");paixu();break; case 6:printf("n");exit(0);break; default:printf("nThe choice is between 1 to 6.n"); while(a!=0);2、各功能模块设计(1)插入模块void input() int j; char ch20;printf("n输入学生信息:n");do printf(&q
6、uot;n学号: "); scanf("%s",stuk.num); printf("n姓名: "); scanf("%s",); printf("n年龄: "); scanf("%d",&stuk.age); for(j=0;j<3;j+) printf("n成绩%d: ",j+1); scanf("%d",&stuk.gradej); k+; printf("n如要继续,请输入学生信息(y/n
7、): "); scanf("%s",ch); while(strcmp(ch,"y")=0|strcmp(ch,"Y")=0); outputgrade();void outputgrade() int i; printf(" 学生信息是:n"); for(i=0;i<k;i+) printf("t%s t%s t%d t%d t%d t%d",stui.num,,stui.age,stui.grade0,stui.grade1,stui.grade2);pri
8、ntf("n"); (2)修改模块输入要修改的学号找到? Y N提示没有找到显示记录,调用修改函数继续? Y N返回主菜单void change()int i,j;char a20,ch10; printf("n输入你要修改的学生学号:"); scanf("%s",a); for(i=0;i<k;i+) if(strcmp(stui.num,a)=0) printf("n你确定要修改学号吗?(y/n): "); scanf("%s",ch); if(strcmp(ch,"y&qu
9、ot;)=0|strcmp(ch,"Y")=0) printf("nnum:"); scanf("%s",stui.num); printf("n你确定要修改学生姓名吗?(y/n): "); scanf("%s",ch); if(strcmp(ch,"y")=0|strcmp(ch,"Y")=0) printf("nname"); scanf("%s",); printf("n你确定要修改
10、学生成绩吗?(y/n): "); scanf("%s",ch); printf("n"); if(strcmp(ch,"y")=0|strcmp(ch,"Y")=0) for(j=0;j<3;j+) printf("grade%d:",j+1); scanf("%d",&stui.gradej); printf("n"); outputgrade();(3)删除模块 输入要删除的学号找到? Y N提示没有找到显示记录,调用删除函数返
11、回主菜单继续? Y Nvoid del()int i,j;char c20; printf("n输入你要删除的学生学号 :n"); printf("num:"); scanf("%s",&c); for(i=0;i<3;i+) if(strcmp(c,stui.num)=0) break; for(j=i;j<=2;j+) stuj=stuj+1; printf("ttt你已经删除 %s的信息n",c); k-; outputgrade();(4)显示模块 (显示学生成绩总分)void allg
12、rade() int i; float sum=0; for(i=0;i<k;i+) printf("t%d t%d t%dn",stui.grade0,stui.grade1,stui.grade2); sum=sum+stui.grade0+stui.grade1+stui.grade2 ; printf("总成绩是 %f",sum);(5)浏览模块(浏览全班学生成绩并按学号排序)void paixu() struct student temp; int i,j;for(i=0;i<k-1;i+) for(j=i+1;j<k;j+)
13、 if(stui.num<stuj.num) temp=stui; stui=stuj; stuj=temp; outputgrade();2.上机操作1、数据源全班学生信息文件student.txt格式:每行储存一个学生信息,内容包括学生学号、姓名、年龄、数学成绩、英语成绩、物理成绩。例如:01 zhao 18 90 80 852、编译、链接和运行(略)3、结果(1)主菜单函数效果如下图所示:(2)插入模块在主界面出现后输入1回车,即可插一个学生信息,包括学号、姓名、年龄、数学、英语、物理成绩。如下图所示:(3)修改模块(4)删除模块(5)显示模块(显示全班学生成绩和总分)(6)浏览模
14、块4.下面附上此次C语言课程设计的源程序#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>struct student char num10; char name12; int age; int grade3; stu20;int k=0;void input();void outputgrade();void change();void del();void allgrade();void paixu();void main()int a; do prin
15、tf("ttttn"); printf("tttt学生成绩管理系统n"); printf("n"); printf("ttt作者:梁天江 班级:072084-31 学号:n"); printf("ttt-nn"); printf("t 1.插入新的学生记录n"); printf("t 2.修改学生记录n"); printf("t 3.删除学生记录n"); printf("t 4.显示学生成绩和总分n"); print
16、f("t 5.浏览全班成绩n"); printf("t 6.退出nn"); printf(" 输入你要操作的序号 : "); scanf("%d",&a); switch(a) case 1:printf("n");input();break; case 2:printf("n");change();break; case 3:printf("n");del();break; case 4:printf("n");allgrad
17、e();break; case 5:printf("n");paixu();break; case 6:printf("n");exit(0);break; default:printf("nThe choice is between 1 to 6.n"); while(a!=0); void input() int j; char ch20;printf("n输入学生信息:n");do printf("n学号: "); scanf("%s",stuk.num); print
18、f("n姓名: "); scanf("%s",); printf("n年龄: "); scanf("%d",&stuk.age); for(j=0;j<3;j+) printf("n成绩%d: ",j+1); scanf("%d",&stuk.gradej); k+; printf("n如要继续,请输入学生信息(y/n): "); scanf("%s",ch); while(strcmp(ch,&
19、quot;y")=0|strcmp(ch,"Y")=0); outputgrade();void outputgrade() int i; printf(" 学生信息是:n"); for(i=0;i<k;i+) printf("t%s t%s t%d t%d t%d t%d",stui.num,,stui.age,stui.grade0,stui.grade1,stui.grade2); printf("n"); void change()int i,j;char a20,ch10
20、; printf("n输入你要修改的学生学号:"); scanf("%s",a); for(i=0;i<k;i+) if(strcmp(stui.num,a)=0) printf("n你确定要修改学号吗?(y/n): "); scanf("%s",ch); if(strcmp(ch,"y")=0|strcmp(ch,"Y")=0) printf("nnum:"); scanf("%s",stui.num); printf(&quo
21、t;n你确定要修改学生姓名吗?(y/n): "); scanf("%s",ch); if(strcmp(ch,"y")=0|strcmp(ch,"Y")=0) printf("nname"); scanf("%s",); printf("n你确定要修改学生成绩吗?(y/n): "); scanf("%s",ch); printf("n"); if(strcmp(ch,"y")=0|strc
22、mp(ch,"Y")=0)for(j=0;j<3;j+) printf("grade%d:",j+1); scanf("%d",&stui.gradej); printf("n"); outputgrade();void del()int i,j;char c20; printf("n输入你要删除的学生学号 :n"); printf("num:"); scanf("%s",&c); for(i=0;i<3;i+) if(strc
23、mp(c,stui.num)=0) break; for(j=i;j<=2;j+) stuj=stuj+1; printf("ttt你已经删除 %s的信息n",c); k-; outputgrade();void allgrade() int i; float sum=0; for(i=0;i<k;i+) printf("t%d t%d t%dn",stui.grade0,stui.grade1,stui.grade2); sum=sum+stui.grade0+stui.grade1+stui.grade2 ; printf("总成绩是 %f",sum);void paixu() struct student temp; int i,j;for(i=0;i<k-1;i+) for(j=i+1;j<k;j+) if(stui.num
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 试岗用工协议书
- 试验室合同范本
- 2025广东下半年揭阳市市直卫生健康事业单位赴外地院校招聘工作人员27人笔试重点试题及答案解析
- 床铺捐赠协议书
- 快递保证协议书
- 帮忙买车合同范本
- 征收代办协议书
- 质量免检协议书
- 意外协商协议书
- 自愿返岗协议书
- 消毒供应中心护士长笔试题及答案
- 系统分析师技术面试题与解析
- 中共宜春市袁州区委社会工作部2025年公开招聘编外人员备考题库附答案
- 2025中小银行数字金融发展研究报告
- 2025年森林碳汇项目可行性研究报告
- 四川省成都市八区联考2024-2025学年八年级上学期数学期末考试卷(含答案)
- 初中级档案职称考试(档案基础)手机备考题库及答案(2025川省)
- 2025年社区警务规范考试题库及答案
- 南瓜饼课件导入
- 碳汇市场交易操作流程解析
- 混凝土搅拌站环保应急预案
评论
0/150
提交评论