C++课程设计:职工综合信息管理系统
2014-06-19 20:54
691 查看
职工综合信息管理系统
要求:设计一个程序来管理职工较全面数据信息,具备数据的输入、查找、删除等功能。具体功能细节可以根据自己理解情况进行增加。
程序界面:
查询、修改、显示及删除功能均要有员工信息才可以使用。
增加员工信息:
输入信息之后就可以使用查询功能了。
查询功能:
查询功能可以通过工号、姓名、电话号码查询员工信息,当然也可以选择其他查找方式,因为不太清楚员工究竟实际用到哪些信息,这里就找最常用的意思意思下,可以按实际情况于源程序中添加更精确的查找功能。
修改员工信息:
显示所有员工信息:
可以看到上面的修改功能正常运作,也可以显示所有的员工信息了
删除功能:
删除该员工信息后到显示所有员工信息里确认,确实把员工删除了
要求:设计一个程序来管理职工较全面数据信息,具备数据的输入、查找、删除等功能。具体功能细节可以根据自己理解情况进行增加。
# include <iostream.h> # include <string.h> # include <iomanip> # define max 1000 //定义最大的数组下标 # define NULL 0 //定义NULL为0 typedef struct node //定义员工结构体 { char num[10]; //工号 char name[10]; //姓名 char sex[4]; //性别 char age[4]; //年龄 char degree[20]; //学历 char wage[20]; //工资 char telnum[20]; //电话 char address[100]; //住址 node *next; //指针域 }employ; void Create(employ *L,int m) //创建函数 { char num[10],name[10],sex[4],age[4],degree[20],wage[20],telnum[20],address[100];//定义编号,姓名,性别,出生年月,学历,职务,电话,住址 int i=0,j=0,k=0; employ *M; while(i<m) //m为输入员工的个数 { cout<<"请输入第"<<i <<"名员工的信息(用TAB分隔):"<<endl; cout<<"-----------------------------------------------------------------------------"<<endl; cout<<"工号 姓名 性别 年龄 学历 工资 电话 住址"<<endl; cout<<"-----------------------------------------------------------------------------"<<endl; cin>>num; cin>>name; cin>>sex; cin>>age; cin>>degree; cin>>wage; cin>>telnum; cin>>address; M=(employ *)malloc(sizeof(employ)); //分配内存给该结点 strcpy(M->num,num); //将姓名值赋给新结点的姓名 strcpy(M->name,name); //将工号值赋给新结点的编号 strcpy(M->sex,sex); //将性别值赋给新结点的性别 strcpy(M->age,age); //将年龄值赋给新结点的年龄 strcpy(M->degree,degree); //将学历值赋给新结点的学历 strcpy(M->wage,wage); //将工资值赋给新结点的工资 strcpy(M->telnum,telnum); //将电话值赋给新结点的电话 strcpy(M->address,address); //将住址值赋给新结点的住址 M->next=NULL; //新结点的指针域置为空 L->next=M; //将新结点链到单链表上 L=M; //指向新结点 i++ ; } } void Display(employ *L) //显示函数 { cout<<"-------------------------------------------------"<<endl; cout<<"工号 姓名 性别 年龄 学历 工资 电话 住址"<<endl; while(L->next!=NULL) { L=L->next; cout<<L->num<<" "; //输出工号,姓名,性别,年龄,学历,工资,电话,住址 cout<<L->name<<" "; cout<<L->sex<<" "; cout<<L->age<<" "; cout<<L->degree<<" "; cout<<L->wage<<" "; cout<<L->telnum<<" "; cout<<L->address<<endl; } cout<<"------------------------------------------------"<<endl; if(L->next=NULL) cout<<"当前没有任何员工的信息!"<<endl; } void Show(employ *L) //显示某一个结点函数 { cout<<"-------------------------------------------------"<<endl; cout<<"工号 姓名 性别 年龄 学历 工资 电话 住址"<<endl; cout<<L->num<<" "; //输出工号,姓名,性别,年龄,学历,工资,电话,住址 cout<<L->name<<" "; cout<<L->sex<<" "; cout<<L->age<<" "; cout<<L->degree<<" "; cout<<L->wage<<" "; cout<<L->telnum<<" "; cout<<L->address<<endl; cout<<"------------------------------------------------"<<endl; } void Search(employ *L) //查询函数 { char num[10],name[10],telnum[20]; employ *p; p=L; //p指向头结点 int x; while(1) { cout<<"1.按工号查找 2.按姓名查找"<<endl; cout<<"3.按电话号码查找 4.退出"<<endl; cout<<"请选择:(1,2,3,4,)"<<endl; cin>>x; L=L->next; //指向第一个结点 if(x==1) { cout<<"请输入要查找员工的工号:"<<endl; cin>>num; while(L!=NULL) { if(strcmp(L->num,num)==0) { Show(L); //显示该结点信息 break; } else L=L->next; } if(L==NULL) cout<<"不存在该员工的信息,请重新输入:"<<endl; L=p; //指回头结点 } else if(x==2) { cout<<"请输入要查找员工的姓名:"<<endl; cin>>name; while(L!=NULL) { if(strcmp(L->name,name)==0) { Show(L); break; } else L=L->next; } if(L==NULL) cout<<"不存在该员工的信息,请重新输入:"<<endl; L=p; //指回头结点 } else if(x==3) { cout<<"请输入要查找员工的电话号码:"<<endl; cin>>telnum; while(L!=NULL) { if(strcmp(L->telnum,telnum)==0) { Show(L); //显示该结点信息 break; } else L=L->next; } if(L==NULL) cout<<"查无此人,请重新输入:"<<endl; L=p; } else if(x==4) break; else cout<<"你输入的为非法字符,请重新输入:"<<endl; } } void Update(employ *L) //修改函数 { char num[10]; int x; char name[10],sex[4],age[4],degree[20],wage[20],telnum[20],address[100]; cout<<"请输入要更新员工的工号:"<<endl; cin>>num; L=L->next; while(L!=NULL) { if(strcmp(L->num,num)==0) { Show(L); break; } else L=L->next; } if(L==NULL) cout<<"查无此人,请重新输入:"<<endl; else { while(1) { cout<<"1.更新数据 2.退出"<<endl; cout<<"请选择:(1,2)"<<endl; cin>>x; if(x==1) { cout<<"请输入新数据:"<<endl;; cin>>num; //输入工号 cin>>name; //输入姓名 cin>>sex; //输入性别 cin>>age; //输入年龄 cin>>degree; //输入学历 cin>>wage; //输入工资 cin>>telnum; //输入电话 cin>>address; //输入住址 strcpy(L->num,num); //将姓名值赋给新结点的姓名 strcpy(L->name,name); //将工号值赋给新结点的工号 strcpy(L->sex,sex); //将性别值赋给新结点的性别 strcpy(L->age,age); //将年龄值赋给新结点的年龄 strcpy(L->degree,degree); //将学历值赋给新结点的学历 strcpy(L->wage,wage); //将工资值赋给新结点的工资 strcpy(L->telnum,telnum); //将电话值赋给新结点的电话 strcpy(L->address,address);//将住址值赋给新结点的住址 cout<<"更新后的数据为:"<<endl; Show(L); } else if(x==2) break; else cout<<"你输入的为非法字符,请重新输入:"<<endl; } } } void Delete(employ *L)//删除函数 { char num[10]; int x; employ *p,*q,*w; cout<<"请输入要删除员工的工号:"<<endl; cin>>num; w=L; L=L->next; while(L!=NULL) { if(strcmp(L->num,num)==0) { Show(L); break; } else { w=L; L=L->next; } } if(L==NULL) cout<<"查无此人,请重新输入:"<<endl; else { p=w; while(1) { cout<<"1.删除数据 2.退出 "<<endl; cout<<"请选择:(1,2)"<<endl; cin>>x; if(x==1) { q=p->next; p->next=q->next; free(q); break; } else if(x==2) break; else cout<<"你输入的为非法字符,请重新输入:"<<endl; } } } int main() { int x,m; employ *L; //建立新结点,并分配内存空间 L=(employ *)malloc(sizeof(employ)); L->next=NULL; cout<<" * * * * * * * * * * * * * * * * * * * * * * * *"<<endl; cout<<" * *"<<endl; cout<<" * 欢 迎 进 入 员 工 管 理 系 统 *"<<endl; cout<<" * *"<<endl; cout<<" * * * * * * * * * * * * * * * * * * * * * * * *"<<endl; while(1) { cout<<" --------------------------------------------------- "<<endl; cout<<" | 1.创 建 2.查 询 |"<<endl; cout<<" | |"<<endl; cout<<" | 3.修 改 4.显 示 |"<<endl; cout<<" | |"<<endl; cout<<" | 5.删 除 6.退 出 |"<<endl; cout<<" | |"<<endl; cout<<" --------------------------------------------------- "<<endl; cout<<"请选择:"; cin>>x; if(x==1) { cout<<"请输入员工数目:"<<endl; cin>>m; Create(L,m); } else if(x==2) { if(L->next==NULL) cout<<"当前没有任何员工的信息,不能进行查询!"<<endl; else Search(L); } else if(x==3) { if(L->next==NULL) cout<<"当前没有任何员工的信息,不能进行修改!"<<endl; else Update(L);//调用修改函数 } else if(x==4) { if(L->next==NULL) cout<<"当前没有任何员工的信息!"<<endl; else { cout<<"该员工管理系统的所有信息:"<<endl; Display(L); //显示函数 } } else if(x==5) { if(L->next==NULL) cout<<"当前没有任何员工的信息,不能进行删除!"<<endl; else Delete(L); //删除函数 } else if(x==6) { cout<<" ·*·*·*·*·*·*·谢谢您的使用!!·*·*·*·*·*·"<<endl; break; } else cout<<"您输入的为非法字符,请重新输入:"<<endl; } return 0; }
程序界面:
查询、修改、显示及删除功能均要有员工信息才可以使用。
增加员工信息:
输入信息之后就可以使用查询功能了。
查询功能:
查询功能可以通过工号、姓名、电话号码查询员工信息,当然也可以选择其他查找方式,因为不太清楚员工究竟实际用到哪些信息,这里就找最常用的意思意思下,可以按实际情况于源程序中添加更精确的查找功能。
修改员工信息:
显示所有员工信息:
可以看到上面的修改功能正常运作,也可以显示所有的员工信息了
删除功能:
删除该员工信息后到显示所有员工信息里确认,确实把员工删除了
相关文章推荐
- C++课程设计:学生信息管理系统
- 高级语言程序设计课程设计报告-职工信息管理系统
- 课程设计之职工信息管理系统
- 数据结构课程设计报告-职工信息管理系统
- 学生信息综合管理系统开发记录(数据库课程设计)
- c++程序课程设计的内容--职工工资管理系统
- C语言课程设计之职工信息管理系统
- 关于c++ 课程设计(学生信息管理系统)
- 2015数据结构课程设计——职工信息管理系统
- c++课程设计,职工管理系统
- 数据结构课程设计-ytu职工信息管理系统
- 16级C++课程设计 题目1 “高校人员信息管理系统设计”
- 课程设计之职工信息管理系统
- 数据结构课程设计、职工信息管理系统
- 职工信息管理系统(课程设计)
- C++课程设计-成绩管理系统
- 课程设计(图书信息管理系统)
- 职工综合信息管理系统
- C++课程设计:学生成绩管理系统
- C++课程设计:学生成绩管理系统