职工信息管理系统课程设计.docx
- 文档编号:17708678
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:39
- 大小:624.03KB
职工信息管理系统课程设计.docx
《职工信息管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统课程设计.docx(39页珍藏版)》请在冰豆网上搜索。
职工信息管理系统课程设计
摘要
C是一种计算机程序设计语言,可以作为系统设计语言编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序,因此它的应用范围广阔。
本系统是根据职工信息管理工作的需要,通过C语言开发一个职工信息管理系统来实现对职工信息进行有效、准确的管理。
整个系统从简便、实用的要求出发,完成职工信息管理的全过程,包括职工信息的录入、修改、删除、查找、输出等功能。
本文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。
系统的说明了系统的设计思路、总体设计、各个功能模块的设计与实现方法。
关键词:
职工信息管理系统,C语言,信息采集模块
1.程序设计任务书要求·····································4
2.程序基本框架···········································5
3.C语言课程设计的目的···································6
4.详细设计报告···········································7
5.程序清单···············································22
6.课程设计总结···········································30
后记·····················································32
参考文献·················································33
课程设计任务书
2013—2014学年第一学期
专业班级:
学号:
姓名:
课程名称:
C程序设计
完成期限:
自2013年12月19日至2013年12月26日共1周
课程设计题目
职工信息管理系统的设计与应用
设计目的:
进一步加深、巩固学生所学专业课程(《C程序设计》)的基本理论知识,进一步培养学生综合分析问题和解决问题的能力。
掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能,充分发掘广大同学的潜力,使得同学们能够通过本次课程设计而得到全面的锻炼。
一、功能要求:
职工信息管理系统是企业职工管理中的一项重要内容,该系统功能主要包括:
(1)定义结构体类型数组存放职工信息。
(2)编写函数输出系统界面。
(3)编写各函数实现系统的追加、删除、统计、查询等功能。
该同学主要完成系统输出界面和主函数,追加,删除,统计,查询模块的设计。
二、设计任务:
1、设计职工信息管理系统的功能框图、流程图;2、编写该系统的源
程序代码;3、上机调试;4、撰写课程设计报告。
三、开发工具:
TurboC2.0/Vc++6.0及UCDOS7.0。
四、进度安排:
1、前4天进行总体设计和模块编写与调试。
2、后3天进行课程设计报告的撰写和课程设计答辩。
五、主要参考资料:
[1]Stephenprata.Cprimerplus(第五版).北京:
人民邮电出版社,2010.4
[2]谭浩强.C程序设计(第三版).北京:
清华大学出版社,2005.7
[3]张磊等.C语言程序设计教程.北京:
中国铁道出版社,2007.8
C语言程序设计的目的:
职工信息管理系统,并且可以实现以下功能:
v系统能够以菜单的方式显示所要选择执行的功能
v程序可以录入职工的信息
【职工信息包括(姓名、职工号、性别、年龄、学历、工资、地址、电话、职位)】
v程序可以修改职工的信息
v程序可以删除职工的信息
v程序能够查询到所需要的职工的信息
【查询时可按姓名、学历或职工号查询】
程序能够输出所录入的所有职工的信息
职工信息管理系统详细报告
A、主函数:
【程序】
#include
#include
#include
structzhigong{//定义数据结构变量,下面九个成员列表
charname[30];//姓名
charzhigonghao[30];//职工号
charxingbie[30];//性别
charage[30];//年龄
charxueli[30];//学历
charzhiwei[30];//职位
chargongzi[30];//工资
chartel[30];//电话
chardizhi[100];//地址
}x;
FILE*fp;//定义一个指向文件型数据的指针变量
//(定义fp是一个指向FILE类型数据的指针变量,可以使fp某一个一个文件的文件信息区,通过该文件信息区中的信息就能够访问该文件)
voidzhujiemian();//查询系统的主界面
voidtianjia();//添加职工信息
voidchazhao();//查找职工信息
voidxiugai();//修改职工信息
voidshanchu();//删除职工信息
voidshuchu();//输出职工信息
voidnameway();//按姓名查询职工信息
voidxueliway();//按学历查询职工信息
voidzhigonghaoway();//按职工号查询职工信息
intmain(void)
{
intm;
while
(1)
{
zhujiemian();
scanf("%d",&m);
if(m>=0&&m<=5)
{
switch(m)
{
case1:
system("cls");//清空主界面
tianjia();
break;
case2:
system("cls");//清空主界面
chazhao();
break;
case3:
system("cls");//清空主界面
xiugai();
break;
case4:
system("cls");//清空主界面
shanchu();
break;
case5:
system("cls");//清空主界面
shuchu();
break;
case0:
exit(0);
}
printf("功能执行完毕,请您再次选择!
\n");
}
else
printf("输入错误,请您重新输入。
\n");
}
return0;
}
上面的函数包括职工信息管理系统所需的所有函数声明,定义了一个结构数组来处理诸多的变量,在下面的intmain(void)语句中对在函数头的那么多的变量进行调用,以使本系统能够顺利运行!
B、主界面:
【程序】
voidzhujiemian()
{
printf("\t\t#############################################\n");
printf("\t\t欢迎进入追梦责任有限公司职工信息管理系统\n");
printf("\t\t#############################################\n");
printf("\t\t添加,请按1查找,请按2\n");
printf("\t\t修改,请按3删除,请按4\n");
printf("\t\t输出,请按5退出,请按0\n");
}
函数截图:
这是函数的主界面的显示图,您如果想进行您所想要的实现的功能,请按提示输入对应的序号来进行操作······
C、录入职工信息:
【程序】
voidtianjia()
{
if((fp=fopen("filel","a"))==NULL)//打开输出文件,并使fp指向此文件
{
printf("该文件不能够被打开\n");//如果打开时出错,就输出“打不开”的信息
exit(0);//终止程序
}
printf("请输入职工的信息:
姓名、职工号、性别、年龄、学历、职位、工资、电话、地址\n");
scanf("%s%s%s%s%s%s%s%s%s",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
fclose(fp);//关闭前面锁打开的文件,避免文件中数据的丢失
}
函数截图:
这是添加职工信息的显示图,按照提示您可以输入您想要输入的职工的信息,执行完毕后按回车键即可返回主界面,您在进行其他操作······
D、查找职工信息:
【程序】
voidchazhao()
{
inta;
printf("\t\t若按姓名查找,请选择:
1\n");
printf("\t\t若按学历查找,请选择:
2\n");
printf("\t\t若按职工号查找,请选择:
3\n");
scanf("%d",&a);
if(a>=1&&a<=3)
{
switch(a)
{
case1:
nameway();
break;
case2:
xueliway();
break;
case3:
zhigonghaoway();
break;
}
printf("您所选择的该操作执行完毕\n");
}
else
printf("\t\t对不起,您的输入有误\n");
}
函数截图:
在查找职工信息是您可以用姓名、学历或职工号进行查询,按照提示进行您的操作,下面我渐进性详细说明······
上面是所有员工的信息,查询方式有以下三种
按姓名查找:
【程序】
voidnameway()
{
intk=0;
charnam[30];//声明要查找的职工姓名
printf("请输入您要查找的职工的姓名:
");
scanf("%s",nam);
if((fp=fopen("filel","rb"))==NULL)//打开输出文件,并使fp指向此文件
{
printf("该文件不能够被打开\n");//如果打开时出错,就输出“打不开”的信息
exit(0);//终止程序
}
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s%s",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
if(strcmp(nam,x.name)==0)
{
printf("已查到此人,期记录为:
\n");
printf("%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
k=1;
}
}
if(k==0)
printf("对不起,没有您想要查找的人!
\n");
fclose(fp);//关闭前面锁打开的文件,避免文件中数据的丢失
}
程序执行结果截图:
以上是按姓名查找您所需要的职工的信息······
按学历查询:
【程序】
voidxueliway()
{
intb=0;
charxuel[30];
printf("请输入您想要查询的学历:
");
scanf("%s",xuel);
if((fp=fopen("filel","rb"))==NULL)//打开输出文件,并使fp指向此文件
{
printf("该文件不能够被打开\n");//如果打开时出错,就输出“打不开”的信息
exit(0);//终止程序
}
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
if(strcmp(xuel,x.xueli)==0)
{
printf("已查到此人,期记录为:
\n");
printf("%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
b=1;
}
}
if(b)
printf("对不起,没有您想要查询的人\n");
fclose(fp);//关闭前面锁打开的文件,避免文件中数据的丢失
}
以上是按学历查询的结果······
按职工号查询:
【程序】
voidzhigonghaoway()
{
intc=0;
charzhigongha[30];
printf("请输入您索要查询的职工的职工号:
");
scanf("%s",zhigongha);
if((fp=fopen("filel","rb"))==NULL)//打开输出文件,并使fp指向此文件
{
printf("该文件不能够被打开\n");//如果打开时出错,就输出“打不开”的信息
exit(0);//终止程序
}
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s%s",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
if(strcmp(zhigongha,x.zhigonghao)==0)
{
printf("已查到此人,期记录为:
\n");
printf("%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
c=1;
}
}
if(c)
printf("对不起,没有您想要查找的人!
\n");
fclose(fp);//关闭前面锁打开的文件,避免文件中数据的丢失
}
E、修改职工信息:
【程序】
voidxiugai()
{
intk=0;
longa;
charnamekey[30];
printf("请输入您要修改的职工的姓名:
");
scanf("%s",namekey);
if((fp=fopen("filel","r+"))==NULL)//打开输出文件,并使fp指向此文件
{
printf("该文件不能够被打开\n");//如果打开时出错,就输出“打不开”的信息
exit(0);//终止程序
}
while(!
feof(fp))
{
a=ftell(fp);
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
if(!
strcmp(namekey,x.name))
{
k=1;
break;
}
}
if(k)
{
printf("已查到,期记录为:
\n");
printf("%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
printf("请输入信息(按姓名、职工号、性别、年龄、学历、职位、工资、电话、地址的顺序输入):
\n");
scanf("%s%s%s%s%s%s%s%s%s",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
fseek(fp,a,0);
fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
}
else
printf("对不起,没有查到此人,无法进行修改\n");
fclose(fp);//关闭前面锁打开的文件,避免文件中数据的丢失
}
程序之执行结果截图:
{1}
{2}
以上是程序执行前后的职工信息的修改结果,您如果还想修改其他的职工的信息,只需进行如同以上的操作即可······
F、删除职工的信息:
【程序】
voidshanchu()
{
intm,k=0;
longa;
charnamekey[30];
printf("请输入您要删除的职工的姓名:
");
scanf("%s",namekey);
if((fp=fopen("filel","r+"))==NULL)//打开输出文件,并使fp指向此文件
{
printf("该文件不能被打开\n");//如果打开时出错,就输出“打不开”的信息
exit(0);//终止程序
}
while(!
feof(fp))
{
a=ftell(fp);
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
if((strcmp(namekey,x.name))==0)
{
k=1;
break;
}
}
if(k==1)
{
printf("已查到您所需要的信息,其记录为:
\n");
printf("%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
printf("确实要删除,请按1;如果不删除,请按0\n");
scanf("%d",&m);
if(m==1)
{
fseek(fp,a,0);
fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n,",","","","","","","","",");
}
}
else
printf("对不起,没有查到此人\n");
fclose(fp);//关闭前面锁打开的文件,避免文件中数据的丢失
}
上面是删除前的结果,下面我将删除欣欣、伟伟的职工信息
下面是删除后的结果
G、输出职工的信息:
【程序】
voidshuchu()
{
if((fp=fopen("filel","r"))==NULL)//打开输出文件,并使fp指向此文件
{
printf("\n该文件不能被打开\n");//如果打开时出错,就输出“打不开”的信息
exit(0);//终止程序
}
printf("\n%20s\n","职工信息管理系统");
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
printf("%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",x.name,x.zhigonghao,x.xingbie,x.age,x.xueli,x.zhiwei,x.gongzi,x.tel,x.dizhi);
}
fclose(fp);//关闭前面锁打开的文件,避免文件中数据的丢失
}
下面是输出结果的屏慕截图:
本程序的运行过程到此已全部执行完毕······
下面是该程序的其它介绍:
在输入的数大于5并且小于0时的结果:
输入不存在的职工姓名时:
在该程序中我还引入了文件的使用,如下:
FILE*fp;//定义一个指向文件的指针变量fp
用fopen函数打开数据文件:
fopen(文件名,使用文件方式);
用fclose函数关闭数据文件:
fclose(文件指针);
使用文件的方式
文件的使用方式
含义
如果指针指定的文件不存在
“rb+”(读写)
为了读和写,打开一个二进制文件
出错
“wb”(只写)
为输出数据,打开一个二进制文件
出错
“rb”(只读)
为输出数据,打开一个二进制文件
出错
“w”(只写)
为了输出数据,打开一个文本文件
新建文件
“r”(只读)
为输入数据,打开一个已存在的文本文件
出错
“wb+”(读写)
为了读和写,建立新的二进制文件
建立新文件
“r+”(读写)
为了读和写,打开一个新文本文件
出错
程序清单
#include
#include
#include
structzhigong{//定义数据结构变量,下面九个成员列表
charname[30];//姓名
charzhigonghao[30];//职工号
charxingbie[30];//性别
charage[30];//年龄
charxueli[3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工 信息管理 系统 课程设计