




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、机电工程学院 中 南 大 学 C+可视化程序设计实践题 目: 学生成绩管理系统 成员姓名: 000000000班级: 0000000 学 号: 00000000 指导教师: 00000 学 院: 机 电 工 程 学 院 完成时间: 2012 年 6 月 28 日 中 南 大 学C+可视化程序设计实践成绩评定表 姓名班次学号成绩 指导教师签名:_ 2012年_月_日 设计任务书 设计题目:学生成绩管理系统设计目的:运用c+的相关知识制作一个小型的管理系统,把理论知识转化为实践操作。提高对知识运用能力。设计安排:1、在网上、图书馆等查找相关资料,搜集、整理相关模块的程序源代码;2、完成完成一份课程
2、设计报告3、报告格式:一级标题:3号黑体,二、三级标题小四黑体,正文小四宋体,行距23,程序代码5号宋体4、此程序应包含如下功能:(1)所有记录保存在一个数据文件中;(2)具备记录添加功能;(3)查询功能(如按学号查询成绩);(4)计算统计功能(如统计某门课程的平均成绩);(5)排序功能(如按成绩排序);(6)修改功能; 目录1、总体设计方案2、运行实例及使用说明3、项目源程序代码4、课程设计心得1、 总体设计方案 创建一个类用于存放学生的信息,对各个功能模块进行函数设计,在写出各个功能函数后,在主函数中运用switch语句实现对各个功能函数的调用实现特定的功能。 流程图:Read Save
3、DeleteMain主函数Menu(选择判断) Input DisplaySortSearch Insert Modify2、运行实例及使用说明运行实例 1、主界面2、 录入记录3、显示所有数据4、按平均分降序排4、插入一组数据5、查找并显示一组数据6、修改一组数据7、删除一组数据8、将所有记录写入文件使用说明 用户运行程序后进入系统主界面,在主界面用户可以输入新的数据文件。用户输入数据要符合操作系统的要求,当用户录入新的数据后,可对已有数据进行显示、插入、修改、删除等操作。3、源程序代码#include<iostream.h> /*引用库函数*/ #include<stdl
4、ib.h> #include<ctype.h> #include<stdio.h> #include<string.h> typedef struct char class_020; /*班级*/ int number; /*学号*/ char name20; /*姓名*/ float c_program; /*C+语言成绩*/ float english; /*大学英语成绩*/ float math; /*高等数学成绩*/ float sport; /*体育成绩*/ float summary; /*总分*/ float average; /*平均分
5、*/ Student; Student stu100; /*结构体数组变量*/ int menu() /*菜单函数*/ char c; do system("cls"); /*运行前清屏*/ cout<<"*学生成绩管理系统*"<<endl;/*菜单选择*/ cout<<"【1】输入数据"<<endl; cout<<"【2】显示所有数据"<<endl; cout<<"【3】按平均分降序排列"<<end
6、l; cout<<"【4】查找并显示一组数据"<<endl; cout<<"【5】插入一组数据"<<endl; cout<<"【6】修改一组数据"<<endl; cout<<"【7】删除一组数据"<<endl; cout<<"【8】从文件中读入数据"<<endl; cout<<"【9】将所有记录写入文件"<<endl; cout<
7、;<"【0】退出本系统n"<<endl; cout<<"请你选择操作(0-9):"<<endl; c=getchar(); /*读入选择*/ while(c<'0'|c>'9'); return(c-'0'); /*返回选择*/ int Input(Student stud,int n) /*输入若干条记录*/ int i=0; char sign,x10; /*x10为清除多余的数据所用*/ while(sign!='n'&&a
8、mp;sign!='N') /*判断*/ cout<<"请输入学生的班别:" /*交互输入*/ cin>>studn+i.class_0; cout<<"请输入学生的学号:" cin>>studn+i.number; cout<<"请输入学生的姓名:" cin>>studn+; cout<<"请输入该学生C+程序设计的成绩:" cin>>studn+i.c_program; cout<&
9、lt;"请输入该学生大学英语的成绩:" cin>>studn+i.english; cout<<"请输入该学生高等数学的成绩:" cin>>studn+i.math; cout<<"请输入该学生大学体育的成绩:" cin>>studn+i.sport; studn+i.summary=studn+i.c_program+studn+i.english+studn+i.math+studn+i.sport;studn+i.average=studn+i.summary/4; c
10、out<<"该学生的总分为:"<<studn+i.summary<<"平均分为:"<<studn+i.average<<endl; gets(x); /*清除多余的输入*/ cout<<"=>提示:继续写入成绩?(Y/N)" cin>>sign; /*输入判断*/ i+; return(n+i); void Display(Student stud,int n) /*显示所有记录*/ int i; if(!stud)cout<<&qu
11、ot;没有记录" else cout<<"-"<<endl; /*格式头*/ cout<<"班别 学号 姓名 C+ 英语 数学 体育 总分 平均分"<<endl; cout<<"-"<<endl; for(i=1;i<n+1;i+) /*循环输入*/ studi-1.summary=studi-1.c_program+studi-1.english+studi-1.math+studi-1.sport; studi-1.average=studi-
12、1.summary/4; cout<<studi-1.class_0<<" "<<studi-1.number<<" "<<<<" "<<studi-1.c_program<<" "<<studi-1.english<<" "<<studi-1.math<<" "<<studi-1.sport<
13、;<" "<<studi-1.summary<<" "<<studi-1.average<<endl; cout<<"ttt"<<endl; system("pause"); void Sort(Student stud,int n) /*按平均分排序*/ int i,j,k; float s; char t20; for(i=0;i<n-1;i+) /*冒泡法排序*/ for(j=0;j<n-1-i;j+) if(studj
14、.average<studj+1.average) strcpy(t,studj+1.class_0); strcpy(studj+1.class_0,studj.class_0); strcpy(studj.class_0,t); k=studj+1.number; studj+1.number=studj.number; studj.number=k; strcpy(t,studj+1.name); strcpy(studj+1.name,); strcpy(,t); s=studj+1.c_program; studj+1.c_program
15、=studj.c_program; studj.c_program=s;s=studj+1.english; studj+1.english=studj.english; studj.english=s; s=studj+1.math; studj+1.math=studj.math; studj.math=s; s=studj+1.sport; studj+1.sport=studj.sport; studj.sport=s; s=studj+1.summary; studj+1.summary=studj.summary; studj.summary=s; s=studj+1.averag
16、e; studj+1.average=studj.average; studj.average=s; cout<<"-"<<endl; /*格式头*/ cout<<"班别 学号 姓名 电子 C+ 多媒体 英语 数学 体育 政治 总分 平均分"<<endl; cout<<"-"<<endl; for(i=1;i<n+1;i+) /*循环输入*/ studi-1.summary=studi-1.c_program+studi-1.english+studi-1.
17、math+studi-1.sport; studi-1.average=studi-1.summary/4; cout<<studi-1.class_0<<" "<<studi-1.number<<" "<<<<" "<<studi-1.c_program<<" "<<studi-1.english<<" "<<studi-1.math<
18、;<" "<<studi-1.sport<<" "<<studi-1.summary<<" "<<studi-1.average<<endl; int Insert(Student stud,int n) /*插入一条记录*/ char x10; /*清除多余输入所用*/ cout<<"请输入学生的班别:"<<endl; /*交互输入*/ cin>>studn.class_0; cout<<
19、"请输入学生的学号:" cin>>studn.number; cout<<"请输入学生的姓名:" cin>>; cout<<"请输入该学生C+程序设计的成绩:" cin>>studn.c_program; cout<<"请输入该学生大学英语的成绩:" cin>>studn.english; cout<<"请输入该学生高等数学的成绩:" cin>>studn.math;
20、cout<<"请输入该学生大学体育的成绩:" cin>>studn.sport; studn.summary=studn.c_program+studn.english+studn.math+studn.sport; studn.average=studn.summary/4; gets(x); n+; Sort(stu,n); /*调用排序函数*/ cout<<"=>提示:插入成功!"<<endl; /*返回成功信息*/ return(n); int Delete(Student stud,int
21、n) /*按学号查找,删除一条记录*/ int s; int i=0,j; cout<<"输入需要删除学生的学号:"<<endl; /*交互式问寻*/ cin>>s; while(studi.number-s)!=0&&i<n) i+; /*查找判断*/ if(i=n) cout<<"=>提示:对不起,无法找到该学号"<<endl; /*返回失败信息*/ return(n); for(j=i;j<n-1;j+) /*删除操作*/ strcpy(studj.cla
22、ss_0,studj+1.class_0); studj.number=studj+1.number; strcpy(,studj+1.name); studj.c_program=studj+1.c_program; studj.english=studj+1.english; studj.math=studj+1.math; studj.sport=studj+1.sport; cout<<"=>提示:已成功删除!"<<endl; /*返回成功信息*/ return(n-1); void Search(Student s
23、tud,int n) /*查找并显示一个记录*/ int s; int i=0; cout<<"输入需要查找学生的学号:"<<endl; cin>>s; while(studi.number-s)!=0&&i<n) i+; /*查找判断*/ if(i=n) cout<<"=>提示:对不起,无法找到该学生的信息!"<<endl; /*输入失败信息*/ return; cout<<"-"<<endl; cout<<&
24、quot;班别:"<<studi.class_0<<endl; /*输出该学生信息*/ cout<<"学号:"<<studi.number<<endl; cout<<"姓名:"<<<<endl; cout<<"C+程序设计:"<<studi.c_program<<endl; cout<<"大学英语:"<<studi.english&
25、lt;<endl; cout<<"高等数学:"<<studi.math<<endl; cout<<"大学体育:"<<studi.sport<<endl; cout<<"总分:"<<studi.summary<<endl; cout<<"平均分:"<<studi.average<<endl; void Modify(Student stud,int n) int s;
26、int i=0; cout<<"输入需要修改成绩学生的学号:"<<endl; cin>>s; while(studi.number-s)!=0&&i<n) i+; /*查找判断*/ if(i=n) cout<<"=>提示:对不起,无该学生的成绩"<<endl; /*输入失败信息*/ return; cout<<"-该学生的信息-"<<endl; /*格式头*/ cout<<"班别 学号 姓名 电子 C+
27、 多媒体 英语 数学 体育 政治 总分 平均分"<<endl; cout<<"-"<<endl; studi.summary=studi.c_program+studi.english+studi.math+studi.sport; studi.average=studi.summary/4; cout<<studi-1.class_0<<" "<<studi-1.number<<" "<<<<
28、" "<<studi-1.c_program<<" "<<studi-1.english<<" "<< studi-1.math<<" "<<studi-1.sport<<" "<<studi-1.summary<<" "<<studi-1.average<<endl; cout<<"请输入学生的班别:"
29、;<<endl; /*交互输入*/ cin>>studn+i.class_0; cout<<"请输入学生的学号:"<<endl; cin>>studn+i.number; cout<<"请输入学生的姓名:"<<endl; cin>>studn+; cout<<"请输入该学生C+程序设计的成绩:"<<endl; cin>>studn+i.c_program; cout<<"
30、请输入该学生大学英语的成绩:"<<endl; cin>>studn+i.english; cout<<"请输入该学生高等数学的成绩:"<<endl; cin>>studn+i.math; cout<<"请输入该学生大学体育的成绩:"<<endl; cin>>studn+i.sport; studi.summary=studi.c_program+studi.english+studi.math+studi.sport; studi.average=s
31、tudi.summary/4; cout<<"该学生的总分为:"<<studi.summary<<"平均分为:"<<studi.average; int Read(Student stud,int n) /*从文件中读入数据*/ int i=0,num; FILE *fp; /*定义文件指针*/ char filename20; /*定义文件名*/ cout<<"输入文件名:"<<endl; cin>>filename; /*输入文件名*/ if(fp
32、=fopen(filename,"rb")=NULL) /*打开文件*/ cout<<"=>提示:无法打开这个文件!"<<endl; /*打开失败信息*/ cout<<"ttt" system("pause"); return(n); fscanf(fp,"%d",&num); /*读入总记录量*/ while(i<num) /*循环读入数据*/ fscanf(fp,"%s%d%s%f%f%f%f%f%f%f%f%f",
33、studn+i.class_0,&studn+i.number,studn+,&studn+i.c_program,&studn+i.english,&studn+i.math,&studn+i.sport,&studn+i.summary,&studn+i.average); i+; n+=num; fclose(fp); /*关闭文件*/ cout<<"=>提示:读入数据成功,可选择【显示所有成绩】查看"<<endl; cout<<"ttt"
34、 system("pause"); return(n); void Save(Student stud,int n) /*将所有记录写入文件*/ int i=0; FILE *fp; /*定义文件指针*/ char filename20; /*定义文件名*/ cout<<"输入文件名:" /*输入文件名*/ cin>>filename; if(fp=fopen(filename,"w")=NULL) /*打开文件*/ cout<<"=>提示:无法打开这个文件!"<&l
35、t;endl; system("pause"); return; fprintf(fp,"%dn",n); /*循环写入数据*/ while(i<n) fprintf(fp,"%-8s%-8d%-6s%-6.1f%-7.1f%-7.1f%-6.1f%-6.1f%-6.1f%-7.1f%-8.1f%-6.2n",studi.class_0,studi.number,,studi.c_program,studi.english, studi.math,studi.sport,studi.summary,studi
36、.average); i+; fclose(fp); /*关闭文件*/ cout<<"=>提示:已成功写入数据!"<<endl; /*返回成功信息*/ void main() /*主函数*/ int n=0; for(;) switch(menu() /*选择判断*/ case 1: cout<<endl<<"=>> 输入成绩 <<="<<endl; /*输入若干条记录*/ n=Input(stu,n); break; case 2: cout<<end
37、l<<"=>> 显示所有记录 <<="<<endl; /*显示所有记录*/ Display(stu,n); break; case 3: cout<<endl<<"=>> 按平均分降序排列 <<="<<endl; Sort(stu,n); /*按学号排序*/ cout<<"排序成功!"<<endl; cout<<"ttt" system("pause"); break; case 4: cout<<endl<<"=>> 查找并显示一组成绩 <<="<<endl; Search(stu,n); /*插入一条记录*/ cout<<"ttt" system("pause");
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 白酒专卖店联营合同
- 加盟冰粉店合同范例
- 肉制品行业发展趋势与未来市场展望分析
- 教师专业提升的研修策略与实践路径
- 低空经济引领区域一体化新动能
- 人防设备采购合同范例
- 代发货合作合同范例
- 深入理解商务合同的试题答案
- 保洁人员承揽合同样本
- 会所vip客户合同范例
- 名著复习之革命烈士诗抄
- 人工智能与机器视觉技术应用
- 思想道德与法治2021版第六章第二节
- 地球物理勘探-第三章磁法勘探1
- Django 3 Web应用开发实战(上篇)
- DB32/T 4454-2023智慧化工园区建设规范
- 10kV保护定值计算明细表
- 酒店值班检查表新
- 新媒体文案写作完整全套教学课件
- 六安市人民医院招聘考试真题2022
- 闽教版五年级下册信息技术教案带反思
评论
0/150
提交评论