《面向对象程序设计》课程设计报告_第1页
《面向对象程序设计》课程设计报告_第2页
《面向对象程序设计》课程设计报告_第3页
《面向对象程序设计》课程设计报告_第4页
《面向对象程序设计》课程设计报告_第5页
已阅读5页,还剩31页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计面向对象程序设计 课程设计报告课程设计报告 题目 职工信息管理题目 职工信息管理 小型公司工资管理系统 小型公司工资管理系统 院系 院系 专业班级 专业班级 学号 学号 学生姓名 学生姓名 小组成员 小组成员 2011 年年 9 月月 6 日日 一 一 引言引言 本题对程序有如下要求 试建立一个类 Worker 用于描述职工对象 具体要求如下 私有数据成员 int id 职工号 float wage 工资 char level 技术等级 A 一等 B 二等 C 三等 NULL 无级 其它 为无效 公有成员函数 缺省构造函数 初始化数据成员为 0 或 NULL 值 带参构造函数 用参数初始化数据成员 需判断参数是否有效 输出函数 void List 输出本职工的各项信息 修改函数 void Set 从键盘输入新的职工号 工资和等级数据 修改相 应数据成员的值 接受输入前屏幕上显示提示输入哪些信息 主函数 定义三个不同的 worker 对象作为测试数据 完成对 worker 类和 程序的测试 每个成员函数至少被调用一次 系统功能介绍 系统功能介绍 本程序中定义的 Worker 类中包含私有数据成员 Id wage 和 level 公 有成员函数 Worker void List 和 void Set Worker 可以用于参 数初始化数据成员 并判断参数的有效性 void List 可以用于职工信息的 输出 void Set 可以用于输入新的职工信息 此外本程序还可以将输入的技 术等级 A B C 等对应的转换成一等 二等 三等 并将输入的职工信息保存 到 file txt 中 而且在每次输入之前都会有提示信息 模块设计 模块设计 各个成员函数间关联 各个成员函数间关联 主函数 进入主显示界面按 照提示进行选择 1 添加职 工信息 2 显示职工 信息 3 保存职 工信息 4 退 出 退出系统 Press any key to continue worker input 进行 添加数 据操作 void show r 进行 数据显 示操作 worker baocun 保存新 增加的联 系人 fwrite对 file txt 进行保存操作 四 结果显示图 四 结果显示图 五 程序清单 五 程序清单 附主要函数 include include include include include define NULL 0 define LEN sizeof struct worker typedef struct worker 定义结构体 int num char name 20 char level 20 float wage struct worker next worker struct worker head NULL int n 0 worker input worker p 函数声明 worker baocun worker p worker sort worker p void show worker p 主函数 void main char c printf t n printf t n printf t n printf t 欢迎进入 n printf t 职工信息管理系统 n printf t n printf t 按回车键进入系统 n printf t n printf t n printf t n printf t n getchar do system cls printf t n printf t 欢迎使用 n printf t 职工信息管理系统 n printf t n printf t 1 添加职工信息 n printf t 2 显示职工信息 n printf t 3 保存职工信息 n printf t 4 退 出 n printf t n printf t 请选择输入选项 1 2 3 4 do c getchar while c 1 getchar switch c case 1 head input head break case 2 show head break case 3 baocun head break case 4 exit 0 break printf n n n n n 按任意键返回主菜单 getchar system cls while 1 职工信息输入界面 worker input worker p struct worker a 定义指针 n 0 do system cls a worker malloc sizeof worker 开辟空间 printf 职工信息输入界面 n n n printf 输入录入职工工号为 0 时退出 n printf 请输入录入职工工号 scanf d getchar if a num 0 break n 计算开辟节点数 以 便排序 printf 请输入录入职工姓名 gets a name printf 请输入录入职工工资 scanf f getchar printf 请输入录入职工等级 gets a level a next NULL if head NULL head a p head else p next a p a while 1 return head 职工信息显示界面 void show worker p char c system cls printf 职工信息显示界面 n n if head NULL 内存为空 printf 数据库暂为空 是否现在进行数据添加 Y N n do c getchar while c Y if c Y c y input head else p head 输出内存员工信 息 do printf 工号 12d 姓名 16s 等级 12s 工资 16f n p num p name p level p wage p p next while p NULL 职工信息保存界面 worker baocun worker p1 FILE fp 定义文件指针类型 worker p p p1 fp fopen file txt wb 打开文件 if fp NULL printf can not open the file getch exit 0 while p NULL if fwrite fclose fp 关闭文件 printf 工号 12d 姓名 16s 等级 12s 工资 16f n p num p name p level p wage p p next fclose fp 关闭文件 return p 六 程序调试心得体会 六 程序调试心得体会 制作程序时 开始有些困难上网上搜了一些相近似的例子 然后自己进行 模仿 调试 有一些问题解决不了的 就百度了一下 看一下问题出在什 么地方 这一个题目稍微简单些 基本上自己百度一下都可以解决问题的 之后对保存文件作了修改 七 参考文献 七 参考文献 c 面向对象程序设计 第七版 Walter Savitch 著 周靖译 清华大学出版社 一 一 引言引言 本题对程序有如下要求 1 公司主要有 4 类人员 经理 技术员 销售员 销售经理 要求存储这 些人的职工号 姓名 月工资 岗位 年龄 性别等信息 2 工资的计算方法 A 经理 固定月薪为 8000 B 技术员 工作时间 小时工资 100 元每小时 C 销售员 销售额 4 提成 D 销售经理 底薪 5000 所辖部门销售额总额 0 5 3 输入数据要求每类人员不能少于 4 人 并按以下格式输出 职工号姓名性别年龄岗位工资排名 及某部门经理所辖部门各售货员的业绩及自己的工资表 4 菜单要求 要有一个菜单 用于选择各项功能 其中 1 数据录入 输入各种数据 2 数据统计 各销售经理的工资计算及最终按工资进行的冒泡排序 3 数据打印 打印上述表格 4 数据备份 把相关数据写入文件 5 退出 推出本系统 二 二 系统功能介绍 系统功能介绍 充分利用了类的继承与派生的知识 先定义了一个雇员类 Employee 由雇 员类公有派生出技术员类 Tech 销售员类 Seller 经理类 Manager 由销售员 类 Seller 经理类 Manager 公有派生出销售经理类 XManager 把基类都定义为 虚基类 通过基类去写的派生类就可以调基类的公有成员 利用 for 循环把经 理数据 技术员数据 销售员数据 销售经理数据输入 利用冒泡排序法把各 销售经理的资按升序排列 利用 switch 进行选择系统进行的工作 在主菜单中 进行调用各函数 从而实现系统各功能的运行 三 三 模块设计 模块设计 四 四 各个成员函数间关联 各个成员函数间关联 主函数 进入主显示界面按 照提示进行选择 数 据 输 入 数 据 统 计 数 据 打 印 数 据 查 询 数 据 备 份 退 出 系 统 返 回 上 一 级 经 理 数 据 输 入 技 术 员 数 据 输 入 销 售 员 数 据 输 入 销 售 经 理 数 据 输 入 结束程序 void data inp ut 进行数 据输入 操作 void data find 进行数据 查询操作 void statistics 进行数 据统计 操作 void data save 进 行数据备 份操作 void menu 显示 主菜 单 void data print 进行数据 打印操作 void save new 保存新 增加的联 系人 ofstream 对 C 程序设计实习 txt 进行操作 ofstream 对 C 程序设计实习 txt 进行操作 四 结果显示图 四 结果显示图 五 程序清单 五 程序清单 include include include include include using namespace std 常变量 供修改用 const int n1 2 n2 2 n3 4 n4 2 定义公司各类职工人数 方便修改 n1 技术员人数 n2 经理人数 n3 销售员人数 n4 销售经理人数 const double m salary 8000 经理固定月工资 const double hourpay 100 技术员小时工资 const double basicpay 5000 销售经理的底薪 const double s proportion 4 0 100 销售员的工资提成比例 const double sm proportion 0 5 100 销售经理的提成比例 声明部分 void menu 主菜单 void menu2 数据输入二级菜单 void menu3 数据打印二级菜单 void data input 数据输入函数 void data print 数据打印 void charthead1 制作表头 1 函数 统计销售额 void charthead2 制作表头 2 函数 数据打印 void chartend 制作表尾 void statistics 数据统计 double sm salary 销售经理工资计算 void sm print 销售经理打印数据 void data find 数据查询 void data save 数据备份 ofstream outfile 打开磁盘文件流对象 string f name 全局变量 查询用 定义类 class Employee 雇员类 基类 public void input 数据输入函数 cout num cout name cout sex cout age void print 打印数据函数 cout endl cout setw 6 num setw 8 name setw 6 sex setw 6 age setw 7 pay endl void find 查询函数 if f name name charthead2 print chartend cout endl void save 备份数据函数 outfile endl outfile setw 6 num setw 8 name setw 6 sex setw 6 age setw 7 pay endl protected int num 职工号 string name 职工姓名 char sex 职工性别 int age 职工年龄 double pay 职工工资 class Technician public Employee 技术员类 公有继承 public void input cout 技术员的 Employee input cout worktime void print pay worktime hourpay Employee print void find Employee find void save pay worktime hourpay Employee save protected double worktime 工作时间 小时 class Manager public Employee 经理类 public void input cout 经理的 Employee input void print pay m salary Employee print void find Employee find void save pay m salary Employee save class Sell manager public Employee 销售经理类 public void input cout 销售经理的 Employee input int sm number 调用销售经理职工号 return num string sm name 调用销售经理姓名 return name void print cout endl cout setw 6 num setw 8 name setw 6 sex setw 6 age void save outfile endl outfile setw 6 num setw 8 name setw 6 sex setw 6 age class Seller public Employee 销售员类 public Seller sold amount 0 构造函数 销售额初始化为 0 void input cout 销售员的 Employee input cout sold amount cout nu void grade 销售员业绩输出 cout endl cout setw 6 num setw 8 name setw 7 sold amount endl void print pay sold amount s proportion cout endl cout setw 6 num setw 8 name setw 6 sex setw 6 age setw 7 pay setw 13 nu endl int s number 调用销售员所属销售经理职工号 return nu double amount 调用销售员销售额 return sold amount void find if f name name cout endl cout 职 工 号 姓 名 性 别 年 龄 工 资 所属 部门经理编号 endl print cout void save pay sold amount s proportion outfile endl outfile setw 6 num setw 8 name setw 6 sex setw 6 age setw 7 pay setw 13 nu endl protected double sold amount 销售额 int nu 所属销售经理职工号 定义全局对象数组 Technician t n1 技术员 Manager m n2 经理 Seller s n3 销售员 Sell manager sm n4 销售经理 下属若干销售员 主函数部分 int main char n menu for int i 0 i n switch n case 1 数据输入 cout endl 您所选操作为数据输入 请继续 endl endl data input cout endl menu break case 2 数据统计 cout endl 您所选操作为数据统计 请继续 endl endl statistics cout endl 销售经理按工资排序为 n endl sm print cout endl menu break case 3 数据打印 cout endl 您所选操作为数据打印 请继续 endl endl cout a 数据打印中 请等待 n n endl cout 职工基本情况一览表如下 n endl data print cout endl endl cout a 数据打印完毕 n n endl menu break case 4 数据查询 cout endl 您所选操作为数据查询 请继续 endl endl cout f name cout endl 正在查询 请等待 endl endl cout 您查询的信息如下 endl endl data find cout endl endl menu break case 5 数据备份 outfile open C 程序设计实习 txt ios out 打开磁盘文件流对象 cout endl 您所选操作为数据备份 请继续 endl endl outfile 职工基本情况一览表如下 n endl data save outfile close cout endl endl cout a 数据备份完成 请继续 endl endl menu break case 0 退出系统 cout endl 您所选操作为退出系统 请确认 endl endl cout 是 y n if n y cout n 请按任意键退出系统 endl exit 0 cout endl else menu break default cout endl 出错 请重新选择操作 n endl menu break return 0 自定义函数部分 void menu 菜单函数 cout 小型公司工资管理系统 endl cout endl cout 请选择您所需的操作 endl cout 数据输入 1 并按回车键 endl cout 数据统计 2 并按回车键 endl cout 数据打印 3 并按回车键 endl cout 数据查询 4 并按回车键 endl cout 数据备份 5 并按回车键 endl cout 退出系统 0 并按回车键 endl cout endl cout 请选择一个操作 void menu2 数据输入二级菜单函数 cout 小型公司工资管理系统 endl cout endl cout 请选择您所需的操作 endl cout 经理数据输入 1 并按回车键 endl cout 技术员数据输入 2 并按回车键 endl cout 销售员数据输入 3 并按回车键 endl cout 销售经理数据输入 4 并按回车键 endl cout 返回上一级 5 并按回车键 endl cout endl cout 请选择一个操作 void menu3 数据打印二级菜单函数 cout 小型公司工资管理系统 endl cout endl cout 请选择您所需的操作 endl cout 经理数据打印 1 并按回车键 endl cout 技术员数据打印 2 并按回车键 endl cout 销售员数据打印 3 并按回车键 endl cout 销售经理数据打印 4 并按回车键 endl cout 返回上一级 5 并按回车键 endl cout endl cout 请选择一个操作 void data input 数据输入函数 char p int i menu2 for int j 0 j p if p 5 break else switch p case 1 for i 0 i n2 i m i input cout endl endl menu2 break case 2 for i 0 i n1 i t i input cout endl endl menu2 break case 3 for i 0 i n3 i s i input cout endl endl menu2 break case 4 for i 0 i n4 i sm i input cout endl endl menu2 break void charthead1 制表头 1 数据统计用 cout endl cout 职 工 号 姓 名 销 售 额 endl void charthead2 制表头 2 数据打印及销售经理数据统计用 cout endl cout 职 工 号 姓 名 性 别 年 龄 工 资 endl void chartend 制表尾 数据打印及销售经理数据统计用 cout void statistics 数据统计函数 int i j for i 0 i n4 i double sum 0 cout endl 职工号为 sm i sm number 销售经理 sm i sm name 下属销售员的业绩为 endl endl charthead1 for j 0 j n3 j if s j s number sm i sm number sum sum s j amount s j grade cout endl cout 销售额总计 setw 12 sum endl cout endl double salary n4 double sm salary 销售经理工资计算及排序 int i j double a Sell manager b for int k 0 k n4 k salary k 0 for i 0 i n4 i double sum 0 for j 0 j n3 j if s j s number sm i sm number sum sum s j amount salary i sum sm proportion basicpay for j 0 j n4 1 j for i 0 i n4 1 j i if salary i salary i 1 a salary i 1 salary i 1 salary i salary i a b sm i 1 sm i 1 sm i sm i b return 0 void sm print sm salary charthead2 for int i 0 i n4 i sm i print cout setw 7 salary i endl chartend cout endl void data print 数据打印 char p int i j menu2 for j 0 j p if p 5 break else switch p case 1 cout endl 经理 endl 经理信息 charthead2 for i 0 i n2 i m i print chartend cout endl endl endl menu3 break case 2 cout endl 技术员 endl 技术员信息 charthead2 for i 0 i n1 i t i print chartend cout endl endl endl menu3 break case 3 cout endl 销售员 endl 销售员

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论