没有合适的资源?快使用搜索试试~ 我知道了~
C语言程序设计基础课程设计工资系统报告.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 6 浏览量
2022-07-14
18:13:13
上传
评论
收藏 1.37MB DOCX 举报
温馨提示
试读
51页
C语言程序设计基础课程设计工资系统报告.docxC语言程序设计基础课程设计工资系统报告.docxC语言程序设计基础课程设计工资系统报告.docxC语言程序设计基础课程设计工资系统报告.docxC语言程序设计基础课程设计工资系统报告.docxC语言程序设计基础课程设计工资系统报告.docxC语言程序设计基础课程设计工资系统报告.docxC语言程序设计基础课程设计工资系统报告.docxC语言程序设计基础课程设计工资系统报告.docx
资源推荐
资源详情
资源评论
目录
一、需求分析-------------------------------------2
二、概要设计-------------------------------------2
三、详细设计-------------------------------------4
四、调试分析-------------------------------------4
五、用户手册-------------------------------------5
六、测试数据-------------------------------------6
七、程序代码------------------------------------14
第 1 页
一、需求分析
1. 第一步,依据身份进行登录,管理员和职工所能进行的操作不同,具备较高平
安性,同时用户可根据需要修改自己的密码,管理员还可添加和删除用户,
首次使用时不存在用户,管理员可进行注册,注册成功后再进入使用。
2. 多职工信息进行操作时,建立动态链表,每个节点包含一个职员的工号、姓
名、工资等全部信息,通过链表构建一个完整的职工信息库,链表具备录入、
删除、修改、查询及统计功能,各功能显示在菜单中,由主函数分别调用。
3. 为了防止一个函数体过长,进行细化子函数,小型子函数在各个主调函数里
屡次调用,便于使用。
4. 以可读可写可追加方式新建一个文本文件,用于存储链表里所有节点上包含
的信息,将节点信息导入文件时,从头指针开始,依次写入。
5. 查询、修改、删除、职工信息时,调用子函数以只读方式翻开系统库文件,
并将文件从头至尾读取一遍,每次读取一个节点的长度,将每次读取到的信
息依次导入到链表的节点中去,再对链表进行所需功能的操作。修改和删除
完成后,将整个链表包含的信息重新写入文件,写入之前翻开系统库文件同
时进行格式化。
6. 统计职工最高、最低工资及工资均方差时,以同时方式将职工工资等信息导
入到链表中,然后以子菜单的形式输出统计的工程,包括各部门和全公司以
及最高、最低工资和工资均方差。统计各部门最高、最低工资和工资均方差
时需再调用子函数分别进行操作。统计全公司最高、最低工资和工资均方差
时采用多分支结构进行。
7. 通过屏幕操作等函数对界面进行处理,相对美观。菜单及所有操作提示信息
均采用中文输出,每一步操作后会有相应的提示。如文件不存在或为空时,
会提示“文件翻开失败!〞或“文件是空的!〞或输入有误时提示重新输入。
二、概要设计
1. 函数设计
main();
主函数控制整个程序流程,先登录再进行子函数调用
管理员菜单函数
menu1();
menu2();
职工菜单函数,可操作范围比管理员小
createlianbiao(); 创立链表函数,用链表构建整个信息库
input(); 录入函数,将链表存进文件
readwenjian(struct employee_gz *head); 读取文件内容到指定链表
第 2 页
search(struct employee_gz *head,char xinxi[]); 查询员工工资信息
shuchuxinxi(struct employee_gz *head,char xinxi[]); 输出查询到的员工信息
xiugai(struct employee_gz *head,char infor[]); 修改链表信息送到主修改里去
modify(struct employee_gz *head); 修改文件里员工工资信息
Delete(struct employee_gz *head); 删除文件里某员工信息
shanchujd(struct employee_gz *head,char info[]); 删除节点信息
zhuceyh();
tianjiayh();
deleteyh();
注册账号
添加账户信息
删除用户信息
choose(struct employee_gz *head,char bumen[]); 选择统计的工程
count_zdgz(struct employee_gz *head,char bumen[]); 用于某部门计算最低工资
count_zggz(struct employee_gz *head,char bumen[]); 用于某部门计算最高工资
count_pjgz(struct employee_gz *head,char bumen[]); 用于某部门计算平均工资
count_gzfc(struct employee_gz *head,char bumen[]); 用于某部门计算工资方差
count_gz(struct employee_gz *head,char bumen[]); 浏览统计的各项工资指标
tianjiayh(); 管理员可进行添加职工账户信息,用于职工登录系统查询信息
2.流程控制
(1)主函数模块
int main(){
读取账户文件;
do{
① 管理员登录;
函数分支:1)录入记录:调用读取职工工资信息文件函数和创立链表函
数后写入文件;
2)删除记录:调用读取职工工资信息文件函数和修改链表函
数后重新写入文件;
3)查询记录:调用读取职工工资信息文件函数和输出所查节
点信息函数;
4)修改记录:调用读取职工工资信息文件函数和修改节点信
息函数后重新写入文件;
5)统计记录:采用两层多分支结构,第一层分支结构进行部
门选择,调用读取职工工资信息文件函数和统计最低、最高、平均工资和工
资方差函数,统计全公司工资时直接查找和计算;
6)重新登录:返回主函数;
7)添加登录账户:调用添加账户函数;
8)修改账户密码:调用修改密码函数;
9)删除登录账户:调用删除账户函数;
0)退出系统:exit(0);
② 职工登录;
第 3 页
函数分支:1)查询个人记录:调用输出符合搜索条件的节点信息函数;
2)浏览公司记录:调用统计工资函数;
3)重新登录:返回主函数;
4)修改登录密码:调用修改密码函数;
0)退出系统:exit(0);
}while(退出系统:exit(0))
三、详细设计
1. 根本数据类型
(1)字符串型;
(2)长整数型;
2. 程序设计步骤说明及注释
(1)函数介绍及调用关系见概要设计。
(2)注释见附录〔源代码中以标出注释〕。
四、调试分析
1. 开始创立了链表之后,将整个链表中的信息写入文件时,写入方式不对,向
文件里写入数据块内容时,数据以二进制方式存储,新建文件和翻开文件的
方式必须加上 b,并用循环控制,从头结点开始,每次写入一个节点,数据长
度为 1,而不是其他的数字。
2. 修改和删除后文件里的数据出现错乱,再次查询时出现乱码,原因还是操作
后的写入方式不对,需要以“wb〞方式将原文件清空再将整个链表中的信息
写入。
3. 进行工资信息统计时,输出结果有错误,参加员工数的输出后发现输出的员
工数比录入的多,且其工资为 0 的情况,进行查询函数检验时发现会输出多
余的空信息〔无职工名、无工号、工资为零等〕或者重复输出,原因应该是
存入文件时存在问题,因此在输出查询信息及统计时参加了限制条件将空节
点或者多余的信息筛选掉。
4. 统计分为各部门和全公司,如果只用一个子函数实现所有统计功能那么比拟
繁琐、函数体太大,因此需再使用子函数分别对各工程进行统计,那么进行
不同部门的统计时调用子函数就比拟困难。因此在这些统计最低工资、最高
工资、平均工资、工资方差的函数中,需要定义一个部门变量,在条件语句
里把部门信息通过参数传递在子函数中使用,从而通过条件语句找到该部门
信
第 4 页
息并统计。
5. 在删除和修改函数中,为了防止繁琐,同样调用子函数对链表进行操作,在
进行修改方式和删除方式选择时,需要重新定义一个共同变量并传递给子函
数,在判断语句里采用“或〞语句对姓名和工号同时搜索。
6. 在进行职工信息添加时,开始没有防止重复信息的输入,输入已有的职工工
号时,应提示“已有该职工信息!〞,因此要对原文件的内容进行便利检索,
同时要对正在建立的链表进行检索,因为无法将原文件内容与正在建立的链
表连接起来,只能通过对两个链表进行两次检索,将正在建立的链表以追加
的方式写到已经建立好的文件中〔添加到元数据后面〕。
7. 进行菜单内的操作提示输入有误时,再按任意键会直接退到主菜单,再要进
行该操作需重新选择菜单,消耗时间,使用循环语句控制,提示“输入有误
时!〞再次提示输入,将新输入的数据重新赋给变量,知道输入信息正确时,
包括部门及职务的合法性检验。
8. 将职工的基金、税金、应发工资等信息修改后,输出查询的各项结果除以修
改的其他的不变,那么就不符合要求,因为应发工资等于根本工资与岗位工
资、奖金之和,实发工资等于应发工资减去基金和税金,因此修改这些信息
时,需要重新计算,保证各项信息正确。
9. 上一界面或者上一语句操作完成后需跳转下一语句,有时会出现两层信息重
叠在一起,甚至错误,原因是没有去除上一层内容,因此需要在很多地方参
加清屏操作或是删除上一行的操作,进行删除上面多行时,要从所需删的最
下面一行开始删除,依次向上。
10. 职工登录后,把其工号〔用户名〕作为参数传递给子函数,查询其个人信息
时,按此工号对文件里的内容〔先将文件内容读到链表里〕进行检索后输出。
11. 开始没有修改登录密码的操作,不便于用户使用,增加修改密码函数后,管
理员和职工可以各自修改自己的密码,保证用户平安。后来还同时添加了删
除登录账户函数,便于管理员管理。
12. 考虑到首次使用时,没有任何账户信息,也没有存储用户的文件,而导致运
行故障。因此首次运行时,增加语句完成管理员用户的注册,注册成功后管
理员再进行相关操作。
五、用户手册
1. 本程序的运行环境为 windows xp 或 windows 7(32 位)的操作系统 ,执行文件为
剩余50页未读,继续阅读
资源评论
xxpr_ybgg
- 粉丝: 6421
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功