• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

利用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;

                      

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c++builderDelphi直接使用剪贴板Clipboard发布时间:2022-07-14
下一篇:
DDKbuild的时候C2220警告当错误处理发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap