职工信息管理系统 课设Word文档格式.docx
《职工信息管理系统 课设Word文档格式.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统 课设Word文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
刻盘时每人一个文件夹,以学号姓名命名,如:
“1417700401刘鑫”,学号和姓名中间不要加任何符号;
文件夹内的内容如第11条所示,刻好后交给指导老师。
四、排版样例如下:
*******************
实践教学
软件学院(专科)
2014年秋季学期
计算机应用基础课程设计说明书
题目:
职工信息管理系统
专业班级:
2014级软件4班
姓名:
周旭旭
学号:
1417700133
指导教师:
马威
成绩:
摘要
21世纪的头十几年,随着计算机管理系统的成熟与完善,我国公司和企业的管理方式都逐渐使用电子信息处理系统代替传统的人工管理方式,各大高校校园也不例外。
因为电子信息处理系统比人工管理,更加方便快捷及时有效。
所以,一个好的职工信息管理程序在企业及用人单位扮演着重要的角色和地位,兰州理工大学软件技术专业致力于针对学生这方面开发的学习与实践。
培养我们学生日后可以成为这方面的后备人才。
我们第17小组被分配设计这样一个职工信息管理系统。
为了设计一个功能完善针对工大教职工的职工信息管理系统,在设计中我们小组根据每个人的特长,做出了明确分工,目的是要让本组成员都从这次课程设计中学到编程经验与团队精神。
“职工信息管理系统”,我们的系统以菜单方式工作,编写存放有职工基本信息,包含职工工号,姓名,性别,出生年月,学历,职务,工资,住址,电话等,并且要求录入职工号不重复;
录入的职工号信息要求用文件形式保存,并可以对其进行浏览、查询、修改、删除,录入等基本操作,建立职工信息管理的文件。
关键词:
文件;
浏览;
查询;
修改;
录入。
职工信息管理;
序言
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。
管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展要高效率的把内部活动有机的组织起来,就必须建立自身特点相适应的管理信息系统。
17小组设计的是一个关于职工信息管理的数据库系统,通过这个系统,管理员可以简捷方便的对职工信息进行录入、删除、修改、排序、显示等功能,而用户也可以通过这个系统对职工信息进行查询等功能。
在日益发展的现代社会,一个高效实用的职工信息管理系统已经是企业必不可少的一个管理工具,它可以使企业在管理方面减少很多时间,本课程设计针对现代社会企业对员工信息的管理而设计,现在随着社会的进步和人民生活水平的逐渐提升,企业职工数量越来越多,相应的所需要处理的的信息也越来越复杂,而凭借人力不可能准确及时地处理所有信息,因此,编写此程序是极为必要的。
但由于各个企业公司的情况不同,所以难以编写一个通用的职工管理程序。
此程序是根据本校情况和老师指导所编写,用以解决教师对理工大本部校区教师职工的添加、修改、删除以及职工对其资料的查询等工作。
1.职工信息管理系统设计,使之包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
2.使这个管理系统具有以下功能:
可以使系统以菜单方式工作、能够录入、查询、删除、排序职工的信息。
3.可以按学历、按工号查询职工信息。
使查询职工信息变得方便、简单。
完成题目所要求的全部功能,并加入本组自己的设计风格,在界面友好的基础上,增加一些附加功能,使得功能更为强大,最终得到一个可靠性高,易于操作的职工信息管理的系统。
因为自身水平有限,我们只能编译一个简单的处理程序,菜单设计,界面操作,都只能采用最为原始的方式执行运行。
但是我们相信在日后的学习实践中,我们课设第17小组的成员在日后会做出更好的程序,方便日后的公司企业,各事业单位更好的管理处理自己的职工人事工作。
人员分工安排
(1)小组负责人:
周旭旭
分工:
负责编辑主函数,设计主界面,以及结束界面。
员工信息查询系统,员工信息删除系统的编译和调试。
以及总体整合一起的调试。
课设作业的编写。
(2)小组成员1:
徐路
负责编辑员工录入信息函数,员工显示信息函数的编译和调试。
(3)小组成员2:
杜荣贵
负责编辑员工信息排序函数,员工信息退出函数的编译和调试
1、需求分析
随着兰州理工大学的学生规模不断增加,兰州理工大学的师资力量也随着有了从量变到质变的一个发展过程,教职工是学院重要的组成基体,是学院在无形资产中份量占比最大的一部分,有效便捷的管理学院教职工的信息及所有与之相关的工作内容就显得刻不容缓。
现在,全国大部分高校都在使用信息化管理技术应用到高校各个方面的管理当中,那么教职工信息管理也在其中。
只有采取信息化管理技术,才能实现教职工信息管理办公的无纸化、便捷化、高效化。
所以,对高校教职工信息管理系统的开发与应用将成为高校管理工作的未来趋势。
所以,针对现实需求的情况,以及市场内部的供需关系。
兰州理工大学软件学院针对现实的自己的实际情况,在软件专业的课设任务中,有意将此类职工信息管理系统作为我们软件技术专业学生的作业,培养我们学生对软件需求的分析工作,以及自身对此类软件的理解,培养我们日后为企业工作编程的能力。
熟悉我们对C语言开发环境的熟悉,以及日后开放大型软件,所需要的团队协作能力,以及寻求发现问题,探索问题,解决问题的能力。
我们课设第17小组的软件根据课设题目的要求,做出一个可以实现,对兰州理工大学校园内部老师职工信息的读取,显示,修改,删除,录入,排序功能。
每一个功能都能对老师所需要的变动进行改变。
而这些也正是目前兰州理工大学人事管理所必须要实现的功能,因为需要更方便的确定人事管理以及变动情况的修改,比如老师们的调职,离职,退休等,都需要对职工信息的删除,以及新进老师的资料状况,我们就需要录入老师的详细信息,以及学校负责人事管理的老师就需要对每一个需要知道情况的老师进行显示调查。
但是为了方便负责老师的查询,我们特意增加了排序功能的实现,目的是方便老师在大量职工信息读取的时候,可以实现有索引的快速方便实现。
而且,因为职工内部管理系统针对的对象是少部分可以管理的老师。
所以在开始的时候,我们设置了进入密码菜单,目的就是实现针对少部分人权限的确认,确保信息的安全性。
根据现实的需求,我们设计了工大职工管理系统。
2、设计思路
2.1总体思想
17小组的工大职工信息系统主要的设计思路是实现对工大教职工信息的录入、删除、排序、查询等主要功能。
教职工信息以文件的形式存储。
系统的人机接口采用简单的字符界面进行交互。
系统的设计方法是结构化设计方法,采用C语言进行开发。
软件开发平台采用VisualC++6.0,主要考虑在VC中可以使用中文,用户交互界面设计比较美观清晰。
17小组根据工大职业人事部的需求分析结果,工大职工信息管理系统可以分为显示员工资料、录入员工资料、员工信息查询、删除员工信息、员工信息排序、退出信息系统六个子版块。
各自对应需求分析里的实现结果。
如图3-1所示。
图3-1
2.2总体思路
17小组根据上图的初步思路框架,设计了如下的主函数流程图,进一步为函数设计做出了初步源程序思路模型。
围绕以下的主体构架,我们又将其中的显示,录入,查询,删除,排序,退出,六大子版块各自分工,徐路主要负责显示,录入子版块的编译和操作。
我主要负责查询和删除的子版块的编译与操作还有一些开始与退出界面的设计。
杜荣贵主要负责排序和退出的子版块的编译与操作。
我们各自根据负责部分,又对自己的子版块进行了简单的流程图设计。
并围绕自己的子版块进行源程序编程设计,最后我们在进行整体整合,我们主要实现了是菜单界面的设计。
在这一过程中,我们有着详细的各自分工。
并在此过程中有着各自的收获。
主函数
2.2.117小组成员徐路负责板块
显示函数
录入函数
2.2.217小组组长周旭设计部分
查询函数
删除函数
开始,主菜单,结束界面设计(突出17小组成员名字的个性化设计)
2.2.317小组成员杜荣贵负责板块
排序函数
退出函数
主要实现主程序的结束退出菜单功能。
3、详细设计
3.1数据结构设计
3.1.1定义数组
定义一维数组structworkerwork[50];
用于定义员工的总人数,当员工总人数超过50后便不能再录入员工资料。
3.1.2定义结构体
结构体structworker用于存放存放员工的资料,包括员工的基本信息:
工号,姓名,年龄,学历,工资,住址,电话号码。
structworker
{
intnum;
工号
charname[15];
名字
charxingbie;
性别
intage;
年龄
charexp[6];
学历
intwage;
工资
charaddress[20];
住址
chartel[12];
电话号码
};
intcount=0;
当前工人个数
intsort_type=0;
当前排序类型
3.1.3函数功能描述
函数主界面:
voidhomepage();
显示职工成绩信息:
voiddisplay();
录入职工信息信息:
voidinput();
删除职工信息:
voiddel();
查询职工信息:
voidfind();
排序职工信息:
voidsort();
用户等待函数:
voidwaiting();
退出系统函数:
voidquit();
3.2界面设计
3.2.1用户登录界面
此模块用于工大职工信息管理系统欢迎界面,同时要求用户输入用户名和密码,只有当两者都正确时,才能进入到系统,当有三次错误,系统就会自动退出,如图4-1所示。
图4-1
代码实现:
voidmain()
{inti=0,k=0;
charusername[15],pwd[6];
for(i=0;
i<
3;
i++)
{
printf("
\n请输入用户名:
"
);
gets(username);
printf("
\n请输入6位密码:
gets(pwd);
if((strcmp(username,"
admin"
)==0)&
&
(strcmp(pwd,"
123456"
)==0))
\n您已经成功登录"
k=1;
for(i=0;
20;
."
Sleep(100);
}
system("
cls"
homepage();
break;
else
\n用户名或密码无效请重新输入:
\n"
continue;
if(k==0)
\n连续输入错误3次将退出程序\n"
Sleep(2000);
quit();
}
在此模块中,if((strcmp(username,"
Admin"
)==0)),用于检测用户名和密码是否正确。
for(i=0;
此段代码用于获取账户名和密码并计数是否超过三次,超过三次,则有Sleep(2000);
实现退出程序。
3.2.2主界面
此模块主要实现进入主界面和根据用户需要进入相应界面,包括显示界面,录入界面,删除界面,排序界面并可以选择退出,如图4-2所示:
图3-2
代码实现
voidhomepage()
charn;
while((n!
='
1'
)&
(n!
2'
3'
4'
5'
0'
))
\n请选择:
fflush(stdin);
scanf("
%c"
&
n);
switch(n)
case'
:
display();
if(count<
50)input();
{printf("
记录数已满\n"
break;
……
此模块中,switch(n),case()用于判定主界面的选项,根据选项进行设置。
其中if(count<
50)用于限制录入员工的人数,超过50名员工就无法再进行录入,并且直接通过sleep(2000);
homepage()回到主界面上。
3.2.3显示界面
此模块是用来显示员工的资料信息的,包括工号,姓名,性别,年龄,学历,工资,住址,电话等基本信息,以便管理员能够及时的掌握到所要员工的资料。
如图4-3所示。
图3-3
voiddisplay()
inti;
charc;
备注:
学历(1=中专,2=大专,3=本科,4=硕士,5=博士,6=其它):
\n\n\n"
switch(sort_type)
case0:
\t\t未排序:
\n\n"
case1:
printf("
\t\t按工号排序:
//sort();
break;
case2:
\t\t按工资排序:
//sort();
\t工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n"
……
此模块中有三种显示方式,第一种是无序显示,就是按照录入时的顺序显示,,还有两种分别是是按照工号和工资来排序。
后两种显示方式主要是有switch(sort_type)语句来实现的,它相当于一个开关,与下面的case()相对应,相括号中的数字相对应时,就会执行相应的语句。
3.2.4录入界面
这个模块主要是录入员工资料,录入的顺序如图所示,当录入的员工人数满到50后,便不能再进行录入员工资料,此时已经达到了录入人数的最大值。
如图3-4所
图3-4
voidinput()
{inti,numcheck;
do
{printf("
工号:
%d"
work[count].num);
numcheck=1;
if(work[count].num<
0)
请输入正整数:
count;
if(work[count].num==work[i].num)
{numcheck=0;
工号重复,重新输入:
c=getchar();
if(c=='
y'
||c=='
Y'
)
count++;
此模块中if(work[count].num==work[i].num);
numcheck=0;
很是重要,它判定录入的工号是否重复,重复的话会有重新输入的提示,避免职工信息的重复。
当记录数已满时,通过sleep(2000),使之回到主界面,进行其他选项设置。
3.2.5信息查询界面
此模块用于职工信息的查询,共分为两种查询方式,一是按工号查询,二是按学历查询。
用if函数来实现,可快速查询到职工的姓名、工号、学历、电话等详细信息。
如图3-5所示。
图3-5
voidfind()
inti,j;
intchoice=0;
intfind_num;
charfindedu[6];
\t\t请选择查询功能:
\t1.按工号查询\n"
\t2.按学历查询\n"
请输入选择:
scanf("
choice);
}while((choice!
=1)&
(choice!
=2));
if(choice==1)
\n\t请输入要查询的职工号\n"
find_num);
\n正在查询,请稍候"
system("
\n\n按任意键返回\n"
c=getch();
此模块中,通过while((choice!
这个选择来实现查询的方式,选择“1”为工号查询,选择“2”则为按学历查询。
if(find_num==work[i].num)即为根据职工号进行查询,strcmp(findedu,work[i].exp)根据学历进行职工信息查询。
3.2.6删除界面
此模块用于删除员工信息,对于已经无用的员工信息进行删除,我们采用按工号删除的模式。
如图3-6所示。
图3-6
voiddel()
inti,j,del_num,match=0;
请输入要删除的员工工号:
del_num);
waiting();
if(work[i].num==del_num)
match=1;
for(j=i;
j<
j++)
work[j]=work[j+1];
count--;
此模块中,首先还是要先进职工信息查询模块,然后再根据查询到的职工号进行删除。
即为显示要删除的职工号,if(c=='
)则是确定是否删除选定的职工信息。
最后通过homepage()回到主界面。
3.2.7排序界面
此模块用于对员工信息的排序,对于排序功能,我们主要采用两种排序方式,一种是按照工资排序,一种是按照工号排序,因为两种数据指标比较直观反映教职工的明显分类,所以我们暂时只选用这两种方式来进行排序。
两个选项可以按照自己的需求进行排序,我们现在选择按照工资排序如图3-7所示
图3-7
排序完成后,排序结果会按照排序类型,显示在职工信息显示界面内。
只要在排序完成后,打开在显示界面内,就可以展示排序所有的教职工的数据结果类型。
voidsort()
structworkertemp;
\t\t请选择排序功能:
\t1.按工号排序\n"
\t2.按工资排序\n"
}while((choice!
switch(choice)
count-1;
for(j=0;
count-i-1;
if(work[j].num>
work[j+1].num)
temp=work[j];
work[j+1]=temp;
sort_type=1;
if(work[j].wage<
work[j+1].wage)
sort_type=2;
排序完成!
请按任意键返回查看!
getch();
homepage();
4、运行调试与分析讨论
4.1运行调试
打开源程序工大职工信息管理系统,进入主界面会显示如图4-1的界面
然后输入正确的账户还有密码,会显示如图4-2所示的成功登陆提示说明。
图4-2
反之,如果输入错误超过三次,工大职工信息管