#include
#include
#include
#include
#include
#include
using namespace std;
class Student{
private:
string name[10];//姓名
int number;//学号
int age;//年龄
char xingbie;// 性别
char banji;//班级
string birthday;//出生年月
string dizhi;//地址
string phone;//电话
string mail;//E-mail
double cpro,english,math,sport,java,allscore,average;//课程
public:
Student();
char choose();
void input();
void add();
void change();
void delete1();
void findname();
void findnumber();
void output();
void order();
void save();
};
char choose()
{ system("cls");
cout<<"**************欢迎使用学生管理系统**************"<
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
char choose;
cin>>choose;
return choose;
}
void main()
{
Student v;
// char choose=v.choose();
while(choose=v.choose())
Student s[50];//指针对象,最多存50个学生数据
ofstream *file[50]; //负责对文件插入操作
int i=0;
int j=0;
//int flag=0;//flag判断输入是否有效
//do {
//cin>>p;
//if((p>='0'&&p<='9'))
//flag=1;
//else
// cout<<" 指令错误!请重新输入:"<<endl;
//}while(flag==0);
//do{
switch(choose) //接收功能选项
{
case '0':
v.input();
break;
case '1':
v.add();
break;
case '2':
v.change();
break;
case '3':
v.delete1();
break;
case '4':
v.findname();
break;
case '5':
v.findnumber();
break;
case '6':
v.output();
break;
case '7':
v.order();
break;
case '8':
v.save();
break;
case '9':
default:cout<<"错误"<<endl;
break;
}
void Student::input()
{ char c;
string name;//姓名
string number;//学号
int age;//年龄
char xingbie[8];// 性别
char banji[4];//班级
string birthday;//出生年月
string dizhi;//地址
string phone;//电话
string mail;//E-mail
double cpro,english,math,sport,java,allscore,average;//课程
do{
cout<<endl<<" 姓名:";
cin>>name;
cout<<endl<<" 学号:";
cin>>number;
cout<<endl<<" 年龄:";
cin>>age;
cout<<endl<<" 性别 :";
cin>>xingbie;
cout<<endl<<" 班级:";
cin>>banji;
cout<<endl<<"出生年月:";
cin>>birthday;
cout<<endl<<"地址:";
cin>>dizhi;
cout<<endl<<"电话:";
cin>>phone;
cout<<endl<<"E-mail:";
cin>>mail;
cout<<endl<<" C++成绩:";
cin>>cpro;
cout<<endl<<" 英语成绩:";
cin>>english;
cout<<endl<<" 高数成绩:";
cin>>math;
cout<<endl<<" 体育成绩:";
cin>>sport;
cout<<endl<<" JAVA成绩:";
cin>>java;
cout<<endl;
allscore=cpro+english+math+sport+java;
cout<<" 总成绩:"<<allscore<<endl;
average=(cpro+english+math+sport+java)/5;
cout<<" 平均成绩:"<<average<<endl;
file[j]=new ofstream("D:\Student.txt",ios::ate);
*file[j]<<"姓名"<<name<<"学号"<<number<<"年龄"<<age<<"性别"<<xingbie<<"班级"<<banji<<"出生年月"<<birthday
<<"地址"<<dizhi<<"电话"<<phone<<"E-mail"<<mail<<" C++成绩 "<<cpro<<" 英语成绩 "<<english<<" 高数成绩 "
<<math<<" 体育成绩 "<<sport<<" JAVA成绩"<<java<<"总成绩"<<allscore<<"平均成绩"<<average<<endl;
j++;
s[i]= Student(name, number,age,xingbie,banji,birthday,dizhi,phone,mail,cpro,english,math,sport,java,allscore,average);
i++;
cout<<" 数据输入成功,想继续输入吗(y/n):";
cin>>c;
cout<<endl;
if(c!='y'&&c!='n')
{
cout<<" 指令错误!请重新输入!"<
cin>>c;
}
else
flag=1;
}while(c=='y');
break;
}
void Student::add(){
int number;
double cpro,english,math,sport,java;
char c;
do
{
cout<<" 请输入您要增加的学生的姓名:";
cin>>name;
cout<<endl<<"请输入您要增加的学生的学号:";
cin>>number;
cout<<endl<<"请输入您要增加的学生的年龄:";
cin>>age;
cout<<endl<<"请输入您要增加的学生的性别 :";
cin>>xingbie;
cout<<endl<<"请输入您要增加的学生的班级:";
cin>>banji;
cout<<endl<<"请输入您要增加的学生的出生年月:";
cin>>birthday;
cout<<endl<<"请输入您要增加的学生的地址:";
cin>>dizhi;
cout<<endl<<"请输入您要增加的学生的电话:";
cin>>phone;
cout<<endl<<"请输入您要增加的学生的E-mail:";
cin>>mail;
cout<<endl<<"请输入您要增加的学生的 C++成绩:";
cin>>cpro;
cout<<endl<<" 请输入您要增加的学生的英语成绩:";
cin>>english;
cout<<endl<<" 请输入您要增加的学生的高数成绩:";
cin>>math;
cout<<endl<<" 请输入您要增加的学生的体育成绩:";
cin>>sport;
cout<<endl<<" 请输入您要增加的学生的JAVA成绩:";
cin>>java;
cout<<endl;
{allscore=cpro+english+math+sport+java;}
cout<<" 总成绩:"<<allscore<<endl;
{average=(cpro+english+math+sport+java)/5;}
cout<<" 平均成绩:"<<average<<endl;
file[j]=new ofstream("d:\student.dat",ios::ate);
*file[j]<<" 姓名 "<<name<<" 学号 "<<number
<< " C++成绩 "<<cpro<<" 英语成绩 "<<english<<" 高数成绩 "
<<math<<" 体育成绩 "<<sport<<" JAVA成绩 "<<java
<<" 总成绩 "<<allscore<<" 平均成绩 "<<average<<endl;
j++;
s[i]= student(name, number,cpro,english,math,sport,java,allscore,average);
i++;
cout<<" 数据输入成功,想继续数入吗(y/n):";
cin>>c;
cout<<endl;
if(c!='y'&&c!='n')
{
cout<<" 指令错误!请重新输入!"<<endl<<" ";
cin>>c;
}
}while(c=='y');
break;
}
void Student::change(){
string na;
int nu;
double cc,eng,ma,sp,jav,as,av;flag=0;
char c;
if(i==0)
{
cout<<"系统中找不到这个学生";
}
do
{
cout<<" 请输入您要修改的学生的姓名:";
cin>>name;
cout<
for(int h=0;h
{
if(strcmp(name,s[h].name)==0)
{
flag=1;
cout
cin>>nu;
cout<
cin>>cc;
cout<
cin>>eng;
cout<
cin>>ma;
cout<
cin>>sp;
cout<
cin>>jav;
{as=cc+eng+ma+sp+jav;}
cout<<endl<<" 总成绩:"<<as;
{av=as/5;}
cout<<endl<<" 平均成绩:"<<av;
cout<<endl;
s[h].cpro=cc;
s[h].english=eng;
s[h].math=ma;
s[h].sport=sp;
s[h].number=nu;
cout<<" 数据修改成功!"<<endl;
}
}
if(flag==0)
{
cout<<" 您要修改的学生本来就不存在!请检查重新输入!"<
}
cout
cin>>c;
cout<
if(c!='y'&&c!='n')
{
cout
cin>>c;
}
}while(c=='y');
break;
}
void Student::delete1(){
cout<<" 请输入你要删除的姓名 :";
char m[20];
cin>>m;
for(int a=0;a<i;a++)
{
if(strcmp(s[a].name,m)==0)
{
int w;
w=a;
for(w;w<i;w++)
{
s[w]=s[w+1];
i=i-1;}
cout<<" 删除成功!"<<endl;
}
}
break;
}
void Student::findname(){
char n[20];int j=0;char c;
if(i==0)
{
cout<<" 管理系统中没有输入数据!"<
}
do{
int flag=0;
cout
cin>>n;
cout<
for(int j=0;j
{
if(strcmp(n,(s[j]).name)==0)
{
flag=1;
cout
cout
}
}
if(flag==0)
cout
cout
cin>>c;
cout<
if(c!='y'&&c!='n')
{
cout
cin>>c;
}
}
while(c=='y');
break;
}
void Student::findnumber(){
int n,j=0;
char c;
if(i==0){
cout<<" 管理系统中没有输入数据!"<<endl;break;
}
do{
int flag=0;
cout<<" 请输入你要查询的学生的学号:";
cin>>n;
cout<
for(int j=0;j
{
if(s[j].number==n)
{
flag=1;
cout
cout
}
}
if(flag==0)
cout
cout
cin>>c;
cout<
if(c!='y'&&c!='n')
{
cout
cin>>c;
}
}
while(c=='y');
break;
}
void Student::output(){
cout<<" 本系统所有学生数据如下:"<<endl;
if(i==0)
cout<<" 管理系统中没有输入数据!"<<endl;
cout<<"姓名 学号 年龄 性别 班级 出生年月 地址 电话 E-mail c++ 英语 高数 体育 JAVA 总成绩 平均成绩 "<<endl;
for(int k=0;k<i;k++)
{
cout<<s[k].name<<setw(7)
<<s[k].number<<setw(4)
<<s[k].age<<setw(5)
<<s[k].xingbie<<setw(4)
<<s[k].banji<<setw(6)
<<s[k].birthday<<setw(7)
<<s[k].dizhi<<setw(8)
<<s[k].phone<<setw(11)
<<s[k].E-mail<<setw(12)
<<(s[k]).cpro<<setw(5)
<<(s[k]).english<<setw(5)
<<(s[k]).math<<setw(4)
<<(s[k]).sport<<setw(5)
<<(s[k]).java<<setw(6)
<<s[k].allscore<<setw(10)
<<(s[k]).average<<setw(7)<<endl;
}
break;
}
void Student::order(){
student temp;
for(int t=0;t
for(int k=t+1;k
while (s[t].allscore
{
temp=s[t];
s[t]=s[k];
s[k]=temp;
}
cout
char yn;
cin>>yn;
while(yn!='y'&&yn!='n')
{
cout<<"操作错误!!!请重新输入:";
cin>>yn;
}
if(yn=='y')
{
cout<<"所有学生的成绩按总分从高到低的排名是:"<<endl;
cout<<" 本系统所有学生数据如下:"<<endl;
if(i==0)
cout<<" 管理系统中没有输入数据!"<<endl;
cout<<"姓名 学号 c++ 英语 高数 体育 JAVA 总成绩 平均成绩 "<<endl;
for(int k=0;k<i;k++)
{ Student s[50];
cout<<s[k].name<<setw(7)
<<s[k].number<<setw(4)
<<s[k].age<<setw(5)
<<s[k].xingbie<<setw(4)
<<s[k].banji<<setw(6)
<<s[k].birthday<<setw(7)
<<s[k].dizhi<<setw(8)
<<s[k].phone<<setw(11)
<<s[k].E-mail<<setw(12)
<<(s[k]).cpro<<setw(5)
<<(s[k]).english<<setw(5)
<<(s[k]).math<<setw(4)
<<(s[k]).sport<<setw(5)
<<(s[k]).java<<setw(6)
<<s[k].allscore<<setw(10)
<<(s[k]).average<<setw(7)<<endl;
}
}
break;
}
void Student::save(){
cout<<" 保存成功!"<<endl;break;
}