c语言程序设计 员工信息管理系统Word文档格式.doc
《c语言程序设计 员工信息管理系统Word文档格式.doc》由会员分享,可在线阅读,更多相关《c语言程序设计 员工信息管理系统Word文档格式.doc(19页珍藏版)》请在冰点文库上搜索。
退
出
系
统
关于系统
密码修改
排序模块
查询模块
更新模块
输出模块
输入模块
退出系统
添加员工信息
删除员工信息
修改员工信息
退出系统
按姓名查询
按工作证查寻
按工作证排序
按工资排序
2.模块功能说明
对各个模块进行功能的描述
(1).输入模块:
录入需要管理的员工信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。
(2).添加模块:
可添加一个或多个员工信息,并将所添加员工信息保存,方便查找。
(3).删除模块:
可对辞职或休假的员工信息做删除处理。
(4).修改模块:
可根据需要对多个员工信息进行修改,也可随时对个别项进行修改。
(5).查询模块:
可对已建立的员工信息进行查询,并且可根据需要选择按姓名查询或按工作证号查询。
(6).保存模块:
用于对信息进行保存。
(7).输出模块:
将所有员工信息或想要查询的员工信息显示于屏幕,用于打印员工信息或查找某些员工信息。
(8).修改密码:
对系统的密码可以进行修改,确保信息的安全。
(9).关于系统:
对系统的简介,以及操作时的注意事项。
(10).退出系统:
选择该项,自动退出该系统。
五、详细设计及运行结果
流程图,函数之间相互调用的图示,程序设计及编码,运行结果。
开始
输密码
判断密码
密码错误
输入i
判断i
i=0
i=1i=2i=3i=4i=5i=6i=7i=8
统计模块
输要统计的值
输要排序的值
输要查询的值
输要更新的值
判断i值
判断i值
判断i值
判断i
处理操作
保存信息
结束
六.调试情况及运行结果
1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。
此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,对数据的输出格式也有较高要求,这次编程让自己对许多平时不注意的小的知识点有了新的巩固;
我先编的主函数,调试后我又一个一个模块的往上加,每加上一个调试一下;
虽然在编程过程中有些模块也出现了一些小问题,但在翻阅课本和同学们的帮助下,我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期的目的。
可这毕竟是第一次独立完成这样的大程序,虽然并不是非常健壮,但程序中没有错误和警告,各项功能都能完成,因此我对两周的实习结果还是理想的。
这次编程中我感觉程序中最满意的地方有两点:
1、程序的操作界面美观大方。
2、我给程序上加上了密码修改这一模块,可以说密码函数花费了大量时间,需要重新建立一个文件来写入密码保存密码。
下次登陆时需要打开密码文件,判断密码是否正确。
已有的那些功能虽已能基本上满足用户的需要,但如果还有更多的功能程序就会更加完美。
如:
录入错误数据时,系统没有设计输出错误操作的提示。
2、在设计过程中的感受。
本次C语言的实习课让我对C语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中使我在课堂上十几周学到的知识得到了巩固,有很多以前理解不了的课本知识在这次上机实习后,再回头看一下感觉豁然开朗。
学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。
本次实习中遇到了很多以前没有遇到过的问题,也曾感到比较浮躁,但想到以前都是作为用户用各种程序,而这次自己是编程者,可以让程序按自己的想法运行,给了我继续的兴趣和信心。
在老师的指导下和同学的帮助下,我顺利的结束了本次实习,让我知道原来凭借自己努力取得的成功会让自己这么欣慰。
七.参考文献
《C语言程序设计》王曙燕曹锰科学出版社2005年2月
《C语言程序设计》谭浩强清华大学出版社1999年12月
八。
附录:
#include<
stdio.h>
string.h>
#defineMAX5
#definePAGE4
#definePRINTF1printf("
-------------------------------------------------------------------\n"
)
#definePRINTF2printf("
工作号\t姓名\t性别\t工龄(年月日)\t学历\t职务\t电话\t工资\n"
#definePRINTF3printf("
\n%d\t%s\t%s\t%d-%d-%d\t%s\t%s\t%s\t%d\n"
workers[i].num,workers[i].name,workers[i].sex,workers[i].worktime.year,workers[i].worktime.month,workers[i].worktime.day,workers[i].degree,workers[i].position,workers[i].tel,workers[i].salary)
intsum;
/*用来记录员工人数*/
/*日期结构体类型*/
structdate
{intyear;
intmonth;
intday;
};
/*员工结构体类型*/
structworkers_type
{intnum;
structdateworktime;
charname[10];
charsex[2];
chardegree[5];
charposition[5];
chartel[12];
intsalary;
}workers[MAX];
/*存放MAX个员工信息记录的结构体数组*/
/*保存基本信息*/
save_message(intsum)
{FILE*fp;
inti;
if((fp=fopen("
workerinformation.txt"
"
wt"
))==NULL)
{printf("
该文件错误!
\n"
);
return;
}
for(i=0;
i<
sum;
i++)
if(fwrite(&
workers[i],sizeof(structworkers_type),1,fp)!
=1)
printf("
写文件错误!
fclose(fp);
/*第一:
输入模块*/
input_message()
{
inti=0,x;
clrscr();
printf("
\n\n请输入要录入的员工数量:
"
scanf("
%d"
&
x);
\n\n录入员工信息(最多%d个员工)\n"
x);
----------------------------------------------------------------------\n"
do
{printf("
第%d个员工信息"
i+1);
printf("
\n员工的工作证号:
"
scanf("
workers[i].num);
\n姓名:
%s"
workers[i].name);
\n性别(男=m,女=f):
workers[i].sex);
\n工龄(yy--mm--dd):
fflush(stdin);
%d-%d-%d"
workers[i].worktime.year,&
workers[i].worktime.month,&
workers[i].worktime.day);
\n学历:
workers[i].degree);
\n职务:
workers[i].position);
\n电话:
workers[i].tel);
\n工资:
workers[i].salary);
i++;
}while(i<
printf("
\n--%d员工信息输入完毕!
--\n"
i);
sum=i;
\n按任意键返回主菜单!
bioskey(0);
/*读取信息*/
read_message()
inti=0;
if((fp=fopen("
rt"
{printf("
\n\n*****暂时还没有任何库存信息,按任意键进入主菜单选择基本信息的录入!
*****\n"
return(0);
}
while(feof(fp)!
{fread(&
workers[i],sizeof(structworkers_type),1,fp);
if(workers[i].num==0)break;
elsei++;
fclose(fp);
return(i);
/*第二:
输出模块*/
output_message()
{inti=0,j=0,count,page=1;
clrscr();
\n\n----------员工信息表---------第%d页\n\n"
page);
PRINTF2;
PRINTF1;
do
{if(workers[i].num!
=0)
{j++;
if(j%PAGE!
{PRINTF3;
PRINTF1;
}
else
if(workers[i+1].num!
{printf("
按任意键继续!
bioskey(0);
clrscr();
printf("
\n\n--员工信息表--第%d页\n\n"
++page);
PRINTF2;
PRINTF1;
}
}
i++;
}while(workers[i].num!
=0);
按任意键返回主菜单!
bioskey(0);
}
/*增加员工信息*/
insert_message()
{inti=sum,j,flag=0;
charchoice;
\n\n增加一个新员工\n"
{
printf("
\n新员工的工作证号:
scanf("
\n新员工姓名:
\n新员工性别(男=m,女=f):
fflush(stdin);
workers[i].sex);
\n新员工工龄(yy-mm-dd):
\n新员工学历:
\n新员工职务:
fflush(stdin);
\n新员工电话:
fflush(stdin);
workers[i].tel);
\n新员工工资:
i++;
sum=i;
\n要继续吗?
(Y/N)"
choice=getch();
if(choice=='
y'
||choice=='
Y'
{printf("
\n继续!
flag=1;
elseflag=0;
}while(flag==1);
\n按任意键返回主菜单!
bioskey(0);
/*删除员工信息*/
del_message()
{inti,k,flag,del_num;
{clrscr();
\n输入要删除的员工的工作证号:
del_num);
for(i=0;
if(workers[i].num==del_num)
{for(k=i;
k<
k++)
workers[k]=workers[k+1];
break;
if(i==sum)
\n该员工不存在"
\n\n继续修改吗?
choice=getch();
if(choice=='
{flag=1;
\n继续!
elseflag=0;
\n按任意键返回主菜单!
/*修改信息*/
resive_message()
{inti=0,choice,revise_num,flag;
\n输入要修改的员工的工作证号"
revise_num);
for(i=0;
if(workers[i].num==revise_num)
\n--员工信息--\n"
PRINTF1;
PRINTF2;
PRINTF3;
\n您要修改哪一项?
\n1.工作证号\n"
\n2.姓名\n"
\n3.性别\n"
\n4.工龄\n"
\n5.学历\n"
\n6.职务\n"
\n7.电话\n"
\n8.工资\n"
\n请输入(1-8):
scanf("
choice);
switch(choice)
{case1:
\n输入修改后的工作证号:
scanf("
break;
case2:
\n输入修改后的姓名:
case3:
\n输入修改后的性别:
case4:
\n输入修改后的工龄(yy-mm-dd):
case5:
\n