C课程设计报告(VC6)职工工资信息管理系统.doc
文本预览下载声明
沈阳理工大学
C语言课程设计报告
课 题 职工工资信息管理系统
院(系、部、中心) 通信工程学院
班 级 信息工程091
姓 名 李正洲
任 课 教 师 程勇
1.设计目的
通过程序设计,达到理论与实际应用相结合,提高对信息管理系统的分析能力,能够根据实际应用,初步实现系统功能模块及算法的设计,通过编程基本实现信息管理系统。
实现系统功能:各种基本信息数据的录入;各种基本数据的修改;各种基本数据的插入;各种基本数据的删除;基于各种数据的查询;基于各种数据的计算。
职工相关信息:(1)职工基本信息:如工资卡号,身份证号,姓名,性别,年龄,工龄,部门,技术职称,技术职称编号,家庭电话号码,手机号码等。(2)工资基础信息:技术职称编号,技术职称,基本工资,职务工资,各种补助等。(3)费用扣除信息:工资卡号,水费,电费,清洁费(5元/月),闭路电视费(10元/月)等。(4)工资单数据:工资卡号,姓名,应发工资,水费,电费,清洁费,闭路电视费,税金,实发工资,特别奖励。其中:税金计算方法为:应发工资800元,税金=0;800≤应发工资≤1400元,税金=(应发工资-800)× 5%;应发工资1400元,税金=(应发工资-1400)× 10%
。
程序要求:1. 只能使用C语言,源程序要有适当的注释,使程序容易阅读。2. 要有用户界面。3. 必须使用结构和链表等数据结构。4. 使用文件保存数据。5. 至少输出一份报表,鼓励自行增加新功能。
2. 概要设计
结束
结束
一、主要设计思想:主函数无限循环;操作之前先开辟内存,建立动态链表,文件中如果有数据则导入内存,每条记录存入一个链表节点;数据的录入、修改、插入、删除、查询等均是对内存中的链表进行操作,每次操作后将数据保存到文件。
二、函数模块:载入模块;新建记录模块;查询模块:修改模块;删除模块;显示模块;打印报表模块;保存数据到文件模块。
三、1. 载入模块: 声明: void loadRec();
功能:由主函数调用,在每次操作前新建链表,预载入保存的职工信息记录。
2. 新建记录模块:声明: void newRec();
功能:由主函数调用,新建职工记录。
3. 查询模块: 声明: void searchRec();
功能:由主函数调用,查询职工记录。
4. 修改模块: 声明: void modifyRec();
功能:有主函数调用,先查询指定职工记录,再修改。
5. 删除模块: 声明: void deleteRec();
功能:由主函数调用,先查询指定职工记录,再删除。
6. 显示模块: 声明: void displayRec();
功能:由主函数调用,显示所有职工记录。
7. 打印报表模块:声明: void printRec();
功能: 由主函数调用,打印记录报表。
8. 保存数据模块:声明: void saveRec();
功能:由新建记录模块、修改模块、删除模块调用。保存数据到文件。
四、各功能模块的结构流程图如下:
3. 调试报告
一、调试错误:内存不能为“read”。
错误原因:定义的结构体指针,程序中在逻辑上引用了不可用的内存,引发操作错误。
解决方法:细读程序,了解程序逻辑上对指针的定义和调用,找出坏指针,修改。
二、调试问题:在显示数据时,怎么判断链表中有无数据的问题。
解决方法:另外开辟了一块结构体大小的内存,当有文件载入或者有新记录建立时,把它连到链表的前面,否则不连。以此作为显示数据的判断条件。
三、调试错误:显示出的数据中出现乱码。
错误原因:打印了程序头部没有记录的空链表节点。
解决方法:head=head-next 将链表头部连到先一个节点。
程序清单
#includestdio.h/*I/O 函数*/
#includestring.h/*字
显示全部