首页 2009-2010-3学期上机习题

2009-2010-3学期上机习题

举报
开通vip

2009-2010-3学期上机习题上机习题 1、 编程题 〔题目〕本程序用于查找一组数中呈现峰值的数及其个数。所谓呈现峰值的数,是指满足下列条件的数组元素a[i]: a[i-1]a[i+1] 或者 a[i-1]>a[i] 且 a[i]

2009-2010-3学期上机习题
上机习 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 1、 编程题 〔题目〕本程序用于查找一组数中呈现峰值的数及其个数。所谓呈现峰值的数,是指满足下列条件的数组元素a[i]: a[i-1]a[i+1] 或者 a[i-1]>a[i] 且 a[i]头文件可使用串复制函数strcpy(),求串长度函数strlen()。 【注意】调试完后将源程序以“学号F1.cpp”为文件名存入Z盘自己的目录中。 4、 字符串处理与文件读写程序 【要求】 1. 建立3个字符型数组a[50]、b[50]和c[50]。在数组a中存入字符串"The320 ID 102of 1988that 12 boy is 18",并输出至屏幕。 2. 编写函数void apart(char *s1, char *s2, char *s3),功能是将字符串s1中的英文字符提取出来复制到数组s2中,将字符串s1中的数字字符提取出来复制到数组s3中。主函数调用函数apart(a, b, c)将a中的字符串分离为字母串b和数字串c,返回后将b和c字符串输出至屏幕。 3. 定义一个文件流对象iofile,以文本方式打开磁盘文件"apfile.txt"。依次将数组a、b和c中的字符串数据写入文件。 4. 将文件"apfile.txt"中的内容读出,输出至屏幕。三个字符串各占一行。 【提示】头文件包含语句为: #include #include 5、 有一组若干个整数存放于文件中,并已按由小到大的顺序排列好.请编写一个类ARR, 完成以下功能: 1. 构造函数完成数组a的初始化工作; 2. void DelSame()函数完成将数据中相同的数删除后只剩下一个。 例如: 原数据为: 1,2,2,3,4,4,5,6,6,7,8,8,8,9,10,10 经删除后, 变为: 1,2,3,4,5,6,7,8,9,10 3. void Show(char * fname)函数完成将结果数据输出到屏幕同时输出到文件 私有数据成员: 1. int n; 数据实际个数 2. int a[100]; 存放原始数据及结果的数组 使用如下主函数进行测试: void main() { int b[ ]={1,2,2,3,4,4,5,6,6,7,8,8,8,9,10,10} ARR a(b); a.DelSame(); a.Show("nums.txt"); } 6、 面向对象编程:模拟图书管理应用程序 【要求】按以下描述和要求建立一个类Book,执行主函数对其测试。 Book 私有成员 int No; //图书序号 int cap; //图书库存数量(库存最多允许10本) double Price; //图书价格 int lend; //已借出图书数量 公有成员 Book (int a=0, int b=0, double c=0); //构造函数(a,b,c初始化数据成//员中的序号、数量和价格,lend//赋值0) int input(double m); //添加图书数量m本(若cap+m超过10则//提示“只能添加x本” //返回-x。x 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示能//添加的数量) void lendout(int n); //借出n本图书(如果库存足够,给出“借书//成功!”的提示,否则//显示数量差额的提示信//息。),对有关的数据成员cap和lend做相//应的运算。 void giveback (int n); //归还图书n本(cap和lend相应加减n) int getcap ( ); //返回图书数量 int getlend ( ); //返回借出图书数量 double getprice ( ); //返回图书价格 void display() ; //输出序号、数量、价格和借出数量 主函数要求: 1. 定义Book类对象A(101, 2, 35.8)和B(102, 5, 66.2)。 2. 调用函数input为对象A和B做添加图书操作:A. input(3); B. input(8); 如有添加失败,则重新添加合适的数量。调用函数display输出对象A和B的全部数据,每个对象的信息占一行。 3. 调用函数lendout做借出操作,先比较对象A和B的价格,借较高价格的图书3本,借较低价格的图书8本。再调用函数display输出对象A和B的全部数据。再调用函数giveback做归还操作,还书数量自定。 4. 计算并输出所有图书的总数量sum。 要求:写出所有成员函数的完整代码。 主函数代码参考: void main(){ int t,sum=0; Book A(101, 2, 35.8)和B(102, 5, 66.2); t=A.input(3); if(t<0) A.input(t); t=B.input(8); if(t<0) B.input(t); A.display(); B.display(); if( A.getprice() > B.getprice() ){ A.lendout(3); B.lendout(8); } else{ B.lendout(3); A.lendout(8); } A.display(); B.display(); A.giveback(2); B.giveback(5); A.display(); B.display(); sum=A.getcap()+A.getlend()+B.getcap()+B.getlend(); cout<<"所有图书的总数量="<0则计算成绩cent) Student(Student &b); //拷贝构造函数,(新对象学号为复制的学号加10) ~Student(); //析构函数,释放分配的内存 void setname(char *); //修改姓名 void upjob(int n); //上交作业n次并计算成绩 int getcent(); //返回作业成绩 void display(); //输出对象的全部数据 头文件包含语句为: #include #include 主函数要求: 1. 定义Student类对象A(1101, 王林)、B(1202, 李明)、C(A)和D=B(C、D数据由A、B拷贝而来)。 2. 调用函数修改C和D的姓名,继续交作业(次数自定)。 3. 调用函数display输出对象A、B、C和D的全部数据。每个对象的信息占一行。 4. 计算并输出4个对象的平均成绩。 提示:构造函数需要为name字符串动态分配内存。包含头文件可使用串复制函数strcpy(),求串长度函数strlen()。 要求:写出所有成员函数的完整代码。 主函数参考代码: void main(){ Student A(1101, "王林"), B(1202, "李明",5), C(A), D=B ; C.setname("张山"); D.setname("陈志"); A.display(); B.display(); C.display(); D.display(); A.upjob(4); C.upjob(8); D.upjob(6); A.display(); B.display(); C.display(); D.display(); cout<<"A、B、C、D的平均成绩=" <<(A.getcent()+B.getcent() +C.getcent()+D.getcent())/4< int Boxes::sum=0; //在类定义外面对静态成员做定义性说明并赋初值为零。 主函数要求:(10分) 1. 定义Boxes类对象A, B(2)。数组元素初始值为零。 2. 调用函数put为对象A和B做存入物品的操作:A.put(5, ‘R’); B.put(9,’K’); A. put(8, ‘P’); B. put(15, ‘H’); B. put(40, ‘F’); 调用函数display输出对象A和B的全部数据。 3. 调用函数put和get为对象A和B做存储和取出操作:B. get(‘H’); B. put(40, ‘F’); A. get(‘S’) ; A. get(‘R’); A. put(12, ‘M’); 4. 调用函数display输出对象A和B的全部数据,每个保管箱的输出包括下述内容: a) 正使用保管箱的客户标识及其存储物品数(每个客户信息占一行); b) 统计出该保管箱的使用情况(占用箱个数和空闲箱个数); c) 目前现存物品数量。 【注意】 调试完后将源程序以文件名:“学号F2.cpp”存入Z盘自己的目录中。 一、编写并调试数组应用程序 【程序功能】将二维数组中的符合条件的数复制到一维数组中,利用数据类型的不同形成一个新的字符串,然后依次输出各数组数据。 【程序要求】编写并调试以下函数,函数中可以定义你认为需要的局部变量。 (1)void Input(int mat[][COL], char st[] , int n); (20分) 产生100以内的随机整数存放到二维数组mat中。参数表中的COL为整数常量(可宏定义)表示二维数组的列数,n为二维数组的行数(下同)。随机数可以使用rand()对所需的整数范围取模运算(%)来获得。将数值在65~90之间的元素查找出来复制到字符数组st中。最后在第一个空下标变量处插入字符串结束符。 (2)int Output(int mat[][COL], char *st , int n); (10分) 屏幕显示二维数组mat的数据,要求输出成二维矩阵的形式。输出字符数组st中的字符串。同时计算并返回st数组中字符的个数。 (3)main()函数。 (10分) 在main函数中定义一个二维数组data[4][ COL](可以使COL表示5),定义一个字符数组ps[20]。通过调用以上函数的方式完成数据的输入、处理(将二维数组data中的符合条件的数复制到一维数组ps中)、屏幕输出。有返回值的函数输出返回结果。 (4)在main函数中: (10分) 将二维数组data的数据写入到磁盘文件"fileA.txt"。 打开文件语句:ofstream out("fileA.txt"); 【提示】文件操作运算符包含在fstream头文件中。产生随机数需头文件。随机数产生方法请参考MSDN(VC开发环境下按F1键)。包含头文件可使用串复制函数strcpy(),求串长度函数strlen()。 【注意】 调试完后将源程序以“学号F1.cpp”为文件名存入D盘自己的目录中。 二、面向对象编程 【问题描述】模拟学生作业管理,对每个学生只记录姓名、交作业次数和奖励等级,用数组元素下标代替学号。根据交作业次数设置奖励等级,输出数据。 【要求】按以下描述和要求建立一个类Student,并编写主函数对其测试。 Student 私有成员 char * name; //姓名, 需要在构造函数中动态分配内存 int job; //交作业次数 char prize; //奖励等级(以字符A、B、C表示三个等级,值为0表示无奖励) 公有成员 Student(char *, int , char); //带缺省值的构造函数,参数分别是:姓名, //交作业次数,奖励等级(每个形参的缺省值均为0或NULL)(5分) Student(Student &); //拷贝构造函数。 (5分) ~Student(); //析构函数,释放动态分配的内存 (5分) void setnamejob(char *, int); //修改姓名和作业次数, //(注意动态分配的内存的处理)(5分) void setprize (); //计算奖励等级,(A—交作业≥20次;B—交作业≥15次且 //不到20次;C—交作业≥10次,不到15次;9次以下无奖励)(10分) void display(); //输出对象的全部数据 (10分) 头文件包含语句为: #include #include 主函数要求:(10分) 1) 定义Student类对象A(“Wang”, 22, 0)、B(“Zhao”, 13, 0)、C(A)和D=B(C、D数据由A、B拷贝而来)。 2) 调用函数修改C和D的姓名和作业次数,修改为: C姓名“Zhang”,作业18次; D姓名“Li”,作业8次。 3) 调用函数setprize 为对象A、B、C和D设置奖励等级(根据交作业次数)。 4) 调用函数display输出对象A、B、C和D的全部数据。每个对象的信息占一行,以A为例,输出格式如下: 101 Wang 交作业22次 奖励等级:A 【提示】构造函数需要为name字符串动态分配内存。其它函数注意动态分配的内存的处理。包含头文件可使用串复制函数strcpy(),求串长度函数strlen()。 【注意】 调试完后将源程序以文件名“学号F2.cpp”存入D盘自己的目录中。 PAGE 1
本文档为【2009-2010-3学期上机习题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_970675
暂无简介~
格式:doc
大小:111KB
软件:Word
页数:6
分类:工学
上传时间:2011-11-27
浏览量:69