“数据结构与算法”
课程设计报告
设计题目 简单工资管理系统设计 姓 名 高 扬 学 号 2012217508 专 业 物联网 班 级 物联网2班 完成日期 2014.6.25
(一) 需求和规格说明
(二) 设计某单位职工工资管理系统,功能如下:
(三) 对于每位职工存储以下信息:职工编号、基本工资、津贴、岗位津贴、应发数、
个人所得税、应扣数、实发数。个人所得税计算方法设为:工资少于2000元的部分为0,2000—3000元部分为5%,3000—4000部分为10%,4000—5000部分为15%,5000元以上部分为20%。
(四) 要求:
(五) ① 创建存储职工工资信息的存储文件; (六) ② 添加某职工的工资信息; (七) ③ 删除某职工的工资信息;
(八) ④ 修改某职工的部分工资信息(当月开始增加或减少某些项工资或扣款数变
化);
(九) ⑤ 输出指定编号职工的工资信息(查询用) (十) ⑥ 输出全体职工的工资信息(发工资用)。
(二) 设计
根据要求设计了一个,基yuangong.类的成员有 char name[15];//姓名
float basesalary;//基本工资 float jingtie;//津贴
float gangweijt;//岗位津贴 float yingfa;//应发数 float tax;//个人所得税 float yingkou;//应扣数 float shifa;//实发数
类中还有一个SET函数将各项值保存到类中。 系统类图 开始 以读写方式打开一个数据文 件
将此文件内容读出并且存入
一个新的单链表中
调用select()函数进入主界
面
进入switch函数
输入[0~5]总得一个数值,
选择相关操作
否 输入是否为 0?
否
判断键入值选择响应函数,
完成相应功能。
(三) 用户手册
程序运行时,首先选择是否读入TXT文件中的数据 然后根据界面提示进行相关操作。
(四) 调试及测试
操作中插入成员是参数Num_P++,删除成员时参数Num_P--。 (五) 运行实例:
结束
(六)进一步改进
可以根据固定公式设奇函数来计算并保存税款值,而不用手输。 (七)心得体会
做课程设计让我对于类的构造更加熟悉,更加熟练的运用C++读写文件的方法。初步完成课程设计时,有许多的小问题,通过不断的修改代码改正问题也很好的锻炼了耐心。
(八)对课程设计的建议
可以再多一些创新型课题,鼓励同学们用图形界面做课程设计。 (九)附录??源程序 #include
#define INDEX \姓名 编号 基本工资 津贴 岗位津贴 应发数 个人所得税 应扣数 实发数\\n\
using namespace std; const int P=100;
class yuangong //员工类
{ public: int ID;//员工编号
char name[15];//姓名 float basesalary;//基本工资 float jingtie;//津贴 float gangweijt;//岗位津贴 float yingfa;//应发数 float tax;//个人所得税 float yingkou;//应扣数 float shifa;//实发数 yuangong(){ID=0;basesalary=0;jingtie=0;gangweijt=0;yingfa=0;tax=0;yingkou=0;shifa=0;}; void SET(int id,char *Name,float b,float j,float g,float y,float t,float yi,float s) { int i; ID=id; for(i=0;i<10;i++) name[i]=Name[i]; basesalary=b; jingtie=j; gangweijt=g; yingfa=y; tax=t; yingkou=yi; shifa=s; };
int GETID(){return ID;};
char *GETname(){return name;};
float GETbasesalary(){return basesalary;}; float GETjingtie(){return jingtie;};
float GETgangweijt(){return gangweijt;}; float GETyingfa(){return yingfa;}; float GETtax(){return tax;};
float GETyingkou(){return yingkou;}; float GETshifa(){return shifa;}; };
void readfile(int &Num_P,yuangong *YG) { system(\ char c;
if((_access(\ cout<<\有数据,是否读入(Y/N)?\ cin>>c; if(c=='n'||c=='N'){system(\ int i; int ID;//员工编号