职工信息管理系统.docx
- 文档编号:26518294
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:27
- 大小:330.44KB
职工信息管理系统.docx
《职工信息管理系统.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
职工信息管理系统
内蒙古科技大学
本科生课程设计说明书
题目:
C语言课程设计
——职工信息管理系统
学生姓名:
张静
学号:
1276807349
专业:
计算机科学与技术
班级:
12级计算机(3)班
指导教师:
周李涌
内蒙古科技大学课程设计任务书
课程名称
C语言课程设计
设计题目
职工信息管理系统
指导教师
周李涌
时间
2014.12.31——2015.1.4
一、教学要求
1.巩固和加深学生对C语言课程的基本知识的理解和掌握
2.掌握C语言编程和程序调试的基本技能
3.利用C语言进行基本的软件设计
4.掌握书写程序设计说明文档的能力
5.提高运用C语言解决实际问题的能力
二、设计资料及参数
每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。
职工信息管理系统设计
职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:
v职工信息录入功能(职工信息用文件保存)--输入
v职工信息浏览功能--输出
v查询或排序功能:
(至少一种查询方式)--算法
●按工资查询●按学历查询等
v职工信息删除、修改功能(任选项)
三、设计要求及成果
1.分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)
2.写出详细设计说明(至少包括功能实现分析和模块流程图)
3.编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号)
4.设计完成的软件要便于操作和使用
5.设计完成后提交课程设计报告(请严格按照模板进行排版)
四、进度安排
第一天 选择课程设计题目,分析课题的要求
第二天 编程
第三天 编程及调试
第四天 写课程设计报告
第五天 提交课程设计报告(打印稿及电子稿)
五、评分标准
1.根据平时上机考勤、表现和进度,教师将每天点名和检查
2.根据课程设计完成情况,必须有可运行的软件。
3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。
六、建议参考资料
1.《C语言程序设计》,谭浩强,清华大学出版社
2.《C语言程序设计课程设计》,刘振安,机械工业出版社
第一章需求分析
1.1引言
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。
管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展要高效率的把内部活动有机的组织起来,就必须建立自身特点相适应的管理信息系统。
本组设计的是一个关于职工信息管理的数据库系统,通过这个系统,管理员可以简捷方便的对职工信息进行增加、删除、修改等功能,而用户也可以通过这个系统对职工信息进行查询等功能。
1.2任务概述
(1)职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等,并且要求职工号不重复。
(2)录入的职工信息要求用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作。
(3)职工信息的显示要求有一定的规范格式。
(4)对职工信息应能够分别安编号及按姓名两种方式进行查询,要求能返回所有符合条件的职工的信息。
(5)对职工信息的修改应逐个地进行,在一个职工的信息的更改不影响其他的职工记录。
(6)所设计的系统应以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并要求在此过程中能尽可能地兼容用户使用过程中的异常情况。
1.3数据描述
在主函数的框架下构造结构体
1.4功能需求
本软件是一个很好地职工管理系统,能够实现对职工的管理。
该系统可以让工人管理人员更好的掌握职工的信息,可以实现对工人信息的增加,查找,删除,和修改。
1.输入功能:
一次可以完成自定义职工人数的职工信息记录的输入。
2.删除功能:
对指定职工的信息进行删除。
3.查询功能:
选择某种方式并输入该信息,查询符合条件的职工信息。
4.修改功能:
对指定学生的信息进行修改。
5.显示功能:
将以上功能操作后的职工信息显示出来。
6.保存功能:
将以上功能操作后的职工信息保存下来。
7.退出主菜单。
1.5性能需求
1.输入功能:
一次可以完成自定义职工人数的职工信息记录的输入。
2.删除功能:
对指定职工的信息进行删除。
3.查询功能:
选择某种方式并输入该信息,查询符合条件的职工信息。
4.修改功能:
对指定职工的信息进行修改。
5.显示功能:
将以上功能操作后的职工信息显示出来。
6.保存功能:
将以上功能操作后的职工信息保存下来。
7.退出主菜单。
1.6运行需求
1.编写好程序代码,调试程序使其能正确运行。
2.设计完成的软件要便于操作和使用。
3.
1.7任务计划
利用基本的控制结构,如选择、循环、顺序等结构化的设计思想实现职工信息管理系统的添加、修改、删除等管理功能。
本次设计的职工信息管理系统,采用创建一个结构体数组,用来记录设备的详细信息,然后再通过对数组的各种操作来完成对职工信息的添加、删除、修改、查找等功能。
有效实现添加、修改、删除等功能,在程序设计过程中运用了结构体数组的知识,以完成对职工信息的录入、显示等功能。
第二章概要设计
2.1总体设计
总体设计目标:
使用者可以利用本系统进行对职工信息的各项操作,根据需求进行添加,浏览,查询,删除。
查找所要的工人信息的详细资料。
大大方便使用者对工人信息管理的操作,不仅节约时间,而且提高准确性,可以达到事半功倍的效果。
总体设计策略,本系统采用的事自顶向下,层次化的模块结构。
对高层模块,采用以事务为中心的设计策略,把一个大的模块逐步分解成较小的相对简单的模块。
对低层模块,采用以变换为中心的设计策略。
结合上述分析该系统应包括以下模块:
信息输入、信息查询、信息显示,信息修改,信息删除等各项操作。
2.2数据结构设计
2.3接口设计
表2.1:
函数列表
函数名
函数格式
函数功能
Voidmenu
void
执行菜单
Voidluru
void
录入信息
Voidliulan
void
浏览信息
Voidchaxun
void
查询信息
Voidxiugai
void
修改信息
Voidshanchu
void
删除信息
2.4运行界面设计
图1系统的选择流程图
第三章详细设计
3.1输入模块设计
图2职工信息录入
3.2输出模块设计
分析:
能够更好的输出工人的信息。
图3职工信息输出
3.3查找模块设计
分析:
输入你所要查询的信息,如果有,则输出信息;如果有,则返回主菜单。
图4职工信息查找
3.4修改模块设计
分析:
管理人员可以随时修改工人的信息,可以方便的管理工人的信息。
图5职工信息修改
3.5删除模块设计
分析:
管理人员可以将工人信息进行删除。
以防一些没用的信息干扰有用的信息。
图6职工信息删除
第四章测试分析
4.1测试程序执行情况
主菜单
职工信息录入
职工信息查询
职工信息修改
职工信息删除
第五章课程设计总结
通过这次C程序设计,我掌握了模块化设计方法,能够深入的理解结构化程序设计思想,熟练运用结构化程序设计方法,提高了运用C语言进行程序设计的能力。
在这学期期末考试前期,学院给我们安排的课程设计周,总让我们觉得有些为难我们,这样一个复杂困难而又繁琐的作业,似乎弄得我们既没有时间也没有心情复习,我曾一度的抱怨过学院,在完成它之后,我发现我错了,课程设计不仅让我们巩固了所学的知识,还使得我们学习到了更多平时所忽略的,最重要的是,它磨练了我们,让我们在大学的下一个阶段能更好的成长。
使我相信无论什么事,只要自己真的下决心去做,都是可以做到的,即使不能一次成功,也不能放弃,失败的尽头一定有成功在等着我们的,失败乃成功之母。
实践是检验真理的唯一方法,学了在多的知识不会运用,就如同鸟儿长了翅膀却不会飞翔。
学习C语言就是为了运用它,帮助我们解决一些日常生活中遇到的问题,而此次的课程设计就为我们提供了检验自己能力的机会,也给了我们一次弥补以前缺陷的机会。
总而言之,这次课程设计使我获益匪浅。
附录:
程序代码
#include
struct
{
charname[8];
charnum[10];
charsex[10];
charage[10];
charrecord[10];
charposition[15];
charwanges[10];
chartel[15];
charaddr[50];
}one;
FILE*fp;
voidoutput();
voidsearch();
voidappend();
voidmodify();
voiddelete();
voidnameway();
voidxueliway();
voidnumway();
voidmain()
{
intm;
while
(1)
{puts("\n\n\n\t\t******************************************\n");
puts("\t\t欢迎光临职工信息系统\n");
puts("\t\tWelcometoemployeemanagementsystem\n");
puts("\t\t**********************MENU******************\n");
puts("\n\t\t\t\t1.职工信息添加功能");
puts("\n\t\t\t\t2.职工信息查找功能");
puts("\n\t\t\t\t3.职工信息修改功能");
puts("\n\t\t\t\t4.职工信息删除功能");
puts("\n\t\t\t\t5.职工信息输出功能");
puts("\n\t\t\t\t6.退出\n");
printf("请选择(1-6):
[]\b\b");
scanf("%d",&m);
if(m>=0&&m<=5)
{
switch(m)
{
case1:
append();
break;
case2:
search();
break;
case3:
modify();
break;
case4:
delete();
break;
case5:
output();
break;
case6:
exit();
}
printf("\n\n输入完毕,请选择(1-6)");
}
else
printf("\n\n选择错误,请选择(1-6)");
}
}
voidoutput()
{
if((fp=fopen("worker.xls","r"))==NULL)
{
printf("\n不能打开该文件!
");
exit();
}
printf("\n\n%20s\n","职工信息管理系统");
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
printf("%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
}
fclose(fp);
}
voidappend()
{
if((fp=fopen("worker.xls","a"))==NULL)
{
printf("\n不能打开该文件!
");
exit();
}
puts("\t请输入添加职工信息\n");
puts("\t姓名、职工号、性别、年龄、学历、职位、工资、电话、地址\n");
scanf("%s%s%s%s%s%s%s%s%s",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
fclose(fp);
}
voidsearch()
{
intl;
printf("\t\t\t\t1.姓名查找按\n");
printf("\t\t\t\t2.学历查找按\n");
printf("\t\t\t\t3.职工号查按\n");
scanf("%d",&l);
if(l>0&&l<4)
{switch(l)
{
case1:
nameway();
break;
case2:
xueliway();
break;
case3:
numway();
break;
}
printf("\n\n输入完毕!
!
!
");
}
elseprintf("\t\t\t\t输入有误!
!
!
");
}
voidnameway()
{
intk=0;
charnam[8];
printf("\n请输入您要查找的职工姓名:
");
scanf("%s",nam);
if((fp=fopen("worker.xls","rb"))==NULL)
{
printf("\n不能打开文件!
");
exit();
}
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
if(strcmp(nam,one.name)==0)
{
printf("\n\n已查到,记录为:
");
printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
k=1;
}
}
if(k==0)
printf("\n\n对不起,查无此人!
。
");
fclose(fp);
}
voidxueliway()
{intj=0;
charxueli[10];
printf("\t\t\t\t输入你要查询的学历\n");
scanf("%s",xueli);
if((fp=fopen("worker.xls","rb"))==NULL)
{
printf("\n不能打开文件!
");
exit();
}
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
if(strcmp(xueli,one.record)==0)
{
printf("\n\n已查到,记录为:
");
printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
j=1;
}
}
if(j==0)
printf("\n\n对不起,查无此人!
。
");
fclose(fp);
}
voidnumway()
{
inti=0;
charnumb[10];
printf("\t\t\t\t输入你要查询的共号\n");
scanf("%s",numb);
if((fp=fopen("worker.xls","rb"))==NULL)
{
printf("\n不能打开文件!
");
exit();
}
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
if(!
strcmp(numb,one.num))
{
printf("\n\n已查到,记录为:
");
printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
i=1;
}
}
if(!
i)
printf("\n\n对不起,查无此人!
。
");
fclose(fp);
}
voidmodify()
{
intm,k=0;
longa;
charnamekey[8];
printf("\n请输入您要修改的职工的姓名:
");
scanf("%s",namekey);
if((fp=fopen("worker.xls","r+"))==NULL)
{
printf("\n不能打开该文件!
");
exit();
}
while(!
feof(fp))
{
a=ftell(fp);
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
if(!
strcmp(namekey,one.name))
{
k=1;
break;
}
}
if(k)
{
printf("\n已查到,记录为:
");
printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
printf("\n请输入信息(按照姓名、职工号、性别、年龄、学历、职位、工资、电话、地址的顺序输入):
");
scanf("%s%s%s%s%s%s%s%s%s",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
fseek(fp,a,0);
fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
}
else
printf("\n对不起,查无此人,无法进行修改。
");
fclose(fp);
}
voiddelete()
{
intm,k=0;
longa,b;
charnamekey[8],valid[4];
printf("\n请输入您要删除的职工姓名:
");
scanf("%s",namekey);
if((fp=fopen("worker.xls","r+"))==NULL)
{
printf("\n不能打开该文件!
");
exit();
}
while(!
feof(fp))
{
a=ftell(fp);
fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
if(strcmp(namekey,one.name)==0)
{
k=1;
break;
}
}
if(k==1)
{
printf("\n已查到,记录为");
printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);
printf("\n确实要删除,按1;不删除,按0:
");
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);
}
参考文献
《C语言程序设计》谭浩强清华大学出版社
《C语言程序设计课程设计》刘振安机械工业出版
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工 信息管理 系统