C 课程设计报告

发布 2022-09-30 18:08:28 阅读 9470

2024年c++课程设计题目。

题目:一、 用多态性实现工资发放系统。

某公司按月给其雇员发放工资,该公司有4种雇员:

固定薪金的雇员:不管工作多长时间,总拿固定周薪;(但如果请假,要扣除相应的薪金,请假次数×每次扣除金额30)

小时工:以小时计算,加上加班费;(每月基本工作时间为160小时,其余为加班时间)

销售员:按销售收入提成计算;(每月基本销售额度为30000元,低于此额度,在月薪里扣除少于30000部分的千分之二)

带薪销售员:底薪加上销售收入提成(要求同上,若有请假,也要扣除相应的薪金)

如果employee 生日所在的月份在本月,那么公司会无条件奖励200元。

多态的雇员工资发放程序的类层次,如下图所示:

实现一个工资发放系统,完成各种工资的计算,并以字符操作界面的形式实现以下功能:

1. 初始化系统。

创建存储该公司职工信息的存储系统(并进行职工信息的输入,注意:公司的职工编号由系统按顺序自动生成,并且员工号一旦分配好就不可以再修改!;

第一次运行系统,根据系统提示从键盘输入员工的相应信息进行初始化操作,通过退出保存至文件中,若原来存在则原数据被全部删除。

以后每次运行程序,初始化时都从文件中读取员工数据即可。

2. 职工信息输出。

要求可以输出:

某类职工当月的薪水发放信息。

分类输出全体职工当月的薪水发放信息。

某一名职工当月的薪水发放信息。

格式如下:固定薪金职员。

编号姓名出生年月工种奖励薪金固定月薪请假天数应扣实发工资是否领取。

计时职员。编号姓名出生年月工种奖励薪金工作时长时薪加班时长实发工资是否领取

普通销售员。

编号姓名出生年月工种奖励薪金销售额提成比例应扣实发工资是否领取。

带薪销售员。

编号姓名出生年月工种奖励薪金固定月薪销售额提成比例请假天数应扣实发工资是否领取。

3. 添加职工。

通过键盘输入相应的职工信息,添加职工,并通过退出保存至文件中。

4. 删除职工。

通过输入职工的工号,首先输出要删除的职工相应的信息,经确认后删除,考虑职工不存在的情况。并通过退出保存至文件中。

5. 修改信息。

要求可以修改:

除编号外的所有职工信息,包括工种以及由修改工种带来的各项操作。

修改某一类工种的信息,如销售人员的提成比例,统一提高0.05;

输出修改前的职工信息, 经确认后修改后,输出修改后的职工信息,考虑职工不存在的情况,并通过退出保存至文件中。

6. 工资发放。

通过输入职工号方式,输出查询到的职工相应的信息,经确认发放工资,将员工是否领取工资信息设置为是(即真),考虑所要查询的职工编号不存在和已经发放过工资的情况。

7.保存退出。

通过确认,保存修改的信息至文件中,退出系统,结束运行。

注意:所需的成员函数根据自己需要进行分析。

在上**实验数据”职工发放系统实验数据。doc”,按照文件给出的输入数据和运行步骤对程序进行测试,检查程序运行是否正确。

可在ftp中**参考的类定义,也可以自己定义。

如有兴趣,可以自己添加其他功能,作为成绩评定时参考。

流程。输出职工信息。

添加新职工。

添加固定薪水员工

添加计时员工

添加普通销售员工

添加带薪销售员工

删除职工信息

修改职工信息。

修改某个员工的信息。

修改某类员工的信息。

输出指定职工信息。

修改固薪员工的固定薪水。

修改计时员工的时薪。

修改普通销售员工的提取比例。

修改带薪销售员工的固定薪水。

修改带薪销售员工的提取比例

工资发放 保存退出

输出结果:一.输出职工信息。

1.分类输出全部职工信息。

2.输出计时类员工信息。

3.输出名字为mary的职工信息。

4. 输出名字为lili的职工信息。

二.添加新职工 & 三.输出职工信息。

四.删除职工信息。

五.修改职工信息。

七.添加新职工 & 八.输出固定薪水的员工信息。

九.工资发放。

二、 题目:

类模板的定义及实现。

用一个有行数×列数的一维数组来定义一个二维数组doublesubcriptaaary类模板,能够处理不同类型的数据,并要求实现以下基本功能(不能使用向量):

1.初始化。

doublesubcriptaaary《类型说明符》数组名(行数,列数)//数组初值随机,默认为5×5的二维矩阵。

doublesubcriptaaary《类型说明符》数组名(行数,列数,d)//数组元素初始值全部为d

doublesubcriptaaary《类型说明符》数组名1(数组名2)//将数组2的元素按顺序赋值给数组1

doublesubcriptaaary《类型说明符》数组名1(行数,列数,元素地址1,,元素地址2)//将数组2的元素地址1开始到元素地址2之间的元素值按顺序赋值给数组1,若不够则补0

实现构造函数时需注意判断实参的有效性。

2. 可以进行的操作。

at(下标1,下标2)

格式:数组。at(下标1,下标2)

作用:返回下标对应的元素值。需要考虑下标超出范围的操作。

first()

格式:数组。first( )

作用:返回数组第一个元素的地址。

size()

格式:数组。size()

作用:返回数组的容量(能存放元素的个数)

cat(数组名2)

格式:数组名 数组名2)

