下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C 语言课程设计 题 目:学生信息管理系统 设计者:梁天江 专 业:机械设计制造及其自动化 班级学号:072084-31 所属院系:机电学院 指导教师:吴湘宁 2010 年 7月 17日 1. 题目和要求: 1.1 问题提出与要求: 学生成绩管理系统 要求 设计一个学生成绩管理系统,对在校某班学生几门课程的考试成绩进行统一管 理。每个学生记录包括学号、姓名、年龄、数学、英语、物理成绩,默认以学号为 序存放。 (1) 一个文件按以班为单位存储学生记录 (2)将允许的操作分为六种 A:插入一个新的学生记录(录入学生信息) B:修改学生记录 C:删除一个学生记录 D:登记成绩 E:修改成绩 F:浏览
2、全班成绩 (3) 计算学生的总成绩 (4) 输出全班成绩表 1.2 需求分析. 根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入,输出等 操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供 键盘式选择菜单实现功能选择. 2. 功能实现设计: 2.1 总体设计: 分析系统:根据题目的需求分析,可将这个系统设计为六大模块(见下图) :插 入学生信息,修改,删除,登记,浏览,统计。 1、主函数 主函数设计得比较简洁,只提供输入、功能处理和输出部分的函数调用。其中各功 能模块用菜单方式选择;其流程图如下: 根据 n的值调用各功能模块 学生信息管理系统 2.2 详
3、细设计: 程序printf( 输入你要操作的序号:); void mai n() int a; do prin tf(ttttn); printf(tttt 学生成绩管理系统n); prin tf(n); printf(ttt - nn); prin tf(t 1. 插入新的学生记录n); prin tf(t 2. 修改学生记录n); prin tf(t 3. 删除学生记录n); prin tf(t 4. 显示学生成绩和总分n); prin tf(t 5. 浏览全班成绩n); prin tf(t 6. 退出 nn); prin tf(n 如要继续,请输入学生信息(y/n):); sea nf(
4、%d, &a); switch(a) case 1:pri ntf(n);i nput();break; case 2:pri ntf(n );cha nge();break; case 3:pri ntf(n);del();break; case 4:pri ntf(n);allgrade();break; case 5:pri ntf(n );paixu();break; case 6:pri ntf(n);exit(0);break; default:pri ntf(nThe choice is betwee n 1 to 6. n); while(a!=0); 2、各功能模块设
5、计 (1 )插入模块 void in put() int j; char ch20; printf(n 输入学生信息:n); do prin tf(n 学号:); sca nf(%s,stuk. nu m); printf(n 姓名:); sca nf(%s,stuk. name); prin tf(n 年龄:); sca nf(%d, &stuk.age); for(j=0;j3;j+) prin tf(n 成绩 %d: ,j+1); sca nf(%d,& stuk.gradej); prin tf(n 如要继续,请输入学生信息(y/n):); k+; sea nf(%s,
6、ch); while(strcmp(ch,y)=O|strcmp(ch, Y )=0); outputgrade(); void outputgrade() int i; printf( 学生信息是:n); for(i=0;ik;i+) pri ntf(t%s t%s t%d t%d t%d,stui. nu m,stui. name,stui.age,stui.grade0,stui.grade1, stui.grade2); prin tf(n);t%d prin tf(n 输入你要修改的学生学号:); (2) 修改模块 丨返回主菜 void cha nge() int i,j; char
7、 a20,ch10;prin tf(n); sea nf(%s,a); for(i=0;ik;i+) if(strcmp(stui. nu m,a)=0) printf(n 你确定要修改学号吗(y/n):); sea nf(%s,ch); if(strcmp(ch,y)=0|strcmp(ch, Y)=0) sea nf(%s,stui. num); prin tf(n 你确定要修改学生姓名吗(y/n):); sca nf(%s,ch); if(strcmp(ch,y)=0|strcmp(ch, Y)=0) sca nf(%s,stui. name); prin tf(n 你确定要修改学生成绩
8、吗(y/n):); sca nf(%s,ch); prin tf(n pr in tf(nn if(strcmp(ch,y)=O|strcmp(ch, Y)=0) for(j=0;j3;j+) printf(grade%d : ,j+1); scanf(%d,&stui.gradej); printf(n); outputgrade(); (3) 删除模块 N void del() int i,j; char c20; printf(n 输入你要删除的学生学号 :n); printf(num :); sca nf(%s, &c); for(i=0;i3;i+) if(strcm
9、p(c,stui. num)=0) break; for(j=i;j=2;j+) stuj=stuj+1; printf(ttt 你已经删除 %s 的信息n,c); k-; outputgrade(); (4) 显示模块(显示学生成绩总分) void allgrade() int i; float sum=0; for(i=0;ik;i+) prin tf(t%d t%d t%dn,stui.grade0,stui.grade1,stui.grade2); sum二sum+stui.grade0+stui.grade1+stui.grade2 ; printf( 总成绩是 f,sum); (5
10、) 浏览模块(浏览全班学生成绩并按学号排序) void paixu() struct stude nt temp; int i,j; for(i=0;ik-1;i+) for(j二i+1;jk;j+) if(stui. num stuj. num) temp=stui; stui=stuj; stuj=temp; outputgrade(); 2. 上机操作 1、数据源 全班学生信息文件 student.txt 格式:每行储存一个学生信息, 姓名、年龄、数学成绩、英语成绩、物理成绩。例如: 01 zhao 18 90 80 85 2、编译、链接和运行(略) 3、 结果 (1) 主菜单函数 效果
11、如下图所示: (2) 插入模块 在主界面出现后输入 1回车,即可插一个学生信息,包括学号、姓名、年龄、数学、 英语、物理成绩。如下图所示: (3) 修改模块 (4) 删除模块 (5) 显示模块(显示全班学生成绩和总分) 内容包括学生学 (6) 浏览模块 4. 下面附上此次 C语言课程设计的源程序 #in clude #i ncludevstri ng.h #in clude #in clude struct stude nt char num10; char n ame12; int age; int grade3; stu20; int k=0; void in put(); void ou
12、tputgrade(); void cha nge(); void del(); void allgrade(); void paixu(); void mai n() int a; do prin tf(ttttn); printf(tttt 学生成绩管理系统n); prin tf(n); printf(ttt - nn); printf(t 1. 插入新的学生记录n); printf(t 2. 修改学生记录n); printf(t 3. 删除学生记录n); printf(t 4. 显示学生成绩和总分n); printf(t 5. 浏览全班成绩n); printf(t 6. 退出 nn);
13、prin tf( 输入你要操作的序号:); sea nf(%d, &a); switch(a)case 1:pri ntf(n);i nput();break; case 2:pri ntf(n );cha nge();break; case 3:pri ntf(n);del();break; case 4:pri ntf(n);allgrade();break; case 5:pri ntf(n );paixu();break; case 6:pri ntf(n);exit(0);break; default:pri ntf(nThe choice is betwee n 1 to
14、6. n); while(a!=0); void in put() int j; char ch20; printf(n 输入学生信息:n); do sea nf(%s,stuk. nu m); printf(n 姓名:); sea nf(%s,stuk. name); prin tf(n 年龄:); sea nf(%d, &stuk.age); for(j=0;j3;j+) prin tf(n 成绩 %d: ,j+1); sca nf(%d,& stuk.gradej); k+; prin tf(n 如要继续,请输入学生信息 (y/n):); sca nf(%s,ch); w
15、hile(strcmp(ch,y)=O|strcmp(ch, Y)=0); outputgrade(); void outputgrade() int i; for(i=0;ik;i+) prin tf(t%s t%s t%d t%d t%d,stui. nu m,stui. name,stui.age,stui.grade0,stui.grade1, stui.grade2); prin tf(n); void cha nge() int i,j; char a20,ch10; prin tf(n 输入你要修改的学生学号:); sca nf(%s,a); for(i=0;ik;i+) if(
16、strcmp(stui. nu m,a)=0)prin tf( 学生信息是:n); t%d sea nf(%s,ch); if(strcmp(ch,y)=O|strcmp(ch, Y )=0) pri ntf(n num:); sea nf(%s,stui. num); prin tf(n 你确定要修改学生姓名吗(y/n):); sca nf(%s,ch); if(strcmp(ch,y)=O|strcmp(ch, Y )=0) pri ntf(n name); sca nf(%s,stui. name); prin tf(n 你确定要修改学生成绩吗(y/n):); sca nf(%s,ch)
17、; prin tf(n); if(strcmp(ch,y)=O|strcmp(ch, Y )=0) for(j=0;j3;j+) prin tf(n 你确定要修改学号吗(y/n) :) ; prin tf(grade%d : ,j+1); sca nf(%d,& stui.gradej); prin tf(n); outputgrade(); void del() int i,j; char c20; printf(n 输入你要删除的学生学号 :n); printf(num :); sca nf(%s, &c); for(i=0;i3;i+) if(strcmp(c,stui.
18、 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;ik;i+) prin tf(t%d t%dn,stui.grade0,stui.grade1,stui.grade2); sum二sum+stui.grade0+stui.grade1+stui.grade2 ; printf( 总成绩是 f,sum); void paixu() struct stude nt temp; int i,j; for(i=0;ik-1;i+) for(j=i+1;jk;j+)t%d if(stui. num stuj. num) temp=stui; stui=stuj; stuj=temp; outputgrade(); 5.实习心得: 通过 7次的 C语言课程设计上机实习,我学到了很多东西。幵始上机实习时, 面对着繁琐的程序结构,我无从下手,一头雾水的我看到了 C 语言课程设计与学 习指导中的第五章,“举一反三”部分。看完后,我“依葫芦画瓢”地在 VISUALC+ 上写了简单的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机关科技知识培训课件
- 2025至2030中国无人机应用行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030装修设计项目可行性研究咨询报告
- 2026年重庆大学附属江津医院招聘备考题库(中药调剂岗)及1套参考答案详解
- 2026年泰州市新春晖企业管理服务有限公司招聘宿舍管理员备考题库(第二批)完整参考答案详解
- 中国核工业二三建设有限公司2025年核级焊接技术校园招聘备考题库及一套答案详解
- 中国热带农业科学院广州实验站2026年第一批公开招聘工作人员备考题库参考答案详解
- 国家海洋环境监测中心2026年度面向社会公开招聘工作人员备考题库及答案详解1套
- 2025至2030中国农业机械化产业链投资价值及市场前景评估报告
- 2025-2030中国溴代环戊烷行业趋向洞察及未来供需趋势预判研究报告
- 2025年12月福建厦门市鹭江创新实验室管理序列岗位招聘8人备考题库必考题
- 人工搬运培训课件
- 建筑施工异常工况安全处置指南
- 2025年榆林神木市信息产业发展集团招聘备考题库(35人)及答案详解(新)
- 2025年公务员时事政治热点试题解析+答案
- 免疫联合治疗的生物样本库建设
- 项目管理沟通矩阵及问题跟进器
- 交通运输企业人力资源管理中存在的问题及对策
- 蒂森电梯安全质量培训
- 设备供货进度计划及保证措施
- 纯化水取样课件
评论
0/150
提交评论