学生成绩管理系统实验报告,C++.doc_第1页
学生成绩管理系统实验报告,C++.doc_第2页
学生成绩管理系统实验报告,C++.doc_第3页
学生成绩管理系统实验报告,C++.doc_第4页
学生成绩管理系统实验报告,C++.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

宜宾学院计算机与信息工程学院面向对象课程设计报告班 级: 计 算 机 学 院 专 业: 计 算 机 科 学 与 技 术 题 目: 学 生 成 绩 管 理 系 统 指导教师: 导师职称: 学 号: 姓 名: 组 长: 年 月 日21目 录一设计目的41 定义类42 实现程序功能4二总体设计5三详细设计5四调试与测试5五心得体会5一 设计目的主要实现对学生成绩进行系统化的管理,可以对学生基本信息进行输入、存储、修改、删除等,还可按照学号来查询、排序学生信息等。由此可以看出,此系统对于管理学生成绩是很有效的。1 定义定义学生(student)类,其中至少包括姓名、性别、学号、班级和四门功课的成绩。2 实现下面功能1、设计菜单实现功能选择; 2、输入功能:输入学生信息,并保存到文件中;3、计算每个学生的总分与平均分并排序4、能根据学号修改学生信息5、能根据学号删除学生信息6、查询功能: 1)能够根据学号查询学生信息; 2)能够根据姓名、班级查询学生信息 3)统计学生成绩,按照班级和科目计算平均分。二 总体设计学生成绩管理定义学生类(student)输入学生信息姓名性别学号班级英语数学语文应用计算总分计算平均分修改信息删除信息查询信息根据学号进行编辑根据姓名班级查询统计成绩排序按照班级、科目计算分数设计菜单栏功能三 详细设计#include#include#include#include#include#include#includeusing namespace std;typedef classpublic: char num10; char cla10; char name10; char byyl10; char jsjzc10; char sjk10; char jsjyy10; int pjf;Student;Student stu80;int menu() char c; for(;c8;) system(cls); cout 欢迎使用本学生成绩管理系统!endl; cout编程人员:李臻 学号:101102022; coutendl; cout* 学生成绩管理系统 * endl; coutsetw(32) 1.输入学生资料endl; coutsetw(32) 2.输出学生资料endl; coutsetw(32) 3.按平均分排序endl; coutsetw(32) 4.添加学生资料endl; coutsetw(32) 5.按学号查找删除该学生资料endl; coutsetw(32) 6.查找显示学生资料endl; coutsetw(32) 7.按学号修改该学生资料endl; coutsetw(32) 8.从文件中读入数据endl; coutsetw(32) 0.储存学生资料并退出系统endl; cout* endl; cout请选择(0-8):; c=getchar(); return(c-0);int zh(char str10) /将字符串转换为数值型 int i; int sum=0; for(i=0; i strlen(str);i+) sum=10*sum+stri-0; return sum; int Input(Student stud,int n) /输入数据。 int i=0; char sign,x10; for(;sign != n & sign != N;) int sum=0; coutsetw(15) studn+i.cla; coutsetw(15) studn+i.num; coutsetw(15) studn+; coutsetw(15) studn+i.byyl; sum+=zh(studn+i.byyl); coutsetw(15) studn+i.jsjzc; sum+=zh(studn+i.jsjzc); coutsetw(15) studn+i.sjk; sum+=zh(studn+i.sjk); coutsetw(15) studn+i.jsjyy; sum+=zh(studn+i.jsjyy); studn+i.pjf=sum/4;/算出平均分 gets(x); coutsetw(10) ; cout&sign; i+; return(n+i); void Display(Student stud, int n) /输出数据。 int i; coutsetw(2) setw(65) endl; coutsetw(2) 班级 学号 姓名 编译原理 计算机组成原理 数据库 计算机英语 平均分endl; coutsetw(2) ; cout setw(2)endl; for(i=1;i1 & i%10=0) coutsetw(2) setw(2)-endl; coutsetw(2) ; system(pause); coutsetw(2) setw(2)-endl; coutsetw(2) ; system(pause);void Sort(Student stud,int n) /按平均分排序。 int i,j,a; char t20; for(i=0;in-1;i+) for(j=0;jstudj+1.pjf) a=studj.pjf;studj.pjf=studj+1.pjf;studj+1.pjf=a; 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(,t); strcpy(t,studj+1.byyl); strcpy(studj+1.byyl,studj.byyl); strcpy(studj.byyl,t); strcpy(t,studj+1.jsjzc); strcpy(studj+1.jsjzc,studj.jsjzc); strcpy(studj.jsjzc,t); strcpy(t,studj+1.sjk); strcpy(studj+1.sjk,studj.sjk); strcpy(studj.sjk,t); strcpy(t,studj+1.jsjyy); strcpy(studj+1.jsjyy,studj.jsjyy); strcpy(studj.jsjyy,t); coutsetw(15) 排序成功!endl;int Insert(Student stud,int n) /插入一条学生信息。 char x10; coutsetw(2) studn.cla; coutsetw(2) studn.num; coutsetw(2) ; coutsetw(2) studn.byyl; coutsetw(2)studn.jsjzc; coutsetw(2) studn.sjk; coutsetw(2) studn.jsjyy; gets(x); n+; coutsetw(2) 插入成功!s; while(strcmp(studi.num,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.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); coutsetw(15) 当前信息已删除成功!endl; /*返回成功信息*/ return(n-1); void Query(Student stud,int n) /按名字查找信息 char 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;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(2) filename; if(fp=fopen(filename,rb)=NULL) coutsetw(2) 无法打开文件endl; coutsetw(2) ; system(pause); return(n); fscanf(fp,%d,&num); for(;inum;) fscanf(fp,%s%s%s%s%s%s%s&d,studn+i.cla,studn+i.num,studn+,studn+i.byyl,studn+i.jsjzc,studn+i.sjk,studn+i.jsjyy,studi-1.pjf); i+; n+=num; fclose(fp); coutsetw(2) 读入成功!endl; coutsetw(2) ; system(pause); return(n); void WritetoText(Student stud,int n) /将所有记录写入文件。 int i=0; FILE *fp; char filename20; coutsetw(2) 将资料输入文件endl; coutsetw(2) filename; if(fp=fopen(filename,w)=NULL) coutsetw(2) 无法打开文件endl; system(pause); return; fprintf(fp,%dn,n); for(;in;) fprintf(fp,%-6s%-5s%-5s%-5s%-5s%-5s%-5s%-5dn,studi.cla,studi.num,,studi.byyl,studi.jsjzc,studi.sjk,studi.jsjyy,studi.pjf); i+; fclose(fp); coutsetw(2) 输入成功!endl; int b; coutsetw(2) 请确定是否退出系统:endl; coutsetw(2) 0.退出系统endl; coutsetw(2) 1.返回b; if(b=0) coutsetw(2) 谢谢使用!endl; coutsetw(2) ; system(pause); exit(0); void main() /主函数调用。 int n=0; for(;) switch(menu() case 1: coutsetw(2) 输入学生资料endl; n=Input(stu,n); break; case 2: coutsetw(2) 输出所有学生资料endl; Display(stu,n); break; case 3: coutsetw(15) 按姓名排序endl; Sort(stu,n); coutsetw(2) ; system(pause); break; case 4: coutsetw(2) 插入学生资料endl; n=Insert(stu,n); coutsetw(2) ; system(pause); break; case 5: coutsetw(2) 删除学生资料endl; coutsetw(2) 输入他(她)的姓名:; n=Delete(stu,n); coutsetw(2) ; system(pause); break; case 6: coutsetw(2) 查找学生endl; Query(stu,n); coutsetw(2) ; system(pause); break; case 7: coutsetw(2) 修改学生资料endl; coutsetw(2) 输入你要修改的学生的姓名:; n=Xiugai(stu,n); system(pause); break; case 8: coutsetw(2) 从文件中读入数据endl; n=AddfromText(stu,n); break; case 0: coutsetw(2) 将所有资料写入文件endl; WritetoText(stu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论