作用:合并两个数组,产生一个新的二维数组用来存放两个数组当中所有的数,要求两个数组行或列至少有一个相同。

find(int)

格式:数组。find(d)

作用:查找数组中所有值为d的元素,若找到,返回该d元素首次出现的位置;若没有找到,则返回-1;

erase(下标1,下标2)

格式:数组。erase(下标1,下标2)

作用:删除下标对应的元素,之后的元素往前移,最后空余位置补0

erase(下标1,下标2,int )

格式:数组。erase(下标1,下标2,d)

作用:删除下标对应的元素开始的d个元素,之后的元素往前移,最后空余位置补0,考虑下标范围的有效性。

swap(数组)

格式:数组名数组名2)

作用:交换两个数组的元素,要求两个数组大小一致。

sort(char,bool,数组)

格式:数组。sort(布尔值,数组)

作用:给数组元素进行排序。

布尔值为真时,表示所有元素按序排列。

布尔值为假时,表示各行元素按序排列。

3. 运算符重载。

格式:数组[下标1][下标2]

作用:返回对应下标的元素值,注意判断下标范围有效性。

格式:数组1*数组2

作用:两个数组相乘,返回一个二维数组,要求数组1的列数必须等于数组2的列数。

格式:数组1+数组2

作用:两个数组对应元素相加。

格式:数组1==数组2

作用:判断两个数组是不是相等,不仅大小要完全一致,对应元素也必须相等,若相等返回真,若不等返回假。

格式:数组1=数组2

作用:将数组2的元素按顺序赋值给数组1,两个数组若大小不一致,首先删除数组1,并重新分配一个具有合适大小的数组1

格式:数组1>数组2

作用:数组1中元素大于数组2中对应下标的元素的个数d1

数组1中元素小于数组2中对应下标的元素的个数d2

若d1>d2返回真,否则返回假。

格式: >数组。

作用:一次输入数组中所有元素的值。

格式: 《数组。

作用:按行列一次输出数组中所有元素的值。

流程。1.定义a1(7,8,9),a2(7,8,8),d(7,8),a3(8,0);

测试 > 的重载!

2.测试指针赋值。

定义c(0,7,3.测试[ ]重载:"<4.与at(i,j)函数比较。

5.交换前两数组的值。

6.测试first()函数和size()函数。

7.测试erase()函数

8.测试赋值运算符。

定义a4(3,2),a5(2,3),a6(2,5),a7(2,3);

9.进行连接操作。

10.进行输入操作并进行乘法。

输入一三行二列的数组值: a4

输入一二行三列的数组值: a5

进行乘法,进行加法,排序。

输出结果:1.定义a1(7,8,9),a2(7,8,8),d(7,8),a3(8,0);

测试 > 的重载!

2.测试指针赋值。

定义c(0,7,3.测试[ ]重载:"<

4.与at(i,j)函数比较

5.交换前两数组的值。

6.测试first()函数和size()函数。

7.测试erase()函数

8.测试赋值运算符。

定义a4(3,2),a5(2,3),a6(2,5),a7(2,3);

9.进行连接操作。

10.进行输入操作并进行乘法。

输入一三行二列的数组值: a4

输入一二行三列的数组值: a5

进行乘法,进行加法,排序。

总结。这次课程设计基本上含盖了大学一年纪学习到的c++ 语言知识点,课设题目要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。

通过这两道题目,我们先是复习了类的继承派生,然后重新把类模板巩固了一下,也回顾了一下上学期的内容,复习到了一些小的知识点,运用了二维指针,对数组有了更深入的了解与掌握。

这次课程设计使我了解我编程思想和编程技巧。同学只关心程序运行的结果,而对程序**的结构的良好丝毫不在意。这是非常不可取的,如果我们希望将来从事编程工作,在这一点上该引起足够的重视。

这是严谨的态度,很重要!

c语言课程设计报告 课程设计报告

周口师范学院。课程设计报告。院 系 计算机科学与技术学院 班级。学生姓名学号。设计题目 职工工资管理系统。完成日期 年月日 课程设计任务书。设计题目 工资管理系统 教研室主任指导教师 年月日。摘要11设计内容 任务及具体要求2 1.1设计内容2 1.2设计任务及具体要求2 2概要设计3 2.1该系统...

C课程设计报告

题目各类图形面积与周长计算和高考倒计时。学生姓名张磊 学号 20131344054 学院计算机与软件学院 专业软件工程 指导教师马瑞。二 一五年六月 25 日。目录。1 引言 1 1.1 系统开发背景和意义 1 1.2 服务器运行环境 2 1.3 课题内容 2 2 系统需求分析及相关技术介绍 2 2...

C 课程设计报告

c 程序课程设计报告。学院 资源与安全工程学院 专业班级 城市地下空间工程1303 姓名卢途。指导教师 彭述权。课程设计时间 2013 2014学年第二学期18 19周。一 题目一 设计一 学生成绩管理系统 它的主要功能是对学生的成绩进行输入 修改和管理。系统功能要求 界面要求 学生成绩管理系统 1...