课程设计.docx
《课程设计.docx》由会员分享,可在线阅读,更多相关《课程设计.docx(30页珍藏版)》请在冰豆网上搜索。
课程设计
.课程设计(职工信息管理系统)说明书
目录
第一章开发背景-2-
第二章系统需求-3-
2.1系统总需求-3-
2.2功能需求-3-
2.3数据需求-4-
2.4分工情况-4-
第三章系统设计-4-
3.1系统总功能模块设计-4-
3.2各子功能模块设计-5-
3.3数据结构设计-6-
3.4详细设计-7-
3.4.1主函数-7-
3.4.2职工信息新增-8-
3.4.3职工信息修改-9-
3.4.4职工信息删除-10-
3.4.5.1职工信息查询(工资)-10-
3.4.5.2职工信息查询(学历)-11-
3.4.6显示全体职工信息以及统计职工人数-12-
3.4.7计算全体职工的平均工资以及输出总工资-12-
3.4.8写文件的函数-13-
3.4.9读文件的函数-13-
第四章系统测试-14-
4.1测试的目的-14-
4.2测试手段-14-
4.3信息管理-14-
第五章系统特点及关键技术-14-
5.1主窗口显示功能编号-14-
5.2功能特点-14-
5.3关键技术-15-
第六章结论-15-
第七章参考文献-15-
第八章结束语-15-
附录-16-
第一章开发背景职工信息管理系统就是现有的计算机硬件设备、软件和网络基础设施,通过一定的协议连接起来的在MicrosoftVisualC++6.0环境下开发的,进行职工基本信息的储存、修改、查询及删除等于一身的C语言系统。
具体一点就是职工信息的管理以及一些简单的数据分析、查询功能,例如统计职工人数、统计总工资、计算平均工资、通过学历工资等查询职工信息、删除非正常职工信息、增加职工信息等。
第二章系统需求2.1系统总需求
职工信息管理系统满足职工管理者需求。
职工管理者应用这套系统主要方便对职工的管理以及职工信息的录入、修改、删除、及查询。
还可以通过这个系统完成对职工人数的统计、职工平均工资的计算。
可以一次性输出所有职工信息,便于数据的分析、整理。
通过对职工基本信息的整理有利于更好的调配资源,满足职工的需求。
有利于企业对工作人员的管理及工作的分配。
实现资源的优化配置,避免一些不必要的浪费。
及时地修改、删除、新增职工信息,适应社会发展需求,使职工信息得到最及时地更新。
2.2功能需求
该职工信息管理系统能够为管理人员提供最及时地员工信息,包括员工工号、姓名、年龄、工资、学历、家庭住址、性别、职工联系电话等基本信息。
并根据职工信息计算出员工的平均工资,通过工资、学历查找职工。
为在激烈环境下竞争的企业提供更加精确、及时的职工信息,实现人力资源的优化配置。
整个系统共分为七个模块:
(1):
职工信息新增
(2):
职工信息修改
(3):
职工信息删除
(4):
职工信息查询(工资、学历)
(5):
显示职工信息
(6):
:
计算平均工资
(7):
显示全体职工工资
职工信息新增:
主要对职工信息的录入。
职工信息修改:
主要对有改动职工信息进行录入。
职工信息删除:
对一些退休或辞职等不再在该公司公司就职的人员信息进行删除,也就是用后面的职工信息代替前面的。
职工信息查询:
根据一些特定的要求(学历、工资),查找满足条件职工。
显示职工信息:
就是将所有的在职职工信息全部显示出来。
计算平均工资:
根据所录入的职工信息里面的工资,计算员工平均工资。
显示全体职工工资:
根据所录入的职工信息里面的工资,将所有职工工资全部显示出来。
2.3数据需求
职工信息=职工号+职工姓名+职工性别+职工年龄+职工学历+职工工资+职工家庭住址+职工联系电话
2.4分工情况
说明书的书写:
1彭文宇:
第一章、第二章、第六章、第七章、第八章。
2邓琼:
第三章、第四章、第五章、附录
程序的编写:
1.彭文宇:
写文件(voidwriteworker)、读文件函数(voidreadworker)、信息新增函数(voidaddworker)、信息删除函数(voiddeleteworker)
2.邓琼:
结构体(typedefstructworker)、全局变量的定义、显示信息函数(统计总人数)(voidshowworker)、修改信息函数(voidalterworker)、查找信息函数(voidfindworker)、求工资平均值函数(voidaverageworker)、主函数(voidmain)。
第三章系统设计3.1系统总功能模块设计
职工信息管理系统是对在岗职工的基本情况进行综合的管理。
其基础数据从公共代码设置流入。
包括职工信息新增、职工信息修改、职工信息删除、职工信息查询(分别按工资、学历进行查询)、显示全体职工信息、计算全体职工平均工资以及显示全体职工工资等七个的功能。
职工信息管理系统的软件结构如图3.1所示。
职工信息管理系统
图3.1职工信息管理系统软件结构图
3.2各子功能模块设计
(1)功能:
对职工的信息(职工号、姓名、性别、年龄、学历、工资、家庭住址、联系电话)进行管理。
职工的基本情况由职工新增录入;具有授权的用户能够对全体职工的信息进行修改、删除、查询等;未授权的用户只能够查询在岗职工的基本情况。
(2)数据流入:
公共代码(voidaddworker())
(3)数据流出:
本模块
(4)程序流程图:
职工信息管理模块的程序流程图如图3.2所示。
(5)测试要点:
该模块的录入数据要与显示的数据进行一致性检查。
不合法
合法
图3.2职工信息管理模块的程序流程图
3.3数据结构设计
职工信息
包括职工的职工号、姓名、性别、年龄、学历、工资、家庭住址、联系电话。
用结构体表示员工信息,如下面定义。
typedefstructworker
{
charno[20];//职工号
charname[20];//姓名
charsex[3];//性别
intage;//年龄
charedu[100];//学历
intpay;//工资
charaddress[100];//住址
chartel[20];//联系电话
}WORKER;
3.4详细设计
3.4.1主函数
主函数设计要简洁,只提供部分函数调用。
其中各功能模块用菜单方式进行选择。
【程序】
voidmain()
{
charvl_c_menuselected;
intvl_b_flag=0;
while
(1)
{
system("cls");
fflush(stdin);
printf("==========================================================\n");
printf("|职工信息管理系统|\n");
printf("|----------------------------------------------------------|\n");
printf("|***版本号:
1.0***|\n");
printf("|设计者:
邓琼,彭文宇|\n");
printf("|---------------------主要功能------------------------------|\n");
printf("|1.显示职工信息2.新增职工信息|\n");
printf("|3.修改职工信息4.删除职工信息|\n");
printf("|5.查找职工信息(工资)6查找职工信息(学历)|\n");
printf("|7.职工平均工资8.退出系统|\n");
printf("|------------------------------------------------------------|\n");
if(vl_b_flag==0)
printf("请按键选择:
");
else
printf("输入有误,请重新选择:
");
vl_c_menuselected=getchar();
switch(vl_c_menuselected)
{
case'1':
showworker();vl_b_flag=0;break;
case'2':
addworker();vl_b_flag=0;break;
case'3':
alterworker();vl_b_flag=0;break;
case'4':
deleteworker();vl_b_flag=0;break;
case'5':
findworker1();vl_b_flag=0;break;
case'6':
findworker2();vl_b_flag=0;break;
case'7':
averageworker();vl_b_flag=0;break;
case'8':
printf("\n\n谢谢使用本系统,再见!
\n");
return;
default:
vl_b_flag=1;
}
}
}
3.4.2职工信息新增
【程序】
voidaddworker()//新增职工信息
{
if(current>N)
{
printf("职工信息超过给定空间需求,不能新增:
");
return;
}
printf("请输入职工号:
");
scanf("%s",wor[current].no);
printf("请输入职工姓名:
");
scanf("%s",wor[current].name);
printf("请输入职工性别:
");
scanf("%s",wor[current].sex);
printf("请输入职工年龄:
");
scanf("%d",&wor[current].age);
printf("请输入职工学历:
");
scanf("%s",wor[current].edu);
printf("请输入职工工资:
");
scanf("%d",&wor[current].pay);
printf("请输入职工家庭地址:
");
scanf("%s",wor[current].address);
printf("请输入职工联系电话:
");
scanf("%s",wor[current].tel);
current++;
printf("输入成功,当前第%d记录,按任意键继续!
",current);
Writeworker();
getch();
kbhit();
};
3.4.3职工信息修改
【程序】
voidalterworker()//修改职工信息
{
inti;
chars[20];
printf("请输入待查找的职工号\n");
scanf("%s",s);
for(i=0;iif(strcmp(wor[i].no,s)==0)
{
printf("请输入修改后的职工号,姓名,性别,年龄,学历,工资,住址,电话\n");
scanf("%s%s%s%d%s%d%s%s",wor[i].no,wor[i].name,wor[i].sex,&wor[i].age,wor[i].edu,
&wor[i].pay,wor[i].address,wor[i].tel);
break;
}
if(i==N)
printf("对不起,没有找到!
");
printf("修改完毕,按任意键继续!
");
getch();
kbhit();
};
3.4.4职工信息删除
【程序】
voiddeleteworker()//删除职工信息
{
inti,pos;
chars[20];
printf("请输入待删除职工号\n");
scanf("%s",s);
for(i=0;iif(strcmp(wor[i].no,s)==0)
{
pos=i;
break;
}
if(i==N)
printf("对不起,没有找到!
");
else
for(i=pos;iwor[i]=wor[i+1];
printf("删除完毕,按任意键继续!
");
getch();
kbhit();
};
3.4.5.1职工信息查询(工资)
【程序】
voidfindworker1()//查找职工信息
{
inti;
ints;
printf("请输入待查找的工资\n");
scanf("%d",&s);
for(i=0;iif(wor[i].pay==s)
{
printf("职工号:
%s,职工姓名:
%s,职工性别:
%s,职工年龄:
%d,职工学历:
%s,职工工资:
%d,职工家庭地址:
%s,职工联系电话:
%s\n",wor[i].no,wor[i].name,wor[i].sex,wor[i].age,wor[i].edu,wor[i].pay,wor[i].address,
wor[i].tel);
break;
}
if(i==N)
printf("对不起,没有找到!
");
printf("查询完毕,请按任意键继续!
");
getch();
kbhit();
};
3.4.5.2职工信息查询(学历)
【程序】
voidfindworker2()
{
inti;
chars[20];
printf("请输入待查找的学历\n");
scanf("%s",s);
for(i=0;iif(strcmp(wor[i].edu,s)==0)
{
printf("职工号:
%s,职工姓名:
%s,职工性别:
%s,职工年龄:
%d,职工学历:
%s,职工工资:
%d,职工家庭地址:
%s,职工联系电话:
%s\n",
wor[i].no,wor[i].name,wor[i].sex,wor[i].age,wor[i].edu,wor[i].pay,wor[i].address,wor[i].tel);
break;
}
if(i==N)
printf("对不起,没有找到!
");
printf("查询完毕,请按任意键继续!
");
getch();
kbhit();
};
3.4.6显示全体职工信息以及统计职工人数
【程序】
voidshowworker()//显示职工信息,统计职工人数
{
inti;
intsum=0;
for(i=0;iif(strlen(wor[i].no)>=1)
{
printf("职工号:
%s,职工姓名:
%s,职工性别:
%s,职工年龄:
%d,职工学历:
%s,职工工资:
%d,职工家庭地址:
%s,职工联系电话:
%s\n",wor[i].no,wor[i].name,wor[i].sex,wor[i].age,wor[i].edu,wor[i].pay,wor[i].address,wor[i].tel);
sum++;
}
printf("总人数=%d",sum);
printf("查询完毕,按任意键继续!
");
getch();
kbhit();
};
3.4.7计算全体职工的平均工资以及输出总工资
【程序】
voidaverageworker()//职工平均工资,输出总工资
{
inti;
intsum=0;
floats=0,ave=0;
for(i=0;iif(strlen(wor[i].no)>=1)
{
printf("%d\t",wor[i].pay);
s+=wor[i].pay;
sum++;
}
ave=s/sum;
printf("平均工资=%f,总工资=%f\n",ave,s);
printf("计算完毕,按任意键继续!
");
getch();
kbhit();
};
3.4.8写文件的函数
【程序】
voidWriteworker()
{
FILE*fp;
inti;
fp=fopen("worker.txt","w");
if(fp==NULL)
{
printf("打开文件失败!
");
exit
(1);
}
for(i=0;iif(strlen(wor[i].no)>=1)
fprintf(fp,"%s%s%s%d%s%d%s%s\n",wor[i].no,wor[i].name,wor[i].sex,wor[i].age,wor[i].edu,wor[i].pay,wor[i].address,wor[i].tel);
fclose(fp);
}
3.4.9读文件的函数
【程序】
voidReadwor()
{
FILE*fp;
inti;
fp=fopen("wor.txt","r");
if(fp==NULL)
{
printf("打开文件失败");
exit
(1);
}
i=0;
while(!
feof(fp))
{
if(fscanf(fp,"%s%s%s%d%s%d%s%s",wor[i].no,wor[i].name,wor[i].sex,
&wor[i].age,wor[i].edu,&wor[i].pay,wor[i].address)>0)
{i++;current++;}
else
break;
}
fclose(fp);
}
第四章系统测试4.1测试的目的通过测试发现软件错误:
功能的完备性:
检验程序功能是否达到用户预先制定的需求
错误检查:
检查程序潜在的错误,为软件可靠性与安全性的评估提供依据
4.2测试手段人工测试技术
功能测试
4.3信息管理
功能说明
完成职工信息新增,职工信息修改,职工信息删除,职工信息修改(工资,学历),显示全体职工信息,统计职工人数,计算全体职工平均工资,输出职工总工资等功能。
第五章系统特点及关键技术5.1主窗口显示功能编号本系统的一个重要特点就是系统启动之后,同时显示功能主窗口,按照编号来按键选择需要实现的功能即可达到目的。
每完成一项功能后可按任意键继续,可连续进行多功能操作,简洁,方便,易于操作。
5.2功能特点本系统将显示职工信息与统计职工人数合为一体,可一次实现两个功能,让用户一目了然。
5.3关键技术本系统我们采用学校已有的设备及技术,也就是MicrosoftVisualC++6.0技术完成我们的职工信息管理系统的设计。
第六章结论本系统是一个方便职工管理者对职工信息管理的具有一定实用性的数据库信息管理系统。
它主要完成一些职工基本信息的管理功能。
包括职工信息的录入、职工信息的修改、职工信息的删除与新增等功能。
本系统采用C语言开发工具MicrosoftVisualC++6.0来完成对系统的设计。
系统在设计上不可避免地遇到各种各样的问题,由于对一些函数的调用方法不熟悉,对C语言某些概念理解不够透彻,所以在设计程序、编写程序以及模块的设计过程中遇到了很多困难。
不过通过向老师、同学的请教、学习,最终通过我们的努力建立了模块,成功地设计和编写出了我们自己的程序。
但是由于我们自身对C语言知识理解并未完全,所以所编写均为简单易懂的程序。
因此还存在许多不足之处,需要进行不断地补充和完善。
第七章参考文献
[1]杨路明.C语言程序设计教程[M].北京:
北京邮电大学出版社,2005年
[2]施荣华,刘卫国.C程序设计与应用[M].北京:
中国铁道出版社,1999年
[3]谭浩强.C语言程序设计教程[M].北京:
高等教育出版社,1997年
第八章结束语
通过此次C语言课程设计我们对C语言的功能及其应用有了更深入的理解,不再停留在简单的书面意义上的理解。
通过对一些库函数的调用,实现模块功能的输入,加深了对函数本身的理解。
在课程设计过程中,遇到了很多苦困难,但通过老师、同学的帮助,成功地完成了此次课程设计。
也使我们知道了团队合作的重要意义,以及团结互助的重要性。
通过对职工信息系统设计与编写,我们知道了C语言在实际生活中的应用。
使我们知道了原来我们所学的知识都可以运用到实际生活中去,并且在实际生活中有发挥很大的作用。
附录
#include
#include
#include
#include
#defineN10
//=================================================================
//类型定义区域
typedefstructworker
{
charno[20];//职工号
charname[20];//姓名
charsex[3];//性别
intage;//年龄
charedu[100];//学历
intpay;//工资
charaddress[100];//住址
chartel[20];//联系电话
}WORKER;
//全局变量定义
intcurrent=0;
WORKERwor[N];
//==================================================================
//函数
voidWriteworker()
{
FILE*fp;
inti;
fp=fopen("worker.txt","w");
if(fp==NULL)
{
printf("打开文件失败!
");
exit
(1);
}
for(i=0;iif(strlen(wor[i].no)>=1)
fprintf(fp,"%s%s%s%d%s%d%s%s\n",wor[i].no,wor[i].name,wor[i].sex,
wor[i].age,wor[i].edu,wor[i].pay,wor[i].address,wor[i].tel);
fclose(fp);
}
voidshowworker()//显示职工信息,统计职工人数
{
inti;
intsum=0;
for(i=0;iif(strlen(wor[i].no)>=1)
{
printf("职工号:
%s,职工姓名:
%s,职工性别:
%s,职工年龄:
%d,职工学历:
%s,职工工