职工信息管理系统Word文档下载推荐.docx
- 文档编号:21113058
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:38
- 大小:481.24KB
职工信息管理系统Word文档下载推荐.docx
《职工信息管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统Word文档下载推荐.docx(38页珍藏版)》请在冰豆网上搜索。
图2-1系统功能模块图
2、2系统模块
进入主函数调用菜单函数。
打印提示信息里面有5个功能供其选择:
菜单‘1’:
信息录入功模式,输入选项一进入该功能,根据系统提示输入包括“name,sex,age,salary,education,address,phone,number”等八大类数据,隐含限制人数输入1000人,输入户到末尾有提示信息可以跳出录入环节;
菜单‘2’:
为员工信息浏览模式,当用户输‘2’选项时,系统自动把文件中的数据调入内存在输出到显示器上。
供用户浏览。
此功能较为简便,故在此不予以特别阐述;
菜单‘3’:
为员工信息查询模式,当用户选择‘3’后可以根据自己的需要选择(1、按编号查询;
2、按学历查询3、按号码查询0、退出查询模式);
菜单‘4’:
员工信息删除模式,删除模式之下有三个选项(1、按编号删除;
2、按姓名删除0、退出删除模式);
当初入查询信息后,系统会根据查询信息结果可能反馈三类提示(“1,找到对应的数据,进行下一步操作;
2。
未找到相匹配的信息,进行提示操作3。
数据库为空);
菜单‘5’:
职工信息修改模式,用户在主菜单里里面可选择此功能,
菜单‘0’:
用户选择此操作后结束程序运行。
3系统存储结构说明
3、1系统存储信息说明
该系统随机存储以人为单位的员工编号,姓名,年龄,性别,学历,工资,电话号码,地址等信息:
其中员工编号随机生成,为长整型数据;
姓名,学历,电话号码,地址等均为字符串型数据,由用户输入;
性别为单个字符,男性用M表示,女性用W表示,用户输入;
年龄与工资均为普通整型数据,用户输入。
3、2系统存储结构设计
在设计系统时定义了一组囊括1000人的结构体变量structworker-information【1000】,其中,每个结构体变量之中又定义longint型number;
charname[],sex,,education,phone,address;
intsalary,age用以保存一个人的不同信息数据。
因为C语言中只能定义同一类型数据的集合,但事实上生活中所接触到的数据多种多样,其中各自之间又有着这样或那样的联系,因此,编程人员才特意开发出结构体型变量,用以储存多种不同类型却又有关联的数据。
3、3系统文件使用说明
系统工作时,预先生成或打开以中文“职工信息管理系统”命名的dat格式的文件,在录入员工数据,修改,删除时调用了save()函数打开文件用fwrite(p,sizeof(worker-information),1,fp)函数随即保存数据为二进制形式,在主界面之下,程序一经运行,会进入load()函数,利用fread(p,sizeof(worker-information),1,fp)函数读取文件信息到内存里头。
intload(structworker_information*p)//职工信息读入函数//
{FILE*fp;
if((fp=fopen("
职工信息管理系统、dat"
"
rb"
))==NULL)
return0;
do
{fread(p,sizeof(structworker_information),1,fp);
p++;
}while(feof(fp)==0);
while((*p1)、number>
0)
p1++;
fclose(fp);
return0;
}
4系统功能实现及代码描述
4、1录入职工信息模式
首先就是进入input函数,依次输入姓名,年龄,性别…、、等等,随后会显示一个提示窗口——》“结束输入请按“#””,此时如果不按#,则会重复调用input函数自身,进入下一位职工信息的录入,否则就会结束input函数的调用,跳出循环。
流程图如图4-1所示:
图4-1录用职工信息
4、2浏览全体职工信息
在main()主函数菜单之下调用Output函数,输出已录入现存的职工数据,此功能较为简便,故在此不予以特别概述。
流程图如图4-2所示:
图4-2浏览职工信息
4、3查询职工信息模式
主函数之下调用search函数进入查询,该功能之下又衍生出三个分支1、按编号查询;
2、按学历查询;
3、按电话号码查询;
凡此三类。
查询开始时,先输入所要查询的数据当输入查询信息找到与其相匹配的数据时,输出相应职工信息跳会search()主函数,否则显示“您所查询的用户数据不存在”。
流程图4-3如下:
图4-3职工信息按编号删除
4、4删除职工信息
主函数之下调用delete函数进入删除页面,该功能之下又衍生出2个分支:
1、按编号删除;
2、按姓名删除;
3、退出删除模式;
开始时,先输入所要删除的员工的相应数据,当输入查询信息找到与其相匹配的数据时,执行循环结构从该职工的后一位开始,以叠罗汉的形式从后往前覆盖,否则显示“inputerror,pleasetryagain”,最后都会返回删除主界面之下。
流程图4-4如下:
图4-4删除职工信息
4、5修改职工信息模式
该功能运用与删除功能类似,主函数之下调用correct函数进入修改页面,该功能之下只能按职工编号修改,开始时,先输入所要删除的员工的相应数据,当输入查询信息找到与其相匹配的数据时,执行循环结构从该职工的后一位开始,以叠罗汉的形式从后往前覆盖,否则显示“inputerror,pleasetryagain”,最后都会返回删除主界面之下。
图4-5修改职工信息
5系统测试
5、1职工信息录入模式
程序图5-1所示:
图5-1录入职工信息
5、2职工信息浏览模式:
在main()主函数菜单之下调用Output函数,输出已录入现存的职工数据(职工数据不得大于1000人份),此功能较为简便,故在此不予以特别概述。
程序功能如图5-2所示:
图5-2浏览职工信息
5、3职工信息查询模式
主函数之下调用search函数进入查询,该功能之下又衍生出三个分支:
1、按编号查询;
程序图5-3所示:
图5-3查询职工信息
5、4职工信息删除模式
程序图5-4所示:
图5-4删除职工信息
5、5职工信息修改模式
程序图如图5-5所示:
图5-5修改职工信息
6体会
这次的课程设计,准确来说,难度一般,只不过要想办法讲函数各功能之间衔接恰当,就不就是那么简单了;
再者数据输入时的缓冲溢出问题,要么只能用getchar(),要么就用fflush(stdin)来实现清理缓冲区的功能,始终未能找到一个更妥帖的办法;
其次,文件的读写格式,以及文件的运用,使用起来要注意的细节太多,并且形式僵硬,容易出错,限制太多;
最后,就就是论文的完成,说实话,真就是没有话好说,基本就是黔驴技穷,还有就就是流程图,真就是难画。
参考文献
[1]谭浩强、C语言程序设计[M]、第四版、北京:
清华大学出版社2010
[2]谭浩强、C语言程序设计学习辅导、第四版、北京清华大学出版社2010
[3]何钦铭,颜晖、C语言程序设计[M]、第二版、北京高等教育出版社2012
[4]颜晖,柳俊、C语言程序设计习题与实验指导[M]、北京高等教育出版社2012
[5]杨开成、白话C语言[M]、北京电子工业出版社,2010
[6]杨路明、C语言程序设计[M]、第二版、北京:
北京邮电大学出版社,2007
[7]杨路明、C语言程序设计上机指导与习题选解[M]、第二版、北京北京邮电大学出版2007
[8]张永福、C语言程序设计[M]、辽宁:
辽宁大学出版社,2007
附录:
源程序清单
#include<
stdio、h>
stdlib、h>
string、h>
time、h>
structworker_information
{
longnumber;
charname[10];
charsex;
intage;
chareducation[9];
intsalary;
charaddress[16];
charphone[12];
};
#defineM1000
structworker_information*p1;
voidprint1(structworker_information*);
voidprint2(structworker_information*);
voidmain()
charmenu();
voidinput_information(structworker_information*);
voidoutput_information(structworker_information*);
intsearch_information(structworker_information*);
intdelete_information(structworker_information*);
intcorrect_information(structworker_information*);
voidreserve(structworker_information*);
intload(structworker_information*);
structworker_informationinform[M],*p=inform;
p1=inform;
load(p);
charx;
while(x=menu())
{
switch(x)
case'
1'
:
input_information(p1);
reserve(p);
printf("
信息录入完毕\n"
);
break;
2'
您正在进行职工信息浏览:
\n"
output_information(p);
3'
search_information(p);
4'
您正在进行职工信息删除:
delete_information(p);
5'
您正在进行职工信息修改:
correct_information(p);
6'
printf("
确认要格式化全部数据y/n?
"
scanf("
%c"
&
x);
getchar();
if(x=='
y'
||x=='
Y'
)
{
p1=p;
reserve(p);
格式化成功,谢谢使用、、、、、、、\n"
}
0'
exit(0);
default:
inputerror,pleasetryagainandlater、、、\n"
system("
pause"
cls"
printf("
thanksforyourusing,bye-bye\n"
}
charmenu()//*****************菜单选项**********//
\n职工信息管理系统:
**********************************************\t莫不\n"
*\t1、职工信息录入模式*\t失离\n"
*\t2、职工信息浏览模式*\t莫不\n"
*\t3、职工信息查询模式*\t忘弃\n"
*\t4、职工信息删除模式*\n"
*\t5、职工信息修改模式*\t仙芳\n"
*\t6、格式化磁盘数据*\t寿龄\n"
*\t0、退出系统*\t恒永\n"
**********************************************\t昌继\n\n"
请输入您的选择"
charch;
fflush(stdin);
scanf("
ch);
returnch;
voidinput_information(structworker_information*p)//职工信息录入模式//
您正在进行职工信息录入环节:
srand(unsigned(time(NULL)));
p->
number=rand()%1000+2011000;
请输入职工号为%d的职工个人信息:
p->
number);
请输入职工姓名:
%s"
name);
请输入职工年龄:
%d"
p->
age);
getchar();
请输入职工性别<
W->
女,M->
男>
sex);
请输入职工学历:
education);
请输入职工薪水:
salary);
请输入职工地址:
"
address);
请输入电话号码:
phone);
p1++;
按#号键回车后终止:
if(getchar()!
='
#'
input_information(p);
voidoutput_information(structworker_information*p)//职工信息浏览模式//
____________________________________________________________________________\n"
print1(p);
inti=0;
while(p<
p1)
print2(p);
p++;
i++;
if(p==p1)
printf("
信息在录者共计%d人、、、、\n"
i);
putchar(10);
if(p1==p&
&
i==0)
nothingatall,pleaseadded\n"
intsearch_information(structworker_information*p)//职工信息查询模式//
intsearch_information1(structworker_information*,long);
intsearch_information2(structworker_information*,chara[]);
intsearch_information3(structworker_information*,chara[]);
if(p==p1)
数据库空白,该功能暂无法执行,请添加数据、、、、、、\n"
chari,a[11];
intx;
do{
您正在进行职工信息查询:
%8d、按职工编号查询、%8d、按职工学历查询、\n%8d、按电话号码查询、%8d、退出当前页面、\n"
1,2,3,0);
请输入您的选择:
i);
switch(i)
pleaseinputtheworker'
snumber:
search_information1(p,x);
seducation:
scanf("
a);
search_information2(p,a);
sphonenumber:
search_information3(p,a);
inputerror,tryagainplease:
if(i!
{
}while(i!
intsearch_information1(structworker_information*p,longi)//职工信息按编号查询//
for(intx=0,n=0;
p<
p1;
p++,x++)
if(i==p->
number)
{if(n==0)
theresultis:
print1(p);
n++;
print2(p);
if(p==p1&
n!
=0)
找到适配信息者%d人、、、、、、\n"
n);
if(n==0)
Failedtofindamatchwith,pleasetryagain\n"
returnn;
intsearch_information2(structworker_information*p,chari[])//职工信息按学历查询//
for(intn=0;
p++)
if(strcmp(i,p->
education)==0)
print1(p);
intsearch_information3(structworker_information*p,chari[])//职工信息按电话号码查询//
phone)==0)
{if(n==
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工 信息管理 系统