小型公司工资管理系统.doc_第1页
小型公司工资管理系统.doc_第2页
小型公司工资管理系统.doc_第3页
小型公司工资管理系统.doc_第4页
小型公司工资管理系统.doc_第5页
免费预览已结束,剩余19页可下载查看

下载本文档

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

文档简介

1 计算机科学与技术系计算机科学与技术系 课课 程程 设设 计计 ( - 年度第 学期) 课程名称:面向对象程序与设计 题 目:小型公司工资管理系统 姓 名: 学 号: 指导教师: 设计周数: 成 绩: 日期: 2 小小组组成成员员分工分工说说明:明: 系统分析: 系统编程: 撰写报告: 组长组长: : 小小组组成成员员: : 3 目目 录录 一一 封面封面.1 1 二二 设计小组成员设计小组成员.2 2 三三 设计正文设计正文.4 4 3.13.1 设计目的与要求设计目的与要求 .4 4 .1 设计目的设计目的.4 4 .2 设计要求设计要求.4 4 3.23.2 系统分析系统分析 .4 4 .1 系统开发背景、开发范围、建设目标与必要性系统开发背景、开发范围、建设目标与必要性.4 4 .2 业务流程分析业务流程分析.5 5 .3 数据流程图数据流程图.6 6 .4 数据字典数据字典.8 8 3.33.3 系统设计系统设计 .8 8 .1 程序功能设计程序功能设计.8 8 .2 程序运行环境程序运行环境.9 9 3.43.4 系统实施系统实施 .9 9 .1 程序代码程序代码.9 9 .2 运行结果运行结果.2020 四四 课程设计总结或结论课程设计总结或结论.2323 五五 参考文献参考文献.2424 4 小型工小型工资资管理系管理系统统 3.13.1、课程设计的目的与要求、课程设计的目的与要求 3.1.1 设计目的:设计目的: 通过管理信息系统课程设计,进一步掌握管理信息系统的理论和方法。培养和锻炼开 发管理信息系统的能力。为今后信息系统开发打下良好的基础。 要求了解企业管理信息系统开发的全过程,理解信息系统课程相关的概念,掌握管理 信息系统的开发方法。主要包括:系统调研方法;业务分析、数据分析、系统逻辑模型设 计方法;数据库设计、功能设计、物理模型设计方法;系统的实现等方法。完成一个小型 系统的设计与开发。 .2 设计要求:设计要求: (1)公司主要有 4 类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、 姓名、月工资、岗位、年龄、性别等信息。 (2)工资的计算方法: A.经理:固定月薪为 8000; B.技术员:工作时间*小时工资(100 元每小时) ; C.销售员:销售额*4%提成; D.销售经理:底薪(5000)+所辖部门销售额总额*0.5%; (3)输入数据要求每类人员不能少于 4 人,并按以下格式输出: 职工号 姓名 性别 年龄 岗位 工资 排名 (4)部门业绩表 某部门经理所辖部门各售货员的业绩及自己的工资表 (5)菜单要求:要有一个菜单,用于选择各项功能,其中 数据录入:输入各种数据; 数据统计:各销售经理的工资计算及最终按工资进行的冒泡排序; 数据打印:打印上述表格; 数据备份:把相关数据写入文件; 退出:推出本系统; 3.23.2 系统分析系统分析 .1 系统开发背景、开发范围、建设目标与必要性系统开发背景、开发范围、建设目标与必要性 随着本世纪以来科学技术的突飞猛进和社会生产力的迅速发展,人们进行信息交流的深 度与广度不断增加,信息量急剧增长,传统的信息处理与决策的手段已不能适应社会的需 要,信息的重要性和信息处理问题的紧迫性空前提高了,面对着日益复杂和不断发展,变 5 化的社会环境,特别是企业间日趋剧烈的竞争形势,一个人、一个企业要在现代社会中求 生存,求发展,必须具备足够的信息和强有力的信息收集与处理手段。电子计算机以强大 的信息处理能力作为人类脑力劳动的有力助手登上历史舞台以后,出现了把人类从繁琐的 脑力劳动下解放出来的现代信息革命。 为了适应现代企业或公司经营发展的需要,为提高企业工作效率、保证企业职工信息管 理质量、快而准确地为企业制定好的经营方针与决策,我们有必要开发一个职工工资管理 系统。 .2 业务流程分析业务流程分析 开始 Case 1 输入选项 Switch(select) Case 0 Case 2 Case 3 Case 4 Defautlt 结束 数据录入break 数据统计 break 数据打印break 数据备份 break 输入错误break YN Y Y Y Y N N N N 小型工资管理系统业务流程图(3-2-2-1) 6 .3 数据流程图数据流程图 总体数据流程图总体数据流程图 部 门 经 理 经 理 下 属 下 属 销 售 员 技 术 员 销 售 经 理 总体数据流程图(3-2-3-1) 个体数据流程图个体数据流程图 技术员信息 工号 所属部门 工作时间 姓名 每小时工资 工作天数 技术员数据图(3-2-3-2-1) 7 销售员信息 工号 所属部门 提成比例 基本工资 销售额 提成比例 销售员数据图(3-2-3-2-2) 部门经理 工号 工资 部门经理数据图(3-2-3-2-3) 销售经理信息 工号 所属部门 提成比例 基本工资 总销售额 提成比例 销售经理数据图(3-2-3-2-4) 8 .4 数据字典数据字典 数据字典 字段类型说明大小是否为空 Staff_numChar员工工号10NOT NULL Staff_nameChar员工姓名10NOT NULL Staff_ageInt员工年龄4NOT NULL Staff_wagesFloat月工资8NOT NULL Staff_sexChar员工性别2NOT NULL Staff_departmentChar员工部门10NOT NULL HourFloat工作时间8NOT NULL WphFloat每小时工资数8NOT NULL DayInt 每月工作天数4NOT NULL BasicSalaryFloat底薪8NOT NULL ProportionFloat销售比例8NOT NULL 数据字典(3-2-4) 3.33.3 系统设计系统设计 .1 程序功能设计程序功能设计 输出 工资管理系统 输入 职 工 工 资 统 计 工 资 数 据 打 印 退 出 管 理 系 统 工 资 数 据 录 入 工 资 数 据 备 份 职工工资管理系统功能图(3-3-1) 9 职工信息管理系统的功能: (1)职工基本信息管理:负责管理企业职工的各种基本资料,并对其进行有条理的管理, 提供对基本信息的打印、添加等操作。 (2)职工工资情况管理:负责管理职工的工资情况,同时提供对职工工资的打印、添加 等操作。 (3)系统资料备份管理:负责对系统所做的修改进行备份操作。 (4)职工工资录入管理:完成对职工工资情况的录入,以及添加职工信息等操作。 (5)职工工资统计管理:进行对职工工资的统计,排序以及按照部门统计等操作。 .2 程序运行环境程序运行环境 操作平台:DOS 程序设计语言:C+ 最低配置:CPU Intel Pentium II 800M 内存 32MB 建立数据库表:ManagerFile.txt(部门经理工资信息文件) SellerFile.txt(销售员工资信息文件) SellManagerFile.txt(销售经理工资信息文件) TechnicianFile.txt(技术员工资信息文件) Visual C+是一个功能强大的可视化软件开发工具 。Visual C+6.0 不仅是一个 C+编译器,而且是一个基于 Windows 操作系统的可视化集成开发环境( integrated development environment,IDE) 。Visual C+6.0 由许多组件组成,包括编辑器、调 试器以及程序向导 AppWizard、类向导 Class Wizard 等开发工具。 这些组件通过一 个名为 Developer Studio 的组件集成为和谐的开发环境 3.43.4 系统实施系统实施 .1 程序代码程序代码 #include #include #include #include #define ManagerFile ManagerFile.txt #define TechnicianFile TechnicianFile.txt #define SellerFile SellerFile.txt #define SellManagerFile SellManagerFile.txt / 文件操作模块 10 FILE *fpManager,*fpTechnician,*fpSeller,*fpSellManager; FILE * FileOpen(char FileName) /文件打开函数 FILE *fp; if(fp=fopen(FileName,r)=NULL) fp=fopen(FileName,w); cout文件打开失败重新创建记录文件; return fp; fp=fopen(FileName,r+); return fp; void FileClose(FILE *fp) / 文件关闭函数 if(fclose(fp)=0); else cout文件关闭失败endl; / 类型定义模块 class Staff /职工节本信息 public: char Staff_num10; /职工号 char Staff_name10; /姓名 int Staff_age; /年龄 float Staff_wages; /月工资 char Staff_sex2; /性别 char Staff_department20; /部门职位 Staff() coutendlStaff_num; coutendlStaff_name; coutendlStaff_age; coutendlStaff_sex; coutendlStaff_department; void StaffOutput() 11 coutendl职工号:Staff_num endl; cout姓名:Staff_nameendl; cout年龄:Staff_ageendl; cout性别:Staff_sexendl; cout职位部门:Staff_department; ; class Manager:public Staff /经理 public: Manager() coutendlStaff_wages; void ManagerOutput() StaffOutput(); coutendl经理月工资为:Staff_wagesendl; ; class Technician:public Staff /技术员类 public: float hour; /工作时间 float wph; /每小时工资 int day; /每月工作天数 Technician() coutendlhour; coutendlwph; coutendlday; Staff_wages=hour*wph*day; void TechnicianOutput() StaffOutput(); coutendl技术员工资为:Staff_wagesendl; 12 ; class Seller:public Staff /销售员类 public: float proportion; /提成比例 float volume; /销售额 char Boss10; Seller() coutendlproportion; coutendlvolume; Staff_wages=proportion*volume; cout请输入上司名称Boss; void SellerOutput() StaffOutput(); coutendl销售员工资为:Staff_wagesendl; cout提成比例为:proportionendl; cout销售额为:volumeendl; cout上司为:Bossendl; ; class SellManager:public Staff /销售经理类 public: float BasicSalary; /底薪 float Proportion; /比例 SellManager() coutendl请输入销售经理底薪:BasicSalary; cout请输入销售经理提成比例(如 0.5):Proportion; fpSeller=FileOpen(SellerFile); Seller *temp; temp=(Seller *)malloc(sizeof(Seller); float sum=0; while(fread(temp,sizeof(Seller),1,fpSeller)=1) 13 if(strcmp(Staff_name,temp-Boss)=0) sum=sum+temp-volume; Staff_wages=sum*Proportion+BasicSalary; FileClose(fpSeller); SellManagerOutput() StaffOutput(); coutendl底薪为:BasicSalaryendl; cout提成比例为:Proportionendl; cout工资为:Staff_wagesendl; ; / 数据录入模块 int InputManager() /录入经理数据 fpManager=FileOpen(ManagerFile); /打开经理数据文件 fseek(fpManager,0,2); /指针移动到末尾 int choose=1; while(1) Manager temp; fwrite( coutchoose; if(choose=0) FileClose(fpManager); return 1; int InputTechnician() /录入经理数据 fpTechnician=FileOpen(TechnicianFile); /打开经理数据文件 fseek(fpTechnician,0,2); /指针移动到末尾 int choose=1; while(1) 14 Technician temp; fwrite( coutchoose; if(choose=0) FileClose(fpTechnician); return 1; int InputSeller() /录入经理数据 fpSeller=FileOpen(SellerFile); /打开经理数据文件 fseek(fpSeller,0,2); /指针移动到末尾 int choose=1; while(1) Seller temp; fwrite( coutchoose; if(choose=0) FileClose(fpSeller); return 1; int InputSellManager() fpSellManager=FileOpen(SellManagerFile); fseek(fpSellManager,0,2); int choose=1; while(1) SellManager temp; fwrite( coutchoose; 15 if(choose=0) FileClose(fpSellManager); return 1; / 数据打印模块 void printManager() fpManager=FileOpen(ManagerFile); Manager *temp; temp=(Manager *)malloc(sizeof(Manager); while(fread(temp,sizeof(Manager),1,fpManager)=1) temp-ManagerOutput(); void printTechnician() fpTechnician=FileOpen(TechnicianFile); Technician *temp; temp=(Technician *)malloc(sizeof(Technician); while(fread(temp,sizeof(Technician),1,fpTechnician)=1) temp-TechnicianOutput(); void printSeller() fpSeller=FileOpen(SellerFile); Seller *temp; temp=(Seller *)malloc(sizeof(Seller); while(fread(temp,sizeof(Seller),1,fpSeller)=1) temp-SellerOutput(); void printSellManager() fpSellManager=FileOpen(SellManagerFile); SellManager *temp; 16 temp=(SellManager *)malloc(sizeof(SellManager); while(fread(temp,sizeof(SellManager),1,fpSellManager)=1) temp-SellManagerOutput(); /统计模块 void SellerStatistic() /按销售员统计 fpSellManager=FileOpen(SellManagerFile); fpSeller=FileOpen(SellerFile); SellManager *SMtemp; Seller *Stemp; SMtemp=(SellManager *)malloc(sizeof(SellManager); Stemp=(Seller *)malloc(sizeof(Seller); while(fread(SMtemp,sizeof(SellManager),1,fpSellManager)=1) float sum=0; coutendlStaff_name下属销售员的销售情况:Boss)=0) coutendl; cout姓名:Staff_nameendl; cout销售额:volumeendl; coutvolume; coutStaff_name下属销售员的销售总金额为:sumStaff_wages; num+; Rank Rtemp; for(int i=0;inum-1;i+) for(int j=1;jnum-i;j+) if(rankj.wagesrankj+1.wages) strcpy(R,); Rtemp.wages=rankj.wages; strcpy(,rankj+1.name); rankj.wages=rankj+1.wages; strcpy(rankj+1.name,R); rankj+1.wages=Rtemp.wages; cout排序以后为(从大到小):endl; for(int k=0;knum;k+) coutendl; cout姓名endl; cout工资:rankk.wagesendl; / 目录模块 int StatisticMenu() /统计目录 int choose=0; while(1) coutendl; cout1、按销售员统计。endl; cout2、按销售经理统计。endl; cout0、返回上级目录。endl; coutchoose; 18 switch(choose) case 1:SellerStatistic();break; case 2:SellManagerStatistic();break; case 0:return 1;break; int InputMenu() /数据目录 int choose=0; while(1) coutendl; cout1、录入经理数据。endl; cout2、录入技术员数据。endl; cout3、录入销售员数据。endl; cout4、录入销售经理数据endl; cout0、返回上级目录。endl; coutchoose; switch(choose) case 1:InputManager();break; case 2:InputTechnician();break; case 3:InputSeller();break; case 4:InputSellManager();break; case 0:return 0;break; int PrintMenu() /打印目录 int choose=0; while(1) coutendl; cout1、显示经理数据。endl; cout2、显示技术员数据。endl; cout3、显示销售员数据.endl; cout4、显示销售经理数据endl; cout0、返回上级目录endl; coutchoose; 19 switch(choose) case 1:printManager();break; case 2:printTechnician();break; case 3:printSeller();break; case 4:printSellManager();break; case 0:return 0;break; void ShowMenu() /主目录 int choose=0; while(1) coutendl; cout欢迎使用小型公司系统endl; cout1、数据录入endl; cout2、数据统计endl; cout3、数据打印endl; cout

温馨提示

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

评论

0/150

提交评论