- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
非电类上机考试试卷C
非电类上机考试试卷_C(2007年6月)
学号 姓名 成绩
(考试时间80分钟,卷面分数30分)
说明:首先在Z盘建立一个以自己的学号命名的文件夹,用于保存上交的考试文件。对以下问题编制程序,调试运行,输出结果。
一、字符串处理与文件读写程序 (15分)
【要求】
(1)建立2个字符型数组a[20]和b[20]。在数组a中存入字符串The quantity is 000056789,并输出至屏幕。
(2)编写函数void Invers(char *str),功能是将字符串str逆置(所有字符反序存放)。主函数将字符串a复制到数组b中,其中调用Invers函数将b串中的连续数字字符子串逆置(成为987650000),完成后将b输出至屏幕。
(3)定义一个文件流对象iof,以文本方式打开磁盘文件sfile.txt。依次将数组a和b中的数据写入文件。
(4)将文件sfile.txt中的内容读出,输出至屏幕。两字符串各占一行。
【提示】头文件包含语句为:
#include iostream.h
#include fstream.h
【注意】 将源程序以文件名CF1.cpp存入Z盘自己的文件夹中。文件sfile.txt也存入同一个文件夹。
二、面向对象编程:模拟公共汽车管理程序 (15分)
【要求】按以下描述和要求建立一个类BUS,执行主函数对其测试。
BUS
私有成员 int *bus ; //汽车数组,下标为汽车号,元素值为0表示无车;
//元素值大于0表示车上的座位数(要求其值不大于60)。
char *work ; //工作状态数组,下标与bus数组对应,元素值为NULL
//表示该车在库;元素值为’A’或’B’分别表示汽车正在
//运行A线或B线。
static int sum; //累计汽车座位数量
公有成员 BUS(int n=10); //构造函数,动态分配bus和flag数组空间, 长度
//为n。初始值分别为0或NULL(用循环依次赋
//初值)。
~BUS( ); //析构函数,释放分配的内存
void addseat(int m, int n, char c); //将下标为m的bus填写座位数n,
//并置对应的工作状态work为c(应检查n值是否大于60)。
int count( ); //统计全部汽车的座位数(将bus中的数据累加到//sum),同时统计正在工作的汽车数,将工作汽车数//返回。
int getsum( ); //返回座位总数sum
void display(); //输出全部汽车的数据(下标号,座位数,运行线
//路或在库)。 在类定义外面对静态成员做定义性说明并赋初值为零:int BUS::sum=0;
主函数要求:
定义BUS类对象A (12)。
调用函数addseat为对象A的各辆车输入座位数和工作状态:如A. addseat (0, 30,‘A’); A. addseat (1, 20,‘A’); A. addseat (2, 35,‘B’); 调用函数display输出对象A的全部数据。
调用函数count对A统计全部汽车的座位数及工作汽车数并输出结果。
调用函数getsum得到座位总数,同时用条件语句对sum进行判断,如果座位总数少于200或工作汽车数少于8辆,则继续调用函数addseat为对象A的空闲车输入座位数和工作状态。然后再次调用函数count对A统计全部汽车的座位数,直到总数大于200或工作汽车数大于8辆时停止。(可用循环控制)
要求:写出所有成员函数的完整代码。
主函数参考代码:
void main(){
BUS A(12);
int i,m,n,x;
char c;
A.addseat (0, 30,A);
A.addseat (1, 20,A);
A.addseat (2, 35,B);
A.display();
m=A.count();
cout正在工作的汽车数=mendl;
cout全部汽车的座位数=getsum()endl;
n=getsum( );
i=3;
while(n200 || m8){
cout从键盘输入座位数x和运行线路标志c: ;
cinx;
cinc;
A.addseat (i, x, c);
m=A.count();
n=getsum( );
i++;
}
cout正在工作的汽车数=mendl;
cout全部汽车的座位数=getsum()endl;
}
【注
文档评论(0)