首页 > 代码库 > 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++实现人员信息管理系统模拟
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。