职工工资管理程序课程设计本科毕设论文.docx
《职工工资管理程序课程设计本科毕设论文.docx》由会员分享,可在线阅读,更多相关《职工工资管理程序课程设计本科毕设论文.docx(23页珍藏版)》请在冰豆网上搜索。
职工工资管理程序课程设计本科毕设论文
青岛理工大学
《C语言程序设计》
题目职工工资管理程序
指导教师:
XXX
姓名:
XXX
学号:
XXXXX
班级:
XXXXX
专业:
软件工程
地点:
计算机工程学院机房
时间:
2014.6.30至2014.7.4
一、内容
本系统实现了职工工资的管理与查询,具有输入信息,查询信息,添加信息,删除信息以及修改信息等功能。
打开本系统后,将需要输入的信息输入,便可以进入操作界面。
按照操作界面的提示进行操作。
二、上机环境
操作系统:
Windows7旗舰版
开发工具:
Codeblocks
三、函数调用关系图
四、各函数功能说明
1.main()主函数
2.increase()文件输入函数
3.voidshow()操作界面显示函数
4.voidfound()查找函数
5.show2()显示函数
6.voidprint2(inty)删除函数
7.voidprint3()修改信息函数
五、算法描述或流程图
1:
found()函数
:
流程图描述:
2:
increase()函数
流程图描述
3:
voidprint2(inty)函数
:
流程图描述
4:
voidprint3()函数
流程图描述
六、程序运行效果图
1:
打开界面
2:
查询信息
(1):
按编号查询
(2):
按姓名查询
(3):
按工资范围查询
3:
添加信息
4:
修改信息
5:
删除信息
七、总结
通过本次课设,不仅成功的完成了项目,复习了一个学期来所学过的知识要点,还极大的提高了自己的动手能力,受益匪浅。
通过整日含辛茹苦的编码,第一次体验到了未来本专业工作岗位上的不易,也切身感受到了一位程序员的辛苦。
其次,本次,通过本次课设,进一步提高了自己对本专业的兴趣,利于之后的学习乃至将来的工作,以及未来的方向。
最重要的是,提高了独立分析,解决问题的能力。
另一方面,这次动手实践操作,也暴露出自己在对专业知识学习上的一些漏洞。
要点记得不踏实,重点知识未理解透彻,导致在写程序时捉襟见肘。
但这也是经验,之后的学习要引以为鉴。
八、参考文献
1:
李春葆曾平喻丹丹.《C语言程序设计教程》,清华大学出版社,2011
2:
梁力.《程序设计与C语言》,西安交通大学出版社,2010
九、程序清单
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"math.h"
#defineN1000
#defineX100
inti;
structworker//定义结构体变量
{
charnum[X];
charname[X];
inty;
doublem;
doubleaward;
}staff[N];
//===============================函数线===============================
voidincrease()//输入函数
{
inti,i2,k;
FILE*fp;//定义文件指针
charnum[X],name[X];
inty;
doublem,award;
if((fp=fopen("design.txt","a"))==NULL)//打开文件
{
printf("Cannotopenafile.\n");
exit(0);
}
for(i=0;i{
printf("请输入教师的编号:
");//输入教师信息
scanf("%s",num);
printf("请输入教师的姓名:
");
scanf("%s",name);
printf("请输入教师的年龄:
");
scanf("%d",&y);
printf("请输入教师的工资:
");
scanf("%lf",&m);
printf("请输入教师的奖金:
");
scanf("%lf",&award);
fprintf(fp,"%s%s%d%lf%lf\n",num,name,y,m,award);
printf("是否结束输入:
\n1:
继续输入:
\n0:
结束输入:
\n");
scanf("%d",&i2);
if(i2==0)
break;
elseif(i2==1)
continue;
}
printf("输入结束。
\n\n");
fclose(fp);//关闭文件
}
//=================================================================
voidshow()//显示操作界面
{
printf("*欢迎使用职工工资管理程序*\n");
printf("=========================================================================\n");
printf("*1:
添加信息*\n");
printf("*2:
删除信息*\n");
printf("*3:
查询信息*\n");
printf("*4:
修改信息*\n");
printf("*5:
显示信息*\n");
printf("*6:
退出系统*\n");
printf("=========================================================================\n");
printf("请输入您要选择的操作序号,按回车键确认。
\n");
}
voidfound()
{
intj;
FILE*fp;
printf("1:
按教师编号查询\n2:
按教师姓名查询\n3:
按工资范围查询\n");
printf("请输入数字:
");
scanf("%d",&j);
charb[X],c[X],b1[X],c1[X];
doublen1,m1;
if((fp=fopen("design.txt","r"))==NULL)//打开文件
{
printf("Cannotopenafile.\n");
exit
(1);
}
switch(j)//输入数字选择要查找的条件
{
case1:
//按编号查找的情况
printf("\n请输入要查找的教师编号:
");
scanf("%s",b);
for(i=0;i{
fscanf(fp,"%s%s%d%lf%lf",staff[i].num,staff[i].name,&staff[i].y,&staff[i].m,&staff[i].award);
if(strcmp(b,staff[i].num)==0)//检测输入名与存储名是否相同
{
if(staff[i].y==10000)
{
printf("\n该行数据已被删除。
\n");
printf("=========================================================================\n");
break;
}
else
{
printf("\n编号\t姓名\t\t年龄\t工资\t奖金\n");
printf("%s\t%s\t\t%d\t%.0lf\t%.0lf\n",staff[i].num,staff[i].name,staff[i].y,staff[i].m,staff[i].award);
printf("=========================================================================\n");
}
}
}
printf("\n");break;
case2:
//按姓名查找的情况
printf("请输入要查找的教师的姓名:
");
scanf("%s",c);
for(i=0;i{
fscanf(fp,"%s%s%d%lf%lf",staff[i].num,staff[i].name,&staff[i].y,&staff[i].m,&staff[i].award);
if(strcmp(c,staff[i].name)==0)
{
if(staff[i].y==10000)
{
printf("\n该行数据已被删除。
\n");
printf("=========================================================================\n");
break;
}
else
{
printf("\n编号\t姓名\t\t年龄\t工资\t奖金\n");
printf("%s\t%s\t\t%d\t%.0lf\t%.0lf\n",staff[i].num,staff[i].name,staff[i].y,staff[i].m,staff[i].award);
printf("=========================================================================\n");
}
}
}
printf("\n");break;
case3:
//按工资范围查找的情况
printf("\n请输入工资范围:
");
scanf("%lf,%lf",&n1,&m1);
for(i=0;i{
fscanf(fp,"%s%s%d%lf%lf",staff[i].num,staff[i].name,&staff[i].y,&staff[i].m,&staff[i].award);
if(staff[i].m>=n1&&staff[i].m<=m1)
{
if(staff[i].y==10000)
{
continue;
}
else
{
printf("\n编号\t姓名\t\t年龄\t工资\t奖金\n");
printf("%s\t%s\t\t%d\t%.0lf\t%.0lf\n",staff[i].num,staff[i].name,staff[i].y,staff[i].m,staff[i].award);
printf("=========================================================================\n");
}
}
}
printf("\n");break;
default:
//不在查找范围内的情况
printf("\n结束该项操作。
\n");
printf("=========================================================================\n");
break;
}
fclose(fp);
}
voidprint2()//删除函数
{
ints,i;
FILE*fp;
if((fp=fopen("design.txt","r"))==NULL)
{
printf("Cannotopenafile.\n");
exit(0);
}
for(i=0;i{
fscanf(fp,"%s%s%d%lf%lf",staff[i].num,staff[i].name,&staff[i].y,&staff[i].m,&staff[i].award);
if(staff[i].y==0)
break;
}
fclose(fp);
if((fp=fopen("design.txt","w"))==NULL)//打开文件
{
printf("Cannotopenafile.\n");
exit
(1);
}
printf("请输入需要删除的职工的位数:
");
scanf("%d",&s);
staff[s-1].y=10000;
for(i=0;i{
if(staff[i].y==0)
break;
fprintf(fp,"%s%s%d%lf%lf\n",staff[i].num,staff[i].name,staff[i].y,staff[i].m,staff[i].award);
}
printf("\n删除成功.\n\n");
fclose(fp);
}
voidprint3()//修改函数
{
inti1,i;
FILE*fp;
charb1[X];
if((fp=fopen("design.txt","r"))==NULL)//打开文件
{
printf("Cannotopenafile.\n");
exit(0);
}
for(i=0;i{
fscanf(fp,"%s%s%d%lf%lf",staff[i].num,staff[i].name,&staff[i].y,&staff[i].m,&staff[i].award);
if(staff[i].y==0)
break;
}
fclose(fp);
printf("请输入需要修改信息的职工号:
");
while(scanf("%d",&i1)!
=EOF)
{
if((fp=fopen("design.txt","w"))==NULL)//打开文件
{
printf("Cannotopenafile.\n");
exit
(1);
}
if(i1==0)
{
printf("\n输入结束。
\n");
break;
}
else
{
if(staff[i1-1].y==10000)
{
printf("\n该行数据已被删除。
\n\n");
break;
}
printf("\n编号\t姓名\t\t年龄\t工资\t奖金\n");
printf("%s\t%s\t\t%d\t%.0lf\t%.0lf\n",staff[i1-1].num,staff[i1-1].name,staff[i1-1].y,staff[i1-1].m,staff[i1-1].award);
printf("\n请选择需要修改的选项:
");
scanf("%s",b1);
if(strcmp(b1,"编号")==0)
{
printf("\n请输入修改后的编号:
");
scanf("%s",staff[i1-1].num);
}
elseif(strcmp(b1,"姓名")==0)
{
printf("\n请输入修改后的姓名:
");
scanf("%s",staff[i1-1].name);
}
elseif(strcmp(b1,"年龄")==0)
{
printf("\n请输入修改修改后的年龄:
");
scanf("%d",&staff[i1-1].y);
}
elseif(strcmp(b1,"工资")==0)
{
printf("\n请输入修改后的工资:
");
scanf("%lf",&staff[i1-1].m);
}
elseif(strcmp(b1,"奖金")==0)
{
printf("\n请输入修改后的奖金:
");
scanf("%lf",&staff[i1-1].award);
}
for(i=0;i{
if(staff[i].y==0)
break;
fprintf(fp,"%s%s%d%lf%lf\n",staff[i].num,staff[i].name,staff[i].y,staff[i].m,staff[i].award);
}
}
printf("\n\n若继续修改,请输入职工号,若停止修改,请输入0:
");
printf("\n=========================================================================\n");
}
fclose(fp);
}
voidshow2()
{
FILE*fp;
if((fp=fopen("design.txt","r"))==NULL)
{
printf("Cannotopenafile.\n");
exit
(1);
}
printf("\n编号\t姓名\t\t年龄\t工资\t奖金\n");
for(i=0;i{
fscanf(fp,"%s%s%d%lf%lf",staff[i].num,staff[i].name,&staff[i].y,&staff[i].m,&staff[i].award);
if(staff[i].y==0)
{
break;
}
printf("%s\t%s\t\t%d\t%.0lf\t%.0lf\n",staff[i].num,staff[i].name,staff[i].y,staff[i].m,staff[i].award);
}
fclose(fp);
}
//=================================================================
intmain()//主程序
{
intj,s,n2,t,k;
chary[X],d[X],r[X];
inti1,i2,i3;
chary1[X];
printf("*职工工资管理程序*\n");
printf("=========================================================================\n\n");
while
(1)
{
show();
scanf("%d",&n2);
printf("\n");
switch(n2)
{
case1:
{increase();}break;//执行添加工作
case2:
{print2();}break;//执行删除工作
case3:
{found();}break;//执行查找工作
case4:
{print3();}break;//执行修改工作
case5:
{show2();}break;//执行显示工作
case6:
{printf("\n您已退出系统。
\n");}break;//执行退出工作
default:
printf("输入不符合要求。
");break;
}
if(n2==6)
break;
printf("\n是否继续操作:
\n1:
继续操作\n0:
结束操作\n请输入序号:
");
scanf("%d",&i3);
if(i3==1)
continue;
elseif(i3==0)
{
printf("\n您已退出系统。
\n");
break;
}
}
return0;
}