c课程设计报告--高校工资管理系统

c课程设计报告--高校工资管理系统
c课程设计报告--高校工资管理系统

课程设计报告课程名称面向对象程序设计

课题名称高校工资管理系统

专业通信工程

班级

学号

姓名

指导教师

20 年12月26日

湖南工程学院

课程设计任务书

课程名称面向对象程序设计

课题高校工资管理系统

专业班级通信工程1001班

学生姓名彭琼林

学号201003040114

指导老师乔汇东张鏖峰李洁君

审批

任务书下达日期20 年12月17日任务完成日期20 年12月26日

一、设计内容与设计要求

1.课程设计目的:

面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。

2.课题题目

高校工资管理系统

3.设计要求:

⑴设计课题题目:每位同学根据自己学号除以4所得的余数加一选择相应

题号的课题。换题者不记成绩。

⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:主要包

括系统设计目的与意义;系统功能需求(系统框图);输入输出的要求等内容。

②完成系统总体设计:主要包括系统功能分析;系统功能模块划分与设计(系

统功能模块图)。③完成系统详细设计:主要包括类层次图;界面设计与各功

能模块实现等累人。④完成系统调试:主要包括调试出现的主要问题,编译语

法错误及修改,重点是运行逻辑问题修改和调整。⑤使用说明书及编程体会:

说明系统的使用和操作步骤,详细列出每一步的操作步骤。⑥附录:关键源程

序(带注释),可以只选取程序主要部分。

⑶按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。

⑷不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。二、进度安排

星期三14时:00分——18时:00分

星期四14时:00分——18时:00分

课题3:高校工资管理系统

(一)、课程设计题目:

高校工资管理系统

(二)、目的与要求:

1、目的:

(1)要求学生达到熟练掌握C++语言的基本知识和技能;

(2)基本掌握面向对象程序设计的基本思路和方法;

