C语言课程设计报告职工工资信息管理系统.doc
文本预览下载声明
PAGE
PAGE 22
目 录
TOC \o 1-3 \h \z \u HYPERLINK \l _Toc212522248 课程设计评语 PAGEREF _Toc212522248 \h 2
HYPERLINK \l _Toc212522249 目 录 PAGEREF _Toc212522249 \h 3
HYPERLINK \l _Toc212522250 1.课程论文题目 PAGEREF _Toc212522250 \h 4
HYPERLINK \l _Toc212522251 2.程序设计思路 PAGEREF _Toc212522251 \h 4
3. 功能模块图6
4. 数据结构设计6
5. 算法设计7
6.程序代码10
7.程序运行结果19
8.编程中遇到的困难及解决方法22
9.总结心得及良好建议23
10.致谢24
课程论文题目
职工工资信息管理系统
【要求】
该系统能够实现工资信息管理。系统包括录入、新增、浏览、查询和排序等功能。其中录入功能要求能够添加新的工资信息到文件;新增功能要求能够新增职工信息到文件;浏览功能要求能够按照工资卡号、姓名分类浏览;有排序功能,排序后按照工资卡号升序或实发工资降序输出;查询功能要求能够按照工资卡号、姓名查询。
【提示】
文件中一行数据对应一个职工工资信息
工资信息的数据结构采用结构体数组,一个数组元素对应一条工资单记录。
工资单信息包括工资卡号、姓名、月份、应发工资、税费、电费、税金、实发工资等
实发工资=应发工资—税费—电费—税金,其中税金计算方法为:
应发工资800元,税金=0
800应发工资1400元,税金=(应发工资—800)*5%
应发工资1400元,税金=(应发工资—1400)*10%
2.程序设计思路
1、设计思路
(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;
(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;
(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。
2、总体设计
整个系统可以分为信息输入、信息新增、信息浏览、信息排序和信息查询五个主要模块。
3、详细设计
(1)工资信息采用结构体数组:
struct list
{
int num; //工资卡号
char name[20]; //姓名
int month; //月份
int salary1; //应发工资
int water; //水费
int electrisity; //电费
float fax; //税金
float salary2; //实发工资
}list[N]; //list[N]中每个数组元素对应一个职工工资信息
(2)输入模块
按照工资卡号、姓名、月份、应发工资、水费、电费的顺序输入信息,税金和实发工资根据输入的信息进行计算得到,这些信息被录入到文件中。
文件操作函数:fopen,fwrite,fclose.
税金的计算:
if(应发工资=800)
税金=0;
else if (应发工资800应发工资=1400)
税金=(应发工资-800)*5%;
else if (应发工资1400)
税金=(应发工资-1400)*10%;
实发工资=应发工资-水费-电费-税金。
(3)新增模块
增加新的职工工资信息,从键盘输入并逐条写到原来的输入文件中,采用追加而不是覆盖的方式(以”ab”方式打开文件)。
(4)浏览模块
调用排序模块的排序功能,可以浏览排序后的所有职工信息。
(5)排序模块
排序模块提供菜单选择,实现按照工资卡号升序、实发工资升序排序。排序方法可以选择冒泡排序、插入排序、选择排序等,本系统用的是冒泡排序。
(6)查询模块
实现按照工资卡号和姓名的查询,采用基本的查找方法即可。
3.功能模块图
职工工资信息管理系统
职工工资信息管理系统
主菜单menu()
输入模块enter()
新增模块add()
浏览模块browse()
排序模块order()
按姓名查询search_1()
查询模块search()
按工资卡号查询search_2()
退出exit(0)
按实发工资排序order_2()
按工资卡号排序order_1()
4.数据结构设计
系统用将职工各项信息以结构体类型struct list来定义,它包括num,name[20],month,salary1,w
显示全部