欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    C课程设计简单的工资管理系统的设计和实现.doc

    • 资源ID:6178196       资源大小:88.50KB        全文页数:16页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C课程设计简单的工资管理系统的设计和实现.doc

    怀 化 学 院 计 算 机 系高级语言程序设计课程设计报告书 简单的工资管理系统的设计和实现 专 业: 计算机科学与技术 学生姓名: * 学 号: 年级专业及班级: 指导老师及职称: 湖南怀化提交日期:2010年12月 简单的工资管理系统的设计和实现学 生:指导老师:摘 要:本程序主要是为了训练的自己的基本编程能力,了解信息管理系统的开发流程,熟悉C+语言的各种基本操作。本程序涉及结构体、单链表、文件等方面的知识。通过本程序的训练,能使我们对C+语言的操作有一个更深刻的了解,掌握实现对员工工资的管理,使我们能运用平时学到的东西来处理身边的事情,为进一步开发出高质量的管理系统打下坚实的基础。许多过去有人工处理的繁杂事物开始交付计算机来完成。员工工资管理系统可以说是每个企事业单位的得力助手,它利用计算机对员工工资进行统一管理,实现员工工资发放工资及单位工资管理等工作流程的系统化、规范化和自动化,提高单位的运作效率。因此,工资管理系统对企事业单位起着越来越重要的作用。关键词:;工资管理;排序;查询;删除;修改;C+; 1 前言 C+程序语言设计是一门程序设计语言,本次课程设计是主要运用C+程序语言来实现的,通过此次的设计我了解了C+的类和对象,调用库函数、引用变量,函数等的处理,还有就是文件的读入与读出,本次程序设计的目的是简单的工资管理系统的设计和实现, 从键盘输入:编号、姓名、部门、基本工资、奖金、电话补助、月房租、水电费,统计每人的应发工资、实发工资, 统计各部门的应发工资、实发工资, 实现员工工资发放工资及单位工资管理等工作流程的系统化、规范化和自动化,提高单位的运作效率。在此次的课程设计中除了主要是用C+程序语言完成以外,还运用函数调用文件的读入与读出,还有将一些数据进行排序、删除、修改、查询等基本的算法。字符串和数值的输入分别采用了函数来实现,在函数中完成输入数据任务,并对数据进行条件判断。通过这次课程设计我觉得对于C+的运用更深一层了。2 算法分析否否是是开始以可读写的方式打开一个数据文件将此文件的内容读出并存入一个新的单链表中调用Select()菜单函数进入主界面进入switch函数输入09中的一数值,选择相应操作输入是否为0?判断键值,调用相应函数,完成相应功能是否已对修改进行了存盘?调用SaveToFile ()函数进行写数据文件操作行写数据文件操作结束 3实现方法 采用C+语言来完成 采用color函数对控制台颜色进行控制。其主要功能由以下代码实现 1)用类定义员工基本信息 class YuanGongint ID;ETDepartment()=str)YGj.SET( YGj.GETID() , YGj.GETName(),YGj.GETDepartment(),YGj.GETBaseSalary()+sub_BaseSalary,YGj.GETReward()+sub_Reward,YGj.GETTelephoneSubsidies()+sub_TelephoneSubsidies,YGj.GETRoomCharge()+sub_RoomCharge,YGj.GETUtilities()+sub_Utilities,YGj.GETShouldPay()+sub_BaseSalary+sub_Reward+sub_TelephoneSubsidies,YGj.GETPaid()+sub_RoomCharge+sub_Utilities);4)修改部门数据DPi.SET(DPi.GETName(),DPi.GETNumOfPeople(),DPi.GETShouldPay_all()+sub_BaseSalary+sub_Reward+sub_TelephoneSubsidies,DPi.GETPaid_all()+sub_RoomCharge+sub_Utilities);cout<<"修改成功!n"system("pause");return ;5)删除员工信息void Delete(int &Num_D,int &Num_P,DEPARTMENT *DP,YuanGong *YG)int n,i,j,k;system("cls");cout<<"请输入需要删除的员工编号:"cin>>n;ETID()=n) break;if(i=Num_P) cerr<<"没有找到该员工,请检查你的输入!n"system("pause");return;ETName()=YGi.GETDepartment()ETNumOfPeople()=1)ET( DPj.GETName() , DPj.GETNumOfPeople()-1 , DPj.GETShouldPay_all()-YGi.GETShouldPay() , DPj.GETPaid_all()-YGi.GETPaid() );ETName()<<setiosflags(ios:left)<<setw(8)<<YGi.GETID()<<setiosflags(ios:left)<<setw(6)<<YGi.GETDepartment()<<setiosflags(ios:left)<<setw(8)<<YGi.GETBaseSalary()<<setiosflags(ios:left)<<setw(8)<<YGi.GETReward()<<setiosflags(ios:left)<<setw(10)<<YGi.GETTelephoneSubsidies()<<setiosflags(ios:left)<<setw(8)<<YGi.GETRoomCharge()<< setiosflags(ios:left)<<setw(8)<<YGi.GETUtilities()<<setiosflags(ios:left)<<setw(6)<<YGi.GETShouldPay()<<setiosflags(ios:left)<<setw(6)<<YGi.GETPaid()<<endl;();cout<<"保存成功!n"system("pause");8)主函数main()执行int main()int NumOfPeople=0;int NumOfDepartment=0;DEPARTMENT *DP=new DEPARTMENTD;YuanGong *YG=new YuanGong P ;welcome();ReadFile(NumOfDepartment,NumOfPeople,DP,YG);doswitch(Select()case 1: InsertNEW(NumOfDepartment,NumOfPeople,DP,YG);break;case 2: TypeAllPeople(NumOfPeople,YG);break;case 3: TypeAllDepartment(NumOfDepartment,DP);break;case 4: SortBySalary(NumOfDepartment,NumOfPeople,DP,YG);TypeAllPeople(NumOfPeople,YG);SortByID(NumOfDepartment,NumOfPeople,DP,YG); break;case 5: Modify_Salary(NumOfDepartment,NumOfPeople,DP,YG);break;case 6: Delete(NumOfDepartment,NumOfPeople,DP,YG);break;case 7: Search(NumOfDepartment,NumOfPeople,DP,YG);break;case 8: ChangeALL(NumOfDepartment,NumOfPeople,DP,YG);break;case 9: SaveToFile(NumOfDepartment,NumOfPeople,DP,YG);break;case 0: end_face();break;4调试问题数据在输出时因为数据输入存在问题,没有把员工的工资信息全部统计出来。显示如下:经修改后显示全部相关信息,正确信息如下:5.系统的使用说明书.功能:完成员工资料、记录的常用操作,对员工的相关资料及记录进行管理。使用方法:当用户运行程序时,主函数会循环调用目录函数提示用户选择想要的操作,直到用户输入0退出程序,每次显示目录都会进行清屏操作,保存界面的简单化主界面。 1).创建工资档案当用户选择操作1 键盘输入个人记录时会提示用户输入员工的各项信息,循环输入直到用户在编号输入时输入0,返回主界面。在输入的时候,如果用户输入不合法的信息会提示用户并要求其重新输入该项信息。2). 显示所有员工应发工资和实发工资当系统内已经有信息并且用户选择操作2的时候,系统会显示所有员工的应发工资和实发工资,如果没有员工记录会提示相关信息3). 统计各部门应发工资和实发工资当用户输入3 要求查询部门信息时,系统会显示个部门的应发工资和实发工资,如果还没有部门信息会提示相关提示消息 4). 按工资排序当用户输入4 要求对员工工资排序时,系统会提供两种排序方式:工资的升序排序,当无员工信息时会显示相关信息5).修改工资信息当用要求修改删除添加员工信息并输入5时,会提示用户输入员工编号,如果有此员工就显示 此员工的信息。会提示用户选择所要修改的选项。然后输入序号键入新值。6)删除工资信息当用户输入6时,进行删除工资功能。按提示输入员工编号删除。7)查找工资信息当用户输入7时,进行查找功能,输入编号如果找到则显示出此编号员工的相关信息,否则提示相关消息 8)工资的变动 当用户输入8时,显示“输入修改数据的部门”,按提示输入部门,然后输入要修改的选项9).保存所有资料到文件当用户需要对所操作的信息进行存档操作时选择9 。10).退出系统当用户输入0 进行退出系统 6结论课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。随着科学的发展和社会的进步,许多过去有人工处理的繁杂事物开始交付计算机来完成。员工工资管理系统可以说是每个企事业单位的得力助手,它利用计算机对员工工资进行统一管理,实现员工工资发放工资及单位工资管理等工作流程的系统化、规范化和自动化,提高单位的运作效率。参考文献 1 谭浩强.C+程序设计,-北京:清华大学出版社, 2 伍良俊.Visual C+课程设计与系统开发案例,-北京:清华大学出版社, 致 谢本报告是在老师的悉心指导和热情关怀下完成的,在此谨向姚老师致以诚挚的谢意,祝老师工作顺利,身体健康 。 附录#include<iostream>#include<fstream>#include<iomanip>#include<>#include<string>#include<algorithm>#define INDEX "姓名 编号 部门 基本工资 奖金 电话补助 月房租 水电费 应付 已付n"using namespace std;const int P=100;const int D=50;class DEPARTMENT;ET(ID,name,Department,BaseSalary,Reward,TelephoneSubsidies,RoomCharge,Utilities, BaseSalary+Reward+TelephoneSubsidies ,RoomCharge+Utilities);for(i=0;i<Num_D;i+)if(Department=DPi.GETName() break;ET(Department,DPi.GETNumOfPeople()+1,DPi.GETShouldPay_all()+BaseSalary+Reward+TelephoneSubsidies,DPi.GETPaid_all()+RoomCharge+Utilities);if(i=Num_D) Num_D+;();cout<<"读取完成!n"."<<endl<<endl;cout<<" 菜单选项 "<<endl;cout<<" 1.创建工资档案 "<<endl;cout<<" 2.每人的应发工资、实发工资"<<endl;cout<<" 3.部门的应发工资、实发工资 "<<endl;cout<<" 4.工资的排序 "<<endl; cout<<" 5.修改工资信息 "<<endl;cout<<" 6.删除工资信息 "<<endl;cout<<" 7.查找工资信息 "<<endl;cout<<" 8.某条件下对工资的变动 "<<endl; cout<<" 9.工资信息保存在文本文件 "<<endl;cout<<" 0.退 出 "<<endl<<endl;cout<<" ."<<endl<<endl;cout<<" 请输入你的选择:"int choose;docin>>choose;while(choose<0|choose>9);return choose;ET(ID,name,Department,BaseSalary,Reward,TelephoneSubsidies,RoomCharge,Utilities, BaseSalary+Reward+TelephoneSubsidies ,RoomCharge+Utilities);for(i=0;i<Num_D;i+)if(Department=DPi.GETName() break;ET(Department,DPi.GETNumOfPeople()+1,DPi.GETShouldPay_all()+BaseSalary+Reward+TelephoneSubsidies,DPi.GETPaid_all()+RoomCharge+Utilities);if(i=Num_D) Num_D+;cout<<"继续添加?(y和Y或n): "cin>>c;if(c=y|c=Y) InsertNEW(Num_D,Num_P,DP,YG);ETName()<<setiosflags(ios:left)<<setw(8)<<YGi.GETID()<<setiosflags(ios:left)<<setw(6)<<YGi.GETDepartment()<<setiosflags(ios:left)<<setw(8)<<YGi.GETBaseSalary()<<setiosflags(ios:left)<<setw(8)<<YGi.GETReward()<<setiosflags(ios:left)<<setw(10)<<YGi.GETTelephoneSubsidies()<<setiosflags(ios:left)<<setw(8)<<YGi.GETRoomCharge()<<setiosflags(ios:left)<<setw(8)<<YGi.GETUtilities()<<setiosflags(ios:left)<<setw(6)<<YGi.GETShouldPay()<<setiosflags(ios:left)<<setw(6)<<YGi.GETPaid()<<endl;system("pause");ETName()<<setiosflags(ios:left)<<setw(6)<<DPi.GETNumOfPeople()<<setiosflags(ios:left)<<setw(6)<<DPi.GETShouldPay_all()<<setiosflags(ios:left)<<setw(6)<<DPi.GETPaid_all()<<endl;system("pause");ETID()=n) break;if(i=Num_P) cerr<<"没有找到该员工,请检查你的输入!n"system("pause");return;ETName()=YGi.GETDepartment()ETNumOfPeople()=1)ET( DPj.GETName() , DPj.GETNumOfPeople()-1 , DPj.GETShouldPay_all()-YGi.GETShouldPay() , DPj.GETPaid_all()-YGi.GETPaid() );ETID()cout<<INDEX;cout<<setiosflags(ios:left)<<setw(6)<<YGi.GETName()<<setiosflags(ios:left)<<setw(8)<<YGi.GETID()<<setiosflags(ios:left)<<setw(6)<<YGi.GETDepartment()<<setiosflags(ios:left)<<setw(8)<<YGi.GETBaseSalary()<<setiosflags(ios:left)<<setw(8)<<YGi.GETReward()<<setiosflags(ios:left)<<setw(10)<<YGi.GETTelephoneSubsidies()<<setiosflags(ios:left)<<setw(8)<<YGi.GETRoomCharge()<<setiosflags(ios:left)<<setw(8)<<YGi.GETUtilities()<<setiosflags(ios:left)<<setw(6)<<YGi.GETShouldPay()<<setiosflags(ios:left)<<setw(6)<<YGi.GETPaid()<<endl;system("pause");return ;ETID()ETName()<<setiosflags(ios:left)<<setw(8)<<YGi.GETID()<<setiosflags(ios:left)<<setw(6)<<YGi.GETDepartment()<<setiosflags(ios:left)<<setw(8)<<YGi.GETBaseSalary()<<setiosflags(ios:left)<<setw(8)<<YGi.GETReward()<<setiosflags(ios:left)<<setw(10)<<YGi.GETTelephoneSubsidies()<<setiosflags(ios:left)<<setw(8)<<YGi.GETRoomCharge()<<setiosflags(ios:left)<<setw(8)<<YGi.GETUtilities()<<setiosflags(ios:left)<<setw(6)<<YGi.GETShouldPay()<<setiosflags(ios:left)<<setw(6)<<YGi.GETPaid()<<endl;ETID();ETName();ETDepartment();ETBaseSalary();ETReward();ETTelephoneSubsidies();ETRoomCharge();ETUtilities();ETShouldPay();ETPaid();本工资 2.奖金 3.电话补助 4.月房租 5.水电费n"cin>>k;cout<<"请输入新值:n"switch(k)case 1:cin>> BaseSalary;break;case 2:cin>> Reward;break;case 3:cin>> TelephoneSubsidies;break;case 4:cin>> RoomCharge;break;case 5:cin>> Utilities;break;t_s=BaseSalary+Reward+TelephoneSubsidies;t_p=RoomCharge+Utilities;ETName()=Department)DPj.SET( DPj.GETName() , DPj.GETNumOfPeople() , DPj.GETShouldPay_all()+t_s-YGi.GETShouldPay(), DPj.GETPaid_all()+t_p-YGi.GETPaid() );break;ET(ID,Name,Department,BaseSalary,Reward,TelephoneSubsidies,RoomCharge,Utilities,t_s,t_p);cout<<"修改成功!n"system("pause");return ;ETName()<<setiosflags(ios:left)<<setw(8)<<YGi.GETID()<<setiosflags(ios:left)<<setw(6)<<YGi.GETDepartment()<<setiosflags(ios:left)<<setw(8)<<YGi.GETBaseSalary()<<setiosflags(ios:left)<<setw(8)<<YGi.GETReward()<<setiosflags(ios:left)<<setw(10)<<YGi.GETTelephoneSubsidies()<<setiosflags(ios:left)<<setw(8)<<YGi.GETRoomCharge()<< setiosflags(ios:left)<<setw(8)<<YGi.GETUtilities()<<setiosflags(ios:left)<<setw(6)<<YGi.GETShouldPay()<<setiosflags(ios:left)<<setw(6)<<YGi.GETPaid()<<endl;();cout<<"保存成功!n"system("pause");ETName()<<" "cout<<endl;cin>>str;for(i=0;i<Num_D;i+)if(DPi.GETName()=str)本工资 2.奖金 3.电话补助 4.月房租 5.水电费_b"cin>>k;ETDepartment()=str)YGj.SET( YGj.GETID() , YGj.GETName(),YGj.GETDepartment(),YGj.GETBaseSalary()+sub_BaseSalary,YGj.GETReward()+sub_Reward,YGj.GETTelephoneSubsidies()+sub_TelephoneSubsidies,YGj.GETRoomCharge()+sub_RoomCharge,YGj.GETUtilities()+sub_Utilities,YGj.GETShouldPay()+sub_BaseSalary+sub_Reward+sub_TelephoneSubsidies,YGj.GETPaid()+sub_RoomCharge+sub_Utilities);ET(DPi.GETName(),DPi.GETNumOfPeople(),DPi.GETShouldPay_all()+sub_BaseSalary+sub_Reward+sub_TelephoneSubsidies,DPi.GETPaid_all()+sub_RoomCharge+sub_Utilities);cout<<"修改成功!n"system("pause");return ;/没有找到部门信息if(i=Num_D) cerr<<"输入的部门没有找到,请检查输入信息!n"system("pause");return;cerr<<"运行出错!n"return ;int main()int NumOfPeople=0;int NumOfDepartment=0;DEPARTMENT *DP=new DEPARTMENTD;YuanGong *YG=new YuanGong P ;welcome();ReadFile(NumOfDepartment,NumOfPeople,DP,YG);doswitch(Select()case 1: InsertNEW(NumOfDepartment,NumOfPeople,DP,YG);break;case 2: TypeAllPeople(NumOfPeople,YG);break;case 3: TypeAllDepartment(NumOfDepartment,DP);break;case 4: SortBySalary(NumOfDepartment,NumOfPeople,DP,YG);TypeAllPeople(NumOfPeople,YG);SortByID(NumOfDepartment,NumOfPeople,DP,YG); break;case 5: Modify_Salary(NumOfDepartment,NumOfPeople,DP,YG);break;case 6: Delete(NumOfDepartment,NumOfPeople,DP,YG);break;case 7: Search(NumOfDepartment,NumOfPeople,DP,YG);break;case 8: ChangeALL(NumOfDepartment,NumOfPeople,DP,YG);break;case 9: SaveToFile(NumOfDepartment,NumOfPeople,DP,YG);break;case 0: end_face();break;while(1);return 0;

    注意事项

    本文(C课程设计简单的工资管理系统的设计和实现.doc)为本站会员(李医生)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开