高级语言课程设计报告
题 目: 企业员工管理系统
专业名称: 网络工程
班 级: 1402 班
学生姓名:
学号(8 位): 04142045
指导教师:
设计起止时间
企业员工管理系统
一 设计目的
企业员工管理系统主要是针对企业员工的基本信息进行增、删、改、查的相关操作,以便用
户使用本管理系统时可以快速对企业员工的信息进行管理。
二. 设计内容
1.用户首次使用本系统时进行密码设置和初始化操作。
2.实现添加功能,即添加员工的相关信息。
3.实现查看功能,即显示系统中所有员工的相关信息。
4.实现查找功能,即可以通过多种条件对员工进行查询,如姓名、工号等。
5.实现修改功能,即输入员工的姓名修改其相关信息。
6.实现删除功能,即输入员工的姓名删除其相关信息。
7.实现统计员工人数的功能。
8.实现重新设置密码登录密码的功能。
9.退出系统。
三.概要设计
1.功能模块图:
2.各个模块详细的功能描述。
(1).首次登陆用户信息初始化功能模块:当用户时首次使用本系统时,则需要根据提示进行
设置密码和初始化的操作。
(2).输入员工信息功能模块:实现将用户从键盘输入的数据存储到对应字段或数据成员中,
并检查输入的合法性。
(3).显示员工信息功能模块:用户根据提示操作显示系统中已有的员工的相关信息,如果系
统中海没有存储员工信息则给出无法显示信息的提示。
(4).查询员工信息功能模块:根据用户输入的待查询记录的关键字,在数据结构中查找该记
录,如找到则输出该员工的信息,否则给出无法找到的提示信息。
(5).修改员工信息功能模块:根据用户要求,根据提示操作,找到要修改信息的员工然后修
改员工的相关信息,如年龄。工资等。
(6).删除员工信息功能模块:由用户输入选择删除相关的员工的信息。
(7).统计员工信息功能模块:统计本系统中员工的信息,如男、女员工的人数等。
(8).重置系统密码功能模块:根据用户的要求,将旧密码更换设置新密码。
(9).退出系统功能模块:在用户执行完相关系统操作之后,退出使用本系统。
四.详细设计
1.功能函数的调用关系图
首次使用系统 不是首次使用
设置密码
checkfirst()
界面菜单
menu()
保 存 数 据
savedata()
删除
delemp()
查找
findemp()
修改密码
resetpwd()
修改
modifyemp()
企业员工管理
系统 main()
添加
addemp()
显示
displayemp()
统计
snmmary()
按
姓
名
EMP *findname
按
工
号
EMP *findnum
按
电
话
MP *findtelephone
按
QQ
号
MP *findqq
修
改
工
资
modi_salary
修
改
年
龄
modi_age
根据姓名查找
findname()
读 取 数 据
readdata()
登 录 密 码
login()
2.各功能函数的数据流程图
3.重点设计及编码
(1)本系统中对是否是第一次使用本系统进行了处理,如果是第一次使用,则需要根据提示
信息进行设置密码和初始化操作。其思路是:首先打开密码文件,判断是否为空,进而判断
系统是否是第一次使用,如果是,系统会提示输入初始密码,如果不是,系统会进入登陆页
面,提示输入登陆密码,代码如下:
void checkfirst()
{
FILE *fp,*fp1; //声明文件型指针
char pwd[9],pwd1[9],pwd2[9];
int i;
char strt='8';
if((fp=fopen("employee.txt","rb"))==NULL)
{
printf("\n\t 新系统,请进行相应的初始化操作!\n"); //判断系统密码文件是否为空
bound('_',50);
getch();
do
{
printf("\n 设置密码,请不要超过 8 位: ");
for(i=0;i<8&&((pwd[i]=getch())!=13);i++)
putch('*');
printf("\n 请再确认一次密码: ");
for(i=0;i<8&&(pwd1[i]=getch())!=13;i++)
putch('*');
pwd[i]='\0';
pwd1[i]='\0';
if(strcmp(pwd,pwd1)!=0)
printf("\n\n 两次密码输入不一致,请重新输入: \n");
else
break;
}while(1);
if((fp1=fopen("employee.txt","wb"))==NULL)
{
printf("\n 系统创建失败,请按任意键退出!\n");
getch();
exit(1);
}
i=0;
while(pwd[i])
{
pwd2[i]=(pwd[i]^strt);
putw(pwd2[i],fp1);//将数组元素送入文件流中
i++;
}
fclose(fp1);//关闭文件流
printf("\n 系统初始化成功,请按任意键退出后,再重新进入!\n");
getch();
exit(1);
}
else
{
i=0;
while(!feof(fp)&&i<8)//判断是否读完密码文件
pwd[i++]=getw(fp)^strt;//从文件流中读出字符赋给数组
pwd[i]='\0';
if(i>=8)
i--;
while(pwd[i]!=-1&&i>=0)
i--;
pwd[i]='\0';
strcpy(password,pwd);
}
}
(2)自定义函数 login()在初始化检测后调用,用于管理员的登录,用户根据提示密码,函数
调用 strcmp()函数对输入密码和密码文件中的读取数据进行比较,如果一致则进入系统,不
一致会提示重新输入,如果 3 次不一致会强制退出:
void login()//检测登陆密码
{
int i,n=3;
char pwd[9];
do
{
printf("\n 请输入登陆密码: ");
for(i=0;i<8&&((pwd[i]=getch())!=13);i++)
putch('*');
pwd[i]='\0';
if(strcmp(pwd,password))
{
printf("\n 密码错误,请重新输入!\n");
system("cls");//调用清屏命令
n--;
}