东北大学C语言(课程设计)程序实践报告
C语言程序设计报告
工资管理系统
学生姓名:
学生系别:计算机科学与技术
学生班级:
日 期:20xx年x月x日
程序实践报告
【运行环境】
软件:Windows、Microsoft Visual C++ 6.0
PC一台
【实践要求】
工资信息包括:编号、姓名、基本工资、岗位工资、实发工资、房改补助、奖励、公积金、扣税
使之提供以下功能:
(1)用户登陆。
(2)背景音乐。
(3)工资信息录入功能。
(4)工资信息浏览功能。
(5)工资信息查询功能。
(6)工资信息删除功能。
(7)工资信息修改功能。
(8)工资信息排序功能。
【概要设计】
工资管理系统
工资管理系统
用户登录
退出程序
加入员工
查找员工
修改员工
删除员工
输出员工
保存员工
程序帮助
创建员工
实际工资
按编号
基本工资
按扣税
按编号
按姓名
【存储设计】
程序数据存取主要由两个文件:pay.txt、admin.txt组成。
admin.txt :主要存储用户名和密码
pay.txt :职工信息。包括编号、姓名、基本工资、岗位工资、实发工资、房改补助、奖励、公积金、扣税
【头函数】
typedef struct pay
{
long num;
short month;
char name[20];
float should_pay,rebate,actual_pay,post_wage,
merit_pay,house_subsidy,prize,reserve_fund;
struct pay *next;
}PAY;
定义了一个包含编号、姓名、基本工资、岗位工资、实发工资、房改补助、奖励、公积金、扣税变量的结构体。
【模块功能】
1、void menu();z
这个是菜单,用来提示用户选择需要的功能。打印出各种选项可供用户选择。
2、PAY *input();y
这是用来新建职工信息。包括编号、姓名、基本工资、岗位工资、实发工资、房改补助、奖励、公积金、扣税。用预先定义的结构体和指针链表来完成。
3、void output();m
这是用来输出职工信息。可以按照各种关键字排序输出。包括按编号输出、按基本工资输出、按岗位工资输出、按实发工资输出。用预先定义的结构体和指针链表来完成。
4、void save(PAY *head);z
这是用来保存职工信息。在保存后,职工信息全部以二进制的形式保存在pay.txt中。用文件操作和指针链表来完成。
5、PAY *open();y
这是用来读取职工信息。把保存在pay.txt中的信息一个个读取出来,并返回头指针。用文件操作和指针链表来完成。
6、PAY *insert();m
这是用来插入职工信息。用预先定义的结构体和指针链表来完成。
7、void search();y
这是用来查找职工信息。可以按编号查找、按姓名查找。用预先定义的结构体和指针链表来完成。
8、PAY *del();z
这是用来删除职工信息。可以按编号查找、按姓名查找,查找之后删除。用预先定义的结构体和指针链表来完成。
9、PAY *revise();z
这是用来修改职工信息。可以按编号查找、按姓名查找,查找之后修改。用预先定义的结构体和指针链表来完成。
10、void help();y
这是用来指导用户使用本系统。
11、int login();m
这是出于安全考虑所设计的一个登陆模块。输入正确的用户名和密码即可进入本系统。其中用户名和密码保存在admin.txt中。如果输入错误直接退出系统。
12、void playMusic(); m
这个是音乐播放器。可以播放给定目录下的音乐文件。
【心得体会】
经过本学期的学习,再加上近一个月的上机实践,我们组终于在大家的共同努力下,完成了我们的程序作业。在这期间,我们遇到了许多困难,几乎是每天都面对着让我们头疼的代码。面对一次次的报错,一次次的找错,改正,我们从中也学会了认真仔细,更加熟悉了编程的步骤与一些函数的使用。平时在书本上,我们还不能完全的理解那些复杂的函数,指针,但是,经过这次的实践,我们不但强化了自己的操作技能,并且更加巩固充实了所学的理论知识,加深了理解。无论过程多么艰难,无论中间有多少次想“就这样吧”,但是我们最终没有放弃,一直坚持做到我们认为最好的。等完成了,再回头想想,其实当我们解决了错误,当程序终于能完整的运行,那才是我们最最开心的时刻。这是我们第一次完成大作业,我们不但从中学习到了知识,同时也学会了团队合作的重要,相信这些,都是以后工作学习的的重要基础,总之,这次作业,我们学习了很多,我们的付出也终于有了回报,还希望在以后的学习中,我们可以更加努力,更加进步!