C++课程设计 工资管理(南理工)
工资管理系统课程设计
工资管理系统 课程设计一、课程目标知识目标:1. 理解工资管理系统的基本概念、功能及重要性;2. 掌握工资管理系统中的数据结构、算法及数据库操作;3. 学会分析企业工资管理的需求,设计合理的工资管理系统。
技能目标:1. 能够运用所学知识,独立完成工资管理系统的模块划分与功能设计;2. 能够运用数据库技术,实现工资数据的存储、查询、统计和输出;3. 能够运用编程语言,开发简单的工资管理系统,解决实际问题。
情感态度价值观目标:1. 培养学生对企业信息化管理的认识,提高对信息技术的兴趣和热情;2. 培养学生的团队协作意识,学会与他人共同分析问题、解决问题;3. 培养学生具备良好的职业道德,关注企业员工薪酬权益,树立公平、公正的价值观。
课程性质:本课程为信息技术与学科实践相结合的课程,以实践操作为主,理论学习为辅。
学生特点:六年级学生具备一定的计算机操作能力和编程基础,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:结合学生特点,注重理论与实践相结合,以任务驱动、案例教学为主,培养学生的实际操作能力和解决问题的能力。
将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. 工资管理系统概述- 工资管理系统的定义与作用- 工资管理系统的基本功能模块2. 数据库基础- 数据库的基本概念- 数据表的设计与创建- 数据的增、删、改、查操作3. 工资管理系统的设计与实现- 系统需求分析- 模块划分与功能设计- 数据库设计与实现- 系统界面设计4. 编程实现工资管理系统- 选择合适的编程语言(如Python、Java等)- 编程实现各功能模块- 调试与测试5. 案例分析与实操- 分析实际企业工资管理案例- 结合所学知识,进行实操演练6. 课程总结与拓展- 总结课程重点知识- 探讨工资管理系统的发展趋势和新技术教学内容安排和进度:第1-2周:工资管理系统概述与数据库基础第3-4周:工资管理系统的设计与实现第5-6周:编程实现工资管理系统第7-8周:案例分析与实操第9-10周:课程总结与拓展教材章节及内容关联:《信息技术》六年级下册:第三章 数据库与数据处理第四章 管理信息系统第五章 编程解决问题教学内容确保科学性和系统性,注重理论与实践相结合,以培养学生的实际操作能力和解决问题的能力。
工资管理系统课程设计
工资管理系统课程设计工资管理系统是一种高效的、安全的、自动化的工资支付管理方式,它可以大大减轻企业的负担,为公司节省了大量的时间、精力和人力资源,也节省了公司的成本。
本课程的目的是教会学生如何通过对工资管理系统的深入研究和设计,来使企业的财务管理得以极大的提升。
一、课程介绍本课程的主要内容系统地介绍了工资管理系统的概念、原理及它的重要作用。
另外,还将介绍工资管理系统的架构原理,以及它在企业财务管理中的应用,为学生提供建立系统的基本方法。
二、课程内容(1)全面介绍工资管理系统的概念、原理和重要作用,引导学生明确工资管理的具体要求;(2)探讨工资管理系统的架构原理,阐述其在企业财务管理中的应用;(3)分析各类软件产品特点,指导学生对分析以及选择合适工资管理系统的程序;(4)结合实际情况,介绍建立工资管理系统的主要步骤及其具体方法,如配置软件和硬件设备、收集和处理系统信息等;(5)实施、维护和测试工资管理系统的基本方法;(6)研究和分析工资管理系统各类模型,对不同类型的工资管理方法及其优劣进行比较,指导学生在工资管理系统的实施中的正确选择;(7)实践实验,通过实践仿真模拟实验,让学生熟悉工资管理系统的设计及技术细节,加强学生实践应用能力。
三、授课方法本课程采用以讲授为主,结合实际情况分析及实验实践的教学方法。
(1) 以讲授为主,结合案例分析及研究讨论,从理论上指导学生学习工资管理系统的相关知识;(2)讲解具体工资管理系统模型的同时,结合实际情况,指导学生掌握正确的选择策略和处理技巧;(3)导学生进行实际仿真模拟实验,加深理论知识的掌握,并培养学生熟练操作软件系统的能力;(4) 以课上讨论、实验报告为主,引导学生开展自主研究,尽可能将工资管理系统的理论知识付诸实施。
四、课程考核本课程的考核将包括课堂出勤、考试、实验报告及课程论文,其考核方式如下:(1)课堂出勤考核,占20%;(2)考试,占30%;(3)实验报告,占30%;(4)课程论文,占20%。
南京理工大学visualC++课程设计工资管理
南京理⼯⼤学visualC++课程设计⼯资管理Visual C++ 课程设计报告——————⼯资管理⼀程序功能简介这是⼀个员⼯⼯资管理程序。
⼯资管理程序的数据⽂件中存储有员⼯姓名和⼯资,该程序可以录⼊、显⽰、修改、删除、查找员⼯姓名和⼯资。
⼆课程设计⼼得因为以前课上讲的类都是很简单的类的运⽤,并没有涉及完全通过类的调⽤来建⽴链表,所以遇到了不少问题:1,起初并不知道如何⽤类来建⽴链表。
也完全不理解cnode类的作⽤,以为完全可以⽤cllist来调⽤完成。
2,设计过程中,⼀开始不明⽩gethead,以及其他这样类中返回节点,返回数据的作⽤。
所以并没有设⽴这些函数,很久之后调试出现问题,才想起最基本的类外函数不可以直接调⽤私有成员。
3,由于输⼊输出流,⽼师上课讲的不多,⼀开始找不到⽂件输⼊输出的⽅法。
后来通过模仿书上的输⼊⽅式,及与做同⼀课题的同学进⾏了交流解决了这个问题。
4,程序编完后出现第⼀个解决不了的问题是输⼊,总是没显⽰,找了很久才发现是因为函数都是在传值,加了引⽤才解决。
但后来⼜出现了问题,地址重复,想了很久通过在函数中再设⼀个同类变量解决。
还有⼀个问题便是⼀开始不管怎么输出都只能输出⼀⾏后来发现是因为在addrecord函数中p未付新空间通过解决这么多问题,在查书和与同学商讨中⼀步⼀步的深⼊了对类和链表的认识。
并学会了怎样在错误中⼀步步吸取教训,达到正确⽬标。
不⾜之处:1 界⾯不太友好。
多次操作时因为重复显⽰菜单界⾯有点混乱。
2 程序有点冗长。
有的地⽅可以简化⼀点三课程设计的要求,及⾃⼰的解决⽅法(1)⽤类的形式改写程序。
该程序中共定义了3个类。
第⼀个为数据类,是⽤来存储员⼯姓名和⼯资数据的类。
具体内容如下:class CSalary{char szname[20]; //姓名double dlSalary; //⼯资public:CSalary() {strcpy(szname,"\0"); dlSalary=0.0;} //默认构造函数CSalary(char *,double); //构造函数void SetSalary(char a[],double s){dlSalary=s;strcpy(szname,a);} //⼯资与姓名输⼊char *GetName(){return szname;} //返回姓名{return dlSalary;} //返回⼯资int Compare(char name[]){if(strcmp(name,szname)==0)return 1;elsereturn 0;} //⽐较姓名,供查找⽤,⽐较结果1,0 void Show(){cout<<"姓名"<char name[20];char a;cin>>a;if (a=='N'||a=='n') return;elseif(a=='Y'||a=='y'){cout<<"请输⼊查询姓名\n";cin>>name;change(name);CNode *p=list.LookUp(name);if(p)list.DeleteNode(p);elsecout<<"未找到查询姓名\n";return;}elsecout<<"操作⽆效,请重新输⼊操作\n";return;}(5)增加程序的⽂件输⼊输出功能,在执⾏程序中⾸先将⼯资数据从⽂件中读出再进⾏管理,在程序结束时能将⼯资数据保存在原⽂件中定义了input1和save两个类外函数void save(CList &list){ofstream outfile("data.txt");while(p){strcpy(name,p->GetData()->GetName());salary=p->GetData()->GetSal();outfile<p=p->Getnext();}}void input1(CList &list){ifstream infile("data.txt");char name[20];double salary;while(!infile.eof()){ infile>>name>>salary;CSalary *psalary=new CSalary;psalary->SetSalary(name,salary);CNode *pnode=new CNode;pnode->InputData(psalary);list.Insert(pnode);}}四源程序代码#include#include#include#includeclass CSalary{char szname[20]; //姓名double dlSalary; //⼯资public:CSalary() {strcpy(szname,"\0"); dlSalary=0.0;} //默认构造函数CSalary(char *,double); //构造函数strcpy(szname,a);} //⼯资与姓名输⼊char *GetName(){return szname;} //返回姓名double GetSal(){return dlSalary;} //返回⼯资int Compare(char name[]){if(strcmp(name,szname)==0)return 1;elsereturn 0;} //⽐较姓名,供查找⽤,⽐较结果1,0 void Show(){cout<<"姓名"<return;}CNode *p=pHead;while(p){ p->ShowNode();p=p->pNext;}}void CList::Insert(CNode *p0) //按⼯资的顺序插⼊⼀个结点{ CNode *p,*q;if(pHead==0){pHead=p0;pHead->pNext=0;return;}p=pHead;while(p0->pData->GetSal()>p->pData->GetSal()&&p->pNext!=0) { q=p;p=p->pNext;}{if(p==pHead){p0->pNext=pHead;pHead=p0;}else{p0->pNext=p;q->pNext=p0;}}else{p->pNext=p0;p0->pNext=0;}return;}void CList::DeleteNode(CNode *pnode) {if(pnode==pHead&&pHead->pNext==0) {delete pHead->pData;delete pHead;pHead=0;}else if(pnode==pHead){CNode *p=pnode->pNext;delete pHead->pData;delete pHead;pHead=p;}else{CNode *p=pHead;while(p&&p->pNext!=pnode)CNode *q=pnode->pNext;delete pnode->pData;delete pnode;p->pNext=q;}}void change(char p[]) // 转换⼤⼩写{strcpy(p,strupr(p));}void addrecord(CList &salary) //添加数据{CNode *p;CSalary *psal;char name[20];double s;cout<<"输⼊姓名(输⼊0结束):\n";cin>>name;change(name);while(strcmp(name,"0")){cout<<"请输⼊⼯资\n";cin>>s;psal=new CSalary;psal->SetSalary(name, s);p=new CNode;p->InputData(psal);salary.Insert(p);cout<<"输⼊姓名(输⼊0结束):";cin>>name;change(name);}cout<}void showrecord(CList &list)//{list.ShowList();}void enquirerecord(CList &list) //查询数据{cout<<"请输⼊查询姓名\n"; char name[20];cin>>name;CNode *p=list.LookUp(name);if (p)p->ShowNode();elsecout<<"未找到查询姓名,请重新输⼊操作\n\n\n";return;}void deleterecord(CList &list) //删除数据{cout<<"请确认是否执⾏删除操作,继续 Y否则N\n"; char name[20];char a;cin>>a;if (a=='N'||a=='n') return;elseif(a=='Y'||a=='y'){cout<<"请输⼊查询姓名\n";cin>>name;change(name);CNode *p=list.LookUp(name);if(p)list.DeleteNode(p);cout<<"未找到查询姓名,请重新输⼊操作\n\n\n";return;}elsecout<<"操作⽆效,请重新输⼊操作\n\n\n";return;}void modifyrecord(CList &list) //修改数据{cout<<"请确认是否执⾏修改操作,继续 Y否则N\n"; char a;cin>>a;char name[20];double dlsalary;if (a=='N'||a=='n') list.GetListHead();else{cout<<"请输⼊姓名\n";cin>>name;change(name);CNode *p=list.LookUp(name);if(p!=0){cout<<"请输⼊修改值\n";cin>>dlsalary;p->GetData()->ch(dlsalary);}elsecout<<"未找到查询姓名,请重新输⼊操作\n\n"; return;}elsecout<<"操作⽆效,请重新输⼊操作\n"; return;}void save(CList &list) //⽂件存⼊{ofstream outfile("data.txt");char name[20];double salary;CNode *p=list.GetListHead();while(p){strcpy(name,p->GetData()->GetName()); salary=p->GetData()->GetSal();outfile<p=p->Getnext();}}void input1(CList &list) //⽂件导⼊{ CList a=list;ifstream infile("data.txt");double salary;while(!infile.eof()){ infile>>name>>salary;CSalary *psalary=new CSalary;psalary->SetSalary(name,salary);CNode *pnode=new CNode;pnode->InputData(psalary);a.Insert(pnode);}}void start() //菜单{cout<<"*****************************\n1添加⼯资记录\n2显⽰⼯资记录\n3根据姓名查询⼯资数据 \n4根据姓名删除⼯资数据\n5根据姓名修改⼯资数据 \n0退出系统\n*****************************\n\n\n\n\n";}void main() //主函数{cout<<"欢迎使⽤⼯资管理系统\n***********通信⼆班刘⽂龙1004220227************\n\n\n";CList a;int b;input1(a);int n=0;while(n==0){start();cout<<"请输⼊操作序号";cin>>b;switch(b){case 0:save(a);exit(0);break;case 1:addrecord(a);break;case 2:showrecord(a);break;case 3:enquirerecord(a);break;case 4:deleterecord(a);break;case 5:modifyrecord(a);break;default:cout<<"\t\t请输⼊正确操作序号!\n"; break; }}}。
C课程设计《工资管理系统》
C 课程设计《工资管理系统》一、教学目标本课程的目标是让学生掌握工资管理系统的开发和应用。
通过本课程的学习,学生将能够理解工资管理系统的原理,熟悉工资管理系统的开发流程,掌握工资管理系统的操作方法,并能够运用工资管理系统解决实际问题。
具体来说,知识目标包括掌握工资管理系统的概念、特点和应用领域;技能目标包括能够使用工资管理系统进行工资计算、工资条发放和管理;情感态度价值观目标包括培养学生对工资管理系统的兴趣,提高学生对信息化管理的重要性的认识。
二、教学内容本课程的教学内容主要包括工资管理系统的原理、开发流程和操作方法。
首先,将介绍工资管理系统的概念、特点和应用领域,使学生了解工资管理系统的基本情况。
然后,将讲解工资管理系统的开发流程,包括需求分析、系统设计、编码实现和测试等步骤,使学生掌握工资管理系统的开发方法。
接下来,将介绍工资管理系统的操作方法,包括工资计算、工资条发放和管理等功能,使学生能够熟练使用工资管理系统。
三、教学方法为了实现教学目标,将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
首先,通过讲授法向学生传授工资管理系统的相关知识,使学生掌握基本概念和原理。
然后,通过讨论法引导学生进行思考和讨论,提高学生对工资管理系统的理解和应用能力。
接着,通过案例分析法让学生分析实际案例,培养学生解决实际问题的能力。
最后,通过实验法让学生动手实践,熟练掌握工资管理系统的操作方法。
四、教学资源为了支持教学内容和教学方法的实施,将选择和准备适当的教学资源。
教材方面,将选用权威、实用的工资管理系统教材,为学生提供系统的理论知识。
参考书方面,将推荐一些与工资管理系统相关的书籍,供学生深入学习和参考。
多媒体资料方面,将制作课件、演示文稿等,以图文并茂的形式展示工资管理系统的原理和操作方法。
实验设备方面,将准备计算机、投影仪等设备,为学生提供良好的学习环境和实践条件。
五、教学评估本课程的评估方式将包括平时表现、作业和考试等。
工资管理系统课程设计C语言
工资管理系统 课程设计 C语言一、课程目标知识目标:1. 理解工资管理系统的基本概念和功能需求;2. 掌握C语言中的基本数据类型、运算符、控制结构等编程知识点;3. 学会使用C语言设计并实现一个简单的工资管理系统。
技能目标:1. 能够运用C语言编写出结构清晰、逻辑合理的程序代码;2. 能够运用数组、结构体等数据结构存储和管理工资数据;3. 能够运用文件操作实现工资数据的持久化存储。
情感态度价值观目标:1. 培养学生解决问题的能力和团队协作精神,激发学生对编程的兴趣;2. 增强学生对信息技术的认识,使其意识到信息技术在现实生活中的应用价值;3. 培养学生严谨、认真的学习态度,提高学生的编程素养。
课程性质:本课程为C语言编程实践课,旨在让学生通过动手实践,掌握C语言编程的基本技能,并能够运用所学知识解决实际问题。
学生特点:学生为高年级学生,已具备一定的C语言基础,有较强的逻辑思维能力,但对实际应用场景的编程经验不足。
教学要求:结合学生特点,注重实践操作,引导学生从实际问题出发,逐步培养编程思维,提高编程能力。
课程目标分解为具体学习成果,便于教学设计和评估。
二、教学内容1. 工资管理系统概述- 系统需求分析- 功能模块划分2. C语言基础知识回顾- 数据类型- 运算符与表达式- 控制结构(顺序、分支、循环)3. 数据结构设计- 数组- 结构体4. 函数与模块化编程- 函数定义与调用- 模块化设计5. 文件操作- 文件打开与关闭- 文件读写操作6. 工资管理系统功能实现- 员工信息管理- 工资计算- 工资查询- 数据存储与读取7. 测试与调试- 功能测试- 性能测试- 代码调试教学内容安排与进度:第1周:工资管理系统概述及需求分析第2周:C语言基础知识回顾第3周:数据结构设计第4周:函数与模块化编程第5周:文件操作第6周:工资管理系统功能实现(1)第7周:工资管理系统功能实现(2)第8周:测试与调试教材章节及内容:《C语言程序设计》第3章:数据类型、运算符与表达式第4章:控制结构第6章:函数与模块化编程第7章:数组和字符串第8章:结构体与共同体第9章:文件操作教学内容紧密结合课程目标,注重科学性和系统性,通过以上教学内容,使学生能够掌握C语言编程的核心知识,并能够将其应用于工资管理系统的设计与实现。
c++课程设计实验报告
南京理工大学紫金学院VC++课程设计报告课程:VC++课程设计系别:计算机系班级:网络工程(一)班学号:090602138姓名:徐登伟(合作人王鹏)选题名称:工资管理选题难易级别: A起止时间:2010-11.29到2010-12.28指导教师:朱俊2010年 12 月1.程序功能介绍该程序是一个员工工资管理程序,工资管理的数据文件中存储有职工姓名和工资,该程序可以录入,显示,修改,删除,查找员工姓名和工资。
2.课程设计要求(1)用类的形式改写程序,将程序中工资数据用链表的形式存放,定义一个链表类,封装主要的操作函数。
(2)显示,修改,删除数据项时大小写通用。
(3)工资数据按工资值的大小进行排序存放。
(4)修改,删除数据前增加的提示信息,用户确认后才能进一步操作,否则操作取消。
(5)增加程序的文件输入输出功能,在执行程序中首先将工资数据从文件中读出再进行管理,在程序结束时能将工资数据保存在原文件中。
3.选题理由工资管理中大量的用了各种类,将类的定义,申明展现的尽善尽美,虽然知道这个程序不怎么好设计,但我认为此可以让我们对课本已经学过的有个很好的理解,所以我和我的伙伴选择了此题目。
4.对课程题目的分析与注释(1)用类的形式改写程序,将程序中工资数据用链表的形式存放,定义了一个链表类,封装主要的操作函数。
定义的类和链表class CSalary //定义数据类class CNode //定义结点类class CList //定义链表类class CFunction //函数类(2)实现显示、修改、删除数据时的大小写通用char *change(char *oldname) // 将输入字符状串转换成小写为实现该功能,设计了一个大小写转换函数,将输入的姓名数据全部转换为小写存储。
(3)工资数据按工资值的大小进行排序存放。
实现该功能的函数为链表类的一个成员函数。
即在插入结点时就按照工资大小的顺序插入。
该函数为:void CList::Insert(CNode *pnode)(4)修改、删除数据前增加提示信息,用户确认后才能进一步操作,否则操作取消。
c语言课程设计工资管理系统
c语言课程设计工资管理系统一、教学目标本课程的教学目标是使学生掌握C语言编程基础,能够运用C语言设计并实现一个简单的工资管理系统。
具体目标如下:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,理解面向过程的编程思想。
2.技能目标:学生能够运用C语言编写程序,解决实际问题。
通过设计并实现工资管理系统,学生将学会如何代码、使用数据结构、编写主函数等。
3.情感态度价值观目标:培养学生对计算机编程的兴趣,提高学生解决问题的能力,培养学生的创新精神和团队合作意识。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,以及面向过程的编程思想。
具体安排如下:1.第一部分:C语言基础知识。
包括C语言的基本语法、数据类型、运算符、控制结构等。
这部分内容将帮助学生掌握C语言的基本编程能力。
2.第二部分:函数和面向过程编程。
包括函数的定义和调用、函数指针、数组和字符串等。
这部分内容将帮助学生掌握函数编程的方法,培养学生面向过程的编程思想。
3.第三部分:工资管理系统的设计与实现。
包括系统需求分析、系统设计、代码编写和调试等。
这部分内容将帮助学生将所学知识应用于实际问题,提高学生的编程能力和解决问题的能力。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:教师讲解C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,使学生掌握C语言的基本编程能力。
2.案例分析法:通过分析实际案例,让学生了解并掌握函数编程的方法,培养学生面向过程的编程思想。
3.实验法:学生在实验室进行编程实践,设计和实现工资管理系统,提高学生的编程能力和解决问题的能力。
4.小组讨论法:学生分组进行讨论,共同解决问题,培养学生的团队合作意识和创新精神。
四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备等。
具体如下:1.教材:选用《C程序设计语言》等权威教材,为学生提供系统、科学的学习材料。
工资管理c语言程序设计
辽宁工业大学C 语言程序设计课程设计(论文)题目:工资管理课程设计(报告)任务及评语院(系):软件学院教研室:软件教研室学号学生姓名专业班级电子商务 101 班程序设计(报告)工资管理题目程序设计地任务与要求:(1)掌握 C语言编程地基础知识 .(2)较熟练地编写 C语言应用程序 .程(3)了解 C语言地常用标准函数、编程技巧、异常处理 .(5)联系已学过地内容 , 巩固所学地理论 , 增强独立工作能力 .序设(6)通过设计主要使学生有一个独立编写程序地过程, 对理论学习及动手能计(力都有一个很大地提高 .报(7)通过本次设计 , 进一步培养学生热爱专业地思想, 同时对本专业综合素质告)地提高起一个积极地推动作用 .任务课程设计过程中 , 要严格遵守实践环节地时间安排, 听从指导教师地指导 . 正确地完成上述内容 , 记录实习日记 , 规范完整地撰写出课程设计报告.指导教师评语及成绩成绩:指导教师签字:2011年1月4日目录第 1 章课程设计地目地与要求 . (1)1.1课程设计目地 . (1)1.2课程设计地实验环境 . (1)1.3课程设计地预备知识 . (1)1.4课程设计要求 . (1)第 2 章课程设计内容 . (2)2.1程序功能介绍 (2)2.2程序整体设计说明 (2)2.2.1设计思路 (2)2.2.2数据结构设计及用法说明 (2)2.2.3程序结构 (3)2.2.4各模块地功能及程序说明 (3)2.2.5程序结果 (5)2.3程序源代码及注释 (6)第 3 章课程设计总结 . (16)参考资料. (17)第 1 章课程设计地目地与要求1.1课程设计目地本课程设计是计算机科学与技术专业重要地实践性环节之一, 是在学生学习完《程序设计语言 (C) 》课程后进行地一次全面地综合练习. 本课程设计地目地和任务:1.巩固和加深学生对 C语言课程地基本知识地理解和掌握2.掌握 C语言编程和程序调试地基本技能3.利用 C语言进行基本地软件设计4.掌握书写程序设计说明文档地能力5.提高运用 C语言解决实际问题地能力1.2课程设计地实验环境硬件要求能运行Windows 2000/XP 操作系统地微机系统 .C 语言程序设计及相应地开发环境 .1.3课程设计地预备知识熟悉 C语言及 C语言开发工具 .1.4课程设计要求1.分析课程设计题目地要求2.写出详细设计说明3.编写程序代码 ,调试程序使其能正确运行4.设计完成地软件要便于操作和使用5.设计完成后提交课程设计报告第 2 章课程设计内容2.1 程序功能介绍从 C 语言程序设计中选取部分算法做成演示系统 , 从开始画面到结束画面、主控界面以及每个演示程序都做了精心处理 , 算法涉及地知识点有 C 语言程序设计地输入输出等基本算法以及函数构造、循环和数组等 .系统实现工资录入、查询、修改、计算等功能.1.工资管理系统 : 为总控模块 , 调用 " 输入 " 等以下五个模块 . 设计一个菜单程序 .2.输入 : 用于输入职工工资地数据模块 , 字段 : 编号 . 姓名 . 工资 . 补贴 . 水电费 .3.查询 : 可根据输入地职工编号查找某职工 , 并显示其工资数据 .4.统计 : 计算每个职工地应发 . 实发 ,5.维护 : 可以增加或者删除一个职工地工资数据2.2 程序整体设计说明2.2.1 设计思路第一步:每一条记录包括一个员工地姓名、基本工资、个人补助, 奖金.第二步:输入功能:可以一次完成若干条记录地输入.第三步:显示功能:完成全部员工记录地显示.第四步:查找功能:完成按姓名查找员工记录,并显示.第五步:排序功能:按员工地基本工资进行排序.第六步:插入功能:按基本工资高低插入一条学生记录.第七步:应提供一个界面来调用各个功能, 调用界面和各个功能地操作界面应尽可能清晰美观 !2.2.2 数据结构设计及用法说明1.使用 SWITCH语句编辑程序菜单;3.使用 if,while语句与指针编辑显示所有数据、单条显示.4.使用 if,while,switch,for语句编辑计算实发工资.5.使用 if,while,if-else,goto,infor等语句编辑查找职工信息数据.6.使用 if,while,switch,for,infor,break等语句编辑删除记录,插入记录,追加记录,保存文件 , 读取文件 , 复制文件 .7.使用 if,while,if-else,语句编辑职工工资排序.按职工号索引,按部门求合计.2.2.3 程序结构工资管理流程图如图 2.1 所示图 2.1 为工资管理流程图2.2.4 各模块地功能及程序说明“事业人员”菜单选定该菜单将会弹出一个下拉菜单(又称子菜单), 其中包括四个菜单项:1、“增加”菜单项用于新增加人员情况地输入.2.“修改”菜单项用于人员情况地修改 .3.“删除”菜单项用于人员情况地删除 .4.“查询”菜单项用于人员情况地查询浏览.说明:在“人员修改” 、“人员删除”和“人员查询”操作中均可以按照单位或人员进行 . 如果修改、删除、查询地人员在两人以上 , 最好选择按单位进行 , 这样在作完对一个人情况地操作后 , 可将光标移动到“修改其他记录” 、“确认删除”、“查询其他记录”上 , 回车确认后系统自动提示输入下一人地人员特征 , 这样就避免了回到主菜单再重新开始地麻烦 .“事业工资”菜单选定该菜单项将弹出一个下拉菜单(子菜单) , 其中包括四个菜单项:1.“增加”菜单项用于人员职务晋升、转正定级、获得高学历、解聘、聘干、转岗、年度考核情况、提前晋升等情况下地工资记录增加 .2.“修改”菜单项用于人员工资情况地修改 .3.“删除”菜单项用于人员工资记录地删除 .4.“查询”菜单项用于人员工资情况地查询 . 查询状态是只读状态 , 无法进行输入或修改 .“事业报表”菜单选定该菜单项将弹出一个下拉菜单, 包括 8 个菜单项“两年度考核升级” 、“花名册打印”、“花名册显示”、“正常晋升报表”、“调整职岗津贴标准报表” 、“工资标准变动报表”、“2001.10 标准调整”和“年终奖”.2.2.5 程序结果工资管理如图 2.2,2.3,2.4,2.5,2.6,所示图 2.2 为工资管理程序结果图 2.3 为工资管理程序结果图 2.4 为工资管理程序结果图 2.5 为工资管理程序结果图 2.6 为工资管理程序结果2.3 程序源代码及注释/****** 头文件( .h )***********/#include "stdio.h"/*I/O 函数 */# include "bios.h"/*ROM基本输入输出函数 */#include "dos.h"/*dos 接口函数 */#include "conio.h"/* 屏幕操作函数 */#include "stdlib.h"/* 其它说明 */#include "string.h"/* 字符串函数 */#include "mem.h"/* 内存操作函数 */#include "ctype.h" /*字符操作函数 */#include "alloc.h"/* 动态地址分配函数 *//****变量定义*******/typedef struct z1/* 定义数据结构 */{char no[11];/* 编号 */char name[15];/* 姓名 */float jbgz;/* 基本工资 */float koukuan; /*扣款*/float yfgz;/* 应发工资 */float shuijin;/* 税金 */float sfgz;/* 实发工资 */struct z1 *prior;/*前驱指针*/struct z1 *next;/*后继指针*/}SALARY;/* 结构体类型名 */struct z1 *First;/* 双链表头指针 */ struct z1 *Last;/* 双链表尾指针 *//****** 函数原型 *********/void init();/* 初始化 */void create();/* 创建链表 */void calc();/* 计算应发工资 */void delete(); /*删除*/void search(); /*查找*/void save();/* 保存文件 */void load();/* 读取文件 */void computer(); /*计算所需各种票面张数*/ void insert();/* 插入 */void append(); /*追加*/void copy(); /*复制文件*/void sort();/* 排序 */void index();/* 索引 */void list(); /*显示所有数据*/void print(SALARY *p);/* 输出单条记录 */void display();/* 随意逐条显示 */float fax(float x);/* 计算税金 */int menu_select();/* 主菜单 *//******* 主函数开始 **********/main(){int i;clrscr();for(;;){switch(menu_select())/* 调用菜单函数返回一个整数值*/{case 0:init();break;/* 初始化 */case 1:create();break; /*输入数据创建双链表*/case 2:list();break;/* 显示所有数据 */case 3:display();break;/* 单条显示 */case 4:calc();break;/* 计算实发工资 */case 5:search();break;/* 查找职工信息数据 */case 6:delete();break;/* 删除记录 */case 7:insert();break;/* 插入记录 */case 8:append();break;/* 追加记录 */case 9:save();break;/* 保存文件 */case 10:load(); break;/* 读取文件 */case 11:copy();break;/* 复制文件 */case 12:sort();break;/* 按实发工资升序排序 */case 13:computer();break; /*计算所需票面数*/case 14:index();break;/* 按职工号索引 */case 16:exit(0);/* 退出 */}}}/* 菜单函数 , 函数返回值为整型 , 代表所选地菜单项 */menu_select(){char *f[]= {/* 定义菜单字符串数组 */"**************MENU*************", /*菜单地标题行 */ " 0. init list", /*初始化双链表 */" 1. Enter list", /*输入数据 , 创建双链表 */" 2. List all \n",/* 显示所有记录 */" 3. Display record by step", /*显示单条记录 */" 4. Calc the salary", /*计算实发工资 */" 5. Search record on name", /*查找记录 */" 6. Delete a record", /*删除记录 */" 7. Insert record to list", /*插入记录 */" 8. Append record to file", /*追加记录 */" 9. Save data to the file",/* 保存文件 */" 10. Load data from the file",/*读取文件 */" 11. Copy the file to new file", /*复制文件 */" 12. Sort on sfgz",/* 排序 */" 13. Computer ticket number", /*计算所需票面数 */" 14. Index on number",/* 索引 */" 15. Total on number",/* 分类合计 */" 16. Quit" };/*退出 */char s[80];inti;int key=0; /*记录所压键值 */gotoxy(1,25); /*移动光标 */printf("press any key enter menu......\n");/*压任意键进入主菜单 */ getch();clrscr();/* 清屏 */textcolor(YELLOW); /*设置文本颜色为黄色 */textbackground(BLUE);/* 设置背景颜色为兰色 */gotoxy(10,2);putch(0xda); /*输出左上角边框┏ */for(i=1;i<44;i++)putch(0xc4); /*输出上边框水平线 */putch(0xbf);/* 输出右上角边框┓*/for(i=3;i<22;i++)/*输出左右两边地垂直线 */{gotoxy(10,i);putch(0xb3);gotoxy(54,i);putch(0xb3);}gotoxy(10,22);putch(0xc0); /* 输出左上角边框┗ */for(i=1;i<44;i++)putch(0xc4);/* 输出下边框水平线 */putch(0xd9);/* 输出右下角边框┛ */window(11,3,53,21); /*制作显示菜单地窗口,大小根据菜单条数设计*/ clrscr();/* 清屏 */for(i=0;i<18;i++){gotoxy(10,i+1);cprintf("%s",f[i]); /*输出菜单项数组*/}i=1;gotoxy(10,2);/* 设置默认选项在第一项 */textbackground(LIGHTGREEN);/* 设置背景颜色为浅绿 */cprintf("%s",f[1]);/* 输出菜单项 , 表示选中 */gotoxy(10,2);/* 移动光标到菜单地第一项*/while(key!=13)/* 所压键不是回车键时 */{while(bioskey(1)==0);/* 查询是否压下了一个键*/key=bioskey(0);/* 返回下一个在键盘压下地键*/key=key&0xff?key&0xff:key>>8; /*对所压地键进行判断*/gotoxy(10,i+1);textbackground(BLUE);/* 设置背景颜色为蓝色 */cprintf("%s",f[i]);/* 输出菜单项 */if(key==72) i=i==1?17:i-1; /*如压向上光标键↑ ,i减1,如已到第一行再上移 , 则到最后一行 */if(key==80)i=i==17?1:i+1; /*如压向下光标键↓ ,i加1,如已到最后一行再下移 , 则到第一行 */gotoxy(10,i+1); /* 光标移动 i 地下一项 */textbackground(LIGHTGREEN); /* 将背景颜色设为浅绿 */cprintf("%s",f[i]);/* 输出菜单项 */c=i-1;/* 给代表菜单选项地整数赋值*/}textbackground(BLACK);/* 设置背景颜色为黑色 */window(1,1,80,25);/* 恢复原窗口大小 */return c;/* 返回代表菜单选项地整数值*/}/* 初始化函数 */void init(){First=NULL;Last=NULL;}/* 输入数据 , 创建双链表 */void create(){int x; /*记录行坐标*/int i; /*记录输入记录数*/int flag=0; /*做结束标记*/float temp;/* 定义临时变量 */SALARY *info,*p; /*定义临时变量*/if(First!=NULL)init();/*如果头指针为空 , 调用初始化函数 */p=First; /*从头指针开始*/for(;;){if(flag==1)break; /*如果flag=1,结束输入*/i=0;x=0;/* 确定移动地行坐标 */clrscr(); /*清屏*/gotoxy(1,3);printf("*************gongziguanli*************");/*输出标题 */gotoxy(1,4);printf("--Enter @ end--");/*提示输入 @结束 */gotoxy(1,5);printf("|------------------------------------|");/*输出表格地起始线*/gotoxy(1,6);printf("|no|name|jbgz|");/*输出字段标题 , 注意空格数 */for(;;){gotoxy(1,7+x);printf("|----------|----------------|--------|");/*输出表格地水平线 */info=(SALARY *)malloc(sizeof(SALARY));/*申请一个记录空间*/if(!info){printf("\nout of memory");/*如没有得到空间,输出内存溢出信息 */exit(0);/*退出程序 */}info->next=NULL;/*新结点地后继为空*/info->prior=NULL;/*新结点地前驱为空*/gotoxy(1,8+x);printf("|"); /*输出数据间地分割线*/gotoxy(12,8+x);printf("|");gotoxy(29,8+x);printf("|");gotoxy(38,8+x);printf("|");gotoxy(2,8+x);/*光标到输入编号位置 */inputs(info->no,10);/*输入编号,并验证长度不超过10*/if(info->no[0]=='@'){flag=1;break;} /* 编号首字符为 @结束输入 */gotoxy(13,8+x);/* 光标到输入姓名位置 */inputs(info->name,14); /*输入姓名,并验证长度不超过14*/gotoxy(30,8+x); /*光标到输入基本工资位置*/scanf("%f",&temp); /*输入基本工资到临时变量*/info->jbgz=temp; /*基本工资赋值*/info->koukuan=0; /*初始扣款为0,待计算工资时输入*/info->sfgz=0; /*初始实发工资为0,待计算工资时计算*/info->shuijin=0; /*初始税金为0,待计算工资时计算*/info->yfgz=0; /*初始应发工资为0,待计算工资时计算*/if(p==NULL)/*如果p为空,说明输入地是第一个结点*/{First=Last=info;/*头指针和尾指针 */First->prior=NULL; /*头指针地前驱是空*/Last->next=NULL; /*尾指针地后继是空*/}else /*插入地结点不是第一结点, 则插入在头结点之前 */{info->next=p;/*新结点地后继指向原来地头结点*/info->prior=p->prior;/*新结点地前驱指向原来地头结点地前驱*/p->prior=info;/*原来结点地前驱指向新结点*/}p=info;/* 新结点变为 p 结点 , 暂时地头结点 */First=info; /*新结点变为头结点*/x+=2;/* 因为水平线 , 将光标下移两行 */gotoxy(1,8+x);i++;/* 输入记录数加 1*/if(i%9==0)break; /*输入9个记录,换一页输入*/}gotoxy(1,8+x);}printf("|----------|----------------|--------|");/*输出结尾水平线*/}/* 字符串输入和验证函数 */inputs(char *s, int count){char p[255];do{scanf("%s",p);/*输入字符串 */if(strlen(p)>count)printf("\n too long! \n");/*进行长度校验,超过count 值重输入 */}while(strlen(p)>count);strcpy(s,p); /*将输入地字符串拷贝到字符串s 中*/}第 3 章课程设计总结这次课程设计我做地是工资管理, 虽然这个题目相对之下要比其它地课设题目简单一些 , 但对我来说也是一个很大地困难 , 所以当我第一天拿到课设题目时 , 一点思路都没有 . 因为根本不知道要怎么做, 这个时候才知道上课老师们讲地内容是多么地重要, 后悔上课地时候没有认真地听讲 . 只好那书重新看一遍了 , 经过几天地努力 , 把课本上地知识点看了一遍 , 撑握了一些基本地知识 , 所以就是开始地编程序了 . 但是看书和实际操作还是有很大区别地 . 很多问题不知如何下手, 在几次失败地例子下, 终于明白了C 语言编程地基本过程和方法 . 于是开始正式编程 .在这次课程设计中 , 使我对 C 语言有了更进一步地认识和了解 , 要想学好它要重在实践 , 要通过不断地上机操作才能更好地学习它 , 并且我也发现我地好多不足之处 , 对于 C 语言地一些标准库函数还不太会使用 . 对函数调用地正确使用不够熟悉 , 还有对 C 语言中经常出现地错误也不了解 , 通过这次地学习 , 也使我认识到计算机要实践操作地重要性 . 也让我懂得不论是 C 语言 , 还是其它地语言 , 以及其它地计算机方面地知识都要注重实践 , 所以后在学习过程中 , 我会更加注视实践操作 , 使自己更好地学习计算机方面地知识!通过这次课程设计 , 我不仅学会了一些简单地程序编写 , 提高了自己动手操作地能力 , 也让我从中体会到了一些人生哲理 , 其实我们地未也像是一个程序 , 我们应该先制定好这个程序 , 之后一步步来实现这个程序 , 虽然在其中我们会遇到很多问题 , 但是我们要努力地去克服!参考资料[1]曾国民数据结构( C语言) , 重庆大学出版社 ,2006[2]陈文博数据结构与算法 , 机械工业出版社 2009[3]晋良颍数据结构 , 人民邮电出版社 ,2008[4]黄明 C 语言课程设计 , 电子工业出版社 ,2009[5]郭宁管理信息系统 , 人民邮电出版社 ,2006[6]赵池龙实用软件工程 , 电子工业出版社 ,2006[7]马明龙电脑知识与技术学术交流版 ,2005[8]戴健鹏电子工业出版社 ,2009[9]谭浩强 C 语言程序设计教程 , 高等教育出版社 ,2008[10]秦友淑 C 语言程序设计教程 , 华中理工大学出版社 ,2009[11]曹衍龙 C 语言实例解析精粹 , 人民邮电出版社 ,2005[12]黄明 21 世纪进阶辅导 C 语言程序设计 , 大连理工大学出版 ,2006[13]黄明 21 世纪进阶辅导 C 语言程序设计 , 大连理工大学出版社 ,2005[14]马靖善 C 语言程序设计 , 清华大学出版社 ,2005[15]谭浩强 C 语言程序设计教程 , 第三版 , 高等教育出版社 ,2006[16]吕凤煮 C 语言基础教程 , 清华大学出版社 ,2005[17]黄明 C 语言课程设计 , 电子工业出版社 ,2006。
c++工资管理系统课程设计
c++工资管理系统课程设计设计一个C++工资管理系统需要考虑多个方面,包括员工信息管理、薪资计算、数据存储等。
以下是一个简单的C++工资管理系统的概要设计:1. 员工类设计(Employee):-属性:员工编号、姓名、基本工资等。
-方法:获取员工信息、计算薪资等。
2. 薪资管理类设计(SalaryManagement):-属性:员工列表、薪资总额等。
-方法:添加新员工、删除员工、计算总薪资等。
3. 数据存储类设计(FileHandler):-方法:保存员工信息到文件、从文件中读取员工信息等。
4. 用户界面类设计(UserInterface):-方法:与用户交互,提供菜单选项、输入输出等。
5. 主函数设计:-创建薪资管理对象和文件处理对象。
-提供用户菜单,通过用户输入执行相应的操作。
以下是一个简化的代码框架:```cpp#include <iostream>#include <vector>#include <fstream>using namespace std;class Employee {public:// 员工属性和方法};class SalaryManagement {private:vector<Employee> employees;public:// 薪资管理方法};class FileHandler {public:// 文件处理方法};class UserInterface {public:// 用户界面方法};int main() {// 主函数return 0;}```在这个基础上,你可以进一步添加具体的实现细节,包括员工信息的输入输出、薪资的计算方式、数据的持久化存储等。
此外,你还可以考虑使用面向对象的设计原则,如封装、继承和多态,以提高代码的可维护性和扩展性。
c课程设计之工资统计
c 课程设计之工资统计一、教学目标本节课的教学目标是让学生掌握工资统计的基本概念和方法,能够运用所学知识对工资数据进行收集、整理、分析和解释,从而培养学生运用统计学知识解决实际问题的能力。
具体来说,知识目标包括了解工资统计的基本概念、掌握常用的工资统计方法以及理解工资统计在实际应用中的重要性;技能目标包括能够熟练地运用统计软件进行工资数据的收集、整理和分析,并能够根据分析结果作出合理的判断和决策;情感态度价值观目标包括培养学生对统计学的兴趣和热情,使学生认识到统计学在生活和工作中的重要性,以及培养学生的团队合作意识和解决问题的能力。
二、教学内容本节课的教学内容主要包括工资统计的基本概念、常用的工资统计方法以及工资统计在实际应用中的案例分析。
首先,我们将介绍工资统计的基本概念,包括工资统计的定义、目的和作用,以及工资统计数据的来源和类型。
然后,我们将学习常用的工资统计方法,包括描述性统计、推断性统计和回归分析等,并通过具体的案例来演示这些方法的应用。
最后,我们将通过案例分析来了解工资统计在实际应用中的重要性,例如在人力资源管理、经济分析和政策制定等方面。
三、教学方法为了达到本节课的教学目标,我们将采用多种教学方法来激发学生的学习兴趣和主动性。
首先,我们将运用讲授法来讲解工资统计的基本概念和方法,通过清晰的讲解和生动的例子来帮助学生理解和掌握。
其次,我们将采用案例分析法来进行实际应用的讨论,通过分析具体的工资统计案例来培养学生的分析和解决问题的能力。
此外,我们还将学生进行小组讨论和实验操作,通过合作和实践来加深学生对工资统计的理解和应用。
四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备一系列的教学资源。
教材将是主要的教学资源,我们将选择一本适合学生年级和知识深度的统计学教材,提供给学生系统性的学习资料。
参考书将作为辅助教学资源,提供更多的案例和练习题,帮助学生深入理解和巩固所学知识。
c语言课程设计报告 职工工资管理系统
一.设计需求说明一、职工工资管理系统功能设计要求1. 输入记录:将每一个职工的姓名、ID 号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。
•该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
5. 删除记录:可删除数据文件中的任一记录。
6.恢复记录:能恢复被删除的任一记录。
7. 统计: (A) 计算各项工资平均工资及总工资, (B)•统计符合指定条件(如职工工资前三项之和在2000 元以上、2000~1500 元、1500~1000 元) 以内的工资职工人数及占总职工人数的百分比。
(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。
8.保存数据文件功能。
9.打开数据文件功能。
经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。
程序运行结果如下表所示(记录个数至少8 个)。
二.模块设计分析系统功能模块图:工作程序分析①输入:输入职工工资资料通过结构体的数组来进行操作,先头定义数组em[],先输入需要输入的职工人数m,然后进入循环,每次循环将各项输入结构体数组对应项的对应成员中,当循环次数等于人数时,完成全部员工的资料输入,退出循环。
同时将数据储存在ckerk_list文件中并自动保存至磁盘。
注:如首次使用,尚未输入数据,请先输入数据。
输入的数据将自动保存。
再次选择输入功能时原数据将被覆盖。
②保存:将输入的资料存入磁盘读取文件clerk_list,若文件不存在,打印“打开失败并退出。
若存在,则通过循环语句将输入到结构体数组的数据逐个输入磁盘。
工资管理系统课程设计
工资管理系统课程设计课程设计:工资管理系统1. 课程设计目的和背景:工资是员工劳动的回报,对于企业和员工来说都有重要的意义。
工资管理系统是一种可以自动化处理和管理企业工资支付和相关数据的系统。
本次课程设计旨在设计一个简单的工资管理系统,实现基本的工资计算和管理功能,提高企业工资管理的效率和准确性。
2. 课程设计内容和步骤:2.1 需求分析:分析企业对工资管理系统的具体需求,包括工资计算、工资发放管理、员工信息管理等功能。
2.2 系统设计:设计合适的系统架构,确定相关的数据库表结构和字段,设计用户界面和交互流程。
2.3 功能实现:2.3.1 员工信息管理功能:包括员工信息的录入、查询、修改和删除等功能。
2.3.2 工资计算功能:根据员工的工作时长、工作岗位和薪资级别等信息,计算每个员工的工资,并生成工资明细。
2.3.3 工资发放管理功能:记录每个员工的工资发放情况,包括工资发放日期、发放方式等信息。
2.3.4 统计报表功能:生成工资报表和统计报表,方便企业进行数据分析和业务决策。
2.4 系统测试和验证:对系统进行功能性测试和性能测试,确保系统能够正常运行和满足需求。
3. 课程设计成果:3.1 完整的工资管理系统:包括员工信息管理、工资计算、工资发放管理和统计报表等功能的实现。
3.2 系统设计文档:包括需求分析、系统设计、数据库设计等的详细文档。
3.3 系统操作手册:包括系统安装、配置和使用的详细说明。
3.4 系统演示和报告:展示系统的功能和操作,总结系统设计和实现的经验和教训。
4. 课程设计评估:根据系统的功能性和性能的完整度和质量,以及文档和报告的详细程度和准确性,对课程设计进行评估和打分。
5. 学习收获:通过课程设计,学生能够深入了解工资管理系统的设计和实现过程,掌握系统设计和数据库设计的相关知识和技能,提高对工资管理和信息系统的理解和应用能力。
同时,通过团队合作和完成项目的经验,培养学生的团队合作和项目管理能力。
C++课程设计公司工资管理系统说明书
数学与计算机学院课程设计说明书课程名称: 面向对象程序设计-课程设计课程代码: 8404101题目: 公司工资管理系统年级/专业/班: 2007级软件工程1 学生姓名: 刘远强学号: 312007********* 开始时间:2009 年06月10日完成时间:2009 年06月28 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书撰写质量(45)总分(100)指导教师签名:年月日目录1 引言 (1)1.1问题的提出 (1)1.2国内外研究的现状 (1)1.5任务与分析 (1)2 程序的主要功能 (1)2.1添加功能 (1)2.2删除功能 (1)2.3显示功能 (2)2.4数据设置功能 (2)2.5修改功能 (2)3 程序运行平台 (2)4 总体设计 (2)5 程序类的说明 (3)6 模块分析 (7)6.1添加模块 (7)6.2查询本月经营模块 (8)6.3修改模块 (9)6.4数据存盘模块 (11)6.5删除模块 (12)6.6基础数据设置模块 (12)6.7数据装入模块 (12)7 系统测试 (16)8 结论 (21)致谢 (22)参考文献 (23)摘要随着计算机的普及……计算机科学越来越变得重要,程序设计作为计算机科学的基本,地位也变得越来越重要。
C++作为程序设计的基础,地位也是很重要的。
C++是开发性能高复杂度系统的最好语言。
此次进行C++课程设计,做一个公司工资管理系统,让我更为深层次地了解到了C++的魅力所在,让我懂得什么才叫编程的快乐。
社会在进步,计算机科学也在进步,C++的重要性也越来越重要,我们只有不断地学习,才能赶上时代的步伐……关键词:公司工资管理系统;计算机;C++;程序设计……1 引言1.1 问题的提出在现代化的企业管理中,人事管理系统有着十分重要的作用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。
c工资管理课程设计
c工资管理课程设计一、课程目标知识目标:1. 学生理解工资管理的基本概念,掌握工资的计算方法和流程。
2. 学生掌握工资表的制作和解读,了解个人所得税的相关知识。
3. 学生了解我国工资管理的相关法律法规,知晓劳动者的权益保护。
技能目标:1. 学生能够运用所学知识进行工资的计算,准确地完成工资表的制作。
2. 学生能够运用电子表格软件进行工资管理,提高数据处理和分析能力。
3. 学生通过案例分析,提高解决实际工资管理问题的能力。
情感态度价值观目标:1. 学生通过学习工资管理,培养对劳动者的尊重和关爱,增强社会责任感。
2. 学生在小组合作学习中,培养团队协作精神和沟通能力。
3. 学生通过了解工资管理的法律法规,增强法治观念,提高法律意识。
课程性质:本课程为实践性较强的课程,结合实际工资管理案例,让学生在理论学习的基础上,提高实际操作能力。
学生特点:学生具备一定的电子表格操作基础,对工资管理有一定的认知,但缺乏系统学习和实际操作经验。
教学要求:教师需结合实际案例,引导学生运用所学知识解决工资管理问题,注重培养学生的实际操作能力和法律意识。
通过课堂讲解、案例分析、小组讨论等多种教学手段,确保学生达到预设的课程目标。
教学过程中,关注学生的学习反馈,及时调整教学方法和节奏,提高教学效果。
二、教学内容1. 工资管理基本概念:工资的定义、工资构成要素、工资制度分类。
2. 工资计算方法:计时工资、计件工资、绩效工资的计算方法,各类奖金的计算。
3. 工资表的制作与解读:工资表的组成、填写方法、工资条的解读。
4. 个人所得税知识:个人所得税的基本概念、税率、计税方法、扣除标准。
5. 工资管理的法律法规:我国工资管理的相关法律法规,如《劳动法》、《劳动合同法》等。
6. 劳动者权益保护:工资支付保障、加班工资、社会保险等方面的权益保护。
教学大纲安排:第一课时:工资管理基本概念及工资计算方法介绍。
第二课时:工资表的制作与解读,个人所得税知识讲解。
有关工资管理的课程设计
有关工资管理的课程设计一、教学目标本课程旨在通过学习工资管理的相关知识,使学生掌握工资管理的基本原理、方法和流程。
具体目标如下:1.知识目标:学生能够理解工资管理的概念、意义和作用,掌握工资核算的基本原则和方法,了解不同类型的工资制度及其特点。
2.技能目标:学生能够运用所学知识,独立完成工资核算的基本操作,具备分析和解决工资管理问题的能力。
3.情感态度价值观目标:学生能够认识到工资管理在企业和员工个人发展中的重要性,培养对工资管理工作的热爱和责任感。
二、教学内容本课程的教学内容主要包括以下几个部分:1.工资管理基本概念:工资管理的重要性、工资管理的基本原则。
2.工资核算方法:工资核算的基本流程、工资核算的方法和技巧。
3.工资制度:固定工资制度、绩效工资制度、组合工资制度等。
4.工资发放:工资发放的程序和注意事项。
5.工资管理政策法规:我国工资管理的相关政策法规、劳动争议处理。
三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:通过讲解工资管理的基本概念、理论和方法,使学生掌握相关知识。
2.案例分析法:通过分析实际案例,使学生了解工资管理的具体操作和应用。
3.讨论法:学生进行小组讨论,培养学生的思考和沟通能力。
4.实验法:安排实际操作环节,让学生亲自动手进行工资核算,提高学生的实践能力。
四、教学资源为了支持教学,我们将准备以下教学资源:1.教材:选用权威、实用的工资管理教材作为主要教学资源。
2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作课件、教案等多媒体资料,提高课堂教学质量。
4.实验设备:配备必要的实验设备,如计算机、软件等,让学生进行实际操作。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和理解程度。
2.作业:布置相关的作业,要求学生按时完成,并根据作业的质量和完成情况进行评估。
C企业工资管理系统课程设计
程序完成企业人事工资管理,能够实现工资的录入、统计(整个单位的平 均工资、最高工资、最低工资和工资均方差;各部门的平均工资、最高工资、 最低工资和工资均方差) 、查询(按工号或姓名查询) 、修改、删除等功能。
5)程序执行的命令: 1) 录入员工工资信息;2) 选择需要执行的操作(添加、统计、删除、修改、查询) 3)输出结果。
概要设计1. 设计类的数据类型定义 class message{ private:char bornplace[10],duty[10];// 籍贯 职务 int ID;// 身份证号 public:一、需求分析二、概要设计 三、详细设计 12 四、调试分析 12 五、用户手册 13 六、测试数据 17 七、附录 31一、需求分析源文件采用多文件的工程结构。
2)数据存储采用文件形式。
3) 标准C++俞入输出 4)char name[10],bume n[10];/姓名 部门 int number; //工号 int basesalary;/基本工资 int jobsalary;// 岗位工资 int yljj;// 医疗基金 int sj;// 税金int jia ngji n;// 奖金friend void modify(int x); //友员函数 friend int del(int x); //友员函数}2. 程序模块void writen(int x) ,该模版主要实现工资信息的录入;void add(int x),该模版主要实现工资信息的添加;询或按工号查询) ;统计操作:void count(int x),该模版主要实现工资信息的统计(统计单位 的平均工资、最高工资、最低工资、工资均方差;统计部门的平均工资、 最高工资、最低工资、工资均方差)3.程序模块结构 void main(){ 菜单(输入选择) ;操作;三、详细设计( 1)类模块class message{ private:char bornplace[10],duty[10];// 籍贯 职务录入操作:添加操作: 3) 删除操作: void del(int x),该模版主要实现工资信息的删除; 4) 修改操作: 5) 查询操作: void modify (int x ),该模版主要实现工资信息的修改;void find(int x) ,该模版主要实现工资信息的查询(按名字int ID;// 身份证号public:char name[10],bumen[10];// 姓名部门int number; // 工号int basesalary;// 基本工资int jobsalary;// 岗位工资int yljj;// 医疗基金int sj;// 税金int jiangjin;// 奖金message(){} //******************** 构造函数void xinxi(char a_name[],char a_bornplace[],char a_duty[],char a_bumen[],int a_ID,inta_number,int a_basesalary,int a_jobsalary,int a_jiangjin,int a_yljj,int a_sj) {strcpy(name,a_name);strcpy(bornplace,a_bornplace);strcpy(duty,a_duty);strcpy(bumen,a_bumen);ID=a_ID;number=a_number;basesalary=a_basesalary;jobsalary=a_jobsalary;jiangjin=a_jiangjin;yljj=a_yljj;sj=a_sj;}message &operator=(const message &s)//********************** {运算符重载strcpy(name,);strcpy(bornplace,s.bornplace); strcpy(duty,s.duty);strcpy(bumen,s.bumen);ID=s.ID;number=s.number;basesalary=s.basesalary;jobsalary=s.jobsalary;jiangjin=s.jiangjin;yljj=s.yljj;sj=s.sj;return * this;}friend void modify(int x); friend int del(int x);void put(){//************************友元函数cout< <n ame<<" "<<bor np lace<<" "<<duty<<" "<<bume n<<" "<<ID<<""<<n umbervv" "<<basesalary<<" "<<jobsalary<<" "<<jia ngji n<<" "<<yljj<<" "<<sj<<e ndl;}-message 。
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)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工资管理#include<iostream.h>#include<string.h>#include<stdlib.h>#include<fstream.h>class CSalary{char szname[20];double dlSalary;public:CSalary(){ strcpy(szname,"\0");dlSalary=0.0;}CSalary(char *,double);void SetSalary(char a[],double s){ dlSalary=s;strcpy(szname,a);}char *GetName(){ return szname;}double GetSalary(){ return dlSalary;}int Compare(char name[]){ if(strcmp(name,szname)==0)return 1;elsereturn 0;}void show(){ cout<<"姓名"<<szname<<'\t'<<"工资"<<dlSalary<<endl<<endl;}void ch(double a){ dlSalary=a;}};class CNode{CSalary *pData;CNode *pNext;public:CNode()pNext=0;}CNode(CNode &node){ pData=node.pData;pNext=node.pNext;}void InputData(CSalary *pdata){ pData=pdata;pNext=0;}void ShowNode(){ pData->show();}CSalary *GetData(){ return pData;}CNode *Getnext(){ return pNext;}friend class CList;};class CList{protected:CNode *pHead;public:CList(){ pHead=0;}void DeleteList();~CList(){ DeleteList();}void DeleteNode(CNode *);CNode *LookUp(char name[20]);void ShowList();CNode *GetListHead(){ return pHead;}void Insert(CNode *);CNode *GetListNode();};void CList::DeleteList()return;CNode *p,*q;p=pHead;while(p){delete p->pData;q=p;p=p->pNext;delete q;}pHead=0;}CNode *CList::LookUp(char name[20]) {if(pHead==0)return 0;CNode *p1=pHead;while(p1){if(p1->pData->Compare(name)==0)return p1;p1=p1->pNext;}return 0;}void CList::ShowList(){if(!pHead){cout<<"没有记录!"<<endl;return;}CNode *p=pHead;while(p){ p->ShowNode();p=p->pNext;}}void CList::Insert(CNode *p0){ CNode *p,*q;if(pHead==0){pHead=p0;pHead->pNext=0;return;}p=pHead;while(p0->pData->GetSalary()>p->pData->GetSalary()&&p->pNext!=0) {q=p;p=p->pNext;}if(p0->pData->GetSalary()<=p->pData->GetSalary()){if(p==pHead){p0->pNext=pHead;pHead=p0;}else{p0->pNext=p;q->pNext=p0;}}else{p->pNext=p0;p0->pNext=0;}return;}void CList::DeleteNode(CNode *pnode){if(pnode==pHead&&pHead==0){delete pHead->pData;delete pHead;pHead=0;}else if(pnode==pHead){CNode *p=pnode->pNext;delete pHead->pData;delete pHead;pHead=p;}else{CNode *p=pHead;while(p&&p->pNext!=pnode)p=p->pNext;CNode *q=pnode->pNext;delete pnode->pData;delete pnode;p->pNext=q;}}void change(char p[]){strcpy(p,strupr(p));}void addrecord(CList &salary){CNode *p;CSalary *psalary;char name[20];double s;cout<<"输入姓名(输入0结束):\n";cin>>name;change(name);while(strcmp(name,"0")!=0){cout<<"请输入工资\n";cin>>s;psalary=new CSalary;psalary->SetSalary(name,s);p=new CNode;p->InputData(psalary);salary.Insert(p);cout<<"输入姓名(输入0结束):\n";cin>>name;change(name);}cout<<endl<<endl<<endl<<endl;}void showrecord(CList &list){list.ShowList();}void lookuprecord(CList &list){char name[20];cout<<"请输入查询姓名\n";cin>>name;change(name);CNode *p=list.LookUp(name);if(p)p->ShowNode();elsecout<<"未找到查询姓名,请重新输入姓名!\n\n\n";return;}void deleterecord(CList &list){cout<<"请确认是否执行删除操作,继续Y否则N\n";char name[20];char a;cin>>a;if(a=='N'||a=='n')return;elseif(a=='Y'||a=='y'){cout<<"请输入查询姓名\n";cin>>name;change(name);CNode *p=list.LookUp(name);if(p)list.DeleteNode(p);elsecout<<"未找到查询姓名,请重新输入姓名!\n\n\n";return;}elsecout<<"操作无效,请重新输入操作\n\n\n";return;}void modifyrecord(CList &list){cout<<"请确认是否执行删除操作,继续Y否则N\n";char name[20];double dlsalary;char a;cin>>a;if(a=='N'||a=='n')return;elseif(a=='Y'||a=='y'){cout<<"请输入查询姓名\n";cin>>name;change(name);CNode *p=list.LookUp(name);if(p!=0){cout<<"请输入修改值\n";cin>>dlsalary;p->GetData()->ch(dlsalary);}elsecout<<"未找到查询姓名,请重新输入姓名!\n\n\n";return;}elsecout<<"操作无效,请重新输入操作\n\n\n";return;}void save(CList &list){ofstream outfile("data.txt");char name[20];double salary;CNode *p=list.GetListHead();while(p){strcpy(name,p->GetData()->GetName());salary=p->GetData()->GetSalary();outfile<<name<<'\t'<<salary<<endl;p=p->Getnext();}}void input(CList &list){CList a=list;ifstream infile("data.txt");char name[20];double salary;while(!infile.eof()){infile>>name>>salary;CSalary *psalary=new CSalary;psalary->SetSalary(name,salary);CNode *pnode=new CNode;pnode->InputData(psalary);a.Insert(pnode);}}void start(){cout<<"***************************\n1 添加工资记录\n2 显示工资记录\n3 根据姓名查询工资数据\n4 根据姓名删除工资数据\n5 根据姓名修改工资数据\n0 退出程序\n***************************\n\n\n\n\n";}void main(){CList a;int b;input(a);int n=0;while(n==0){start();cout<<"请输入操作序号";cin>>b;switch(b){case 0:save(a);exit(0);break;case 1:addrecord(a);break;case 2:showrecord(a);break;case 3:lookuprecord(a);break;case 4:deleterecord(a);break;case 5:modifyrecord(a);break;default:cout<<"\t\t请输入正确的操作序号!\n";break;}}}。