




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
标题:1. 函数重载 实习二 C+函数时限:3000ms内存限制:10000K总时限:3000ms描述: 设计一菜单程序,利用函数重载实现员工月工资的计算,计算方法如下: (1)管理人员的月工资 月薪 缺勤天数 月薪 22; (2)销售人员的月工资 底薪 + 销售金额 提成比例; (3)计件工人的月工资 产品件数 每件报酬; (4)计时工人的月工资 工作小时 小时报酬;输入:职工类别及相关信息。职工类别:1表示管理人员;2表示销售人员;3表示计件工人;4表示计时工人;其余字符表示退出。相关信息:若为管理人员,则输入月薪和缺勤天数;若为销售人员,则输入底薪、销售金额和提成比例;若为计件工人,则输入产品件数和每件报酬;若为计时工人,则输入工作小时和小时报酬。输出:员工月工资。输入样例:1 职工类别5000.0 1月薪和缺勤天数输出样例:4772.73提示:1. 计算管理人员、销售人员、计件工人、计时工人的月工资的函数原型可以分别设计如下: double getEarning(double salary, int absenceDays); double getEarning(double baseSalary, double salesSum, double rate); double getEarning(int workPieces, double wagePerPiece); double getEarning(double hours, double wagePerHour);2. 菜单程序设计如下: int main() . cout Please select. endl; cout 1: Manager. endl; cout 2: Sales Man. endl; cout 3: Pieces Worker. endl; cout 4: Hour-Worker. endl; cout Others: Quit sel; switch(sel) case 1: cin .; cout .; cout .; cout .; cout getEarning(.); break; default:break; return 0;来源:#includeusing namespace std;double getEarning(double salary ,int absenceDays) return (salary -salary*absenceDays/22);/ admindouble getEarning(double baseSalary ,double salesSum,double rate) return (baseSalary + salesSum*rate);double getEarning(int workPieces,double wagePerPiece) return (workPieces*wagePerPiece);double getEarning(double hours ,double wagePerHour) return (hours*wagePerHour);int main() int kind = 0 ; cout Please select. endl; cout 1: Manager. endl; cout 2: Sales Man. endl; cout 3: Pieces Worker. endl; cout 4: Hour-Worker. endl; cout Others: Quit kind ; switch(kind) case 1: double salary ; int abDays; cinsalaryabDays; coutbasesalesSumrate; coutworkPieceswagePerPiece; couthourswagePerHour; coutgetEarning(hours,wagePerHour); break; default: break; / coutgetEarning(100.0,11);/ coutgetEarning(100.0,10.0,0.1);/ coutgetEarning(100,0.2);/ coutgetEarning(200,0.3); return 0 ;标题:2. 引用传递时限:3000ms内存限制:10000K总时限:3000ms描述:设计一个函数,将两个浮点数传入,然后通过引用把其和、差、积传出。函数原型如下:void Math(float a,float b,float &sum,float &sub,float &pro);输入:输入两个浮点数输出:输出两个浮点数的和、差、积。输入样例:6.5 2.3输出样例:8.8 4.2 14.95#includeusing namespace std;void Math(float a , float b ,float& sum,float &sub,float&pro) sum = a+ b ; sub = a-b ; pro = a*b ;int main() float sum = 0 ; float sub = 0 ; float pro = 0 ; float a = 0 ; float b = 0 ; cinab; Math(a,b,sum,sub,pro); coutsum sub proendl; return 0 ;标题:3. 函数模板时限:3000ms内存限制:10000K总时限:3000ms描述: 设计一个函数模板,实现两个同类型数据的交换。 将设计好的函数模板分别实例化为两个整型数交换、两个字符交换的模板函数,调用这些函数并输出运行结果。输入:分别输入两个整型数和两个字符输出:分别输出两个整型数和两个字符交换的结果输入样例:5 9输出样例:9 5#includeusing namespace std;templateT cg(T &a ,T& b) T c ; c = a ; a = b ; b = c ;int main() int a = 0 ; int b = 0 ; char c = 0 ; char d = 0 ; cinabcd; cg(a,b); cg(c,d); couta bendlc dendl; return 0 ;标题:4. 默认形参值时限:3000ms内存限制:10000K总时限:3000ms描述:设计一个求空间两点距离的函数,要求第2个点的默认值为坐标原点。输入:两个点的坐标。输出:输出第一个点与原点之间的距离及输入的两个点之间的距离。输入样例:1 1 15 5 5输出样例:1.732056.9282提示:函数原型可设计如下:floatdistance(float x1,float y1,float z1, float x2=0,float y2=0,float z2=0);#include#includeusing namespace std;float distance(float x1,float y1,float z1,float x2=0,float y2=0,float z2=0) return sqrt(pow(x1-x2,2)+pow(y1-y2,2)+pow(z1-z2,2);int main() float x1 = 0 ; float x2 = 0 ; float y1 = 0 ; float y2 = 0 ; float z1 = 0 ; float z2 = 0 ; cinx1y1z1x2y2z2; coutdistance(x1,y1,z1)endl; coutdistance(x1,y1,z1,x2,y2,z2)endl; return 0 ;实习 三标题:类的定义_静态常量时限:3000ms内存限制:10000K总时限:3000ms描述:设计并实现一个圆柱类Cylinder,要求:(1)设计两个double型的私有数据成员:高度height和底圆半径radius。(2)设计一个double型的公有静态常量数据成员pi(其值初始化为3.1415926),以及一个获取该常量的公有静态成员函数GetPI。(3)在构造函数的初始化列表中初始化高度height和底圆半径radius。(4)设计用于获取半径的成员函数GetRadius、获取高度的成员函数GetHeight、设置半径的成员函数SetRadius、设置高度的成员函数SetHeight。(5)设计用于计算圆柱体积的成员函数Volume()、计算圆柱表面积的成员函数Area。在main函数中:根据输入的高度和半径构造圆柱对象,并输出圆柱的基本信息、体积和表面积。输入:圆柱的高度和底圆半径输出:圆周率pi、圆柱高度、底圆半径、圆柱的体积和表面积输入样例:2.0 1.0输出样例:pi=3.14159, height=2, radius=1:volume=6.28319, area=18.8496#include using namespace std;class Cylinderprivate: double height,radius;public: static const double Pi=3.1415926; Cylinder(double a=0,double b=0) height=a; radius=b; double GetPI() return Pi; void GetRadius() cin radius; void GetHeight() cin height; double SetRadius() return radius; double SetHeight() return height; double Volume() return Pi*radius*radius*height; double Area() return 2*Pi*radius*height+2*Pi*radius*radius; ;int main() Cylinder y; y.GetHeight(); y.GetRadius(); cout pi= y.GetPI() , ; cout height= y.SetHeight() , ; cout radius= y.SetRadius() : ; cout volume= y.Volume() , ; cout area= y.Area() endl; return 0;标题:类的定义_深拷贝时限:3000ms内存限制:10000K总时限:3000ms描述:设计并实现一个动态整型数组类Vect,要求:(1)实现构造函数重载,可以根据指定的元素个数动态创建初始值为0的整型数组,或根据指定的内置整型数组动态创建整型数组。(2)设计拷贝构造函数和析构函数,注意使用深拷贝。(3)设计存取指定位置的数组元素的公有成员函数,并进行下标越界,若越界则输出“out of boundary”。(4)设计获取数组元素个数的公有成员函数。(5)设计用于输出数组元素的公有成员函数,元素之间以空格分隔,最后以换行符结束。在main函数中按以下顺序操作:(1)根据内置的静态整型数组1,2,3,4,5构造数组对象v1,根据输入的整型数构造数组对象v2。(2)调用Vect的成员函数依次输出v1和v2的所有元素。(3)输入指定的下标及对应的整型数,设置数组对象v1的指定元素。(4)根据数组对象v1拷贝构造数组对象v3。(5)调用Vect的成员函数依次输出v1和v3的所有元素。输入:用于构建数组对象v2的元素个数用于设置数组对象v1的指定下标及元素值输出:数组对象v1和v2的所有元素数组对象v1和v3的所有元素输入样例:106 6输出样例:1 2 3 4 50 0 0 0 0 0 0 0 0 0out of boundary1 2 3 4 51 2 3 4 5提示:#include using namespace std;class Vectpublic: Vect(int n=0); Vect(int arr, int n); Vect(const Vect& v); Vect(); int Size() return arrSize; int GetData(int i) if(i=arrSize) cout out of boundary endl; else return arrDatai; void SetData(int i, int val) if(i=arrSize) cout out of boundary 0) cout arrData0; for(int i=1; iarrSize; i+) cout arrDatai; cout endl; private: int arrSize; int *arrData;Vect:Vect(int n):arrSize(n) arrData = new intarrSize; for(int i=0; iarrSize; i+) arrDatai = 0; Vect:Vect(int arr, int n):arrSize(n) arrData = new intarrSize; for(int i=0; iarrSize; i+) arrDatai = arri; Vect:Vect(const Vect& v):arrSize(v.arrSize) arrData = new intarrSize; for(int i=0; i n; Vect v1(arr,5),v2(n); v1.PrintData(); v2.PrintData(); int i, data; cin i data; v1.SetData(i, data); Vect v3(v1); v1.PrintData(); v3.PrintData(); return 0;实验四 继承和派生标题:虚基类时限:3000ms内存限制:10000K总时限:3000ms描述:(1)定义人员类Person:公有成员:姓名(Name);保护成员:性别(Gender),年龄(Age);构造函数和析构函数(2) 从人员类Person派生学生记录类StudentRecord:添加公有成员:学号(Number),班级(ClassName),添加静态公有成员:学生总人数(TotalCount);添加保护成员:平均成绩(Score);实现构造函数和析构函数。(3) 从人员类Person派生教师记录类TeacherRecord:添加公有成员:学院(CollegeName),系(DepartmentName);添加保护成员:教龄(Year);实现构造函数和析构函数。(4)从学生记录类StudentRecord和教师记录类TeacherRecord派生学生助教类TeachingAssistant:添加公有成员:辅导课程(LectureName);实现公有函数:显示人员信息(Show),屏幕打印 姓名,性别,年龄,学号,班级,学生总人数,平均成绩,学院,系,教龄,辅导课程。实现构造函数和析构函数。为检验类间结构设计是否正确,设计函数void SetName(String name)实现更改一名助教的姓名的功能。创建一个助教类的对象助教姓名 性别 年龄 学号 班级 平均成绩 学院 系 教龄 辅导课程郑七 男 22 2010123 软20101 89 信息 软件 1 数据结构显示其信息。调用更改姓名的函数,更改其姓名为“郑八”,并再次显示其信息。输入:无输出:显示构造的信息和更改前和更改后的助教信息输入样例:无输出样例:Person郑七constructedStudent郑七constructedteacher郑七constructedteachingassistant郑七constructedName:郑七 Gender:男 Age:22 Number:2010123 ClassName:软20101 TotalCount:1 Score:89 CollegeName:信息 DepartmentName:软件 Year:1 LectureName:数据结构Name:郑八 Gender:男 Age:22 Number:2010123 ClassName:软20101 TotalCount:1 Score:89 CollegeName:信息 DepartmentName:软件 Year:1 LectureName:数据结构teachingassistant郑八destructedteacher郑八destructedStudent郑八destructedPerson郑八destructed提示:各类的构造函数和析构函数都有输出。调用公有函数Show,以分别显示各个记录的人员信息。在派生助教类时,使用虚基类。#include #include using namespace std;class Person protected: string Gender; int Age; public: string Name; Person(string gender, int age, string name) Gender = gender; Age = age; /Name = new charstrlen(name)+1; /strcpy(Name,name); Name = name; coutPersonNameconstructedendl; Person() coutPersonNamedestructedendl; / delete Name; / delete Gender; /* void Show() coutName:Name Gender:Gender Age:Ageendl; */;class StudentRecord : virtual public Person protected: int Score; public: string Number; string ClassName; static int TotalCount; StudentRecord(string number, string classname, int score, string gender, int age, string name):Person(gender, age, name) /Number = new charstrlen(number)+1; /strcpy(Number,number); Number = number; /ClassName = new charstrlen(classname)+1; /strcpy(ClassName,classname); ClassName = classname; Score = score; +TotalCount; coutStudentNameconstructedendl; StudentRecord() /delete ClassName; /delete Number; -TotalCount; coutStudentNamedestructedendl; /* void Show() coutName:Name Gender:Gender Age:Age Number:Number ClassName:ClassName TotalCount:TotalCount Score:Scoreendl; */;int StudentRecord:TotalCount = 0;class TeacherRecord : virtual public Person protected: int Year; public: string CollegeName; string DepartmentName; TeacherRecord(string collegename, string departmentname, int year, string gender, int age,string name):Person(gender, age, name) /CollegeName = new charstrlen(collegename)+1; /strcpy(CollegeName,collegename); CollegeName = collegename; /DepartmentName = new charstrlen(departmentname)+1; /strcpy(DepartmentName,departmentname); DepartmentName = departmentname; Year = year; coutTeacherNameconstructedendl; TeacherRecord() /delete DepartmentName; /delete CollegeName; coutTeacherNamedestructedendl; /* void Show() coutName:Name Gender:Gender Age:Age CollegeName:CollegeName DepartmentName:DepartmentName Year:Yearendl; */;class TeachingAssistant : public StudentRecord, public TeacherRecord public: string LectureName; TeachingAssistant(string lecturename, string number, string classname, int score, string collegename, string departmentname, int year, string gender, int age, string name):Person(gender,age,name),StudentRecord(number,classname,score,gender,age,name),TeacherRecord(collegename,departmentname,year,gender,age,name) /LectureName = new charstrlen(lecturename)+1; /strcpy(LectureName,lecturename); LectureName = lecturename; coutTeachingAssistantNameconstructedendl; TeachingAssistant() /delete LectureName; coutTeachingAssistantNamedestructedendl; void Show() coutName:Name Gender:Gender Age:Age Number:Number ClassName:ClassName TotalCount:TotalCount Score:Score CollegeName:CollegeName DepartmentName:DepartmentName Year:Year LectureName:LectureNameendl; void SetName(string name) Name = name; ;int main() TeachingAssistant ta(数据结构,2010123,软20101,89,信息,软件,1,男,22,郑七); ta.Show(); ta.SetName(郑八); ta.Show(); return 0;标题:包含时限:3000ms内存限制:10000K总时限:3000ms描述:设计用于表示点、线和三角形的类:Point、Line和Triangle,要求如下:(1)Point类中包含两个用于表示点的X和Y坐标分量的公有数据成员,能够根据指定的X和Y坐标构建点对象。(2)Line类中包含两个用于表示线段端点的私有对象成员,能够根据指定的两点构造线段对象(要求构造函数的参数为常引用),具有计算线段长度的公有成员函数。(3)Triangle类中包含三个用于表示三角顶点的私有对象成员,能够根据指定的三点构造三角形对象(要求构造函数的参数为常引用),具有计算三角形周长和面积的公有成员函数。在main函数中:根据输入的三个点的坐标构建三角形对象,并输出的三角形的周长和面积。输入:依次输入三个点的坐标:x1,y1,x2,y2,x3,y3输出:输出三个点所构成的三角形的周长和面积输入样例:0 0 3 0 0 4输出样例:12 6#include #include using namespace std;class Pointpublic: Point(double _x=0, double _y=0):x(_x),y(_y) public: double x; double y;class Linepublic: Line(const Point &start, const Point &end):ptStart(start),ptEnd(end) double Length() double len; len = sqrt(ptEnd.x-ptStart.x)*(ptEnd.x-ptStart.x) + (ptEnd.y-ptStart.y)*(ptEnd.y-ptStart.y); return len; private: Point ptStart; Point ptEnd;class Trianglepublic: Triangle(const Point &p1, const Point &p2, const Point &p3):ptA(p1),ptB(p2),ptC(p3) double Perimeter(); double Area();private: Point ptA; Point ptB; Point ptC;double Triangle:Perimeter() Line lab(ptA,ptB), lbc(ptB,ptC), lca(ptC,ptA); return lab.Length()+lbc.Length()+lca.Length();double Triangle:Area() / 根据海伦公式计算三角形的面积 Line lab(ptA,ptB), lbc(ptB,ptC), lca(ptC,ptA); double a = lab.Length(); double b = lbc.Length(); double c = lca.Length(); double p = 0.5*(a+b+c); return sqrt(p*(p-a)*(p-b)*(p-c);int main() / 依次输入三个点的坐标 double x1, y1, x2, y2, x3, y3; cin x1 y1 x2 y2 x3 y3; / 输出三点所构成的三角形的周长和面积 Triangle t(Point(x1,y1),Point(x2,y2),Point(x3,y3); cout t.Perimeter() t.Area() endl; return 0;标题:继承和派生_链表时限:3000ms内存限制:10000K总时限:3000ms描述:设计单链表类,并基于单链表类实现栈类和队列类:(1)设计学生信息类StudentRecord,要求包含公有数据成员:string stuName和int stuNo,设计用于输出学生信息的公有成员函数:void print,输出格式为:Name: stuName, Number: stuNo。(2)设计学生链表的结点类StudentNode,要求包含公有数据成员:StudentRecord data和StudentNode *next。(3)设计学生链表类Linke
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妇女常见病知识培训内容
- 考点解析自考专业(小学教育)试卷含答案【A卷】
- 难点详解北师大版8年级数学上册期末试题及一套完整答案详解
- 宁南县教育和体育局2025年上半年公开考核招聘教师的(44人)考前自测高频考点模拟试题及参考答案详解1套
- 宁波华丰建设集团校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版参考答案
- 难点解析-青海省格尔木市中考数学真题分类(平行线的证明)汇编专题练习试题(含详细解析)
- 科技部科技评估中心2024年面向社会公开招聘工作人员笔试高频难、易错点备考题库及参考答案详解一套
- 中介协议合同范本简单
- 艺人管理合同范本
- 线头设备转让合同范本
- GB/T 9871-2008硫化橡胶或热塑性橡胶老化性能的测定拉伸应力松弛试验
- GB/T 26480-2011阀门的检验和试验
- GB/T 19861-2005丙烯酸系阴离子交换树脂强碱基团、弱碱基团和弱酸基团交换容量测定方法
- GB/T 11085-1989散装液态石油产品损耗
- GB 30000.3-2013化学品分类和标签规范第3部分:易燃气体
- 《材料力学》说课-课件
- (完整版)沪教牛津版小学一至六年级英语单词汇总(最新)
- JJF 1587-2016 数字多用表校准规范-(高清现行)
- 完整课件-西方经济学下册(第二版)
- 机械制图教学通用课件(全套)
- 天星择日的基本原理
评论
0/150
提交评论