c语言毕业课程设计报告毕业课程设计报告.docx

上传人:b****8 文档编号:9388249 上传时间:2023-05-18 格式:DOCX 页数:36 大小:119.26KB
下载 相关 举报
c语言毕业课程设计报告毕业课程设计报告.docx_第1页
第1页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第2页
第2页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第3页
第3页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第4页
第4页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第5页
第5页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第6页
第6页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第7页
第7页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第8页
第8页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第9页
第9页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第10页
第10页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第11页
第11页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第12页
第12页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第13页
第13页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第14页
第14页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第15页
第15页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第16页
第16页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第17页
第17页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第18页
第18页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第19页
第19页 / 共36页
c语言毕业课程设计报告毕业课程设计报告.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言毕业课程设计报告毕业课程设计报告.docx

《c语言毕业课程设计报告毕业课程设计报告.docx》由会员分享,可在线阅读,更多相关《c语言毕业课程设计报告毕业课程设计报告.docx(36页珍藏版)》请在冰点文库上搜索。

c语言毕业课程设计报告毕业课程设计报告.docx

c语言毕业课程设计报告毕业课程设计报告

(此文档为word格式,下载后您可任意编辑修改!

周口师范学院

 

课程设计报告

院(系):

_计算机科学与技术学院_班级:

学生姓名:

______学号:

设计题目:

___职工工资管理系统____________________

完成日期:

年月日

课程设计任务书

设计题目:

工资管理系统

学生姓名

课程名称

C程序设计课程设计

专业班级

地点

起止时间

设计内容及要求

主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:

工资录入,按人名、基本工资、实发工资、个人所得税进行查询和按部门进行分类统计。

操作界面要符合用户的一般习惯,图形或文本界面都可以。

要求:

明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。

设计

参数

文件记录的字段数量不少于6个,分类统计中统计的项不少于2个。

进度

要求

1.确定设计题目,讲解要求和说明2012.5.28

2.确定设计任务,确定具体的功能,熟悉相关知识2012.6.1

3.按功能需求确定程序的主要模块2012.6.2

4.编程实现程序的功能2012.6.3-2012.6.4

5.调试并完善程序2012.6.7-2012.6.8

6.撰写课程设计报告2012.6.9

7.提交课程设计报告并答辩2012.6.10-2012.6.11

参考资料

《C程序设计经典教程》清华大学出版社2006.3

《C陷阱与缺陷》人民邮电出版社2008.2

其它

说明

多名学生可以共用一个题目,但在设计内容、参数、要求等方面应有所区别。

教研室主任:

指导教师:

年月日

摘要..............................................................1

1设计内容、任务及具体要求.........................................2

1.1设计内容.....................................................2

1.2设计任务及具体要求...........................................2

2概要设计.........................................................3

2.1该系统的功能简介.............................................3

2.2总体程序框图.................................................3

2.3各个模块之间的主要关系........................................4

3系统功能模块的具体设计............................................5

3.1各个模块的程序流程图及运行界面................................5

3.2对关键代码加以分析说明.......................................15

4程序调试分析.....................................................23

5程序使用说明.....................................................24

6总结.............................................................25

参考文献...........................................................26

附:

源程序..........................................................27

摘要

工资管理系统是针对企业的工资管理业务进行计算机处理而开发的应用软件。

该系统由系统维护、输入、查询、修改、输出、统计等子模块组成,功能基本涵盖普通企业的工资管理业务范围。

企业应用本系统后,可以有效的提高工资管理水平。

本文从需求分析、开发平台选择、系统模块建立、数据库设计、功能模块编程实现及软件测试等方面阐述了本应用系统的设计过程。

为便于说明,文中绘制了程序结构框图、数据流程图和部分界面图。

最后附有主要的源程序代码清单。

关键词:

工资管理系统维护数据汇总管理系统软件开发

1设计内容、任务及具体要求

1.1设计内容

《工资管理查询系统》主要根据课程设计要求进行设计,并了解了公司的职工的工资工作流程,该系统功能主要包括六大模块:

1)职工个人说得税的计算模块,根据工资多余5000,在1000—5000之间,少余1000三种情况进行计算。

2)添加职工的工资信息模块,用户根据输入职工编号后,对工资信息进行录入。

3)职工工资查询模块,根据用户输入职工编号后,方可进行查询。

4)职工工资修改模块,用户输入职工编号后,对以前的信息进行修改。

5)数据输出模块,输出其相应的模块功能。

6)职工工资统计模块,根据输入的职工信息进行统计。

1.2设计任务及具体要求

主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:

