原本我是忘了這茬的,不打算寫個博客,(PS:代碼又臭又長)不過突然想到發個博客騙點訪問量。。。。美滋滋。
啥是啥的自己看代碼吧,代碼超級長但是基本上所有可能會出現的情況都考慮到了,應該算是比較完美的了(除了密碼那個地方有些問題),如果出現bug請大佬一定一定要告訴菜雞
PS:這個代碼適合基礎稍微差點的同學使用,還請大佬繞過,如果有問題或bug,請下方留言。。。。。,
代碼:
#include<ctime>
#include<cstdio>
#include<string>
#include<conio.h>
#include<cstring>
#include<cstdlib>
#include<fstream>
#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
const string realmima="123456";//登陸初始密碼
const int Number=30000;//可以存儲3萬個人的數據
void Teacher_caidan();
void jiaozheng_caidan();
void Shiyanyuan_caidan();
void Xingzhengyuan_caidan();
void zhucaidan()
{
system("color 09");
system("cls");
cout<<"\n ****歡迎使用高校人員信息管理系統****"<<endl;
cout<<" "<<endl;
cout<<" ================================="<<endl;
cout<<" | |"<<endl;
cout<<" | 1.教師管理 |"<<endl;
cout<<" | |"<<endl;
cout<<" | 2.實驗員管理 |"<<endl;
cout<<" | |"<<endl;
cout<<" | 3.行政員管理 |"<<endl;
cout<<" | |"<<endl;
cout<<" | 4.教政員管理 |"<<endl;
cout<<" | |"<<endl;
cout<<" | 0.退出系統 |"<<endl;
cout<<" | |"<<endl;
cout<<" ================================="<<endl;
cout<<"請選擇 : ";
int test=1;
while(1)
{
cin>>test;
switch(test)
{
case 1:
Teacher_caidan();
break;
case 2:
Shiyanyuan_caidan();
break;
case 3:
Xingzhengyuan_caidan();
break;
case 4:
jiaozheng_caidan();
break;
case 0:
system("cls");
cout<<"\n\n ^-^感謝使用^-^"<<endl;
exit(0);
default:
cout<<"\n輸入錯誤!請重新輸入 : ";
break;
}
}
return ;
}
void zhuxiao()//關機
{
system("shutdown -s -t 0");
}
void login()//登陸界面
{
int i,j;
char mima[100];
cout<<"\n請輸入管理員登陸密碼 : ";
for(j=1; j<=4;)
{
if(j==4)break;
else if(j<4)
{
i=0;
while((mima[i]=getch())!='\r')
{
if(mima[i]=='\b')
{
cout<<"\b \b";
i--;
}
else
{
cout<<"*";
i++;
}
}
mima[i]='\0';
if(mima==realmima)
{
system("cls");
cout<<"\n密碼正確\n\n登陸成功!^-^\n"<<endl;
system("pause");
cout<<"\n\n"<<endl;
zhucaidan();
return;
}
else if(j==3)
{
system("color 4f");
cout<<"\n您的密碼已錯誤3次!!\n\n即將關機!!!"<<endl;
zhuxiao();
}
else
{
system("cls");
cout<<"密碼錯誤!\n\n剩餘輸入次數 : "<<4-j<<"\n\n請重新輸入 : "<<endl;
j++;
}
}
}
getchar();
}
void showtime()
{
cout<<" 當前時間爲:"<<endl;
time_t t = time(0);
char tmp[64];
strftime( tmp, sizeof(tmp), "%Y/%m/%d %X 星期%w",localtime(&t) );
cout<<" ";
for(int i=0; i<24; i++)
cout<<tmp[i];
int k=tmp[24]-'0';
if(k==1) cout<<"一"<<endl;
else if(k==2)cout<<"二"<<endl;
else if(k==3)cout<<"三"<<endl;
else if(k==4)cout<<"四"<<endl;
else if(k==5)cout<<"五"<<endl;
else if(k==6)cout<<"六"<<endl;
else cout<<"日"<<endl;
}
void shouye()
{
cout<<endl;
cout<<"^-^********************************************************************^-^"<<endl;
cout<<"$------------------------歡迎來到高校職工管理系統------------------------$"<<endl;
cout<<"$ $"<<endl;
cout<<"$---------------------------------------------製作人:--------------------$"<<endl;
cout<<"$----------------------------------------------------某某某--------------$"<<endl;
cout<<"$----------------------------------------------------xxxxx--------------$"<<endl;
cout<<"$ $"<<endl;
cout<<"^-^********************************************************************^-^"<<endl;
showtime();
getchar();
system("cls");
}
void caidan()
{
cout<<"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
cout<<"| |"<<endl;
cout<<"| 1.添加 2.查找 3.刪除 4.修改 5.顯示 6.統計 7.退出 0.主菜單|"<<endl;
cout<<"| |"<<endl;
cout<<"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"<<endl;
}
class Person
{
public:
string sex,name,number,age;
string choosesex()
{
int ch,flag=0;
string sexs;
cout<<"\n 1.男 2.女\n\n請選擇成員性別 : ";
while(1)
{
cin>>ch;
switch(ch)
{
case 1:
sexs="男";
flag=1;
break;
case 2:
flag=1;
sexs="女";
break;
default:
cout<<"\n輸入錯誤!請重新輸入 : ";
break;
}
if(flag==1)
break;
}
flag=0;
return sexs;
}
void input()
{
cout<<"\n請輸入成員姓名 : ";
cin>>name;
cout<<"\n請輸入成員年齡 : ";
cin>>age;
sex=choosesex();
}
void setinfo(string number1)
{
number=number1;
}
void output111()
{
cout<<std::left<<setw(15)<<"編號"<<std::left<<setw(10)<<"姓名"<<std::left<<setw(8)<<"年齡"<<std::left<<setw(8)<<"性別";
}
void output()
{
cout<<std::left<<setw(15)<<number<<std::left<<setw(10)<<name<<std::left<<setw(8)<<age<<std::left<<setw(8)<<sex;
}
};
class Teacher:virtual public Person//教師類
{
public:
string xibu,zhuanye,zhicheng;
string choosexibu()
{
int ch1,flag1=0;
string xibus;
cout<<"\n 1.機械系 2.計算機系 3.電子系 4.土木系 5.城建系 6.藝設系\n\n7.經管系 8.外國語系 9.數理系 10.音樂系 11.文法系 12.生化系 13.軟件系\n\n請選擇成員系部 : ";
while(1)
{
cin>>ch1;
switch(ch1)
{
case 1:
xibus="機械系";
flag1=1;
break;
case 2:
xibus="計算機系";
flag1=1;
break;
case 3:
xibus="電子系";
flag1=1;
break;
case 4:
xibus="土木系";
flag1=1;
break;
case 5:
xibus="城建系";
flag1=1;
break;
case 6:
xibus="藝設系";
flag1=1;
break;
case 7:
xibu="經管系";
flag1=1;
break;
case 8:
xibus="外國語系";
flag1=1;
break;
case 9:
xibus="數理系";
flag1=1;
break;
case 10:
xibus="音樂系";
flag1=1;
break;
case 11:
xibus="文法系";
flag1=1;
break;
case 12:
xibus="生化系";
flag1=1;
break;
case 13:
xibus="軟件系";
flag1=1;
break;
default:
cout<<"\n輸入錯誤!請重新輸入:";
break;
}
if(flag1==1)
break;
}
flag1=0;
return xibus;
}
string choosezhicheng()
{
string zhichengs;
int ch2,flag2=0;
cout<<"\n1:助教 2:講師 3:副教授 4:教授\n\n請選擇教師職稱 : ";
while(1)
{
cin>>ch2;
switch(ch2)
{
case 1:
zhichengs="助教";
flag2=1;
break;
case 2:
zhichengs="講師";
flag2=1;
break;
case 3:
zhichengs="副教授";
flag2=1;
break;
case 4:
zhichengs="教授";
flag2=1;
break;
default:
cout<<"\n輸入錯誤!請重新輸入 : ";
break;
}
if(flag2==1)
break;
}
flag2=0;
return zhichengs;
}
void input1()
{
xibu=choosexibu();
cout<<"\n請輸入成員專業 : ";
cin>>zhuanye;
zhicheng=choosezhicheng();
}
void output11()
{
output111();
cout<<std::left<<setw(13)<<"系部"<<std::left<<setw(13)<<"專業"<<std::left<<setw(13)<<"職稱\n"<<endl;
}
void output1()
{
output();
cout<<std::left<<setw(13)<<xibu<<std::left<<setw(13)<<zhuanye<<std::left<<setw(13)<<zhicheng<<"\n"<<endl;
}
void showtongji(int taa1,int taa2,int taa3,int taa4,int ta1,int ta2,int ta3,int ta4,int ta5,int ta6,int ta7,int ta8,int ta9,int ta10,int ta11,int ta12,int ta13)
{
taa1!=0?cout<<"\n助教人數爲 : "<<taa1<<endl:cout<<"";
taa2!=0?cout<<"\n講師人數爲 : "<<taa2<<endl:cout<<"";
taa3!=0?cout<<"\n副教授人數爲 : "<<taa3<<endl:cout<<"";
taa4!=0?cout<<"\n教授人數爲 : "<<taa4<<endl:cout<<"";
ta1!=0?cout<<"\n機械系教師人數爲 : "<<ta1<<endl:cout<<"";
ta2!=0?cout<<"\n計算機系教師人數爲: "<<ta2<<endl:cout<<"";
ta3!=0?cout<<"\n電子系教師人數爲 : "<<ta3<<endl:cout<<"";
ta4!=0?cout<<"\n土木系教師人數爲 : "<<ta4<<endl:cout<<"";
ta5!=0?cout<<"\n城建系教師人數爲 : "<<ta5<<endl:cout<<"";
ta6!=0?cout<<"\n藝設系教師人數爲 : "<<ta6<<endl:cout<<"";
ta7!=0?cout<<"\n經管系教師人數爲 : "<<ta7<<endl:cout<<"";
ta8!=0?cout<<"\n外國語系教師人數爲: "<<ta8<<endl:cout<<"";
ta9!=0?cout<<"\n數理系教師人數爲 : "<<ta9<<endl:cout<<"";
ta10!=0?cout<<"\n音樂系教師人數爲 : "<<ta10<<endl:cout<<"";
ta11!=0?cout<<"\n文法系教師人數爲 : "<<ta11<<endl:cout<<"";
ta12!=0?cout<<"\n生化系教師人數爲 : "<<ta12<<endl:cout<<"";
ta13!=0?cout<<"\n軟件系教師人數爲 : "<<ta13<<endl:cout<<"";
}
};
class Tea_Manage
{
Teacher Tea[Number];
int top1;
public:
Tea_Manage()
{
top1=0;
duqu();
}
void show();
void add();
void choose1();
void choose2();
void choose3();
void chaozhao();
void shanchu();
void shanchu11();
void xiugai();
void showall();
void tongji();
void baocun();
void duqu();
};
Tea_Manage t;
void Teacher_caidan()
{
system("color 3e");
system("cls");
cout<<"\n\n *********歡迎進入教師管理系統*********\n"<<endl;
caidan();
int test,flag=0;
cout<<"\n請輸入您的選擇 : ";
while(1)
{
cin>>test;
switch(test)
{
case 0:
zhucaidan();
flag=1;
break;
case 1:
system("cls");
t.add();
flag=1;
break;
case 2:
system("cls");
t.chaozhao();
flag=1;
break;
case 3:
system("cls");
t.shanchu();
flag=1;
break;
case 4:
system("cls");
t.xiugai();
flag=1;
break;
case 5:
system("cls");
t.showall();
flag=1;
break;
case 6:
system("cls");
t.tongji();
flag=1;
break;
case 7:
system("cls");
cout<<"感謝使用^-^"<<endl;
exit(0);
default:
cout<<"\n輸入錯誤!!請重新輸入 : ";
break;
}
if(flag==1)
break;
}
flag=0;
}
void Tea_Manage::show()
{
cout<<"\n當前系統爲空!是否添加信息?\n\n1:是 2:返回上一級\n\n請輸入選擇 : ";
int aa;
while(1)
{
cin>>aa;
switch(aa)
{
case 1:
add();
return;
case 2:
Teacher_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void Tea_Manage::choose1()
{
int aaa;
cout<<"是否繼續查找?\n\n1:繼續 2:返回上一級\n\n請輸入選擇 : ";
while(1)
{
cin>>aaa;
switch(aaa)
{
case 1:
system("cls");
chaozhao();
return;
case 2:
system("cls");
Teacher_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void Tea_Manage::choose2()
{
int aaa,flag=1;
cout<<"\n是否繼續?\n\n1:繼續 2:返回上一級\n\n請輸入選擇 : ";
while(1)
{
cin>>aaa;
switch(aaa)
{
case 1:
xiugai();
return ;
case 2:
Teacher_caidan();
return ;
default:
cout<<"n輸入錯誤!請重新輸入 : \n";
break;
}
if(flag==1)
{
flag=0;
break;
}
}
}
void Tea_Manage::choose3()
{
int aaa;
cout<<"\n是否繼續?\n\n1:繼續 2:返回上一級\n\n請輸入選擇 : ";
while(1)
{
cin>>aaa;
switch(aaa)
{
case 1:
shanchu();
return;
case 2:
Teacher_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void Tea_Manage::add()
{
system("cls");
Teacher t;
if(top1>=Number)
{
cout<<"用戶已滿!\n無法添加!!!"<<endl;
return;
}
else
{
cout<<"\n輸入新添加的人員的信息\n\n 輸入0結束輸入"<<endl;
string ch;
int flag=1,ans=0;
while(1)
{
cout<<"\n請輸入成員編號 : ";
cin>>ch;
if(ch[0]=='0'&&ch.length()==1)
break;
for(int i=0; i<top1; i++)
{
if(ch==Tea[i].number)
{
flag=0;
break;
}
else
flag=1;
}
if(flag==0)
cout<<"\n該編號的人員已存在!\n";
else
{
t.setinfo(ch);
t.input();
t.input1();
Tea[top1]=t;
top1++;
flag=1;
ans++;
cout<<"\n成功添加此人信息!"<<endl;
}
}
cout<<"\n共添加了"<<ans<<"人"<<endl;
cout<<"\n是否繼續?\n\n1:繼續 2:保存並返回上一級 0:返回主菜單\n\n請輸入選擇 : ";
int aa;
while(1)
{
cin>>aa;
switch(aa)
{
case 0:
system("cls");
top1-=ans;
zhucaidan();
return;
case 1:
system("cls");
add();
return;
case 2:
system("cls");
baocun();
cout<<"\n保存成功!自動返回菜單"<<endl;
Teacher_caidan();
return ;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
}
void Tea_Manage::chaozhao()
{
system("cls");
if(top1==0)
show();
int a,i,flag=0,flag1=0;
string name,number;
cout<<"\n 1:姓名查找 2:編號查找\n\n請輸入查找方式 : ";
while(1)
{
cin>>a;
switch(a)
{
case 1:
system("cls");
cout<<"\n請輸入您想要查找的姓名 : ";
cin>>name;
for(i=0; i<top1; i++)
{
if(name==Tea[i].name)
flag=1;
}
if(i==top1&&flag==0)
cout<<"\n無此人信息!"<<endl;
else
{
cout<<"\n此人信息如下 : \n"<<endl;
Tea[i].output11();
for(i=0; i<top1; i++)
{
if(name==Tea[i].name)
{
Tea[i].output1();
flag=1;
}
}
}
choose1();
return;
case 2:
system("cls");
cout<<"\n請輸入想要查找的編號 : ";
cin>>number;
for(i=0; i<top1; i++)
{
if(number==Tea[i].number)
{
cout<<"\n此人信息如下 : \n"<<endl;
Tea[i].output11();
Tea[i].output1();
flag=1;
}
}
if(i==top1&&flag==0)
cout<<"\n無此人信息!"<<endl;
choose1();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
if(flag1==1)
{
flag1=0;
break;
}
}
}
void Tea_Manage::shanchu11()
{
ofstream fileout("高校教師.txt",ios::trunc);
fileout.close();
top1=0;
cout<<"\n操作完成!返回上一級\n"<<endl;
system("pause");
Teacher_caidan();
}
void Tea_Manage::shanchu()
{
system("cls");
int w=-1,flag=0,ch;
string number;
if(top1==0)
show();
else
{
cout<<"\n1:單個刪除 2:全部刪除 0:返回上一級\n\n請選擇 : ";
while(1)
{
cin>>ch;
switch(ch)
{
case 0:
Teacher_caidan();
flag=1;
break;
case 1:
cout<<"\n請輸入要刪除教師的編號 : ";
cin>>number;
for(int i=0; i<top1; i++)
{
if(number==Tea[i].number)
{
w=i;
cout<<"\n此人信息如下 : \n"<<endl;
Tea[i].output11();
Tea[i].output1();
cout<<"是否刪除?\n\n1:是 2:返回上一級\n\n請輸入選擇 : ";
int bb;
while(1)
{
cin>>bb;
switch(bb)
{
case 1:
for(int j=i; j<top1; j++)
Tea[j]=Tea[j+1];
baocun();
cout<<"\n刪除成功!"<<endl;
top1--;
choose3();
return;
case 2:
Teacher_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
}
if(w==-1)
{
cout<<"\n無此人信息!\n";
choose3();
}
flag=1;
break;
case 2:
shanchu11();
flag=1;
break;
default:
cout<<"\n輸入失敗!請重新輸入 : ";
break;
}
if(flag==1)
{
flag=0;
break;
}
}
}
}
void Tea_Manage::xiugai()
{
system("cls");
Teacher t;
if(top1==0)
show();
else
{
int w=-1;
cout<<"\n請輸入要修改人的編號 : ";
string number;
cin>>number;
for(int i=0; i<top1; i++)
{
if(number==Tea[i].number)
{
cout<<"\n此人信息如下 : \n"<<endl;
Tea[i].output11();
Tea[i].output1();
w=i;
break;
}
}
if(w==-1)
{
cout<<"\n無此人信息!\n";
choose2();
}
else
{
cout<<"========================================================================"<<endl;
cout<<"* 1:編號 2:姓名 3:年齡 4:性別 5:系部 6:專業 7:職稱 0:返回上一級 *"<<endl;
cout<<"========================================================================"<<endl;
cout<<"\n請輸入要修改的選項 : ";
int aa;
int flag=1,flag1=0;
string nums,names,xibus,zhuanyes,zhichengs,sexs,ages;
while(1)
{
cin>>aa;
switch(aa)
{
case 0:
Teacher_caidan();
return;
case 1:
cout<<"\n請輸入要修改的編號 : ";
cin>>nums;
while(1)
{
for(int i=0; i<top1; i++)
{
if(w==i)
continue;
if(nums==Tea[i].number)
{
cout<<"\n輸入編號重複!請重新輸入編號 : ";
flag=0;
break;
}
}
if(flag==1)
{
Tea[w].number=nums;
break;
}
if(flag==0)
{
cin>>nums;
flag=1;
}
}
flag1=1;
break;
case 2:
cout<<"\n請輸入要修改的姓名 : ";
cin>>names;
Tea[w].name=names;
flag1=1;
break;
case 3:
cout<<"\n請輸入要修改的年齡 : ";
cin>>ages;
Tea[w].age=ages;
flag1=1;
break;
case 4:
Tea[w].sex=t.choosesex();
flag1=1;
break;
case 5:
Tea[w].xibu=t.choosexibu();
flag1=1;
break;
case 6:
cout<<"\n請輸入要修改的專業 : ";
cin>>zhuanyes;
Tea[w].zhuanye=zhuanyes;
flag1=1;
break;
case 7:
Tea[w].zhicheng=t.choosezhicheng();
flag1=1;
break;
default:
cout<<"\n輸入錯誤!請重新輸入 : ";
break;
}
if(flag1==1)
break;
}
cout<<"\n修改成功";
baocun();
choose2();
}
}
}
void Tea_Manage::showall()
{
Teacher t;
int aaa,flag=0,aaaa;
if(top1==0)
show();
else
{
cout<<"\n共有"<<top1<<"條信息\n\n是否顯示?\n\n1:顯示 2:返回上一級\n\n請輸入選擇 : ";
while(1)
{
cin>>aaa;
switch(aaa)
{
case 1:
system("cls");
cout<<"\n當前系統所有教師信息如下 : \n"<<endl;
t.output11();
for(int i=0; i<top1; i++)
Tea[i].output1();
flag=1;
break;
case 2:
system("cls");
Teacher_caidan();
return ;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
if(flag==1)
break;
}
cout<<"\n ^-^顯示完成^-^\n\n\t\t1:修改信息 2:刪除信息 3:返回上一級 0:主菜單\n\n請輸入選擇 : ";
while(1)
{
cin>>aaaa;
switch(aaaa)
{
case 0:
zhucaidan();
return ;
case 1:
xiugai();
return ;
case 2:
shanchu();
return ;
case 3:
Teacher_caidan();
return ;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
}
void Tea_Manage::tongji()
{
Teacher t;
system("cls");
int ta=0,tb=0,taa1=0,taa2=0,taa3=0,taa4=0,ta1=0,ta2=0,ta3=0,ta4=0,ta5=0,ta6=0,ta7=0,ta8=0,ta9=0,ta10=0,ta11=0,ta12=0,ta13=0;
if(top1==0)
show();
else
{
for(int i=0; i<top1; i++)
{
if(Tea[i].sex=="男")ta++;
if(Tea[i].sex=="女")tb++;
if(Tea[i].xibu=="機械系") ta1++;
if(Tea[i].xibu=="計算機系") ta2++;
if(Tea[i].xibu=="電子系") ta3++;
if(Tea[i].xibu=="土木系") ta4++;
if(Tea[i].xibu=="城建系") ta5++;
if(Tea[i].xibu=="藝設系") ta6++;
if(Tea[i].xibu=="經管系") ta7++;
if(Tea[i].xibu=="外國語系") ta8++;
if(Tea[i].xibu=="數理系") ta9++;
if(Tea[i].xibu=="音樂系")ta10++;
if(Tea[i].xibu=="文法系")ta11++;
if(Tea[i].xibu=="生化系")ta12++;
if(Tea[i].xibu=="軟件系")ta13++;
if(Tea[i].zhicheng=="助教")taa1++;
if(Tea[i].zhicheng=="講師")taa2++;
if(Tea[i].zhicheng=="副教授")taa3++;
if(Tea[i].zhicheng=="教授")taa4++;
}
cout<<"\n教師總人數爲 : "<<top1<<endl;
cout<<"\n其中 : "<<endl;
ta!=0?cout<<"\n男教師人數爲 : "<<ta<<endl:cout<<"";
tb!=0?cout<<"\n女教師人數爲 : "<<tb<<endl:cout<<"";
t.showtongji(taa1,taa2,taa3,taa4,ta1,ta2,ta3,ta4,ta5,ta6,ta7,ta8,ta9,ta10,ta11,ta12,ta13);
cout<<"\n 統計完成^-^返回上一級\n\n";
system("pause");
Teacher_caidan();
}
}
void Tea_Manage::baocun()
{
ofstream out("高校教師.txt",ios::out);
for(int i=0; i<top1; i++)
{
out<<Tea[i].number<<endl;
out<<Tea[i].name<<endl;
out<<Tea[i].sex<<endl;
out<<Tea[i].age<<endl;
out<<Tea[i].xibu<<endl;
out<<Tea[i].zhuanye<<endl;
out<<Tea[i].zhicheng<<"\n"<<endl;
}
out.close();
};
void Tea_Manage::duqu()
{
ifstream in("高校教師.txt",ios::in);
int i=0;
while(in>>Tea[i].number>>Tea[i].name>>Tea[i].sex>>Tea[i].age>>Tea[i].xibu>>Tea[i].zhuanye>>Tea[i].zhicheng)
{
i++;
top1++;
}
in.close();
}
class Shiyanyuan:virtual public Person//實驗員類
{
public:
string lab,zhiwu;
int flag1=0,ch2;
string choosezhiwu()
{
cout<<"\n1:專家 2:高級工程師 3:工程師 4:助理工程師"<<endl;
cout<<"\n請選擇新成員職務 : ";
while(1)
{
cin>>ch2;
switch(ch2)
{
case 1:
zhiwu="專家";
flag1=1;
break;
case 2:
zhiwu="高級工程師";
flag1=1;
break;
case 3:
zhiwu="工程師";
flag1=1;
break;
case 4:
zhiwu="助理工程師";
flag1=1;
break;
default:
cout<<"\n輸入錯誤!請重新輸入 : ";
break;
}
if(flag1==1)
break;
}
flag1=0;
return zhiwu;
}
void input2()
{
cout<<"\n請輸入新成員實驗室位置 : ";
cin>>lab;
choosezhiwu();
}
void output11()
{
output111();
cout<<std::left<<setw(13)<<"實驗室位置"<<std::left<<setw(13)<<"職務\n"<<endl;
}
void output2()
{
output();
cout<<std::left<<setw(13)<<lab<<std::left<<setw(13)<<zhiwu<<"\n"<<endl;
}
};
class Shiyanyuan_Manage
{
Shiyanyuan Shi[Number];
int top;
public:
Shiyanyuan_Manage()
{
top=0;
duqu();
}
void show();
void add();
void choose1();
void choose2();
void choose3();
void chazhao();
void shanchu();
void shanchu2();
void xiugai();
void showall();
void tongji();
void baocun();
void duqu();
};
Shiyanyuan_Manage tt;
void Shiyanyuan_caidan()
{
system("color 8e");
system("cls");
cout<<"\n\n *********歡迎進入實驗員管理系統*********\n"<<endl;
caidan();
int test,flag=0;
cout<<"\n請輸入您的選擇 : ";
while(1)
{
cin>>test;
switch(test)
{
case 0:
zhucaidan();
flag=1;
break;
case 1:
system("cls");
tt.add();
flag=1;
break;
case 2:
system("cls");
tt.chazhao();
flag=1;
break;
case 3:
system("cls");
tt.shanchu();
flag=1;
break;
case 4:
system("cls");
tt.xiugai();
flag=1;
break;
case 5:
system("cls");
tt.showall();
flag=1;
break;
case 6:
system("cls");
tt.tongji();
flag=1;
break;
case 7:
system("cls");
cout<<"\n ^-^ 感謝使用 ^-^"<<endl;
exit(0);
default:
cout<<"\n輸入錯誤!!請重新輸入 : ";
break;
}
if(flag==1)
break;
}
flag=0;
return ;
}
void Shiyanyuan_Manage::show()
{
cout<<"\n當前系統爲空!是否添加信息?\n\n1:是 2:返回上一級\n\n請輸入選擇 : ";
int aa;
while(1)
{
cin>>aa;
switch(aa)
{
case 1:
system("cls");
add();
return;
case 2:
system("cls");
Shiyanyuan_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void Shiyanyuan_Manage::choose1()
{
int aaa;
cout<<"是否繼續查找?\n\n1:繼續 2:返回上一級\n\n請輸入選擇 : ";
while(1)
{
cin>>aaa;
switch(aaa)
{
case 1:
system("cls");
chazhao();
return;
case 2:
system("cls");
Shiyanyuan_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void Shiyanyuan_Manage::choose2()
{
int cc;
cout<<"\n是否繼續?\n\n1:繼續 2:返回上一級\n\n請輸入選擇 : ";
while(1)
{
cin>>cc;
switch(cc)
{
case 1:
system("cls");
shanchu();
return;
case 2:
system("cls");
Shiyanyuan_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void Shiyanyuan_Manage::choose3()
{
cout<<"\n是否繼續?\n\n1:繼續 2:返回上一級\n\n請輸入選擇 : ";
{
int aaa;
while(1)
{
cin>>aaa;
switch(aaa)
{
case 1:
xiugai();
return ;
case 2:
system("cls");
Shiyanyuan_caidan();
return ;
default:
cout<<"\n輸入錯誤!請重新輸入 : ";
break;
}
}
}
}
void Shiyanyuan_Manage::add()
{
system("cls");
Shiyanyuan t;
int ans=0;
if(top>=Number)
{
cout<<"\n用戶已滿!\n無法添加!!!"<<endl;
return;
}
else
{
cout<<"\n輸入新添加的人員的信息\n\n 輸入0結束輸入"<<endl;
string ch;
int flag=0;
while(1)
{
cout<<"\n請輸入實驗員編號 : ";
cin>>ch;
if(ch[0]=='0'&&ch.length()==1)
break;
for(int i=0; i<top; i++)
{
if(ch==Shi[i].number)
{
flag=1;
break;
}
}
if(flag==1)
{
cout<<"\n該編號的人員已存在!\n";
flag=0;
}
else
{
t.setinfo(ch);
t.input();
t.input2();
Shi[top]=t;
top++;
flag=0;
ans++;
cout<<"\n成功添加此人信息!"<<endl;
}
}
}
cout<<"\n共添加了"<<ans<<"人"<<endl;
cout<<"\n是否繼續?\n\n1:繼續 2:保存並返回上一級 0:主菜單\n\n請輸入選擇 : ";
int aa;
while(1)
{
cin>>aa;
switch(aa)
{
case 0:
system("cls");
top-=ans;
zhucaidan();
return ;
case 1:
add();
return;
case 2:
baocun();
cout<<"\n保存成功!自動返回菜單"<<endl;
Shiyanyuan_caidan();
return ;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void Shiyanyuan_Manage::chazhao()
{
system("cls");
if(top==0)
show();
int a,i,flag=0;
string name,number;
cout<<"\n 1:姓名查找 2:編號查找\n\n請輸入查找方式 : ";
while(1)
{
cin>>a;
switch(a)
{
case 1:
cout<<"\n請輸入您想要查找的姓名 : ";
cin>>name;
for(i=0; i<top; i++)
{
if(name==Shi[i].name)
flag=1;
}
if(i==top&&flag==0)
cout<<"\n無此人信息!"<<endl;
else
{
cout<<"\n此人信息如下 : \n"<<endl;
Shi[i].output11();
for(i=0; i<top; i++)
{
if(name==Shi[i].name)
{
Shi[i].output2();
}
}
}
choose1();
return;
case 2:
cout<<"\n請輸入想要查找的編號 : ";
cin>>number;
for(i=0; i<top; i++)
{
if(number==Shi[i].number)
{
cout<<"\n此人信息如下 : \n"<<endl;
Shi[i].output11();
Shi[i].output2();
flag=1;
}
}
if(i==top&&flag==0)
cout<<"\n無此人信息!"<<endl;
choose1();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void Shiyanyuan_Manage::shanchu2()
{
ofstream fileout("高校實驗員.txt",ios::trunc);
fileout.close();
top=0;
cout<<"\n\n操作完成!返回上一級\n"<<endl;
system("pause");
Shiyanyuan_caidan();
}
void Shiyanyuan_Manage::shanchu()
{
system("cls");
int w=-1,flag=0,ch;
string number;
if(top==0)
show();
else
{
cout<<"\n1:單個刪除 2:全部刪除 0:返回上一級\n\n請選擇刪除方式 : ";
while(1)
{
cin>>ch;
switch(ch)
{
case 0:
Shiyanyuan_caidan();
flag=1;
break;
case 1:
cout<<"\n請輸入要刪除實驗員編號 : ";
cin>>number;
for(int i=0; i<top; i++)
{
if(number==Shi[i].number)
{
w=i;
cout<<"\n此人信息如下 : \n"<<endl;
Shi[i].output11();
Shi[i].output2();
cout<<"是否刪除?\n\n1:是 2:返回上一級\n\n請輸入選擇 : ";
int bb;
while(1)
{
cin>>bb;
switch(bb)
{
case 1:
for(int j=i; j<top; j++)
Shi[j]=Shi[j+1];
baocun();
cout<<"\n刪除成功!"<<endl;
top--;
choose2();
return;
case 2:
system("cls");
Shiyanyuan_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
}
if(w==-1)
{
cout<<"\n無此人信息!";
choose2();
}
flag=1;
break;
case 2:
system("cls");
shanchu2();
flag=1;
break;
default:
cout<<"\n輸入失敗!請重新輸入 : ";
break;
}
if(flag==1)
{
flag=0;
break;
}
}
}
}
void Shiyanyuan_Manage::xiugai()
{
Shiyanyuan t;
system("cls");
if(top==0)
show();
else
{
int w=-1;
cout<<"\n請輸入要修改的編號 : ";
string number;
cin>>number;
for(int i=0; i<top; i++)
{
if(number==Shi[i].number)
{
cout<<"\n此人信息如下 : \n"<<endl;
Shi[i].output11();
Shi[i].output2();
w=i;
break;
}
}
if(w==-1)
{
cout<<"\n無此人信息!";
choose3();
}
else
{
cout<<"======================================================================"<<endl;
cout<<"* 1:編號 2:姓名 3:年齡 4:性別 5:實驗室位置 6:職務 0:返回上一級 *"<<endl;
cout<<"======================================================================"<<endl;
cout<<"\n請選擇要修改的選項 : ";
int aa;
int flag=1,flag1=0;
string nums,names,labs,zhiwus,sexs,ages;
while(1)
{
cin>>aa;
switch(aa)
{
case 0:
Shiyanyuan_caidan();
return;
case 1:
cout<<"\n請輸入要修改的編號 : ";
cin>>nums;
while(1)
{
for(int i=0; i<top; i++)
{
if(i==w)
continue;
if(nums==Shi[i].number)
{
cout<<"\n輸入編號重複!請重新輸入編號 : ";
flag=0;
break;
}
}
if(flag==1)
{
Shi[w].number=nums;
break;
}
if(flag==0)
{
cin>>nums;
flag=1;
}
}
flag1=1;
break;
case 2:
cout<<"\n請輸入要修改的姓名 : ";
cin>>names;
Shi[w].name=names;
flag1=1;
break;
case 3:
cout<<"\n請輸入要修改的年齡 : ";
cin>>ages;
Shi[w].age=ages;
flag1=1;
break;
case 4:
Shi[w].sex=t.choosesex();
flag1=1;
break;
case 5:
cout<<"\n請輸入要修改的實驗室位置 : ";
cin>>labs;
Shi[w].lab=labs;
flag1=1;
break;
case 6:
Shi[w].zhiwu=t.choosezhiwu();
flag1=1;
break;
default:
cout<<"\n輸入錯誤!請重新輸入 : ";
break;
}
if(flag1==1)
break;
}
cout<<"\n修改成功^-^";
choose3();
}
}
return ;
}
void Shiyanyuan_Manage::showall()
{
Shiyanyuan t;
int aa,aaa,flag=0,aaaa;
if(top==0)
{
cout<<"\n當前系統無記錄信息!!!\n\n是否添加實驗員信息?\n\n1:是 2:返回上一級\n\n請輸入選擇 : ";
while(1)
{
cin>>aa;
switch(aa)
{
case 1:
system("cls");
add();
return;
case 2:
system("cls");
Shiyanyuan_caidan();
return ;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
else
{
cout<<"\n共有"<<top<<"條信息\n\n是否顯示?\n\n1:顯示 2:返回上一級\n\n請輸入選擇 : ";
while(1)
{
cin>>aaa;
switch(aaa)
{
case 1:
system("cls");
cout<<"\n當前系統所有實驗員信息如下 : \n"<<endl;
t.output11();
for(int i=0; i<top; i++)
Shi[i].output2();
flag=1;
break;
case 2:
system("cls");
Shiyanyuan_caidan();
return ;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
if(flag==1)
break;
}
cout<<" ^-^顯示完成^-^\n\n\t\t1:修改信息 2:刪除信息 3:返回上一級 0:主菜單\n\n請輸入選擇 : ";
while(1)
{
cin>>aaaa;
switch(aaaa)
{
case 0:
zhucaidan();
return ;
case 1:
xiugai();
return ;
case 2:
shanchu();
return ;
case 3:
Shiyanyuan_caidan();
return ;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
}
void Shiyanyuan_Manage::tongji()
{
system("cls");
int sa=0,sb=0,sa1=0,sa2=0,sa3=0,sa4=0;
if(top==0)
show();
else
{
for(int i=0; i<top; i++)
{
if(Shi[i].sex=="男")
sa++;
if(Shi[i].sex=="女")
sb++;
if(Shi[i].zhiwu=="專家")
sa1++;
if(Shi[i].zhiwu=="高級工程師")
sa2++;
if(Shi[i].zhiwu=="工程師")
sa3++;
if(Shi[i].zhiwu=="助理工程師")
sa4++;
}
cout<<"\n實驗員總人數爲 : "<<top<<endl;
cout<<"\n其中 : "<<endl;
sa!=0?cout<<"\n男實驗員人數爲 : "<<sa<<endl:cout<<"";
sb!=0?cout<<"\n女實驗員人數爲 : "<<sb<<endl:cout<<"";
sa4!=0?cout<<"\n助理工程師人數爲: "<<sa4<<endl:cout<<"";
sa3!=0?cout<<"\n工程師人數爲 : "<<sa3<<endl:cout<<"";
sa2!=0?cout<<"\n高級工程師人數爲: "<<sa2<<endl:cout<<"";
sa1!=0?cout<<"\n專家人數爲 : "<<sa1<<endl:cout<<"";
}
cout<<"\n統計完成^-^返回上一級\n\n";
system("pause");
Shiyanyuan_caidan();
}
void Shiyanyuan_Manage::baocun()
{
ofstream out("高校實驗員.txt",ios::out);
for(int i=0; i<top; i++)
{
out<<Shi[i].number<<endl;
out<<Shi[i].name<<endl;
out<<Shi[i].sex<<endl;
out<<Shi[i].age<<endl;
out<<Shi[i].lab<<endl;
out<<Shi[i].zhiwu<<"\n"<<endl;
}
out.close();
};
void Shiyanyuan_Manage::duqu()
{
ifstream in("高校實驗員.txt",ios::in);
int i=0;
while(in>>Shi[i].number>>Shi[i].name>>Shi[i].sex>>Shi[i].age>>Shi[i].lab>>Shi[i].zhiwu)
{
i++;
top++;
}
in.close();
}
class Xingzhengyuan:virtual public Person//行政員類
{
public:
string zhicheng1;
string zhengzhimianmao;
int ch1,ch2,flag1=0,flag2=0;
string choosezhicheng1()
{
cout<<"\n1:校長 2:副校長 3:書記 4:院長 5:輔導員 6:教師\n\n請選擇新成員職稱 : ";
while(1)
{
cin>>ch1;
switch(ch1)
{
case 1:
zhicheng1="校長";
flag1=1;
break;
case 2:
zhicheng1="副校長";
flag1=1;
break;
case 3:
zhicheng1="書記";
flag1=1;
break;
case 4:
zhicheng1="院長";
flag1=1;
break;
case 5:
zhicheng1="輔導員";
flag1=1;
break;
case 6:
zhicheng1="教師";
flag1=1;
break;
default:
cout<<"\n輸入錯誤!請重新輸入 : ";
break;
}
if(flag1==1)
break;
}
flag1=0;
return zhicheng1;
}
string choosezhengzhimianmao()
{
cout<<"\n1:黨員 2:共青團員 3:羣衆\n\n請選擇新成員政治面貌 : ";
while(1)
{
cin>>ch2;
switch(ch2)
{
case 1:
zhengzhimianmao="黨員";
flag2=1;
break;
case 2:
zhengzhimianmao="共青團員";
flag2=1;
break;
case 3:
zhengzhimianmao="羣衆";
flag2=1;
break;
default:
cout<<"\n輸入錯誤!請重新輸入 : ";
break;
}
if(flag2==1)
break;
}
flag2=0;
return zhengzhimianmao;
}
void input3()
{
choosezhicheng1();
choosezhengzhimianmao();
}
void output11()
{
output111();
cout<<std::left<<setw(13)<<"行政職稱"<<std::left<<setw(13)<<"政治面貌\n"<<endl;
}
void output3()
{
output();
cout<<std::left<<setw(13)<<zhicheng1<<std::left<<setw(13)<<zhengzhimianmao<<"\n"<<endl;
}
void showtongji1(int xa1,int xa2,int xa3,int xa4,int xa5,int xa6,int xaa1,int xaa2,int xaa3)
{
xa1!=0?cout<<"\n校長人數爲 : "<<xa1<<endl:cout<<"";
xa2!=0?cout<<"\n副校長人數爲 : "<<xa2<<endl:cout<<"";
xa3!=0?cout<<"\n書記人數爲 : "<<xa3<<endl:cout<<"";
xa4!=0?cout<<"\n院長人數爲 : "<<xa4<<endl:cout<<"";
xa5!=0?cout<<"\n輔導員人數爲 : "<<xa5<<endl:cout<<"";
xa6!=0?cout<<"\n教師人數爲 : "<<xa6<<endl:cout<<"";
xaa1!=0?cout<<"\n黨員人數爲 : "<<xaa1<<endl:cout<<"";
xaa2!=0?cout<<"\n團員人數爲 : "<<xaa2<<endl:cout<<"";
xaa3!=0?cout<<"\n羣衆人數爲 : "<<xaa3<<endl:cout<<"";
}
};
class Xingzhengyuan_Manage
{
Xingzhengyuan xin[Number];
int top;
public:
Xingzhengyuan_Manage()
{
top=0;
duqu();
}
void show();
void add();
void choose1();
void choose2();
void choose3();
void chaozhao();
void shanchu();
void shanchu33();
void xiugai();
void showall();
void tongji();
void baocun();
void duqu();
};
Xingzhengyuan_Manage ttt;
void Xingzhengyuan_caidan()
{
system("color 3f");
system("cls");
cout<<"\n\n *********歡迎進入行政員管理系統*********\n"<<endl;
caidan();
int test;
int flag=0;
cout<<"請輸入您的選擇 : ";
while(1)
{
cin>>test;
switch(test)
{
case 0:
zhucaidan();
flag=1;
break;
case 1:
system("cls");
ttt.add();
flag=1;
break;
case 2:
system("cls");
ttt.chaozhao();
flag=1;
break;
case 3:
system("cls");
ttt.shanchu();
flag=1;
break;
case 4:
system("cls");
ttt.xiugai();
flag=1;
break;
case 5:
system("cls");
ttt.showall();
flag=1;
break;
case 6:
system("cls");
ttt.tongji();
flag=1;
break;
case 7:
system("cls");
cout<<"\n^-^ 感謝使用 ^-^"<<endl;
exit(0);
default:
cout<<"輸入錯誤!!請重新輸入 : ";
break;
}
if(flag==1)
break;
}
flag=0;
return ;
}
void Xingzhengyuan_Manage::show()
{
cout<<"\n當前系統爲空!是否添加信息?\n\n1:是 2:返回上一級\n\n請輸入選擇 : ";
int aa;
while(1)
{
cin>>aa;
switch(aa)
{
case 1:
system("cls");
add();
return;
case 2:
system("cls");
Xingzhengyuan_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void Xingzhengyuan_Manage::choose1()
{
int aaa;
cout<<"是否繼續查找?\n\n1:繼續 2:返回上一級\n\n請輸入選擇 : ";
while(1)
{
cin>>aaa;
switch(aaa)
{
case 1:
system("cls");
chaozhao();
return;
case 2:
system("cls");
Xingzhengyuan_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void Xingzhengyuan_Manage::choose2()
{
int cc;
cout<<"\n是否繼續?\n\n1:繼續 2:返回上一級\n\n請輸入選擇 : ";
while(1)
{
cin>>cc;
switch(cc)
{
case 1:
system("cls");
shanchu();
return;
case 2:
system("cls");
Xingzhengyuan_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void Xingzhengyuan_Manage::choose3()
{
cout<<"\n是否繼續?\n\n1:繼續 2:返回上一級\n\n請輸入選擇 : ";
{
int aaa;
while(1)
{
cin>>aaa;
switch(aaa)
{
case 1:
xiugai();
return ;
case 2:
system("cls");
Xingzhengyuan_caidan();
return ;
default:
cout<<"\n輸入錯誤!請重新輸入 : ";
break;
}
}
}
}
void Xingzhengyuan_Manage::add()
{
system("cls");
Xingzhengyuan t;
int ans=0,flag=0,aa;
if(top>=Number)
{
cout<<"\n用戶已滿!\n無法添加!!!"<<endl;
return;
}
else
{
cout<<"\n請輸入新添加的人員信息\n\n 輸入0結束輸入"<<endl;
string ch;
while(1)
{
cout<<"\n請輸入成員編號 : ";
cin>>ch;
if(ch[0]=='0'&&ch.length()==1)
break;
for(int i=0; i<top; i++)
{
if(ch==xin[i].number)
{
flag=1;
break;
}
}
if(flag==1)
cout<<"\n該編號的人員已存在!\n";
else
{
t.setinfo(ch);
t.input();
t.input3();
xin[top]=t;
top++;
ans++;
cout<<"\n成功添加此人信息!"<<endl;
}
flag=0;
}
}
cout<<"\n共添加了"<<ans<<"人"<<endl;
cout<<"\n是否繼續?\n\n1:繼續 2:保存並返回上一級 0:主菜單\n\n請輸入選擇 : ";
while(1)
{
cin>>aa;
switch(aa)
{
case 0:
system("cls");
top-=ans;
zhucaidan();
return ;
case 1:
system("cls");
add();
return;
case 2:
system("cls");
baocun();
cout<<"\n保存成功!自動返回菜單"<<endl;
Xingzhengyuan_caidan();
return ;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void Xingzhengyuan_Manage::chaozhao()
{
Xingzhengyuan t;
system("cls");
if(top==0)
show();
int a,i,flag=0;
string name,number;
cout<<"\n 1:姓名查找 2:編號查找\n\n請輸入查找方式 : ";
while(1)
{
cin>>a;
switch(a)
{
case 1:
cout<<"\n請輸入您想要查找的姓名 : ";
cin>>name;
for(i=0; i<top; i++)
{
if(name==xin[i].name)
flag=1;
}
if(i==top&&flag==0)
cout<<"\n無此人信息!"<<endl;
else
{
cout<<"\n此人信息如下 : \n"<<endl;
t.output11();
for(i=0; i<top; i++)
{
if(name==xin[i].name)
{
xin[i].output3();
}
}
}
choose1();
return;
case 2:
cout<<"\n請輸入想要查找的編號 : ";
cin>>number;
for(i=0; i<top; i++)
{
if(number==xin[i].number)
{
cout<<"\n此人信息如下 : \n"<<endl;
xin[i].output11();
xin[i].output3();
flag=1;
}
}
if(i==top&&flag==0)
cout<<"\n無此人信息!"<<endl;
choose1();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void Xingzhengyuan_Manage::shanchu33()
{
ofstream fileout("高校行政人員.txt",ios::trunc);
fileout.close();
top=0;
cout<<"\n\n操作完成!返回上一級\n"<<endl;
system("pause");
Xingzhengyuan_caidan();
}
void Xingzhengyuan_Manage::shanchu()
{
system("cls");
int w=-1,flag=0,ch;
string number;
if(top==0)
show();
else
{
cout<<"\n1:單個刪除 2:全部刪除 0:返回上一級\n\n請選擇刪除方式 : ";
while(1)
{
cin>>ch;
switch(ch)
{
case 0:
Xingzhengyuan_caidan();
flag=1;
break;
case 1:
cout<<"\n請輸入要刪除成員的編號 : ";
cin>>number;
for(int i=0; i<top; i++)
{
if(number==xin[i].number)
{
w=i;
cout<<"\n此人信息如下 : \n"<<endl;
xin[i].output();
xin[i].output3();
cout<<"是否刪除?\n\n1:是 2:返回上一級\n\n請輸入選擇 : ";
int bb;
while(1)
{
cin>>bb;
switch(bb)
{
case 1:
for(int j=i; j<top; j++)
xin[j]=xin[j+1];
baocun();
cout<<"\n刪除成功!"<<endl;
top--;
choose2();
return;
case 2:
system("cls");
Xingzhengyuan_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
}
if(w==-1)
{
cout<<"\n無此人信息!";
choose2();
}
flag=1;
break;
case 2:
system("cls");
shanchu33();
flag=1;
break;
default:
cout<<"\n輸入失敗!請重新輸入 : ";
break;
}
if(flag==1)
{
flag=0;
break;
}
}
}
}
void Xingzhengyuan_Manage::xiugai()
{
system("cls");
Xingzhengyuan t;
if(top==0)
show();
else
{
int w=-1;
cout<<"\n請輸入要修改成員的編號 : ";
string number;
cin>>number;
for(int i=0; i<top; i++)
{
if(number==xin[i].number)
{
cout<<"\n此人信息如下 : \n"<<endl;
xin[i].output11();
xin[i].output3();
w=i;
break;
}
}
if(w==-1)
{
cout<<"\n無此人信息!";
choose3();
}
else
{
cout<<"======================================================================"<<endl;
cout<<"* 1:編號 2:姓名 3:年齡 4:性別 5:職稱 6:政治面貌 0:返回上一級 *"<<endl;
cout<<"======================================================================"<<endl;
cout<<"\n請選擇要修改的選項 : ";
int aa;
int flag=1,flag1=0;
string nums,names,zhichengs,zhengs,sexs,ages;
while(1)
{
cin>>aa;
switch(aa)
{
case 0:
system("cls");
Xingzhengyuan_caidan();
return;
case 1:
cout<<"\n請輸入要修改的編號 : ";
cin>>nums;
while(1)
{
for(int i=0; i<top; i++)
{
if(i==w)
continue;
if(nums==xin[i].number)
{
cout<<"\n輸入編號重複!請重新輸入編號 : ";
flag=0;
break;
}
}
if(flag==1)
{
xin[w].number=nums;
break;
}
if(flag==0)
{
cin>>nums;
flag=1;
}
}
flag1=1;
break;
case 2:
cout<<"\n請輸入要修改的姓名 : ";
cin>>names;
xin[w].name=names;
flag1=1;
break;
case 3:
cout<<"\n請輸入要修改的年齡 : ";
cin>>ages;
xin[w].age=ages;
flag1=1;
break;
case 4:
xin[w].sex=t.choosesex();
flag1=1;
break;
case 5:
xin[w].zhicheng1=t.choosezhicheng1();
flag1=1;
break;
case 6:
xin[w].zhengzhimianmao=t.choosezhengzhimianmao();
flag1=1;
break;
default:
cout<<"\n輸入錯誤!請重新輸入 : ";
break;
}
if(flag1==1)
break;
}
cout<<"\n修改成功,";
choose3();
}
}
}
void Xingzhengyuan_Manage::showall()
{
Xingzhengyuan t;
int aaa,flag=0,aaaa;
if(top==0)
show();
else
{
cout<<"\n共有"<<top<<"條信息\n\n是否顯示?\n\n1:顯示 2:返回上一級\n\n請輸入選擇 : ";
while(1)
{
cin>>aaa;
switch(aaa)
{
case 1:
system("cls");
cout<<"\n當前系統所有行政人員信息如下 : \n"<<endl;
t.output11();
for(int i=0; i<top; i++)
xin[i].output3();
flag=1;
break;
case 2:
system("cls");
Xingzhengyuan_caidan();
return ;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
if(flag==1)
break;
}
cout<<" ^-^顯示完成^-^\n\n\t\t1:修改信息 2:刪除信息 3:返回上一級 0:主菜單\n\n請輸入選擇 : ";
while(1)
{
cin>>aaaa;
switch(aaaa)
{
case 0:
zhucaidan();
return ;
case 1:
xiugai();
return ;
case 2:
shanchu();
return ;
case 3:
Xingzhengyuan_caidan();
return ;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
}
void Xingzhengyuan_Manage::tongji()
{
Xingzhengyuan t;
int xa=0,xb=0,xa1=0,xa2=0,xa3=0,xa4=0,xa5=0,xa6=0,xaa1=0,xaa2=0,xaa3=0;//行政人員各項信息
if(top==0)
show();
else
{
for(int i=0; i<top; i++)
{
if(xin[i].sex=="男")
xa++;
if(xin[i].sex=="女")
xb++;
if(xin[i].zhicheng1=="校長")
xa1++;
if(xin[i].zhicheng1=="副校長")
xa2++;
if(xin[i].zhicheng1=="書記")
xa3++;
if(xin[i].zhicheng1=="院長")
xa4++;
if(xin[i].zhicheng1=="輔導員")
xa5++;
if(xin[i].zhicheng1=="教師")
xa6++;
if(xin[i].zhengzhimianmao=="黨員")
xaa1++;
if(xin[i].zhengzhimianmao=="共青團員")
xaa2++;
if(xin[i].zhengzhimianmao=="羣衆")
xaa3++;
}
cout<<"\n行政員總人數爲 : "<<top<<endl;
cout<<"\n其中 : "<<endl;
xa!=0?cout<<"\n男行政員人數爲 : "<<xa<<endl:cout<<"";
xb!=0?cout<<"\n女行政員人數爲 : "<<xb<<endl:cout<<"";
t.showtongji1(xa1,xa2,xa3,xa4,xa5,xa6,xaa1,xaa2,xaa3);
cout<<"\n統計完成^-^返回上一級\n\n";
system("pause");
Xingzhengyuan_caidan();
}
return ;
}
void Xingzhengyuan_Manage::baocun()
{
ofstream out("高校行政人員.txt",ios::out);
for(int i=0; i<top; i++)
{
out<<xin[i].number<<endl;
out<<xin[i].name<<endl;
out<<xin[i].sex<<endl;
out<<xin[i].age<<endl;
out<<xin[i].zhicheng1<<endl;
out<<xin[i].zhengzhimianmao<<"\n"<<endl;
}
out.close();
};
void Xingzhengyuan_Manage::duqu()
{
ifstream in("高校行政人員.txt",ios::in);
int i=0;
while(in>>xin[i].number>>xin[i].name>>xin[i].sex>>xin[i].age>>xin[i].zhicheng1>>xin[i].zhengzhimianmao)
{
i++;
top++;
}
in.close();
}
class jiaozheng:virtual public Person,virtual public Teacher,virtual public Xingzhengyuan//教師行政員類
{
public:
void outputt()
{
output111();
cout<<std::left<<setw(13)<<"行政職稱"<<std::left<<setw(13)<<"政治面貌"<<std::left<<setw(13)<<"教師職稱"<<std::left<<setw(13)<<"系部"<<std::left<<setw(13)<<"專業\n"<<endl;
}
void output4()
{
output();
cout<<std::left<<setw(13)<<zhicheng1<<std::left<<setw(13)<<zhengzhimianmao<<std::left<<setw(13)<<zhicheng<<std::left<<setw(13)<<xibu<<std::left<<setw(13)<<zhuanye<<"\n"<<endl;
}
};
class jiaozheng_Manage
{
jiaozheng jiao[Number];
int top;
public:
jiaozheng_Manage()
{
top=0;
duqu();
}
void show();
void add();
void choose1();
void choose2();
void choose3();
void chaozhao();
void shanchu44();
void shanchu();
void xiuagi();
void showall();
void tongji();
void baocun();
void duqu();
};
jiaozheng_Manage tttt;
void jiaozheng_caidan()
{
system("color 03");
system("cls");
cout<<"\n\n *********歡迎進入教政員管理系統*********\n"<<endl;
caidan();
int test;
while(1)
{
cout<<"請輸入您的選擇 : ";
cin>>test;
switch(test)
{
case 0:
zhucaidan();
return;
case 1:
system("cls");
tttt.add();
return;
case 2:
system("cls");
tttt.chaozhao();
return;
case 3:
system("cls");
tttt.shanchu();
return;
case 4:
system("cls");
tttt.xiuagi();
return;
case 5:
system("cls");
tttt.showall();
return;
case 6:
system("cls");
tttt.tongji();
return;
case 7:
system("cls");
cout<<"感謝使用^-^"<<endl;
exit(0);
default:
cout<<"輸入錯誤!!請重新輸入:"<<endl;
return;
}
}
return ;
}
void jiaozheng_Manage::show()
{
cout<<"\n當前系統爲空!是否添加信息?\n\n1:是 2:返回上一級\n\n請輸入選擇 : ";
int aa;
while(1)
{
cin>>aa;
switch(aa)
{
case 1:
add();
return;
case 2:
jiaozheng_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void jiaozheng_Manage::choose1()
{
int aaa;
cout<<"是否繼續查找?\n\n1:繼續 2:返回上一級\n\n請輸入選擇 : ";
while(1)
{
cin>>aaa;
switch(aaa)
{
case 1:
system("cls");
chaozhao();
return;
case 2:
system("cls");
jiaozheng_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void jiaozheng_Manage::choose2()
{
int cc;
cout<<"\n是否繼續?\n\n1:繼續 2:返回上一級\n\n請輸入選擇 : ";
while(1)
{
cin>>cc;
switch(cc)
{
case 1:
system("cls");
shanchu();
return;
case 2:
system("cls");
jiaozheng_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void jiaozheng_Manage::choose3()
{
cout<<"\n是否繼續?\n\n1:繼續 2:返回上一級\n\n請輸入選擇 : ";
{
int aaa;
while(1)
{
cin>>aaa;
switch(aaa)
{
case 1:
xiuagi();
return ;
case 2:
jiaozheng_caidan();
return ;
default:
cout<<"\n輸入錯誤!請重新輸入 : ";
break;
}
}
}
}
void jiaozheng_Manage::add()
{
system("cls");
jiaozheng t;
int ans=0,flag=0,aa;
if(top>=Number)
{
cout<<"\n用戶已滿!\n無法添加!!!"<<endl;
return;
}
else
{
cout<<"\n請輸入新添加的人員信息\n\n 輸入0結束輸入"<<endl;
string ch;
while(1)
{
cout<<"\n請輸入成員編號 : ";
cin>>ch;
if(ch[0]=='0'&&ch.length()==1)
break;
for(int i=0; i<top; i++)
{
if(ch==jiao[i].number)
{
flag=1;
break;
}
}
if(flag==1)
cout<<"\n該編號的人員已存在!\n";
else
{
t.setinfo(ch);
t.input();
t.input3();
t.input1();
jiao[top]=t;
top++;
ans++;
cout<<"\n成功添加此人信息!"<<endl;
}
flag=0;
}
}
cout<<"\n共添加了"<<ans<<"人"<<endl;
cout<<"\n\n是否繼續?\n\n1:繼續 2:保存並返回上一級 0:主菜單\n\n請輸入選擇 : ";
while(1)
{
cin>>aa;
switch(aa)
{
case 0:
system("cls");
top-=ans;
zhucaidan();
return ;
case 1:
system("cls");
add();
return;
case 2:
system("cls");
baocun();
cout<<"\n保存成功!自動返回菜單"<<endl;
jiaozheng_caidan();
return ;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void jiaozheng_Manage::chaozhao()
{
jiaozheng t;
system("cls");
if(top==0)
show();
int a,i,flag=0;
string name,number;
cout<<"\n 1:姓名查找 2:編號查找\n\n請輸入查找方式 : ";
while(1)
{
cin>>a;
switch(a)
{
case 1:
cout<<"\n請輸入您想要查找的姓名 : ";
cin>>name;
for(i=0; i<top; i++)
{
if(name==jiao[i].name)
flag=1;
}
if(i==top&&flag==0)
cout<<"\n無此人信息!\n"<<endl;
else
{
cout<<"\n此人信息如下 : \n"<<endl;
t.outputt();
for(i=0; i<top; i++)
{
if(name==jiao[i].name)
{
jiao[i].output4();
}
}
}
choose1();
return;
case 2:
cout<<"\n請輸入想要查找的編號 : ";
cin>>number;
for(i=0; i<top; i++)
{
if(number==jiao[i].number)
{
cout<<"\n此人信息如下 : \n"<<endl;
jiao[i].outputt();
jiao[i].output4();
flag=1;
}
}
if(i==top&&flag==0)
cout<<"\n無此人信息!"<<endl;
choose1();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
void jiaozheng_Manage::shanchu44()
{
ofstream fileout("高校教政員.txt",ios::trunc);
top=0;
fileout.close();
cout<<"\n\n操作完成!返回上一級\n"<<endl;
system("pause");
jiaozheng_caidan();
}
void jiaozheng_Manage::shanchu()
{
system("cls");
int w=-1,flag=0,ch;
string number;
if(top==0)
show();
else
{
cout<<"\n1:單個刪除 2:全部刪除 0:返回上一級\n\n請選擇刪除方式 : ";
while(1)
{
cin>>ch;
switch(ch)
{
case 0:
jiaozheng_caidan();
flag=1;
break;
case 1:
cout<<"\n請輸入要刪除成員的編號 : ";
cin>>number;
for(int i=0; i<top; i++)
{
if(number==jiao[i].number)
{
w=i;
cout<<"\n此人信息如下 : \n"<<endl;
jiao[i].outputt();
jiao[i].output4();
cout<<"是否刪除?\n\n1:是 2:返回上一級\n\n請輸入選擇 : ";
int bb;
while(1)
{
cin>>bb;
switch(bb)
{
case 1:
for(int j=i; j<top; j++)
jiao[j]=jiao[j+1];
baocun();
cout<<"\n刪除成功!"<<endl;
top--;
choose2();
return;
case 2:
jiaozheng_caidan();
return;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
}
if(w==-1)
{
cout<<"\n無此人信息!!\n";
choose2();
}
flag=1;
break;
case 2:
shanchu44();
flag=1;
break;
default:
cout<<"\n輸入失敗!請重新輸入 : ";
break;
}
if(flag==1)
{
flag=0;
break;
}
}
}
}
void jiaozheng_Manage::xiuagi()
{
system("cls");
jiaozheng t;
if(top==0)
show();
else
{
int w=-1;
cout<<"\n請輸入要修改成員的編號 : ";
string number;
cin>>number;
for(int i=0; i<top; i++)
{
if(number==jiao[i].number)
{
cout<<"\n此人信息如下 : \n"<<endl;
jiao[i].outputt();
jiao[i].output4();
w=i;
break;
}
}
if(w==-1)
{
cout<<"\n無此人信息!";
choose3();
}
else
{
cout<<"=================================================================================================="<<endl;
cout<<"* 1:編號 2:姓名 3:年齡 4:性別 5:行政職稱 6:政治面貌 7:教師職稱 8:系部 9:專業 0:返回上一級 *"<<endl;
cout<<"===================================================================================================="<<endl;
cout<<"\n請選擇要修改的選項 : ";
int aa;
int flag=1,flag1=0;
string nums,names,zhuanyes,ages;
while(1)
{
cin>>aa;
switch(aa)
{
case 0:
jiaozheng_caidan();
return;
case 1:
cout<<"\n請輸入要修改的編號 : ";
cin>>nums;
while(1)
{
for(int i=0; i<top; i++)
{
if(i==w)
continue;
if(nums==jiao[i].number)
{
cout<<"\n輸入編號重複!請重新輸入編號 : ";
flag=0;
break;
}
}
if(flag==1)
{
jiao[w].number=nums;
break;
}
if(flag==0)
{
cin>>nums;
flag=1;
}
}
flag1=1;
break;
case 2:
cout<<"\n請輸入要修改的姓名 : ";
cin>>names;
jiao[w].name=names;
flag1=1;
break;
case 3:
cout<<"\n請輸入要修改的年齡 : ";
cin>>ages;
jiao[w].age=ages;
flag1=1;
break;
case 4:
jiao[w].sex=t.choosesex();
flag1=1;
break;
case 5:
jiao[w].zhicheng1=t.choosezhicheng1();
flag1=1;
break;
case 6:
jiao[w].zhicheng=t.choosezhicheng();
flag1=1;
break;
case 7:
jiao[w].zhengzhimianmao=t.choosezhengzhimianmao();
flag1=1;
break;
case 8:
jiao[w].xibu=t.choosexibu();
flag1=1;
break;
case 9:
cout<<"\n請輸入成員專業 : ";
cin>>zhuanyes;
jiao[w].zhuanye=zhuanyes;
flag1=1;
break;
default:
cout<<"\n輸入錯誤!請重新輸入 : ";
break;
}
if(flag1==1)
break;
}
baocun();
cout<<"\n修改成功";
choose3();
}
}
}
void jiaozheng_Manage::tongji()
{
system("cls");
jiaozheng t;
int xa1=0,xa2=0,xa3=0,xa4=0,xa5=0,xa6=0,xaa1=0,xaa2=0,xaa3=0;
int ta=0,tb=0,taa1=0,taa2=0,taa3=0,taa4=0,ta1=0,ta2=0,ta3=0,ta4=0,ta5=0,ta6=0,ta7=0,ta8=0,ta9=0,ta10=0,ta11=0,ta12=0,ta13=0;
if(top==0)
show();
else
{
for(int i=0; i<top; i++)
{
if(jiao[i].sex=="男")ta++;
if(jiao[i].sex=="女")tb++;
if(jiao[i].zhicheng1=="校長")xa1++;
if(jiao[i].zhicheng1=="副校長") xa2++;
if(jiao[i].zhicheng1=="書記")xa3++;
if(jiao[i].zhicheng1=="院長")xa4++;
if(jiao[i].zhicheng1=="輔導員")xa5++;
if(jiao[i].zhicheng1=="教師")xa6++;
if(jiao[i].zhengzhimianmao=="黨員")xaa1++;
if(jiao[i].zhengzhimianmao=="共青團員") xaa2++;
if(jiao[i].zhengzhimianmao=="羣衆")xaa3++;
if(jiao[i].xibu=="機械系") ta1++;
if(jiao[i].xibu=="計算機系") ta2++;
if(jiao[i].xibu=="電子系") ta3++;
if(jiao[i].xibu=="土木系") ta4++;
if(jiao[i].xibu=="城建系") ta5++;
if(jiao[i].xibu=="藝設系") ta6++;
if(jiao[i].xibu=="經管系") ta7++;
if(jiao[i].xibu=="外國語系") ta8++;
if(jiao[i].xibu=="數理系") ta9++;
if(jiao[i].xibu=="音樂系")ta10++;
if(jiao[i].xibu=="文法系")ta11++;
if(jiao[i].xibu=="生化系")ta12++;
if(jiao[i].xibu=="軟件系")ta13++;
if(jiao[i].zhicheng=="助教")taa1++;
if(jiao[i].zhicheng=="講師")taa2++;
if(jiao[i].zhicheng=="副教授")taa3++;
if(jiao[i].zhicheng=="教授")taa4++;
}
cout<<"\n政教員總人數爲 : "<<top<<endl;
cout<<"\n其中 : "<<endl;
ta!=0?cout<<"\n男性成員人數爲 : "<<ta<<endl:cout<<"";
tb!=0?cout<<"\n女性成員人數爲 : "<<tb<<endl:cout<<"";
t.showtongji1(xa1,xa2,xa3,xa4,xa5,xa6,xaa1,xaa2,xaa3);
t.showtongji( taa1, taa2, taa3, taa4, ta1, ta2, ta3, ta4, ta5, ta6, ta7, ta8, ta9, ta10, ta11, ta12, ta13);
cout<<"\n統計完成^-^返回上一級\n\n";
system("pause");
jiaozheng_caidan();
}
}
void jiaozheng_Manage::showall()
{
jiaozheng t;
int aaa,flag=0,aaaa;
if(top==0)
{
show();
}
else
{
cout<<"\n共有"<<top<<"條信息\n\n是否顯示?\n\n1:顯示 2:返回上一級\n\n請輸入選擇 : ";
while(1)
{
cin>>aaa;
switch(aaa)
{
case 1:
system("cls");
cout<<"\n當前系統所有政教人員信息如下 : \n"<<endl;
t.outputt();
for(int i=0; i<top; i++)
{
jiao[i].output4();
}
flag=1;
break;
case 2:
jiaozheng_caidan();
return ;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
if(flag==1)
break;
}
cout<<" ^-^顯示完成^-^\n\n\t\t1:修改信息 2:刪除信息 3:返回上一級 0:主菜單\n\n請輸入選擇 : ";
while(1)
{
cin>>aaaa;
switch(aaaa)
{
case 0:
zhucaidan();
return ;
case 1:
xiuagi();
return ;
case 2:
shanchu();
return ;
case 3:
jiaozheng_caidan();
return ;
default:
cout<<"\n輸入失敗請重新輸入 : ";
break;
}
}
}
}
void jiaozheng_Manage::baocun()
{
ofstream out("高校政教員.txt",ios::out);
for(int i=0; i<top; i++)
{
out<<jiao[i].number<<endl;
out<<jiao[i].name<<endl;
out<<jiao[i].sex<<endl;
out<<jiao[i].age<<endl;
out<<jiao[i].zhicheng1<<endl;
out<<jiao[i].zhicheng<<endl;
out<<jiao[i].zhengzhimianmao<<endl;
out<<jiao[i].xibu<<endl;
out<<jiao[i].zhuanye<<"\n"<<endl;
}
}
void jiaozheng_Manage::duqu()
{
ifstream in("高校政教員.txt",ios::in);
int i=0;
while(in>>jiao[i].number>>jiao[i].name>>jiao[i].sex>>jiao[i].age>>jiao[i].zhicheng1>>jiao[i].zhicheng>>jiao[i].zhengzhimianmao>>jiao[i].xibu>>jiao[i].zhuanye)
{
i++;
top++;
}
in.close();
}
int main()
{
system("color 1e");
shouye();
login();
return 0;
}