




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、真诚为您提供优质参考资料,若有不当之处,请指正。概述1.1目的本课程设计的目的是培养应用面向对象程序设计设计方法及思想解决实际问题的能力,掌握使用面向对象程序设计语言C+,熟悉面向对象开发平台Visual C+6.0,提高调查研究、查阅技术资料以及编写技术文献的能力。1.2意义C+是实践性很强的课程。课程设计是加强我们实践能力的一个强有力手段。课程设计要求我们在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于我们基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。设计方案简述2.1系统框架主菜单学生成绩输入学生成绩统计学生成绩排名成绩的统计结果显
2、示学生成绩的查找学生成绩的添加学生成绩的删除学生数据的读取学生数据的存储2.2功能分析1、用C+语言实现系统;2、对学生信息(包括学院、学号、姓名、高等数学、c+、大学英语、马列、平均分、总分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出。3、要求设计的管理系统能够完成以下功能:(1)、每一条记录包括一个学生的学号、姓名、(至少)4门课成绩。(2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记录的输入。)(3)、成绩信息显示浏览功能:完成全部学生记录的显示。(4)、查询功能:完成按姓名或学号查找学生记录,并显示。(5)、成绩信息的删除:按姓名或学号进行删
3、除某学生的成绩.(6)、排序功能:按学生学号或总成绩(从小到大)进行排序。(7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!详细设计3.1模块设计与分析(1)输入学生资料:主要功能用来对学生的成绩进行收集和输入。在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名。在准确输入学生资料后,就可以对该学生的各科成绩进行录入。该学生各科成绩输入成功后,系统会提示是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。(2)输出学生资料主要功能用来对学生的成绩进行输出。在系统已经录入了
4、学生资料成绩的前提下,使用该功能可以显示所有学生的信息,资料等等。具体包括学生的班级,学号,姓名和各科成绩。在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单。 (3) 添加学生资料主要功能是用来添加学生资料,成绩。如果系统有保存学生资料的情况下,想录入学生成绩的话,就不用添加学生资料这模块。如果系统没有保存该学生信息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的操作。(4)按姓名查找,删除该学生资料主要功能是用来删除学生资料。在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。(5)查找并显示学生资料主要功
5、能是用来查找学生资料。在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息。(6)储存学生资料并退出系统 主要功能是用来储存学生资料对系统的最新操作进行保存,及时更新系统。 3.2程序代码#include#include#include#include#include#include#includeusing namespace std;typedef classpublic: char num10; char cla10; char name20; char byyl10; char jsjzc20; char sjk10; ch
6、ar jsjyy20; char jsdl20;Student;Student stu80;int menu() char c; for(;c8;) system(cls); cout 欢迎使用本学生成绩管理系统!endl; coutendl; cout* 学生成绩管理系统 * endl; coutsetw(32) 1.输入学生资料endl; coutsetw(32) 2.输出学生资料endl; coutsetw(32) 3.按学生成绩进行排列endl; coutsetw(32) 4.添加学生资料endl; coutsetw(32) 5.按姓名查找,删除该学生资料endl; coutsetw(
7、32) 6.查找并显示学生资料endl; coutsetw(32) 7.按姓名查找,修改该学生资料endl; coutsetw(32) 8.从文件中读入数据endl; coutsetw(32) 0.储存学生资料并退出系统endl; coutsetfill(=)setw(48)=endl; coutsetw(15) ; cout请选择(0-8):; c=getchar(); return(c-0);int Input(Student stud,int n) /输入数据。 int i=0; char sign,x10; for(;sign != n & sign != N;) coutsetw(1
8、5) studn+i.cla; coutsetw(15) studn+i.num; coutsetw(15) studn+; coutsetw(15) studn+i.byyl; coutsetw(15) studn+i.jsjzc; coutsetw(15) studn+i.sjk; coutsetw(15) studn+i.jsjyy; coutsetw(15) studn+i.jsdl; gets(x); coutsetw(10) ; cout&sign; i+; return(n+i); void Display(Student stud, int n) /输出数据。 in
9、t i; coutsetw(15) setfill(-)setw(65)-endl; coutsetw(15) 班级 学号 姓名 数据结构 离散数学 大学物理 大学英语 模拟电路endl; coutsetw(15) ; coutsetfill(-)setw(65)-endl; for(i=1;i1 & i%10=0) coutsetw(15) setfill(-)setw(35)-endl; coutsetw(15) ; system(pause); coutsetw(15) setfill(-)setw(35)-endl; coutsetw(15) ; system(pause);void
10、Sort(Student stud,int n) /按名字排序。 int i,j; char t20; for(i=0;in-1;i+) for(j=0;j0) strcpy(t,studj+1.cla); strcpy(studj+1.cla,studj.cla); strcpy(studj.cla,t); strcpy(t,studj+1.num); strcpy(studj+1.num,studj.num); strcpy(studj.num,t); strcpy(t,studj+1.name); strcpy(studj+1.name,); strcpy(studj
11、.name,t); strcpy(t,studj+1.byyl); strcpy(studj+1.name,studj.byyl); strcpy(studj.byyl,t); strcpy(t,studj+1.jsjzc); strcpy(studj+1.name,studj.jsjzc); strcpy(studj.jsjzc,t); strcpy(t,studj+1.sjk); strcpy(studj+1.name,studj.sjk); strcpy(studj.sjk,t); strcpy(t,studj+1.jsjyy); strcpy(studj+1.name,studj.js
12、jyy); strcpy(studj.jsjyy,t); strcpy(t,studj+1.jsdl); strcpy(studj+1.name,studj.jsdl); strcpy(studj.jsdl,t); coutsetw(15) 排序成功!endl;int Insert(Student stud,int n) /插入一条学生信息。 char x10; coutsetw(15) studn.cla; coutsetw(15) studn.num; coutsetw(15) ; coutsetw(15) studn.byyl; coutsetw(15) studn.
13、jsjzc; coutsetw(15) studn.sjk; coutsetw(15) studn.jsjyy; coutsetw(15) studn.jsdl; gets(x); n+; coutsetw(15) 插入成功!s; while(strcmp(,s)!=0&in) i+; /*查找判断*/ if(i=n) printf(ttt没有发现该学生资料!n); /*返回失败信息*/ return(n); for(j=i;jn-1;j+) /*删除操作*/ strcpy(studj.num,studj+1.num); strcpy(,studj+1.
14、name); strcpy(studj.cla,studj+1.cla); strcpy(studj.byyl,studj+1.byyl); strcpy(studj.jsjzc,studj+1.jsjzc); strcpy(studj.sjk,studj+1.sjk); strcpy(studj.jsjyy,studj+1.jsjyy); strcpy(studj.jsdl,studj+1.jsdl); coutsetw(15) 当前信息已删除成功!endl; /*返回成功信息*/ return(n-1); void Query(Student stud,int n) /按名字查找信息 ch
15、ar s20; int i=0; coutsetw(15) s; while(strcmp(,s)!=0&in) i+; /*查找判断*/ if(i=n) printf(ttt没有发现该学生资料!n); /*输入失败信息*/ return; coutsetw(15) 学号:studi.numendl; coutsetw(15) 数据结构:studi.byylendl; coutsetw(15) 离散数学:studi.jsjzcendl; coutsetw(15) 大学物理:studi.sjkendl; coutsetw(15) 大学英语:studi.jsjyyendl; c
16、outsetw(15) 模拟电路:studi.jsdlendl;int Xiugai(Student stud,int n) /修改信息。 n=Delete(stud,n); coutsetw(15) 输入你要修改的学生资料endl; n=Insert(stud,n); coutsetw(15) 修改完成endl; return(n);int AddfromText(Student stud, int n) /从文件中读入数据。 int i=0,num; FILE *fp; char filename20; coutsetw(15) filename; if(fp=fopen(filename
17、,rb)=NULL) coutsetw(15) 无法打开文件endl; coutsetw(15) ; system(pause); return(n); fscanf(fp,%d,&num); for(;inum;) fscanf(fp,%s%s%s%s%s%s%s,studn+i.cla,studn+i.num,studn+,studn+i.byyl,studn+i.jsjzc,studn+i.sjk,studn+i.jsjyy,studn+i.jsdl); i+; n+=num; fclose(fp); coutsetw(15) 读入成功!endl; coutsetw(15)
18、; system(pause); return(n); void WritetoText(Student stud,int n) /将所有记录写入文件。 int i=0; FILE *fp; char filename20; coutsetw(15) 将资料输入文件endl; coutsetw(15) filename; if(fp=fopen(filename,w)=NULL) coutsetw(15) 无法打开文件endl; system(pause); return; fprintf(fp,%dn,n); for(;in;) fprintf(fp,%-6s%-5s%-5s%-5s%-5s
19、%-5s%-5sn,studi.cla,studi.num,,studi.byyl,studi.jsjzc,studi.sjk,studi.jsjyy); i+; fclose(fp); coutsetw(15) 输入成功!endl; int b; coutsetw(15) 请确定是否退出系统:endl; coutsetw(15) 0.退出系统endl; coutsetw(15) 1.返回b; if(b=0) coutsetw(15) 谢谢使用!endl; coutsetw(15) ; system(pause); exit(0); void main() /主函数调用。
20、int n=0; for(;) switch(menu() case 1: coutsetw(15) 输入学生资料endl; n=Input(stu,n); break; case 2: coutsetw(15) 输出所有学生资料endl; Display(stu,n); break; case 3: coutsetw(15) 按姓名排序endl; Sort(stu,n); coutsetw(15) ; system(pause); break; case 4: coutsetw(15) 插入学生资料endl; n=Insert(stu,n); coutsetw(15) ; system(pa
21、use); break; case 5: coutsetw(15) 删除学生资料endl; coutsetw(15) 输入他(她)的姓名:; n=Delete(stu,n); coutsetw(15) ; system(pause); break; case 6: coutsetw(15) 查找学生endl; Query(stu,n); coutsetw(15) ; system(pause); break; case 7: coutsetw(15) 修改学生资料endl; coutsetw(15) 输入你要修改的学生的姓名:; n=Xiugai(stu,n); system(pause);
22、break; case 8: coutsetw(15) 从文件中读入数据endl; n=AddfromText(stu,n); break; case 0: coutsetw(15) 将所有资料写入文件endl; WritetoText(stu,n); coutsetw(15) ; system(pause); break; 调试分析1.实际完成的情况说明。通过程序简单的实现了学生成绩的浏览、增加、删除和修改等操作,可一通过修改其中量的类型来支持多种数据类型的输入、输出。2.程序的性能分析。 程序只能实现一些简单的浏览、增加、删除和修改操作而不能深入的对每 个班级或学校全体学生成绩进行分类等的操作。3.上机过程中出现的问题及其解决方案。上机过程中遇到很多问题比如需要用到数据库时每次执行都要连接数据源, 但是一旦工作空间移动则下次再运行时就找
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南京大学《热流体学基础》2023-2024学年第一学期期末试卷
- 2025年现代服务业发展趋势考试试题及答案
- 汕头大学《数字影像工程》2023-2024学年第二学期期末试卷
- 2025年中级职称医学考试试题及答案
- 山东省临沂市平邑县2025年初三化学试题第一周周末练习含解析
- 2025年运动与健康科学专业考试试题及答案
- 2025年网络安全技术职业资格考试试题及答案
- 2025年行政职业能力测验试卷及答案
- 江西省赣州市南康中学2025年高三下学期第三次模拟考试(期中)生物试题含解析
- 外贸电气知识培训课件
- 2024年医院依法执业培训课件
- DL∕T 1009-2016 水电厂计算机监控系统运行及维护规程
- 阿里巴巴员工纪律制度
- DL-T1342-2014电气接地工程用材料及连接件
- 学校体育工作条例
- 《征兵入伍应征公民体格检查标准条文释义》
- 水准测量记录表自动计算(转点)
- 准噶尔盆地低煤级煤储层及煤层气成藏初步研究
- 社会稳定风险评估 投标方案(技术标)
- 中心静脉深静脉导管维护操作评分标准
- 乳腺癌中医护理课件
评论
0/150
提交评论