工资录入,按人名、基本工资、实发工资、个人所得税进行查询和按部门进行分类统计。

操作界面要符合用户的一般习惯,图形或文本界面都可以。

要求:

明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。

2概要设计

2.1该系统的功能简介

该系统的主要功能是实现职工工资的录入,包括(录入职工的基本工资、实发工资、津贴、岗贴、补贴、房帖、交通补贴、储蓄、汇费)。

对职工的工资信息进行删除、修改、个人所得税的计算。

并统计职工的所有信息。

2.2总体程序框图

图2.2-A总体程序

图2.2-B添加职工的工资信息

2.2各个模块之间的主要关系

该程序的功能主要是实现职工工资的录入,并对工资的相应信息进行个人所得税的计算。

各个模块之间的关系是相互联系的。

首先,主函数包含了所有的子函数。

主函数是整个程序的核心。

子函数之间也是有联系的,对个人所得税的计算、职工工资信息的修改、删除、查询、统计,必须是在职工工资录入的情况下进行的。

因此对职工工资信息的录入是非常重要的。

在职工工资的修改、删除、查询、统计与个人所得税所有的子函数之间是没有多大联系的。

3系统功能模块的具体设计

3.1各个模块的程序流程图

1)

主函数程序(N-S)流程图及运行界面

主函数程序(N-S)流程图(见图3.1-A)

主函数main()

定义变量charch;n=0;

while(TRUE)

 

ch=getche();

switch(ch)

case'1':

addone();break;添加职工信息

case'2':

delone();break;删除个人记录

case'3':

modone();break;修改个人记录

case'4':

idone();break;查找职工记录

case'5':

listall();break;统计职工记录

case'6':

wfile();break;将信息写入文件当中

case'7':

rfile();break;从文件中读取信息

case'8':

exit(0);退出系统

default:

printf("对不起,请重新选择!

\n");

图3.1-A主函数程序

简单说明:

该功能主要显示的是给用户一个进入界面,它主要的是显示该程序主要能够执行的有哪些功能。

下面是显示给用户的界面。

(见图3.1-A)

主函数程序运行界面:

图3.1B主函数界面

2)职工个人所得税(N-S)流程图(见图3.1-B)

图3.2-A职工个人所得税程序

该程序主要根据职工的工资信息进行个人所得税的计算,当个人所得税m大于等于5000时,个人所得税tmp为(m-5000)*0.2;在1000<=m<5000时,个人所得税为()*0.1;当800<=m<1000时,个人所得税为(m-800)*0.5。

3)

录入职工的工资信息(N-S)流程图及程序运行界面

录入职工的工资信息(N-S)流程图(见图3.3-A)

printf("RecordNO.%d\n",n+1);

输入月份

输入职工基本信息

输入职工的职工编号

输入职工的基本工资

输入职工的津贴

输入职工的岗帖

输入职工的补贴

输入职工的房帖

输入职工的交通补贴

输入职工的房租

输入职工的储蓄

输入职工的汇费

图3.3-A录入职工的工资信息程序

该模块主要是对职工的工资进行录入,录入的主要有职工的津贴、岗贴、补贴、房帖、交通补贴,并把该五项统计为职工的实发工资。

还录入职工的房租、储蓄、汇费。

录入职工的程序运行界面。

(见图3.3-B)

图3.3-B录入职工的工资信息程序界面

 

4)删除职工记录的(N-S)流程图及程序运行界面

删除职工记录的(N-S)流程图(见图3.4-A)

定义数据变量

输入某职工的职工编号gets(numstr);

zhigongid=atof(numstr);

for(j=0;j<=n;j++)

 

zg[j].id==zhigongid?

flagfind=1;

tmp[k]=zg[j];k++;

flagfind==1?

for(j=0;j<=(n-1);j++)

没有你要删除的记录

zg[j]=tmp[j];

成功删除记录

n=n-1;

return(0);

图3.4-A删除职工记录程序

该模块主要通过已经输入的职工信息进行删除,如果你输入的信息存在或不存在,则分别显示以下运行界面。

见图(3.4-B、C)

图3.4-B删除职工记录程序界面

图3.4-C删除职工记录程序界面

5)修改个人记录的(N-S)流程图及运行界面

修改个人记录的(N-S)流程图(见图3.5-A)

定义数据变量

输入职工的职工编号

将所输职工编号转化为double型

for(j=0;j<=n;j++)

 

zg[j].id==zhigongid?

输入职工的新信息同时调用atof进行修改

flagfind=0

flagfind=1;

flagfind!

=0?

return0

图3.5-A修改个人记录程序

