77范文网 - 专业文章范例文档资料分享平台

天津理工大学C++期末考试(3)

来源:网络收集 时间:2019-04-09 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

dl; l; private:

int hour;

// 0 - 23 (24小时格式)

cout<

void printStandard()// 按12小时格式输出时间:11:56:12 (PM) { if (hour>12)

cout<<(hour-12)<<\cout<

int minute; // 0 - 59 int second; // 0 - 59

}; // Timel类定义结束 int main() {

Time t; int a,b,c;

cout<<\设置小时:\cin>>a;

cout<<\设置分钟:\cin>>b;

cout<<\设置秒:\cin>>c; t.setTime(a,b,c); t.printStandard(); t.printUniversal(); return 0;

或 9:23:55(AM)

2.设计一个用来表示直角坐标系的Location类,在主程序中创建类Location的两个对象A和B,要求A的坐标在第3象限,B的坐标点在第2象限,分别采用成员函数和友元函数计算给定两个坐标点之间的距离,要求按如下格式输出结果:

A(x1, y1), B(x2, y2) Distance1=d1 Distance2=d2

其中:x1, x2, y1, y2为指定的坐标值,d1和d2为两个坐标点之间的距离。Location类框架可参考如下:

#include #include class Location { public: 离

11

Location(double,double); double Getx(); double Gety();

//构造函数

//成员函数,取x坐标的值 //成员函数,取y坐标的值

//声明类Location

friend double distance2(Location &A, Location &B)//友元函数,求两坐标点之间的距离

{ }

return sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y));

~Location(void){cout<<\private: };

double x,y;

double distance1(Location&);//成员函数,求两坐标点之间的距

Location::Location(double a,double b) { }

double Location::Getx() { }

double Location::Gety() { }

double Location::distance1(Location &L) { } int main() {

double a,b;

cout<<\输入A点坐标(在第二象限):\cout<<\for(;;) { }

cin>>a; if(a<0)break;

cout<<\不对,再来一次:\return sqrt((L.x-x)*(L.x-x)+(L.y-y)*(L.y-y)); return y; return x; x=a; y=b;

}

cout<<\for(;;) { }

Location A(a,b);

cout<<\输入B点坐标(在第四象限):\cout<<\for(;;) { }

cout<<\for(;;) { }

Location B(a,b);

cout<<\cout<<\cout<<\cout<<\return 0;

cin>>b; if(b<0)break;

cout<<\不对,再来一次:\cin>>a; if(a>0)break;

cout<<\不对,再来一次:\cin>>b; if(b>0)break;

cout<<\不对,再来一次:\

3.

使用C++的string类,将5个字符串按逆转后的顺序显示出来。例如,逆转前的5个字符串是: Germany Japan America Britain France 逆转后的顺序输出字符串是:

12

France Britain America Japan Germany

#include #include using namespace std; int main(void) { }

string str1,str2,str3,str4,str5; cin>>str1>>str2>>str3>>str4>>str5;

cout<

4.

设计一个模仿类magic来实现4*4的魔方阵。类的框架如下:

#include using namespace std; class magic { public: };

void magic::getdata() { }

void magic::setfirstmagic() {

int temp;

temp=m[0][0]=first; for(int i=0,j=0;i<4;i++)

for(j=0;j<4;j++) { }

if(i==0&&j==0)continue; temp+=step; m[i][j]=temp;

cout<<\cout<<\void getdata(); int generate();

//输入初值成员函数 //生成最终魔方成员函数

void setfirstmagic(); //设置初始魔方成员函数 int printmagic(); int m[4][4]; int step; int first; int sumj;

//显示魔方成员函数

//声明魔方阵类magic

}

int magic::generate() { }

int magic::printmagic() { } { }

magic m; m.getdata(); m.setfirstmagic(); m.generate(); m.printmagic(); return 0; cout<

for(j=0;j<4;j++)

cout<

for(i=0,j=3;i<4;i++,j--) { } return 0;

m[i][j]=sumj-m[i][j]; m[i][i]=sumj-m[i][i];

private:

int main(void)

sumj=m[0][0]+m[3][3];

13

所谓4*4的魔方阵,是指该矩阵的各行值的和等于各列值的和,并等于两对角线值的和,如: ?31??9?17??725??211915?,其各行、各列以及对角线值的和都是64。 131123??27291?35求4*4的魔方阵的一般步骤提示如下:

设置初始魔方的起始值和相邻元素之间的差值。例如上述魔方阵的初始魔方的起始值和相邻元素之间的差值分别为:first=1, step=2

设置初始魔方元素的值。例如上述魔方的初始魔方阵为: ?1??9?17??257??111315? 192123??272931?35生成最终魔方阵。方法如下:

1求最大元素和最小元素的和sum,本例为1+31=32。 ○

2用32减去初始魔方阵所有对角线上元素的值,然后将结果放在原来的位置,即可求得最终的魔方阵。本例最终○

魔方阵为: ?31??9?17??725??211915? 131123??27291?35编写主程序,测试所设计的魔方类的正确性. 5.

声明一个Employee类,数据成员包括:一个long型的id,两个字符指针成员,代表职员的姓名和家庭住址,一个double数据,代表月薪。成员函数有:构造函数、析构函数、set_salary()和get_salary()代表修改和获取薪资、set_name()和get_name()代表修改和获取姓名、set_address()和get_address()代表修改和获取家庭住址,set_id()和get_id()用来修改获取当前职员的id号。在主程序中,创建对象数组调用上述函数以测试Employee类设计的正确性。Employee类的框架可参考:

#include #include using namespace std; class Employee { public:

Employee(long = 0,char* = \~Employee();

// set functions void set_id(long);

// 设置id // 设置salary

void set_salary(double);

// 析构函数

构造函数

//声明Employee类

// get functions

long get_id();

// 返回id

double get_salary(); char* get_name(); private: long id;

// 工号 // 姓名 // 家庭住址 // 月薪

char *name; char *address; double salary;

Employee::Employee(long , char *, char *, double ) 14

// 返回 salary // 返回 name

char* get_addressSecond(); // 返回 address void print(); // 打印输出Employee的相关信息

void set_name(char* ); void set_address(char* );

// 设置name // 设置adress

}; // Employee类声明结束

{ }

void Employee::set_address(char *q) { }

void Employee::set_id(long a) { }

void Employee::set_name(char *z) { }

void Employee::set_salary(double a) { }

long Employee::get_id() { }

double Employee::get_salary() { }

char* Employee::get_name() { }

char* Employee::get_addressSecond() // 返回 address { }

Employee::~Employee() {}

void Employee::print() {

cout<<\cout<<\姓名::\cout<<\住址:\

}

return 0;

==============\月薪:\

return address; return name; return salary; return id; salary=a; name=z; id=a; address=q; name=new char; address=new char;

}

int main(void) {

cout<<\输入要统计的员工数量:\int i;cin>>i; int j=0,a; double b;

cout<<\录入信息===\Employee s[1000]; char *p; for(;j

for(j=0;j

s[j].print();

cout<<\输入员工ID:\cin>>a; s[j].set_id(a); p=new char[1000];

cout<<\员工姓名:\s[j].set_name(p); p=new char[1000];

cout<<\员工住址:\s[j].set_address(p); cout<<\输入员工工资:\cin>>b; s[j].set_salary(b);

15

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库天津理工大学C++期末考试(3)在线全文阅读。

天津理工大学C++期末考试(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/581306.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: