西北农林科技大学C++上机题答案.pdf_第1页
西北农林科技大学C++上机题答案.pdf_第2页
西北农林科技大学C++上机题答案.pdf_第3页
西北农林科技大学C++上机题答案.pdf_第4页
西北农林科技大学C++上机题答案.pdf_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

实习1 标题 1 字符串输入输出 时 限 3000 ms 内存限制 10000K 总时限 3000 ms 描述 编写一个简单的控制台应用程序 先输入姓名 如 John 再 输出问候语 如 Hello John 输入 John 输出 Hello John 输入样例 John 输出样例 Hello John 提示 使用 string 类定义字符串对象 需包含头文件 使用 cin 和提取符 从键盘输入数据 使用 cout 和插入符 输出结 果到屏幕 需包含头文件 注意使用名称空间 std include include using namespace std intmain string name getline cin name cout Hello name 运算符输入数据 用 cout 对象 采用 运算符输出数据 include include using namespace std intmain float num1 0 num2 0 num3 0 cin num1 num2 num3 cout num1 num2 num3 3 endl return0 标题 3 求鞍点 时 限 3000 ms 内存限制 10000K 总时限 3000 ms 描述 输入一个二维矩阵 找出其中所有鞍点 如果矩阵有鞍点 则输出鞍 点的信息 行号 列号 值 如果没有鞍点 则输出 Not found 所谓 鞍点 是指满足以下条件的矩阵中的一个数 在它所在的行上 最小 所在列上最大 该题中假设矩阵中任意两个数互不相等 输入 输入数据有多行 第一行是矩阵的行数 m 和列数n 从第二行起共包含 m 行 每行包含 n 个数 为矩阵的一行数据 输出 如果矩阵有鞍点 输出鞍点的信息 包括 所在行 所在列 值 如果没有鞍点 输出 Notfound 输入样例 3 4 11 23 56 47 12 45 66 90 16 77 34 18 输出样例 2 0 16 提示 要求用动态内存分配来完成 可用 new 和 delete 实现 屏幕输出只有2 0 16 加回车换行 不能有其它信息 include include using namespace std intmain intm 0 n 0 cnt 0 i 0 j 0 k 0 cin m n if m 0 n 0 return0 int arr newint m for i 0 i m i arr i new int n for i 0 i m i for j 0 j arr i j int Max newint n int Min newint m for k 0 k m k 该循环的功能是找出第 k 行的最小值并存储 在 Min i 中 k 控制行 Min k arr k 0 for i 0 i n i i 控制当前列 for j 0 j n j j 用来和 i 对应的元素对比 if arr k j Min k Min k arr k j for k 0 k n k 该循环的功能是找出第k列的最大值并存储在 Max k 中 Max k arr 0 k for i 0 i m i for j 0 jMax k Max k arr j k for i 0 i m i for j 0 j n j if Min i Max j cout i j Min i endl cnt if cnt 0 cout Not found endl for i 0 i m i delete arr i delete arr delete Min delete Max return0 标题 4 链表操作 时 限 3000 ms 内存限制 10000K 总时限 3000 ms 描述 建立一个链表 每个节点包括学生的学号 姓名 性别 年龄 先输入 5 个学生的数据 再输入一个年龄 如果链表中有年龄等于此 年龄的记录 则删除所有年龄等于此年龄的记录 否则在链表的最后 增加一个新节点 学号为 180 姓名为 aaa 性别为 male 输入 创建链表时输入 5 个职工的职工号和工资 学号为大于 100 且 小于 200 的整数 姓名为长度小于 20 的字符串 性别为长度小于10 的字符串 年龄为大于等于 0 且小于 200 的整数 输出 按顺序输出链表中的所有数据 每个数据占一行 输入样例 101 zhangsan male30 103lisifemale18 105 wangwumale 22 107 maliu male21 109 niuqi female26 21 输出样例 101 zhangsan male 30 103 lisi female 18 105 wangwu male 25 109 niuqi female 22 提示 要求用动态内存分配实现 注意 new 和 delete 的使用 include include using namespace std structstudent intnum string name string gender int age structstudent pNext void input student pP cin pP num pP name pP gender pP age void print student pP cout num endl cout name endl cout gender endl cout age pNext NULL for int i 0 ipNext p newp newp pNext newp pNext NULL p head cin new age while p pNext if p pNext age new age count q p pNext p pNext q pNext delete q else p p pNext if count cur head pNext while cur print cur cur cur pNext else cur head pNext while cur pNext cur cur pNext newnode new student newnode num 180 newnode name aaa newnode gender male newnode age new age cur pNext newnode newnode pNext NULL cur head pNext while cur print cur cur cur pNext cur head while cur pNext q cur cur cur pNext delete q cur NULL return0 实习2 标题 1 函数重载 时 限 3000 ms 内存限制 10000K 总时限 3000 ms 描述 设计一菜单程序 利用函数重载实现员工月工资的计算 计算方法如下 1 管理人员的月工资 月薪 缺勤天数 月薪 22 2 销售人员的月工资 底薪 销售金额 提成比例 3 计件工人的月工资 产品件数 每件报酬 4 计时工人的月工资 工作小时 小时报酬 输入 职工类别及相关信息 职工类别 1 表示管理人员 2 表示销售人员 3 表示计件工人 4 表 示计时工人 其余字符表示退出 相关信息 若为管理人员 则输入月薪和缺勤天数 若为销售人员 则输入底薪 销售金额和提成比例 若为计件工人 则输入产品件数 和每件报酬 若为计时工人 则输入工作小时和小时报酬 输出 员工月工资 输入样例 1 职工类别 5000 01 月薪和缺勤天数 输出样例 4772 73 提示 计算管理人员 销售人员 计件工人 计时工人的月工资的函 数原型可以分别设计如下 double getEarning double salary intabsenceDays double getEarning double baseSalary double salesSum double rate double getEarning int workPieces double wagePerPiece double getEarning double hours double wagePerHour 菜单程序设计如下 intmain cout Please select endl cout 1 Manager endl cout 2 Sales Man endl cout 3 PiecesWorker endl cout 4 Hour Worker endl cout Others Quit sel switch sel case1 cin cout cout cout cout getEarning break default break return0 include using namespace std double getEarning double salary intabsenceDays return salary absenceDays salary 22 double getEarning double baseSalary double salesSum doublerate return baseSalary salesSum rate double getEarning int workPieces double wagePerPiece return workPieces wagePerPiece double getEarning double hours double wagePerHour return hours wagePerHour intmain unsigned shortsel double Salary BaseSalary SalesSum Rate WagePerPiece Hours WagePerHour unsigned shortAbsenceDays WorkPieces cout Please select endl cout 1 Manager endl cout 2 Sales Man endl cout 3 PiecesWorker endl cout 4 Hour Worker endl cout Others Quit sel switch sel case1 cin Salary AbsenceDays cout BaseSalary SalesSum Rate cout WorkPieces WagePerPiece cout Hours WagePerHour cout getEarning Hours WagePerHour break default break return0 标题 2 引用传递 时 限 3000 ms 内存限制 10000K 总时限 3000 ms 描述 设计一个函数 将两个浮点数传入 然后通过引用把其和 差 积传出 函数原型如下 void Math float a float b float 输入 输入两个浮点数 输出 输出两个浮点数的和 差 积 输入样例 6 5 2 3 输出样例 8 8 4 2 14 95 include using namespace std void Math float a float b float sub a b pro a b intmain float num1 num2 Sum Sub Pro cin num1 num2 Math num1 num2 Sum Sub Pro cout Sum Sub Pro endl return0 标题 3 函数模板 时 限 3000 ms 内存限制 10000K 总时限 3000 ms 描述 设计一个函数模板 实现两个同类型数据的交换 将设计好的函数模板分别实例化为两个整型数交换 两个字符交 换的模板函数 调用这些函数并输出运行结果 输入 分别输入两个整型数和两个字符 输出 分别输出两个整型数和两个字符交换的结果 输入样例 5 9 输出样例 9 5 include using namespace std template 函数模板的声明 T 为类型名 void Swap T temp x x y y temp intmain inta b char ch1 ch2 cin a b Swap a b 相当于 void Swap int Swap ch1 ch2 这 个 是 模 板 的 实 例 化 相 当 于 void Swap char return0 标题 4 默认形参值 时 限 3000 ms 内存限制 10000K 总时限 3000 ms 描述 设计一个求空间两点距离的函数 要求第 2 个点的默认值为 坐标原点 输入 两个点的坐标 输出 输出第一个点与原点之间的距离及输入的两个点之间的距离 输入样例 1 1 1 5 5 5 输出样例 1 73205 6 9282 提示 函数原型可设计如下 float distance float x1 float y1 float z1 float x2 0 float y2 0 float z2 0 include include using namespace std float distance float x1 float y1 float z1 float x2 0 float y2 0 float z2 0 float dx x1 x2 float dy y1 y2 float dz z1 z2 return sqrt dx dx dy dy dz dz intmain float x start pos y start pos z start pos x end pos y end pos z end pos cin x start pos y start pos z start pos x end pos y end pos z end pos cout distance x start pos y start pos z start pos endl cout distance x start pos y start pos z start pos x end pos y end pos z end pos endl return0 实习3 标题1 类的定义 静态常量 时 限 3000 ms 内存限制 10000K 总时限 3000 ms 描述 设计并实现一个圆柱类 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 Cylinder private double height radius static doublepi public Cylinder double double static double GetPI double GetRadius double GetHeight void SetRadius double void SetHeight double doubleVolume double Area Cylinder Cylinder Cylinder double h double r height h radius r double Cylinder GetPI returnpi double Cylinder GetRadius return this radius double Cylinder GetHeight return this height void Cylinder SetRadius doubler this radius r void Cylinder SetHeight doubleh this height h double Cylinder Volume return pi radius radius height double Cylinder Area return 2 pi radius radius 2 pi radius height Cylinder Cylinder double Cylinder pi 3 1415926 intmain double h 0 r 0 cin h r if h 0 r 0 return0 Cylinder stick h r cout pi Cylinder GetPI height stick GetHeight radius stick GetRadius volume stick Volume area stick Area endl return0 标题2 类的定义 深拷贝 时 限 3000 ms 内存限制 10000K 总时限 3000 ms 描述 设计并实现一个动态整型数组类Vect 要求 1 实现构造函数重载 可以根据指定的元素个数动态创建初始值 为 0 的整型数组 或根据指定的内置整型数组动态创建整型数组 2 设计拷贝构造函数和析构函数 注意使用深拷贝 3 设计存取指定位置的数组元素的公有成员函数 并进行下标越 界 若越界则输出 outofboundary 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 的所有元素 输入样例 10 6

温馨提示

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

评论

0/150

提交评论