c++课程设计高校工资管理系统.doc
《c++课程设计高校工资管理系统.doc》由会员分享,可在线阅读,更多相关《c++课程设计高校工资管理系统.doc(18页珍藏版)》请在三一办公上搜索。
1、任务书一、设计题目高校工资管理系统二、主要内容三、具体要求及应提交的材料高校有五类职工:教师,实验员,行政人员,教师兼职实验员,行政人员兼职教师。为了实现工资发放的自动功能,现要求编写程序来自动完成此功能。同时注意生成的相关数据结果以文件方式存放在硬盘中。程序应具备从键盘录入,文件的可继续录入,任意职工的工资查询(可由职工编号和职工姓名来实现),如若有职工由于工作调动,则可进行相对应的删除工作。相关信息: 每一学期将学校职工的本学期任职情况及上学期工作的相关情况输入计算机,则本学期职工的月工资按程序处理后的结果发放,其中职工的工资计算方法如下:其中工资的基本构成如下: 教师: 基本工资+课时费
2、; 实验员: 基本工资+实验室补助; 行政人员: 基本工资+行政补贴; 教师兼职实验员: 基本工资+课时费+实验室补助; 行政人员兼职教师:基本工资+行政补贴+课时费;(其中: 1.课时费:教师每一学期的基本工作量为120,实验员每学期基本工作量为70,行政人员没有基本工作量,每节课时费为20元;课时费=(上学期工作量-基本工作量)*20; 注意:如果上学期基本工作量没完成,则其(上学期工作量-基本工作量)*20为负值。 2.基本工资:教师800元,实验员650元,行政人员750元。 3.行政补贴:250元。 4.实验室补助:150元。)四、主要技术路线提示五、进度安排六、推荐参考资料(不少于
3、3篇)1 引 言1.1 问题的提出随着高等学校的快速发展,高校规模越来越大,教职工的数量也越来越多,高校工资管理更加的复杂化,儿工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财政部门其他发面的核算和财务处理,同时计算机具有着手工管理嗦无法比拟的优点。高校工资管理系统便是以计算机为工具,通过对工资管理所需的信息管理,优化了管理体系,使其高效化、智能化,也提高了透明度和互动性。2. 程序的主要功能2.1添加功能可以从键盘或
4、文件录入职工的相应信息。2.2删除功能能够对指定的职工信息进行删除。2.3 显示功能能够显示职工编号、姓名、类别、本学期任职情况和工资等信息。2.4查找功能根据你键入的职工编号,显示其详细信息。2.5计算功能 根据你键入的职工相关信息自动计算其工资功能。3 程序运行平台4 总体设计5 模块分析5.1 添加模块系统将提示用户输入新添加的职员的信息,插入在链表中。void College:Add() /增加职工 Person *p=PL; while(p-next)p=p-next; int ch; coutch; Teacher *pt; /创建新结点,录入数据,连接到链表 Assistant
5、*pa; Manager *pm; Teacher_Assistant *pta; Manager_Teacher *pmt; switch(ch) case 0: pt=new Teacher; pt-Input(); p-next=pt; break; case 1: pa=new Assistant; pa-Input(); p-next=pa; break; case 2: pm=new Manager; pm-Input(); p-next=pm; break; case 3: pta=new Teacher_Assistant;pta-Input(); p-next=pta; br
6、eak; case 4: pmt=new Manager_Teacher; pmt-Input(); p-next=pmt; break; default: return; 输入需要添加的教职工类别ch (0-教师,1-实验员,2-行政人员,3-教师兼实验员,4-行政兼教师) 创建新结点,录入数据,连接到链表 switch(ch)case0:pt=new Teacher; pt-Input();p-next=pt; break;case 1: pa=new Assistant; pa-Input(); p-next=pa; break;case 2: pm=new Manager; pm-In
7、put();p-next=pm; break;case 3: pta=new Teacher_Assistant;pta-Input();p-next=pta; break;case 4: pmt=new Manager_Teacher; pmt-Input(); p-next=pmt;break;5.2 显示模块显示模块将输出所有职员的主要资料 。void College:Print() /显示输出职工信息coutn* 职工信息表 *n; coutnext; if(!p)coutOutput(); p=p-next; Person *p=PL-next; true !p falsecoutO
8、utput(); p=p-next;/找到并输出职工信息5.3 删除模块首先由用户输入要删除的单个职员姓名,然后调用删除函数,删除该名职员的资料。int College:Find(int ID,Person *p1,Person *p2) /查找职工结点*p1=PL-next; *p2=PL; while(*p1)if(*p1)-no=ID) break; /找到else *p2=*p1; /继续查找 *p1=(*p1)-next;return *p1?1:0;void College:Delete() /删除职工coutn* 删除职工 *n;int no; Person *p1,*p2; c
9、outno; if(!Find(no,&p1,&p2)coutnext=p1-next; /连接delete p1; coutnext=p1-next; /连接delete p1;cout正确删除!n;coutnext; *p2=PL; while(*p1)if(*p1)-no=ID) break; /找到else *p2=*p1; /继续查找 *p1=(*p1)-next;return *p1?1:0;void College:Find1() /查询职工信息coutn* 查询职工 *n;int no; Person *p1,*p2; coutno; if(!Find(no,&p1,&p2)c
10、out指定的人员没有找到!n;elsecout编号 姓名 岗位 课时 收入情况n;coutsetw(4)nosetw(6)namesetw(4)dutysetw(8)hourssetw(8)Incoming()endl; 由输入的职工编号查找职工结点 找到 未找到按照格式输出所查找到的职工相关信息cout指定的人员没有找到!n;结论通过这次课程设计,我对C+又有了更深一步的了解,尤其是关于指针、链表等数据结构,还有类的使用,基本上可以灵活运用指针数组了。类与对象的使用使程序更加模块化,与客观世界的联系也更为紧密。在编写程序之前对自己所要编写的程序所要实现的功能,使用什么结构等要有大致的构思,这
11、样在编写时思路才会更清晰,程序出错的几率降低,程序总体上的考虑也能更周全、运行更顺畅。 附 录附录1 源程序代码#include #include #include #include #include #include const int P=20;class Person /定义抽象类protected:int no; /编号 char name20; /姓名 int duty; /人员类别:0-教师,1-实验员,2-行政人员,3-教师兼实验员,4-行政兼教师 int hours; /基本工作量Person *next; /指针域public:Person() /构造基类next=0; /指
12、针域设为空virtual Person() /基类虚析构virtual void Input()=0; /从键盘输入数据 virtual void Input(ifstream& ifs)=0; /从文件输入数据 virtual void Output()=0; /向屏幕输出数据 virtual void Output(ofstream& ofs)=0; /向文件输出数据 virtual int Incoming()=0; /计算收入 friend class College;class Teacher:virtual public Person /教师类public: Teacher() /
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 课程设计 高校 工资管理 系统
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2384419.html