C++课程设计 工资管理(南理工)
- 格式:doc
- 大小:48.50 KB
- 文档页数:9
工资管理系统 课程设计一、课程目标知识目标: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++课程设计⼯资管理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语言一、课程目标知识目标: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语言编程的核心知识,并能够将其应用于工资管理系统的设计与实现。
南京理工大学紫金学院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语言设计并实现一个简单的工资管理系统。
具体目标如下:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,理解面向过程的编程思想。
2.技能目标:学生能够运用C语言编写程序,解决实际问题。
通过设计并实现工资管理系统,学生将学会如何代码、使用数据结构、编写主函数等。
3.情感态度价值观目标:培养学生对计算机编程的兴趣,提高学生解决问题的能力,培养学生的创新精神和团队合作意识。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,以及面向过程的编程思想。
具体安排如下:1.第一部分:C语言基础知识。
包括C语言的基本语法、数据类型、运算符、控制结构等。
这部分内容将帮助学生掌握C语言的基本编程能力。
2.第二部分:函数和面向过程编程。
包括函数的定义和调用、函数指针、数组和字符串等。
这部分内容将帮助学生掌握函数编程的方法,培养学生面向过程的编程思想。
3.第三部分:工资管理系统的设计与实现。
包括系统需求分析、系统设计、代码编写和调试等。
这部分内容将帮助学生将所学知识应用于实际问题,提高学生的编程能力和解决问题的能力。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:教师讲解C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,使学生掌握C语言的基本编程能力。
2.案例分析法:通过分析实际案例,让学生了解并掌握函数编程的方法,培养学生面向过程的编程思想。
3.实验法:学生在实验室进行编程实践,设计和实现工资管理系统,提高学生的编程能力和解决问题的能力。
4.小组讨论法:学生分组进行讨论,共同解决问题,培养学生的团队合作意识和创新精神。
四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备等。
具体如下:1.教材:选用《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++工资管理系统的概要设计: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 课程设计之工资统计一、教学目标本节课的教学目标是让学生掌握工资统计的基本概念和方法,能够运用所学知识对工资数据进行收集、整理、分析和解释,从而培养学生运用统计学知识解决实际问题的能力。
具体来说,知识目标包括了解工资统计的基本概念、掌握常用的工资统计方法以及理解工资统计在实际应用中的重要性;技能目标包括能够熟练地运用统计软件进行工资数据的收集、整理和分析,并能够根据分析结果作出合理的判断和决策;情感态度价值观目标包括培养学生对统计学的兴趣和热情,使学生认识到统计学在生活和工作中的重要性,以及培养学生的团队合作意识和解决问题的能力。
二、教学内容本节课的教学内容主要包括工资统计的基本概念、常用的工资统计方法以及工资统计在实际应用中的案例分析。
首先,我们将介绍工资统计的基本概念,包括工资统计的定义、目的和作用,以及工资统计数据的来源和类型。
然后,我们将学习常用的工资统计方法,包括描述性统计、推断性统计和回归分析等,并通过具体的案例来演示这些方法的应用。
最后,我们将通过案例分析来了解工资统计在实际应用中的重要性,例如在人力资源管理、经济分析和政策制定等方面。
三、教学方法为了达到本节课的教学目标,我们将采用多种教学方法来激发学生的学习兴趣和主动性。
首先,我们将运用讲授法来讲解工资统计的基本概念和方法,通过清晰的讲解和生动的例子来帮助学生理解和掌握。
其次,我们将采用案例分析法来进行实际应用的讨论,通过分析具体的工资统计案例来培养学生的分析和解决问题的能力。
此外,我们还将学生进行小组讨论和实验操作,通过合作和实践来加深学生对工资统计的理解和应用。
四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备一系列的教学资源。
教材将是主要的教学资源,我们将选择一本适合学生年级和知识深度的统计学教材,提供给学生系统性的学习资料。
参考书将作为辅助教学资源,提供更多的案例和练习题,帮助学生深入理解和巩固所学知识。
工资管理#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;}}}。