修改个人记录是在原有的基础上对职工的工资信息进行修改,在修改的同时你可以看到该职工原来的工资信息。

以下是修改职工工资信息过后的显示界面。

(见图3.5-B)

图3.5-B修改个人记录的运行界面

6)查找职工记录的(N-S)流程图及运行界面

查找职工记录的(N-S)流程图(见图3.6-A)

定义数据变量

输入职工的职工编号

将所输职工编号转化为double型

for(j=0;j<=n;j++)

 

zg[j].id==zhigongid?

将查询到的程序一一输出

flagfind=0

flagfind=1

flagfind!

=0?

您查找的记录不存在!

return0

图3.6-A查找职工记录的(N-S)流程图

该功能是对已经录入的职工信息进行查寻,如果你输入的职工编号存在,则显示职工的工资信息,如果不存在,则提示为“您查找的记录不存在”。

运行界面如下。

(见图3.6-B)

图3.6-B查找职工记录的运行界面

7)统计出所有的职工信息的(N-S)流程图及运行界面

统计出所有的职工信息的N-S流程图(见图3.7-A)

intj

n<1?

您查找的记录不存在

for(j=0;j

 

printf("\nNO:

%d|",j+1)

输出全体职工相应的信息

return(0)

图3.7-A统计出所有的职工信息的(N-S)流程图

在这个子模块程序中,主要是对输入的职工信息进行统计,统计过后并输出说有的职工工资信息。

以下是程序的运行界面。

(见图3.7-B)

图3.7-B统计出所有的职工信息的运行界面

3.2对关键代码加以分析说明

1)*结构体声明*

structzhigong

{

intmonth;

doubleid;

doublejbgz;

doublejt;

doublegt;

doublebt;

doubleft;

doublejtbt;

doublesfgz;

doublefz;

doublecx;

double=0;

*获得字符串*

charnumstr[50];

这是对职工的工资录入的主要数据结构,zg[50]是可以录入50个职工的工资信息,charnumstr[50]为在录入职工的工资信息时,可输入的字符串的最大是50位。

2)函数addone

addone(void)

{

printf("\n");

printf("__________________________________>>><<<_____________________________________\n");

printf("RecordNO.%d\n",n+1);

printf("请输入月份:

\n");

gets(numstr);

zg[n].month=atoi(numstr);

printf("输入职工基本信息\n");

printf("请输入职工的职工编号:

\n");

gets(numstr);

zg[n].id=atof(numstr);

printf("请输入职工的基本工资:

\n");

gets(numstr);

zg[n].jbgz=atof(numstr);

printf("请输入职工的津贴:

\n");

gets(numstr);

zg[n].jt=atof(numstr);

printf("请输入职工的岗贴:

\n");

gets(numstr);

zg[n].gt=atof(numstr);

printf("请输入职工的补贴:

\n");

gets(numstr);

zg[n].bt=atof(numstr);

printf("请输入职工的房帖:

\n");

gets(numstr);

zg[n].ft=atof(numstr);

printf("请输入职工的交通补贴:

\n");

gets(numstr);

zg[n].jtbt=atof(numstr);

zg[n].sfgz=(zg[n].jbgz)+(zg[n].jt)+(zg[n].gt)+(zg[n].bt)+(zg[n].ft)+(zg[n].jtbt);

printf("请输入职工的房租:

\n");

gets(numstr);

zg[n].fz=atof(numstr);

printf("请输入职工的储蓄:

\n");

gets(numstr);

zg[n].cx=atof(numstr);

printf("请输入职工的会汇:

\n");

gets(numstr);

zg[n].].grsds=tgrsds(zg[n].sfgz);

zg[n].yks=(zg[n].fz)+(zg[n].cx)+(zg[n].].grsds);

zg[n].sfs=(zg[n].sfgz)-(zg[n].yks);

n++;

printf("添加成功!

\n");

printf("__________________________________>>><<<_________________________________\n");

return0;

}

通过这个函数可以创建一个职工的所有工资信息,首先程序提示输入职工的编号,然后输入职工的工资信息,包括(基本工资、津贴、岗贴、补贴、房帖、交通补贴,并统计这些工资为实发工资。

然后输入职工的房租、储蓄、汇费)

3)函数delone

*删除个人记录*

delone(void)

{

structzhigongtmp[50];

doublezhigongid;

intj,k;

intflagfind;

flagfind=0;

k=0;

printf("---\n");

printf("\n请输入某职工的职工编号:

\n");

gets(numstr);

zhigongid=atof(numstr);

for(j=0;j<=n;j++)

{

if(zg[j].id==zhigongid)

{

flagfind=1;

}

else

{

tmp[k]=zg[j];

k++;

}

}

if(flagfind==1)

{

for(j=0;j<=(n-1);j++)

{

zg[j]=tmp[j];

}

printf("\n成功删除记录!

\n");

printf("---\n");

n=n-1;

}

else

{

printf("\n没有你要删除的记录!

\n");

printf("----\n");

}

return(0);

}

程序提示用户输入要删除的个人的工资记录,使用线形查找法查找相应的记录,如果找到,则删除记录。

如果没有,则提示用户该记录不存在。

4)函数modone

*修改个人记录*

modone(void)

{

doublezhigongid;

intj;

intflagfind;

flagfind=0;

printf("\n请输入职工的职工编号:

\n");

gets(numstr);

zhigongid=atof(numstr);

for(j=0;j<=n;j++)

{

if(zg[j].id==zhigongid)

{

printf("NO.:

%d\n",j);

printf("month:

%d\n",zg[j].month);

printf("\t职工编号%10.0f\n",zg[j].id);

printf("\t基本工资:

%10.2f\n",zg[j].jbgz);

printf("\t请输入职工的基本工资:

\n");

gets(numstr);

zg[j].jbgz=atof(numstr);

printf("\t津贴:

%10.2f\n",zg[j].jt);

printf("\t请输入职工的津贴:

\n");

gets(numstr);

zg[j].jt=atof(numstr);

printf("\t岗贴:

%10.2f\n",zg[j].gt);

printf("\t请输入职工的岗贴:

\n");

gets(numstr);

zg[j].gt=atof(numstr);

printf("\t补贴:

%10.2f\n",zg[j].bt);

printf("\t请输入职工的补贴:

\n");

gets(numstr);

zg[j].bt=atof(numstr);

printf("\t房帖:

%10.2f\n",zg[j].ft);

printf("\t请输入职工的房帖:

\n");

gets(numstr);

zg[j].ft=atof(numstr);

printf("\t交通补贴:

%10.2f\n",zg[j].jtbt);

printf("\t请输入职工的交通补贴:

\n");

gets(numstr);

zg[j].jtbt=atof(numstr);

zg[j].sfgz=(zg[j].jbgz)+(zg[j].jt)+(zg[j].gt)+(zg[j].bt)+(zg[j].ft)+(zg[j].jtbt);

printf("\t房租:

%10.2f\n",zg[j].fz);

printf("\t请输入职工的房租:

\n");

gets(numstr);

zg[j].fz=atof(numstr);

printf("\t储蓄:

%10.2f\n",zg[j].cx);

printf("\t请输入职工的储蓄:

\n");

gets(numstr);

zg[j].cx=atof(numstr);

printf("\t汇费:

%10.2f\n",zg[j].");

gets(numstr);

zg[j].");

zg[j].grsds=tgrsds(zg[j].sfgz);

zg[j].yks=(zg[j].fz)+(zg[j].cx)+(zg[j].");

return(0);

}

程序提示用户输入职工的编号,使用线形查找相应的记录,如果找到,则提示用户输入新的相应的职工信息。

第四章程序调试分析

当把程序写好并进行调试时,并不是一帆风顺的,总会遇到很多在调试时遇到的错误。

1.首先在定义函数时,不能输入汉字。

否则会程序会显示错误。

2.在程序中,如果定义职工的基本工资、津贴、岗贴、补贴、房帖、交通补贴等为float型,而后面其相应的返回值为双精度浮点型,会出现相应的警告

3.前后定义变量要统一。

4.如果要调用添加函数,修改函数,修改函数,查找函数,统计函数等要在主函数前面进行申明。

否则会显示警告。

5.对背景颜色设置的时候,当你输入的颜色在内存中不存在时,运行程序过后,系统会告诉你相应的颜色符号常数及数值。

6.如果程序在运行的过程中,对于一个循环语句,如果你返回的值始终是真的,那么程序将进如死循环。

7.未注意int,float型数据的数值范围,int型数据的数值范围(-32768~32768)。

对定义工资变量时,如果将职工工资定义为float型,将会出现警告。

8.对应该有花括弧的复合语句,忘记加花括弧。

9.所调用的函数在调用语句之后才定义,而又在调用前未加说明。

第五章程序使用说明

运行程序进入到主菜单后,显示一个职工工资管理系统主菜单窗口,然后分别按所提示的在1-8中选择,分别输入相应的数字后按Enter键即可。

例如按数字键1后,是对职工工资的录入,然后分别输入相应的工资信息。

按数字键2,是删除职工信息,输入相应的职工编号即可,当你输入的编号不存在,会提示你没有你要删

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2