企业信息管理系统Word文档下载推荐.docx
《企业信息管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《企业信息管理系统Word文档下载推荐.docx(29页珍藏版)》请在冰豆网上搜索。
8.列出所有员工
0.返回(即结束)
2.定义结构体
/*****定义员工结构体****/
typedefstruct{
charName[20];
//姓名
charGender[20];
//性别
intAge;
//年龄
intEmpId;
//ID号
}Employee;
/***定义部门结构体*****/
typedefstruct{
charm_strName[20];
//部门名称
intDeptId;
//部门ID号
intsize;
//部门员工数
//Employeelink;
}Department;
方便程序数据调用。
3.函数功能描述
1.voidDengLu()
voidDengLu()函数用于设置登录密保。
输入用户名与密码,有三次机会,三次都错就显示登录失败!
无法打开系统管理界面。
登录成功就可以调用intShowMenu()函数,进入系统管理界面。
2.intShowMenu()
intShowMenu()函数用于显示管理系统界面,并且返回键盘输入的0~8之间的数字
3.voidMenu()
voidMenu()函数调用intShowMenu()函数的返回值,通过switch..case下面语句实现功能选择。
4.voidaddDept()
voidaddDept()函数用于实现增加部门的操作。
选择功能【1】进入增加部门操作,输入部门ID、部门名称,则显示添加成功,若输入部门ID已存在,则显示ID存在。
如图所示:
5.voiddeleteDept()
voiddeleteDept()函数用于删除部门。
选择功能【2】进入删除部门操作,输入部门ID,若ID存在就显示删除成功;
否则,显示ID无效。
6.voidlistDept()
voidlistDept()函数用于实现列出部门信息功能。
选择功能【3】进入列出部门操作,就会显示当前部门信息。
如上图所示。
7.voidaddEmp()
voidaddEmp()函数用于实现增加员工功能,选择功能【4】进入增加员工操作。
输入部门ID,若存在则输入员工ID,若存在则继续输入员工ID,直至不存在则输入员工姓名、性别、年龄。
若部门ID不存在则显示部门ID无效。
8.voiddeleteEmp()
voiddeleteEmp()函数用于实现删除员工功能。
选择功能【5】进入删除员工操作,输入员工ID,若存在则显示删除成功;
否在显示ID无效。
9.voidmodifyEmp()
voidmodifyEmp()函数用于实现修改员工信息功能,选择功能【6】进入修改员工信息操作,输入员工ID,若存在,则再次输入员工姓名、性别、年龄,提示修改成功;
若不存在,则显示ID无效。
10.voidlistEmp()
voidlistEmp()函数用于实现列出部门员工信息功能,选择功能【7】进入列出部门员工操作,输入部门ID,若存在显示当前部门内的员工信息;
否则显示ID无效。
如图所示
11.voidlistAllEmp()
voidlistAllEmp()函数用于实现列出所有员工信息功能,选择功能【8】进入列出部门员工操作,显示当前所有的员工信息。
如上面第9个函数里的图所示。
12.文件读写等操作。
fread/fwrite()函数用于对文件进行读写操作,本次项目程序主要就是熟练并且准确地对文件进行读写操作。
fopen()函数用于打开文件。
mv命令用于文件移动(剪切复制)。
cp命令用于文件拷贝。
fseek()函数用于指定文件操作位置。
五、代码实现
首先写emis.h头文件:
#ifndef__EMIS_H__//防止重复包含
#define__EMIS_H__
intShowMenu();
voidDengLu();
//voidShowMenu();
//intfunc();
voidaddDept();
voiddeleteDept();
voidlistDept();
//voidaddEmp();
voidaddEmp1();
voiddeleteEmp();
voidmodifyEmp();
voidlistEmp();
voidlistAllEmp(void);
voidMenu();
#endif//emis.h
然后写manger.c主体函数:
#include<
iostream>
stdio.h>
stdlib.h>
string.h>
iomanip>
#include"
emis.h"
usingnamespacestd;
/******登录界面************/
voidDengLu(){
intnum=0;
charbuf[10];
cout<
<
endl;
"
EMIS系统登陆"
-------------------"
for(num=1;
num<
=3;
num++){
用户名:
flush;
fgets(buf,10,stdin);
if(strcmp(buf,"
wanghui\n"
)){
continue;
}
密码:
123456\n"
break;
if(num<
=3){
Menu();
else{
登录失败!
}
/*****管理系统界面*******/
intShowMenu(){
//voidShowMenu(){
cout<
endl;
"
运营管理子系统"
<
----------------"
[1]增加部门"
[2]删除部门"
[3]列出部门"
[4]增加员工"
[5]删除员工"
[6]修改员工信息"
[7]列出部门员工"
[8]列出所有员工"
[0]返回"
//}
//intfunc(){
请选择:
flush;
cin.clear();
charstrEnter[10];
fgets(strEnter,10,stdin);
//选择功能
if(!
strcmp(strEnter,"
1\n"
))
return1;
2\n"
return2;
3\n"
return3;
4\n"
return4;
5\n"
return5;
6\n"
return6;
7\n"
return7;
8\n"
return8;
0\n"
return0;
return-1;
/*******增加部门************/
voidaddDept(){
Departmentdept;
intoldid=0,size=0;
dept.size=0;
FILE*p_file=fopen("
a.bin"
"
a+b"
);
//打开a.bin文件
if(p_file){//打开成功
endl<
请输入部门ID:
cin>
>
dept.DeptId;
scanf("
%*c"
rewind(p_file);
//从文件头开始
while(size=fread(&
oldid,sizeof(int),1,p_file)){
if(dept.DeptId==oldid){
fseek(p_file,24,SEEK_CUR);
fseek(p_file,0,SEEK_END);
if(size){
这个部门ID已存在!
else{
endl<
请输入部门名称:
cin>
dept.m_strName;
if(strlen(dept.m_strName)==19&
&
dept.m_strName[18]!
='
\n'
){
%*[^\n]"
cin.clear();
//清除错误状态
cin.ignore(1024,'
//清除输入缓冲中字符
fwrite(&
dept.DeptId,sizeof(int),1,p_file);
//记录部门ID
fwrite(dept.m_strName,sizeof(char),20,p_file);
//记录部门名称
dept.size,sizeof(int),1,p_file);
//记录部门人数
cout<
增加部门成功!
fclose(p_file);
p_file=NULL;
/*******删除部门************/
voiddeleteDept(){
intflog=0;
system("
cpa.bind.bin"
d.bin"
rb"
FILE*p_file1=fopen("
"
wb"
if(p_file){
//rewind(p_file);
fseek(p_file,0,0);
//printf("
%d\n"
dept.DeptId);
//printf("
oldid=%d\n"
oldid);
//break;
flog=1;
fseek(p_file,24,1);
shanchuchenggong\n"
删除部门成功!
intdeptid;
charname[20]={};
intsum;
fseek(p_file,-4,1);
fread(&
deptid,4,1,p_file);
fread(name,1,20,p_file);
sum,4,1,p_file);
deptid,4,1,p_file1);
fwrite(name,1,20,p_file1);
sum,4,1,p_file1);
//fseek(p_file,24,SEEK_CUR);
//}
if(!
flog){
无效部门ID!
//fseek(p_file,0,SEEK_END);
fclose(p_file);
fclose(p_file1);
p_file1=NULL;
rmd.bin"
/*******列出部门信息************/
voidlistDept(){//要修改
intsize=0;
left<
setw(11)<
部门ID"
setw(22)<
部门名称"
员工人数"
-----------------------------------------"
dept.DeptId,sizeof(int),1,p_file)){
fseek(p_file,-4,1);
//读取部门ID
fread(dept.m_strName,sizeof(char),20,p_file);
//读取部门名称
//读取部门人数
cout<
dept.DeptId<
dept.m_strName<
dept.size<
}
/*******增加员工************/
voidaddEmp1(){
Employeeemp;
intoldid=0,size=0,size1=0;
ab+"
FILE*p_four=fopen("
f.bin"
/*printf("
id:
printf("
size=%d\n"
size);
*/
FILE*p_dest=fopen("
b.bin"
if(p_dest){
cout<
请输入员工ID:
cin>
emp.EmpId;
//scanf("
rewind(p_dest);
while(size1=fread(&
oldid,sizeof(int),1,p_dest)){
if(emp.EmpId==oldid){
这个员工ID已存在!
//scanf("
continue;
fseek(p_dest,44,SEEK_CUR);
}
/*if(size1){
cout<
}*/
fseek(p_dest,0,2);
请输入员工姓名:
emp.Name;
请输入员工性别:
emp.Gender;
请输入员工年龄:
emp.Age;
fwrite(&
emp.EmpId,sizeof(int),1,p_dest);
//记录员工ID
fwrite(emp.Name,sizeof(char),20,p_dest);
//记录员工姓名
fwrite(emp.Gender,sizeof(char),20,p_dest);
//记录员工性别
emp.Age,sizeof(int),1,p_dest);
//记录年龄
//dept.size++;
//部门增加一个员工
增加员工成功!
FILE*p_scr=fopen("
c.bin"
//printf("
2.写到f文件的deptid:
//打开C文件
if(p_scr){
fseek(p_file,-4,SEEK_CUR);
dept.DeptId,sizeof(int),1,p_file);
fseek(p_dest,-48,SEEK_CUR);
fread(&
fread(emp.Name,sizeof(char),20,p_dest);
fread(emp.Gender,sizeof(char),20,p_dest);
dept.DeptId,sizeof(int),1,p_scr);
emp.EmpId,sizeof(int),1,p_scr);
fwrite(emp.Name,sizeof(char),20,p_scr);
fwrite(emp.Gender,sizeof(char),20,p_scr);
emp.Age,sizeof(int),1,p_scr);
fclose(p_scr);
p_scr=NULL;
3.写到f文件的deptid:
fclose(p_dest);
p_dest=NULL;
fseek(p_file,20,1);
dept.size,4,1,p_file);
dept.size++;
//部门人数加一要修改!
!
4.写到f文件的deptid:
fseek(p_file,-28,SEEK_CUR);
dept.DeptId,4,1,p_file);
fread(dept.m_strName,1,20,p_file);
intsize