(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

2、基本要求:

(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;

(2)要求在设计的过程中,建立清晰的类层次;

(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;

(4)在系统的设计中,至少要用到面向对象的一种机制。

3、创新要求:

在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。

4、写出设计说明书

(三)、设计方法和基本原理:

1、问题描述(功能要求):

现一高校有五类职工:教师,实验员,行政人员,教师兼职实验员,行政人员兼职教师。为了实现工资发放的自动功能,现要求编写程序来自动完成此功能。同时注意生成的相关数据结果以文件方式存放在硬盘中。程序应具备从键盘录入,文件的可继续录入,任意职工的工资查询(可由职工编号和职工姓名来实现),如若有职工由于工作调动,则可进行相对应的删除动作。

相关信息:

每一学期将学校职工的本学期任职情况及上学期工作的相关情况输入计算机,则本学期职工的月工资按程序处理后的结果发放,其中职工的工资计算方法如下:

其中工资的基本构成如下:

教师:基本工资+课时费;

实验员:基本工资+实验室补助;

行政人员:基本工资+行政补贴;

教师兼职实验员:基本工资+课时费+实验室补助;

行政人员兼职教师:基本工资+行政补贴+课时费;

其中课时费计算:教师每一学期的基本工作量为120,教师兼职实验员每学期基本工作量为70,行政人员没有基本工作量,若每节课时费为20元;课时费=(上学期工作量-基本工作量)*20;

注意:如果上学期基本工作量没完成,则其(上学期工作量-基本工作量)*20为负值。

2、问题的解决方案:

根据系统功能要求,可以将问题解决分为以下步骤:

(1)写出需求分析(做什么);

(2)分析系统中的各个实体之间的关系及其属性和行为;

(3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述(包括属性和方法);

(5)完成类中各个成员函数的定义;

(6)用户界面的设计;

(7)分析系统功能模块(系统流程图);

(8)代码编写,功能调试;

(9)完成系统总结报告以及系统使用说明书。

目录

1. 系统需求分析 (1)

2. 总体设计 (1)

3. 详细设计 (2)

4. 系统调试与使用说明 (6)

4. 结果分析 (10)

5. 总结 (10)

6. 源代码 (10)

1.系统需求分析

现在各高校工资的管理变得越来越来复杂,为了对工资进行系统化的管理,并实现工资的自动发放功能,特设计此系统。它可以对职工的基本信息进行输入和存取,其次可以选择职工的编号和姓名查询职工的工资的所有基本信息,如若有职工由于工作调动,则可进行相对应的删除

动作。生成的相关数据以文件的形式存放在硬盘上,并且可以继续录入,以达到建议操作的目的。

2.总体设计

该程序采用的是类、继承、多态及文件来处理职工的所有基本信息,如下所述。

包含的库函数有:

# include # include # include # include

其中# include是文件流的头文件,ifstream 和ofstream表示输入和输出文件流。

包含的函数有:

主函数main()

菜单函数show() show 1() show 2() show 3() show 4()

录入函数void jiaoshilur() voidshiyanyuanluru () void managerluru()

void jianzhi1luru() void jianzhi2luru()

查询信息函数void jiaoshichaxun() void managerchaxun() void shiyanyuanchaxun()

void jianzhi1chaxun() void jianzhi2chaxun()

删除信息函数void jiaoshishanchu() void shiyanyuanshanchu() void managershanchu()

void jianzhi1shanchu() void jianzhi2shanchu()

包含的类:class Employee() class Teacher() class Dhiyanyuan()

class Manager() class Jianzhiq() class Jianzhi2()

系统功能模块图

3.详细设计

1.系统进入

此部分功能主要是提供进入系统的一个接口,系统以菜单形式打开,输入选项执行相关动作,在输入选项的同时系统还对你输入的选项进行检验,若不合理,系统就会自动提示输入错误,并重新输入;若合理,则执行相关动作。

2.信息录入

此部分的功能主要是对职工的信息进行录入并保存,包括其编号和姓名及教师课时量。

录入流程图

3.信息查询

此部分的功能主要是根据你输入的职工的编号或者是姓名查询工资,若之前没有录入此人信息,则输出“没有你要查询的对象”。

查询流程图

4.信息删除

此部分的功能主要是有职工由于工作调动,可进行相对应的删除动作。

删除流程图

5.退出系统

此部分功能就是在执行完所有动作后推出此系统。

4.系统调试与使用说明

在这次程序的编写过程中,主要存在的问题是文件操作与文件流。没有注意到在向文件输出数据时。“f<

1.系统界面

进入程序菜单,界面如图

2.录入界面

3.查询界面

文件中没有查询在对象

3.删除界面

4.文件已经删除

4.结果分析

设计特点:在输入信息的时候先选择你要输入的职工类型,然后有提示输入职工的个数,逐个输入即可,在输入过程中,系统会自动将用户输入的信息存储到相应的文件中。不过此系统没有修改用户信息的功能,只能查询用户信息和删除信息。

5.总结

通过这次对《高校工资管理系统》的设计,我体会到面向对象程序设计的特点,多态性,封装性,继承性,并掌握了一定的编程技巧,拓展了思维,提升了自己解决实际问题的能力。虽然对文件和多态的理解还很肤浅,但是我学到了很多平时学不到的东西。通过这次课程设计,深深体会到我对很多的专业知识还不了解,同时也把我在学这门课程的所存在的弊端暴露出来了,这就促使我要更多的阅读课外书籍,学到更多的专业知识,使自己得到不断的提高。

最后,我要衷心感谢老师和同学在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的课程设计。

6.源代码

#include

#include

#include

#include

int i;

class Employee

{

public:

char name[20];

int num;

void display()

{

cout<<"姓名:";cin>>name;

cout<<"编号:";cin>>num;

}

};

class Teacher:public Employee

{

public:

int score;

int time;

Teacher(int s=1000){score=s;}

void display1()

{

cout<<"请输入教师的";

Employee::display();

cout<<"请输入教师的工作量(课时):";cin>>time;

}

};

class Shiyanyuan:public Employee

{

public:

int score;

int buzu;

Shiyanyuan(int s=800,int b=250){score=s;buzu=b;}

void display1()

{

cout<<"请输入实验员的";

Employee::display();

}

};

class Manager:public Employee

{

public:

int score;

int butie;

Manager(int s=900,int b=250){score=s;butie=b;}

void display1()

{

cout<<"请输入行政人员的";

Employee::display();

}

};

class Jianzhi1:public Teacher,public Shiyanyuan //教师兼职实验员

{

public:

Jianzhi1(int s=1000,int b=250):Teacher(s=1000),Shiyanyuan(b=250){}

void display1()

{cout<<"请输入教师兼职实验员的";

Teacher::display();

cout<<"请输入教师兼职实验员的工作量(课时):";cin>>time;

}

};

class Jianzhi2:public Manager,public Teacher //行政人员兼职教师

{

public:

int butie;

Jianzhi2(int s=900,int b=210):Manager(s=900){butie=b;}

void display1()

{

cout<<"请输入行政人员兼职教师的";

Teacher::display();

cout<<"请输入行政人员兼职教师的工作量(课时):";cin>>time;

}

};

Teacher t[100];

Shiyanyuan s[100];

Manager m[100];

Jianzhi1 j[100];

Jianzhi2 j2[100];

void show()

{cout<<"请输入你要录入的对象:"<

cout<<"1:教师"<

cout<<"2:实验员"<

cout<<"3:行政人员"<

cout<<"4:教师兼职实验员"<

cout<<"5:行政人员兼职教师"<

相关主题
相关文档
最新文档