C高校学籍管理系统.doc
课题2:高校学籍管理系统 一、课程设计题目:高校学籍管理系统二、目的与要求: 1、目的: 1要求学生到达熟练掌握C+语言的根本知识和技能; 2根本掌握面向对象程序设计的根本思路和方法; 3能够利用所学的根本知识和技能,解决简单的面向对象程序设计问题。 2、根本要求: 1要求利用面向对象的方法以及C+的编程思想来完成系统的设计;2要求在设计的过程中,建立清晰的类层次; 3在系统的设计中,至少要用到面向对象的一种机制。3、创新要求: 在根本要求到达后,可进展创新设计,如根据查找结果进展修改的功能。 4、写出设计说明书 三、设计方法和根本原理: 1、问题描述功能要求: 1能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。2能够将指定的信息从文件中删除。3能够按编号、姓名对学生的信息进展检索并将检索结果显示在屏幕上。4可以统计全部学生的总成绩,及其在班上的排名。5能够统计各科的平均成绩及及格率。6要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。7如果检索不到相应的信息应提示用户。8扩展要求:能先行设置本学期的科目 每个学生信息应该包括:姓名、学号、成绩成绩信息应该包括:科目数量、各科目名称、各科目成绩2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: 1写出需求分析做什么;2分析系统中的各个实体之间的关系及其属性和行为; 3根据问题描述,设计系统的类层次; 4完成类层次中各个类的描述包括属性和方法; 5完成类中各个成员函数的定义; 6用户界面的设计; 7分析系统功能模块系统流程图;8代码编写,功能调试;9完成系统总结报告以及系统使用说明书。#include<iostream>#include <fstream>using namespace std;int di=0;int num=0;class xinxipublic:int number;char name20;char sex6;char p10010;float fenshu10;float shuliang;float average;float sum;float aver;float jigelv;int i;virtual void Show()/显示cout<<"学生学号:"<<number<<"n"<<"学生姓名:"<<name<<"n"<<"学生性别:"<<sex<<"n"<<"学生科目数量 :"<<shuliang<<endl;for(int i=0;i<shuliang;i+)cout<<pi<<"的成绩为:"<<fenshui<<endl;cout<<"总成绩为:"<<sum<<endl;cout<<"平均成绩为:"<<average<<endl;void Book(int n)cout<<"学生学号:" cin>>number;cout<<"学生姓名:" cin>>name;cout<<"学生性别:" cin>>sex;while(1)if(strcmp(sex,"男")=0|strcmp(sex,"女")=0)break;elsecout<<"输入有误,请重新输入:"<<endl;cin>>sex;/*cout<<"请输入本学期科目数量:" /通过数量确定课程cin>>shuliang; for(i=0;i<shuliang;i+)cout<<"请输入科目"<<i+1<<"的名称"<<endl;cin>>pi;cout<<"请输入科目"<<i+1<<"的成绩"<<endl;cin>>fenshui;*/while(1) /通过课程确定数量char a;int b;for(i=0,b=0;i+)cout<<"请输入科目"<<i+1<<"的名称"<<endl;cin>>pi;cout<<"请输入科目"<<i+1<<"的成绩"<<endl;cin>>fenshui;b+;cout<<"是否继续输入(Y/N)"<<endl;cin>>a;if(a='Y'|a='y')continue;elseshuliang=b;break;break;/*virtual void Save(fstream &f)/保存到文件f中f<<number<<" "<<name<<" "<<sex<<" "<<fenshu<<" "<<shuliang<<" "<<average<<" "<<sum<<endl;virtual void Load(fstream &f)/从文件f中导出数据f>>number>>name>>sex>>fenshu>>shuliang>>average>>sum;*/;xinxi d100;xinxi v100;/输入学生信息void BookIn()while(1)cout<<"*"<<endl;cout<<"*"<<endl;cout<<"请输入学生信息:"<<endl;ddi.Book(num+);di+;for(int j=0;j<di;j+) /计算总成绩和平均成绩float s=0;for(int i=0;i<dj.shuliang;i+)s=s+dj.fenshui;dj.sum=s; dj.average=dj.sum/dj.shuliang;cout<<"是否继续输入:Y继续、其他退出"<<endl;char x;cin>>x;if(x!='y' && x!='Y')break;/删除学生信息void BookOut()int i;while(1)int c;cout<<"*"<<endl;cout<<"*"<<endl;cout<<"请输入您要删除的学生学号:"<<endl;cin>>c;for(i=0;i<di;i+)if(c=di.number)di=d-di;cout<<"删除成功!"<<endl;elsecout<<"输入错误!"<<endl;system("PAUSE");cout<<"是否继续删除:Y继续、其他退出"<<endl;char x;cin>>x;if(x!='y' && x!='Y')break;/学生信息查询void Inquiry()while(1)cout<<"*"<<endl;cout<<"*"<<endl;cout<<"1、按学号查询"<<endl;cout<<"2、按姓名查询"<<endl;cout<<"请输入您的选择: "<<endl;int c;int test;cin>>c;if(c=1)cout<<"请选择要查询学号:"int a;cin>>a;for(int i=0;i<di;i+)if(a=di.number)test=1;break;elsetest=0;if(test=0)cout<<"没有这个学生!"<<endl;system("PAUSE");else if(test=1)di.Show();else if(c=2)char c10;cout<<"请选择要查询的姓名:"cin>>c;for(int i=0;i<di;i+)if(strcmp(c,di.name)=0)test=1;break;elsetest=0;if(test=0)cout<<"没有这个学生!"<<endl;system("PAUSE");else if(test=1)di.Show();else cout<<"输入错误!"<<endl;system("PAUSE");cout<<"是否继续查询:Y继续、其他退出"<<endl;char x;cin>>x;if(x!='y' && x!='Y')break;/显示学籍信息void Display()for(int i=0;i<di;i+)di.Show();cout<<"n"<<endl;void Paixu()int i,k;int tempsum;char tempname10;for(i=0;i<di;i+)strcpy(vi.name,di.name);vi.sum=di.sum;for(i=0;i<di-1;i+) for(k=i+1;k<di;k+)if(vi.sum<vk.sum) strcpy(tempname,vi.name);strcpy(vi.name,vk.name);strcpy(vk.name,tempname);tempsum=vi.sum;vi.sum=vk.sum;vk.sum=tempsum;for(i=0;i<di;i+)cout<<"第"<<i+1<<"名:"<<vi.name<<" "<<"总成绩:"<<vi.sum<<"分"<<endl;system("PAUSE");void Danke()for(int j=0;j<dj.shuliang;j+)float sum=0;for(int i=0;i<di;i+)sum=sum+di.fenshuj;vj.aver=sum/di;cout<<dj.pj<<"的平均分为:"<<vj.aver<<endl;system("PAUSE");for(int m=0;m<dm.shuliang;m+)float k=0;for(int i=0;i<di;i+)if(di.fenshum>=60)k+;vm.jigelv=k/di;cout<<dm.pm<<"的及格率为:"<<vm.jigelv<<endl;system("PAUSE");/*void () /信息读取函数int i;fstream file;("mydata.dat", ios:in);/翻开保存数据的文件if(!file)return;/文件不存在那么直接返回file>>di;/读入for(i=0;i<di;i+)di.Load(file);();/文件关闭void ()/信息保存函数int i;fstream file;("mydata.dat", ios:out);/翻开保存数据的文件file<<di<<endl;/记录for(i=0;i<di;i+)/保存di.Save(file);();/文件关闭cout<<"保存成功!"<<endl;*/主函数void main()while(1)cout<<"*高校学籍管理系统*"<<endl;cout<<"tt 1、输入学生信息"<<endl;cout<<"tt 2、删除学生信息"<<endl;cout<<"tt 3、学生信息查询"<<endl;cout<<"tt 4、学生信息保存"<<endl;cout<<"tt 5、查看学籍系统"<<endl;cout<<"tt 6、学生成绩排名"<<endl;cout<<"tt 7、单科平均成绩及及格率"<<endl;cout<<"tt 8、退出管理系统"<<endl;cout<<"请选择功能: "<<endl;int c;cin>>c;if(c=1)BookIn();else if(c=2)BookOut();else if(c=3)Inquiry(); else if(c=4)/();else if(c=5)Display();else if(c=6)Paixu();else if(c=7)Danke();else if(c=8)break;elsecout<<"输入错误!"<<endl;system("PAUSE");