首页 > 代码库 > C++实现人员信息管理系统模拟

C++实现人员信息管理系统模拟

利用C++语言实现基本的学生信息管理系统;

要求:

1-设置管理员密码

2-人员数据有:姓名,性别等基本的信息

3-可以添加,删除,保存,统计

  1 #include<iostream>  2 #include<iomanip>  3 #include<fstream>  4 #include<cstring>  5 #include<windows.h>  6 using namespace std;  7 const int EXIT=0;  8 const int REFUSE=1;  9 const int OK=2; 10 int IFRUN=0; 11 int PasswordExam();  12 void printline() 13 { 14     cout<<endl<<endl<<endl<<endl<<endl<<endl; 15 } 16 void printspace() 17 { 18         cout<<"                "; 19 } 20 class student 21 { 22     public: 23         char name[20];//姓名 24         char sex[4];//性别 25         char identity[20];//学号 26         char birth[10];//出生年月 27         char major[20];//专业 28         int Class;//班级 29         char tell[15];//电话号码 30         char qq[15];//QQ号 31         char address[20];//家庭地址 32 }; 33 class SystemControl{ 34     public: 35         SystemControl() 36         { 37             StuNum=0; 38             initial(); 39         } 40         ~SystemControl(); 41         void RunControl(); 42     private: 43         void initial(int work=0);//初始化数组  44         void input();//添加 45         int search(int work=0);//查询 46         void modify();//修改 47         void deletes();//删除 48         void display();//输出 49         void menu();//菜单 50         void biaotou();//表头     51         void changepassword();//修改密码  52         student stu[100];//最多放100个学生信息 53         int StuNum;     54 }; 55 void SystemControl::changepassword() 56 { 57     char pass1[40]; 58     char pass2[40]; 59     system("cls"); 60     printline(); 61     ifstream fp("password.dat",ios::in); 62     fp>>pass1; 63     fp.close(); 64      65     printspace(); 66     cout<<"请先输入旧密码:";cin>>pass2; 67     if(strcmp(pass2,pass1)) 68     { 69         printspace(); 70         cout<<"旧密码输入错误,按Enter键返回主菜单"<<endl; 71         getchar();getchar();getchar(); 72         return; 73     } 74     int timesort=0; 75     NEW: 76     printspace(); 77     cout<<"请输入新密码:";cin>>pass1;printspace(); 78     cout<<"请确认新密码:";cin>>pass2;printspace(); 79     timesort++; 80     if(strcmp(pass2,pass1)) 81     { 82         if(timesort>=3) 83         { 84             cout<<"错误次数太多,按Enter键返回主菜单。"<<endl; 85             getchar();getchar(); 86             return; 87         } 88         cout<<"两次输入不同,按Enter键重新输入" <<endl; 89         getchar() ;getchar(); 90         system("cls"); 91         printline(); 92         goto NEW; 93     } 94     ofstream fo("password.dat",ios::out); 95     fo<<pass1<<endl; 96     fo.close(); 97     cout<<"密码修改成功,按Enter键返回主菜单"<<endl; 98     getchar();getchar(); 99 }100 //初始化学生数组101 //学生信息保存到student.dat中 102 void SystemControl::initial(int work) 103 {104     ifstream fp("student.dat",ios::in);105     char test[100];106     while(fp>>stu[StuNum].identity)107     {108         fp>>stu[StuNum].name>>stu[StuNum].sex>>stu[StuNum].Class;109         fp>>stu[StuNum].major>>stu[StuNum].address;110         fp>>stu[StuNum].birth>>stu[StuNum].qq>>stu[StuNum].tell;111         StuNum++;112     }113     if(work==1)return;114     if(StuNum>0)115     {116         system("cls");117         printline();118         printspace();119         cout<<"记录中的所有数据已经初始化完毕"<<endl;printspace();120         cout<<"一共有"<<StuNum<<"个学生的信息"<<endl;121         cout<<endl;printspace();122         cout<<"即将进入主界面"<<endl;123         Sleep(3100);124         system("cls");125     }126     127 }128 SystemControl::~SystemControl()129 {130     ofstream fp("student.dat",ios::out);131     for(int i=0;i<StuNum;i++)132     {133     system("cls");134     printline();135     printspace();136     cout<<"您即将关闭系统,正在保存信息中,请稍后----" <<endl;printspace();137     cout<<"已完成:"; 138         fp<<stu[i].identity<<" "<<stu[i].name<<" "<<stu[i].sex<<" "<<stu[i].Class<<" ";139         fp<<stu[i].major<<" "<<stu[i].address<<" "<<stu[i].birth<<" "<<stu[i].qq<<" "<<stu[i].tell<<endl;140         Sleep(100);141         cout<<(double)(i+1)/StuNum*100<<"%"<<endl;142     }143     fp.close();printspace();144     cout<<"已经关闭" <<endl; 145 }146 void SystemControl::biaotou()147 {148     cout<<"姓名"<<"      性别"<<"    学号"<<"   出生年月"<<"    专业"<<"    班级"<<"  电话号码"<<"    QQ号"<<"    家庭地址"<<endl; 149 } 150 void SystemControl::menu()151 {152     system("cls");153     cout<<endl;154     printspace();155     cout<<"\t==========================\n";printspace();156     cout<<"\t||请选择你要进行的操作:||\n";printspace();157     cout<<"\t||   1.添加信息         ||\n";printspace();158     cout<<"\t||   2.查询信息         ||\n";printspace();159     cout<<"\t||   3.修改操作         ||\n";printspace();160     cout<<"\t||   4.删除操作         ||\n";printspace();161     cout<<"\t||   5.显示信息         ||\n";printspace();162     cout<<"\t||   6 修改密码         ||\n";printspace();163     cout<<"\t||   7.退出系统         ||\n";printspace();164     cout<<"\t==========================\n";printspace();165     cout<<"请选择你要进行的操作(1,2,3,4,5,6,7):";166     IFRUN=1;167 } 168 //主控函数 169 void SystemControl::RunControl()170 {171     while(true){172     menu();173     int i;174     cin>>i;175     switch(i)176     {177         case 1:input();break;178         case 2:search();break;179         case 3:modify();break;180         case 4:deletes();break;181         case 5:display();break;182         case 6:changepassword();break;;183         case 7:printspace();cout<<"谢谢您的使用!"<<endl;return;break;184         default:cout<<"您的选择有误!";break;185     }    186   }    187 } 188 //输入函数189 void SystemControl::input()190 {191     char ch=y;192     do{193     system("cls");194     cout<<"退出输入请在学号栏输入#"<<endl; 195     cout<<"按要求输入信息"<<endl;196     cout<<"学号:";  cin>>stu[StuNum].identity;197     if(!strcmp(stu[StuNum].identity,"#"))return;198     cout<<"姓名:";  cin>>stu[StuNum].name;199     cout<<"性别:";     cin>>stu[StuNum].sex;200     cout<<"班级:";     cin>>stu[StuNum].Class;201     cout<<"专业:";  cin>>stu[StuNum].major;202     cout<<"地址: ";  cin>>stu[StuNum].address;203     cout<<"生日:";  cin>>stu[StuNum].birth;204     cout<<"QQ号:";  cin>>stu[StuNum].qq;205     cout<<"电话:";  cin>>stu[StuNum].tell;206     cout<<"是否继续输入(y/n):";cin>>ch;207     StuNum++;208     }209     while(ch==y||ch==Y);210 }211 int SystemControl::search(int work)212 {213     int choice=0;214     int i=0;215     char cho;216     char item[30];217     SEARCH:218     system("cls");printspace();219     cout<<"============查询学生信息============="<<endl;printspace();220     cout<<"||        <1>通过姓名查询          ||"<<endl;printspace();221     cout<<"||        <2>通过学号查询          ||"<<endl;printspace();222     cout<<"||        <3>返回上一级菜单        ||"<<endl;printspace(); 223     cout<<"====================================="<<endl;printspace();224     cout<<endl<<"请输入您的查询方式(1,2,3):" ;cin>>choice; 225     226     switch(choice)227     {228         case 1:229             cout<<"输入姓名:";cin>>item;230             for(i=0;i<StuNum;i++)231             {232                 if(!strcmp(stu[i].name,item))233                     break;234             }235             break;236         case 2:237             cout<<"输入学号:";cin>>item;238             for(i=0;i<StuNum;i++)239             {240                 if(!strcmp(stu[i].identity,item))241                     break;242             }243             break;244         case 3:return -1;245         default: 246                 goto SEARCH;247             break; 248     }249     250     if(i>=StuNum) 251     {252         cout<<"没有找到符合的学生"<<endl;253         cout<<"继续查找(y/n):";getchar();cin>>cho;254         if(cho==y||cho==Y)goto SEARCH;255         else return -1;256     }257     258     cout<<"已找到学生:"<<stu[i].name<<endl;259     printspace();260     cout<<"学号:";  cout<<stu[i].identity<<endl;261     printspace();262     cout<<"性别:";     cout<<stu[i].sex<<endl;printspace();263     cout<<"班级:";     cout<<stu[i].Class<<endl;printspace();264     cout<<"专业:";  cout<<stu[i].major<<endl;printspace();265     cout<<"地址: ";  cout<<stu[i].address<<endl;printspace();266     cout<<"生日:";  cout<<stu[i].birth<<endl;printspace();267     cout<<"QQ号:";  cout<<stu[i].qq<<endl;printspace();268     cout<<"电话:";  cout<<stu[i].tell<<endl;269     if(work==1){270         cout<<endl;271     return i;}272     cout<<endl<<endl;273     cout<<"是否继续查找(y/n):" ;cin>>cho;274     if(cho==y||cho==Y)goto SEARCH;275     return 1;276 }277 void SystemControl::deletes()278 {279     DELTE:280     system("cls");281     int num;printspace();282     cout<<"全部删除输入-1"<<endl;printspace();283     cout<<"选择单个信息删除请输入 1"<<endl;printspace();284     cout<<"返回主菜单输入 0"<<endl; printspace();285     cin>>num;286     if(num==0)return;287     if(num==-1)288     {289         if(PasswordExam()==OK)290         {291         StuNum=0;292         printspace();293         cout<<"所有学生信息删除成功"<<endl;294         }295         printspace();296         cout<<"按Enter键返回主菜单"<<endl;297         getchar();298         return;299     }300     else if(num==1)301     {302         int getint=search(1);303         if(getint==-1)304         {305             goto DELTE;306         }307         ofstream fp("student",ios::out);308         for(int i=0;i<StuNum;i++)309         {310         if(getint==i)continue;311         fp<<stu[i].identity<<stu[i].name<<stu[i].sex<<stu[i].Class;312         fp<<stu[i].major<<stu[i].address<<stu[i].birth<<stu[i].qq<<stu[i].tell<<endl;313         }314         fp.close();315         StuNum=0;316         initial(1);317         cout<<"删除成功"<<endl;318         cout<<"按Enter键返回上一级菜单"<<endl;319         getchar();getchar();320     }321     goto DELTE;322 }323 void SystemControl::modify()324 {325     int getvalue=http://www.mamicode.com/search(1);326     char value[30];327     if(getvalue>=0&&getvalue<StuNum){328     cout<<"在学号栏输入#退出修改"<<endl;329     cout<<"输入修改后的信息:"<<endl;330     cout<<"学号:";  cin>>value;331     if(!strcmp(value,"#"))return;332     strcpy(stu[getvalue].identity,value);333     cout<<"姓名:";  cin>>stu[getvalue].name;334     cout<<"性别:";     cin>>stu[getvalue].sex;335     cout<<"班级:";     cin>>stu[getvalue].Class;336     cout<<"专业:";  cin>>stu[getvalue].major;337     cout<<"地址: ";  cin>>stu[getvalue].address;338     cout<<"生日:";  cin>>stu[getvalue].birth;339     cout<<"QQ号:";  cin>>stu[getvalue].qq;340     cout<<"电话:";  cin>>stu[getvalue].tell;341     cout<<"修改成功,按任意键返回主菜单" <<endl;342     getchar();getchar();343 }344 }345 //密码文件password.dat 346 int PasswordExam()347 {348     ifstream fp("password.dat",ios::in);349     char pass1[100];350     char pass2[100];351     fp>>pass1;352     if(strlen(pass1)<1)353     {354         fp.close();355         ofstream fi("password.dat",ios::out);356         printline();357         printspace();358         cout<<"您这是第一次使用本系统,请先设置管理员密码!"<<endl;359         cout<<endl;360         SETPASSWORD:361         printspace();362         cout<<"请设置密码:"; cin>>pass1;363         printspace();364         cout<<"请确认密码:"; cin>>pass2; 365         if(strcmp(pass1,pass2))366         {367             printspace();368             cout<<"两次输入密码不一致,请重新输入" <<endl;369             goto SETPASSWORD;370         }371         fi<<pass1<<endl;372         system("cls");373         printline();374         printspace();375         cout<<"密码设置成功,按任意键继续"<<endl;376         getchar();getchar();377         return OK;378     }379     else380     {381         int testtime=0;382         TEST:383         {384         system("cls");385         printline();386         printspace();387         cout<<"请输入管理员密码:";388         cin>>pass2;389         testtime++;390         }391         if(strcmp(pass1,pass2)) 392         {393             system("cls");394             printline();395             printspace();396             if(testtime>=3){397                 if(!IFRUN)398                     {399                 cout<<"错误次数太多,自动退出系统" <<endl;400                 return EXIT;}401                 cout<<"错误次数太多,请求被拒绝:";402                 return REFUSE;403             }404             cout<<"输入密码错误,"; 405             cout<<"按Enter键重新输入";406             getchar();getchar();407             goto TEST; 408         }409         system("cls");410         printline();411         printspace();412         cout<<"密码正确,按任意键继续操作"<<endl;413         getchar();getchar();414         return OK;415     }416 }417 void SystemControl::display()418 {419     system("cls");420     if(StuNum==0) {421     printline();printspace();422     cout<<"学生记录为空,按任意键返回"<<endl;423     getchar();getchar();424     return;}425     cout<<"学生人数:"<<StuNum<<endl<<"所有学生信息如下" <<endl;426     biaotou();427     for(int i=0;i<StuNum;i++)428     {429         cout<<stu[i].name<<"  "<<stu[i].sex<<"  "<<stu[i].identity<<"  "<<stu[i].birth<<"  "<<stu[i].major;430         cout<<"  "<<stu[i].Class<<"  "<<stu[i].tell<<"  "<<stu[i].qq<<"  "<<stu[i].address<<endl;431     }432     cout<<"按任意键返回主菜单"<<endl;433     getchar();getchar();434 }435 int main() 436 {437     //验证登陆密码 438     if(PasswordExam()==EXIT)return 0;439     SystemControl command;440     command.RunControl();441     return 0;442 }

 

C++实现人员信息管理系统模拟