c语言程序设计职工管理系统.docx
《c语言程序设计职工管理系统.docx》由会员分享,可在线阅读,更多相关《c语言程序设计职工管理系统.docx(36页珍藏版)》请在冰豆网上搜索。
c语言程序设计职工管理系统
《C语言程序》课程设计报告
设计题目:
职工管理系统
专业:
信息工程
班级:
学生姓名:
学号:
指导教师:
2012年6月
信息工程学院
摘要
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。
管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。
对企业而言,人力资源是企业最宝贵的资源。
随着当今企业人员数量的不断增加,对职工的管理要求也不断提高。
实现职工管理现代化将带来高效的企业管理。
这个职工管理系统就是用c语言写的一个程序,它实现了职工管理的功能,包括数据录入,工资计算,查询统计修改数据的功能。
该程序是用简单的,比较常见的函数组成的,通过for循环和goto函数调用来完成该程序。
本系统具有良好的用户界面,操作简单?
使用方便,信息查询?
统计速度快等特点,使工资管理人员从日常繁琐的手工操作中解脱出来。
这一切旨在学历并练习c语言的开发实践,对于以后的开发与编程提供一个良好的基础
关键字:
职工管理工资查询应用程序
数据修改程序设计和技巧新型科学
第一章绪论
选题背景
随着社会的发展及知识经济时代的到来,管理信息系统在各行各业发挥着越来越重要的作用。
在各企业公司职工工资管理中,运用C语言程序,避免了手工操作而带来的一些不必要的问题。
设计目的
通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!
更加了解了C语言的好处和其可用性!
同时增加了同学之间的团队合作精神!
更加也体会到以后在工作中团队合作的重要性和必要性!
通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。
为后续各门计算机课程的学习和毕业设计打下坚实基础。
第二章系统分析
功能需求
职工管理系统的功能:
1、职工数据录入
2、工资计算
3、查询统计
4、查看所有记录
5、修改数据
此项目主要考察我们对for循环,以及函数调用等C语言算法的掌握。
如何调试程序也非常重要,通过这个程序可学到以前调试程序没有的经验。
菜单中的每一个选项都对应一个子程序。
模块的划分与定义
系统各模块(函数)的组成。
功能、参数说明、相互调用关系
主函数main()。
利用goto实现各函数的调用,此程序主要应用的是for循环语句,及函数的调用。
1)输入记录函数voidshuju()
这是一个无参函数,用来职工数据录入
2)计算工资函数voidjisuan()
这是一个有参函数,用来职工工资计算如:
工资=基本工资+奖金-扣款
3)查询统计函数voidchaxun()
这是一个不返回值的有参函数,用来职工的查询统计如按性别、年龄、工资等统计
4)修改数据函数voidxiugai()
这是一个不返回值的有参函数,有权限的修改职工数据
第三章总体设计与详细设计
总体设计
采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。
需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。
可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。
系统结构框图如下:
详细设计
本职工管理系统由如下模块组成:
1、主模块
功能:
显示系统菜单
2、数据录入
功能:
记录职工姓名、性别、工号、奖金、扣款等。
3、工资计算
功能:
工资=基本工资+奖金-扣款。
4、查询统计、
功能:
按性别、年龄、工资统计。
5、查看所有记录
功能:
清晰的了解员工信息
6、数据修改
功能:
有限制的修改员工信息,有效的保护了职工信息。
7、退出
功能:
退出该系统。
第四章编码实现
1、系统各模块(函数)的组成。
功能、参数说明、相互调用关系
#include""
#include""
1)、main()
主函数利用for循环以及goto来实现各函数的调用,系统根据输入的数字选项来调用相应的函数。
2)输入记录函数voidshuju()
这是一个无参函数,用来职工数据录入
2)计算工资函数voidjisuan()
这是一个有参函数,用来职工工资计算如:
工资=基本工资+奖金-扣款
3)查询统计函数voidchaxun()
这是一个不返回值的有参函数,用来职工的查询统计如按性别、年龄、
工资等统计
4)修改数据函数voidxiugai()
这是一个不返回值的有参函数,有权限的修改职工数据
各功能模块的算法处理相关说明
1、主函数main()
2、输入记录函数voidshuju()
3、计算工资函数voidjisuan()
4、查询统计函数voidchaxun()
5、修改数据函数voidxiugai()
1、数据录入
当执行此数据录入任务时,系统会提示用户,即按姓名、工号、性别、年龄、扣款数额、等录入数据
voidshuju()/*数据录入*/
{
inti,j;
charkk;
for(i=0;i<10;i++)
{
printf("\n%srecord:
",xingming[i]);
printf("\n\n");
printf("thenumberofworker");
scanf("%i",&ygh[i]);
printf("sex(male(M)/female(F))");
scanf("%s",&xingbie[i][0]);
printf("age");
scanf("%i",&nianlin[i]);
printf("koukuanshuer");
scanf("%i",&koukuan[i]);
printf("jiangjin");
scanf("%i",&jiangjin[i]);
printf("\n\n");
ks:
printf("shifoujixushuru(Y/N)");
kk=getch();
if((kk=='Y')||(kk=='y'))
{
continue;
}
elseif((kk=='N')||(kk=='n'))
{
printf("n\n\n\n\n\n\n\n\n\n\t\t\t\tenterfinish!
\n");
printf("anrenyijianreturnthemaincaidan!
");
getch();
break;
}
else
{
printf("enterwrong,pleaseenteragain!
");
getch();
system("cls");
gotoks;
}
}
system("cls");
}
2、工资计算
在计算操作中,系统会按要求计算工资,工资=基本工资+奖金-扣款。
voidjisuan()/*工资计算*/
{
system("cls");
printf("\t\t\t");
for(i=1;i<15;i++)
printf("**");
printf("\n");
printf("\t\t\t*\t\t\t*\n");
printf("\t\t\t*\tgongzibiao\t*\n");
printf("\t\t\t*\t\t*\n");
printf("\t\t\t");
for(i=1;i<15;i++)
printf("**");
printf("\n\n\t\t\tname\t\t\tgongzi\n");
printf("\t\t\t");
for(i=1;i<15;i++)
printf("**");
printf("\n");
for(i=0;i<10;i++)
{
sum[i]=jb+jiangjin[i]-koukuan[i];
printf("\t\t\t%s\t\t\t%i\n",*(xingming+i),sum[i]);
}
printf("anrenyijianfanhuizhucaidan");
y1=getchar();
if(y1!
='')
y1=getchar();
return;
}3、查询统计
在查询统计操作中,系统按性别、工资、年龄进行统计
voidchaxun()/*查询统计*/
{
chary,y2,y3,y4,yy5=0;
tt:
system("cls");
printf("xingbietongji\n");
printf("gongzishuertongji\n");
printf("nianlingtongji\n");
printf("themaincaidan\n");
printf("qiangshuruxuanze1---4\");
y=getchar();
if(y=='1')
{
oo1:
system("cls");
printf("\\\n");
printf("pleaseselect");
y2=getchar();
if(y2=='1')
{
for(k=0,i=0;i<10;i++)
{
if((xingbie[i][0]=='m')||(xingbie[i][0]=='M'))
k++;
}
printf("maleworker%iren\n",k);
printf("anrenyijianreturn/");
y2=getch();
gotooo1;
}
elseif(y2=='2')
{
for(k=0,i=0;i<10;i++)
{
if(xingbie[0][i]=='f'||xingbie[i][0]=='F')
k=k+1;
}
printf("femaleworker%iren\n",k);
printf("anrenyijiantoreturn");
y2=getch();
gotooo1;
}
elseif(y2=='3')
{
system("cls");
gotott;
}
else
{
system("cls");
gotooo1;
}
}
elseif(y=='2')
{
oo2:
system("cls");
printf("zizai1400yuanyishang\zizai1400yuannixia\\n");
printf("pleaseenterselect1--3/");
y3=getchar();
if(y3=='1')
{
for(k=0,i=0;i<10;i++)
{
if((jb+jiangjin[i]-koukuan[i])>=1400)
k=k+1;
}
printf("gongzizai1400yuanyishangdeyou%iren\n",k);
printf("anrenyijiancontinue/");
y3=getchar();
if(y3!
='')
{
y3=getchar();
gotooo2;
}
}
elseif(y3=='2')
{
for(k=0,i=0;i<10;i++)
{
if((jb+jiangjin[i]-koukuan[i])<=1400)
k++;
}
printf("gongzizai1400yuanyixiedezhigongyou%iren\n",k);
printf("anrenyijiantoreturn");
y3=getchar();
if(y3!
='')
{
y3=getchar();
gotooo2;
}
}
elseif(y3=='3')
{
system("cls");
gotott;
}
else
{
system("cls");
gotooo2;
}
}
elseif(y=='3')
{
oo3:
system("cls");
printf("zai30yishang\zai30yixia\\n");
printf("pleaseshuruselect\");
y3=getchar();
if(y3=='1')
{
for(k=0,i=0;i<10;i++)
{
if(nianlin[i]>=30)
k=k+1;
if(nianlin[i]==0)
yy5=yy5+1;
}
if(yy5==10)
printf("shujushangweiluru,qinglurushuju!
\n");
else
printf("agezai30yishangdeyuangong%iren\n",k);
printf("anrenyijiantocontinue");
y4=getchar();
if(y4!
='')
{
y4=getchar();
gotooo3;
}
}
elseif(y3=='2')
{
k=0;yy5=0;
for(i=0;i<10;i++)
{
if(nianlin[i]<=30&&nianlin[i]!
=0)
k=k+1;
if(nianlin[i]==0)
yy5=yy5+1;
}
if(yy5==10)
printf("shujushangweishuru,pleaseshurushuju!
\n");
elseif(yy5<10)
printf("agezai30yixiadezhigong%iren\n",k);
printf("anrenyijiantocontinue");
y4=getchar();
if(y4!
='')
{
y4=getchar();
gotooo3;
}
}
elseif(y3=='3')
{
system("cls");
gotott;
}
else
{
gotooo3;
}
}
elseif(y=='4')
return;
else
gotott;
}
voidshuchu()
{
inti;
system("cls");
printf("yuangonghaonamesexagezhecoushuerjiangjishuer\n");
for(i=0;i<10;i++)
{
printf("%i%s",ygh[i],xingming[i]);
if((xingbie[i][0]=='m')||(xingbie[i][0]=='M'))
printf("male");
elseif((xingbie[i][0]=='f')||(xingbie[i][0]=='f'))
printf("female");
else
printf("no");
printf("%i%i%i\n",nianlin[i],koukuan[i],jiangjin[i]);
}
printf("anrenyijianfanhuizhucaidan!
");
getch();
system("cls");
return;
}
4、修改数据
在修改数据操作中,系统会提示3次修改,更好的保护了职工信息
voidxiugai()/*修改*/
{
intxg;
intxygh,xxingbie,xnianlin,xkoukuan,xjiangjin;
chary5;
intsss=0,css=0,uss=3;
charxxx[1][5]={'1','2','3','4','5'};
charyyyy[1][5],kkk;
aaa:
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\t\t\tshurucishuweithreetimes!
");
printf("\n\t\t\tshuruwananrenyijianjiesu!
");
printf("\n\t\t\t\tpleaseenterthepassword:
");
for(sss=0;sss<5;sss++)
{
yyyy[0][sss]=getch();
if((yyyy[0][sss]>='0')&&(yyyy[0][sss]<='9'))
{
printf("*");
}
else
gotobbb;
}
kk=getch();
bbb:
for(sss=0;sss<5;sss++)
{
if(xxx[0][sss]!
=yyyy[0][sss])
{
css++;
if(css>=3)
{
printf("\n\n\n\t\t\tSorry!
!
!
Youcan’tmodifythedata!
");
getch();
system("cls");
return;
}
printf("\n\n\n\t\t\tthepasswordiswrongpleasetryagain!
");
printf("\n\t\t\tyouhave%icichance!
",--uss);
getch();
system("cls");
gotoaaa;
}
}
qq1:
system("cls");
printf("shuruyaoxiugaidejiluhao{shujulurushunxu}1---10/");
scanf("%i",&xg);
xg=xg-1;
printf("name:
%s\n",xingming[xg]);
printf("\tyuanjilu\t\txinjilu\n");
printf("yuanggonghao\t%i\t\t\t",ygh[xg]);
scanf("%i",&xygh);
ygh[xg]=xygh;
printf("sex\t%s\t\t\t",xingbie[xg]);
scanf("%s",&xxingbie);
xingbie[xg][0]=xxingbie;
printf("age\t%i\t\t\t",nianlin[xg]);
scanf("%i",&xnianlin);
nianlin[xg]=xnianlin;
printf("discount\t%i\t\t\t",koukuan[xg]);
scanf("%i",&xkoukuan);
koukuan[xg]=xkoukuan;
printf("jiangjin\t%i\t\t\t",jiangjin[xg]);
scanf("%i",&xjiangjin);
jiangjin[xg]=xjiangjin;
qq2:
printf("continuetomodifyY/N");
y5=getch();
if(y5=='Y'||y5=='y')
{
gotoqq1;
}
elseif(y5=='N'||y5=='n')
{
system("cls");
return;
}
else
{
system("cls");
gotoqq2;
}
第五章测试与调试
1、开始页面如图5-1所示
图5-1
2、主模版页面如图5-2所示
图5-2
3、数据录入页面如图5-3所示
图5-3
4、工资计算页面如图5-4所示
图5-4
5、查询统计页面如图5-5所示
图5-5
6、查看所有记录页面如图5-6所示
图5-6
7、修改数据页面如图5-7所示
图5-7
第六章心得与体会
通过本次论文设计,我初步学会了论文设计的基本方法,学会了如何去查找资料和处理这些资料的能力,由于所学的知识不多,自己的编程经验不足,仍存在一些错误,按现有的知识水平有些东西暂时还无法解决,还有待于在以后的学习中不断提高和改进!
本课题中的许多知识点都没有学过都要靠自己到课外的资料中去查找。
在用的时候难免出现这样那样的错误。
如开始设计出来的菜单不是预想的那样,而是总个窗中出现混乱。
解决的这个问题的办法是调整。
一个系统的菜单和提示信息非常重要。
如果没有这些用户根本不知道怎么用你设计的这个系统。
在设计的调试过程中也无法顺利的完成调试工作。
有了一个清晰简单的菜单和一些提示信息这后,调试过程完成的非常顺利。
回顾起此次课程设计,我感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识熟悉了,本次课程设计结束了,我们通过这次实践学到了许多知识。
学到了设计一个简单的系统。
要注意哪些方面。
也使我们知道自己哪些方面做得还不够。
这不仅是程序设计,更是锻炼我们处理问题的能力,同时也使我们了解到团队合作的可贵.编写程序是件细心活,稍不留神就会出错,这就必须要求我们对待事情要认真!
在编写程序的过程中,错误不断出现,不同的类型(如少写了一个符号,写错了字母,用错了函数等等)层出不穷,这考验我们待事细心,耐心,能不能坚持到底,不能半途而废。
但我们总结出了一点点的经验如下:
1、要对系统的功能和要求做出详细的分析,并合理分解任务。
2、把分解出来的子任务,做给一个相对独立的模块。
3、在设计一个模块之前,要简单构想一下总界面的显视情况。
4、针对构想出来的界面进行程序的编写。
附录
源代码
#include""
#include