?? 學生管理系統_ 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 + -