📄 学生管理系统_ b07020126.cpp
字号:
#include<iostream.h>
#include<fstream.h>
#include<string.h>
class stu
{
/* 学生信息情况 */
char num[10]; /* 学号 */
char name[10]; /* 姓名 */
char sex[3]; /* 性别 */
int year,month,day; /* 出生日期 */
double math,chinese,c_language,average,sum; /* 三门课成绩,平均分,总分 */
public:
stu()
{
}
stu(char nu[10],char na[10],char se[3],int y,int m,int d,double ma,double chin,double c_lan)
{
strcpy(num,nu);
strcpy(name,na);
strcpy(sex,se);
year=y;
month=m;
day=d;
math=ma;
chinese=chin;
c_language=c_lan;
}
double getsum() /* 求总分 */
{
sum=chinese+c_language+math;
return sum;
}
double getaver() /* 求平均分 */
{
average=getsum()/3;
return average;
}
friend void main();
};
void main()
{
cout<<"****************************************************************************"<<endl;
cout<<endl;
cout<<"-----------------------欢 迎 进 入 学 生 管 理 系 统-------------------------"<<endl;
cout<<endl;
cout<<"****************************************************************************"<<endl;
cout<<endl;
cout<<"操作:"<<endl;
cout<<"<a>数据录入"<<endl;
cout<<"<b>增加人员"<<endl;
cout<<"<c>删除人员"<<endl;
cout<<"<d>修改数据"<<endl;
cout<<"查询:"<<endl;
cout<<"<e>按总成绩查询"<<endl;
cout<<"<f>按姓名查询"<<endl;
cout<<"<x>按学号查询"<<endl;
cout<<"<p>各门课平均分数"<<endl;
cout<<"排序&排名:"<<endl;
cout<<"<w>按姓名递增冒泡排序:"<<endl;
cout<<"<h>按总分查询排名"<<endl;
cout<<"<i>按语文查询排名"<<endl;
cout<<"<j>按数学查询排名"<<endl;
cout<<"<y>按C语言查询排名"<<endl;
cout<<"人数查询:"<<endl;
cout<<"<k>女生人数"<<endl;
cout<<"<n>男生人数"<<endl;
cout<<"<m>总人数"<<endl;
cout<<"学生信息表:"<<endl;
cout<<"<g>输出所有学生的数据"<<endl;
cout<<"选择相关操作请输入相对的括号里的字母!"<<endl;
char p;
char w;
stu *st[50];
ofstream *file[50];
int i=0;
int j=0;
bool flag2=0;
do
{
cin>>p;
if((p>='a'&&p<='x'))
flag2=1;
else
cout<<"指令错误!请重新输入:"<<endl;
}while(flag2==0);
do
{
switch(p)
{
case 'a': //数据的录入并且把所录数据存到(d:\\学生管理系统.txt)
{
char c;
char num[10];
char name[10];
char sex[3];
int year;
int month;
int day;
double math;
double chinese;
double c_language;
do
{
cout<<"请输入学号"<<endl;
cin>>num;
cout<<"请输入姓名"<<endl;
cin>>name;
cout<<"请输入性别:"<<endl;
cin>>sex;
cout<<"请输入出生年:"<<endl;
cin>>year;
cout<<"请输入出生月:"<<endl;
cin>>month;
cout<<"请输入出生日:"<<endl;
cin>>day;
cout<<"请输入数学成绩:"<<endl;
cin>>math;
cout<<"请输入语文成绩:"<<endl;
cin>>chinese;
cout<<"请输入C语言成绩:"<<endl;
cin>>c_language;
file[j]=new ofstream("d:\\学生管理系统.txt",ios::ate);
*file[j]<<"学号:"<<num<<" "<<"姓名:"<<name<<" "<<"性别:"<<sex<<" "<<"出生时间:"<<year<<"年"<<month<<"月"<<day<<"日"<<" "<<"数学成绩:"<<math<<" "<<"语文成绩:"<<chinese<<" "<<"C语言成绩:"<<c_language<<endl;
j++;
st[i]=new stu(num,name,sex,year,month,day, math, chinese,c_language);
i++;
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
cin>>c;
flag2=0;
do
{
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
else
flag2=1;
}while(flag2==0);
}while(c=='y');
break;
}
case 'm': //求学生总人数
{
cout<<"学生总人数为:"<<i<<endl;
break;
}
case 'k': //求女生的人数
{
int j=0;
char n[3]="女";
for(int k=0;k<i;k++)
{
if(strcmp(n,(*st[k]).sex)==0)
j++;
}
cout<<"女生人数为:"<<j<<endl;
break;
}
case 'n': //求男生的人数
{
int j=0;
char n[3]="男";
for(int k=0;k<i;k++)
{
if(strcmp(n,(*st[k]).sex)==0)
j++;
}
cout<<"男生人数为:"<<j<<endl;
break;
}
case 'e': // 按总成绩查询学生
{
double t;
char c;
do
{
int flag1=0;
cout<<"请输入你要查询学生的总成绩"<<endl;
cin>>t;
for(int q=0;q<i;q++)
{
if(st[q]->getsum()==t)
{
flag1=1;
cout<<"您要查询的学生是:"<<(*st[q]).name<<endl;
}
}
if(flag1==0)
cout<<"对不起!您要查询的学生不存在!"<<endl;
cout<<"您想继续查询吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 'x': // 按学号查询学生信息
{
char nu[10];
int j=0;
char c;
do
{
int flag19=0;
cout<<"请输入你要查询的学生学号"<<endl;
cin>>nu;
for( int j=0;j<i;j++)
{
if(strcmp(nu,(*st[j]).num)==0)
{
flag19=1;
cout<<"您要查询的学号是:"<<(*st[j]).num<<endl;
cout<<"学号:"<<(*st[j]).num<<" "<<"姓名:"<<(*st[j]).name<<" "<<"性别:"<<(*st[j]).sex<<" "<<"出生时间:"<<(*st[j]).year<<"年"<<(*st[j]).month<<"月"<<(*st[j]).day<<"日"<<" "<<endl;
cout<<"总成绩成绩是:"<<(*st[j]).getsum()<<endl<<"平均成绩是:"<<(*st[j]).getaver()<<endl;
}
}
if(flag19==0)
cout<<"对不起!您要查询的学生不存在!"<<endl;
cout<<"您想继续查询吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 'p': // 求各门课的平均分数
{
double m=0;
double n=0;
double k=0;
for(int j=0;j<i;j++)
{
m+=(*st[j]).math;
n+=(*st[j]).chinese;
k+=(*st[j]).c_language;
}
cout<<"数学平均分为:"<<(m/i )<<endl;
cout<<"语文平均分为: "<<(n/i)<<endl;
cout<<"C语言平均分为: "<<(k/i)<<endl;
break;
}
case 'f': // 按姓名查询学生信息
{
char na[10];
int j=0;
char c;
do
{
int flag=0;
cout<<"请输入你要查询的学生姓名"<<endl;
cin>>na;
for(int j=0;j<i;j++)
{
if(strcmp(na,(*st[j]).name)==0)
{
flag=1;
cout<<"您要查询的学生是:"<<(*st[j]).name<<endl;
cout<<"学号:"<<(*st[j]).num<<" "<<"姓名:"<<(*st[j]).name<<" "<<"性别:"<<(*st[j]).sex<<" "<<"出生时间:"<<(*st[j]).year<<"年"<<(*st[j]).month<<"月"<<(*st[j]).day<<"日"<<" "<<endl;
cout<<"总成绩成绩是:"<<(*st[j]).getsum()<<endl<<"平均成绩是:"<<(*st[j]).getaver()<<endl;
}
}
if(flag==0)
cout<<"对不起!您要查询的学生不存在!"<<endl;
cout<<"您想继续查询吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 'b': //增加学生
{
char num[10];
char name[10];
char sex[3];
int year;
int month;
int day;
double math;
double chinese;
double c_language;
char c;
do
{
cout<<"请输入您要增加的学生的学号:"<<endl;
cin>>num;
cout<<"请输入您要增加的学生的姓名:"<<endl;
cin>>name;
cout<<"请输入您要增加的学生的性别:"<<endl;
cin>>sex;
cout<<"请输入您要增加的学生的出生年:"<<endl;
cin>>year;
cout<<"请输入您要增加的学生的出生月:"<<endl;
cin>>month;
cout<<"请输入您要增加的学生的出生日:"<<endl;
cin>>day;
cout<<"请输入数学成绩:"<<endl;
cin>>math;
cout<<"请输入语文成绩:"<<endl;
cin>>chinese;
cout<<"请输入C语言成绩:"<<endl;
cin>>c_language;
file[j]=new ofstream("d:\\学生管理系统.txt",ios::ate);
*file[j]<<"学号:"<<num<<" "<<"姓名:"<<name<<" "<<"性别:"<<sex<<" "<<"出生时间:"<<year<<"年"<<month<<"月"<<day<<"日"<<" "<<"数学成绩:"<<math<<" "<<"语文成绩:"<<chinese<<" "<<"C语言成绩:"<<c_language<<endl;
j++;
st[i]=new stu(num,name,sex,year,month,day,math,chinese,c_language);
i++;
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -