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 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 string str1,str2,str3,str4,str5; cin>>str1>>str2>>str3>>str4>>str5; cout< 4. 设计一个模仿类magic来实现4*4的魔方阵。类的框架如下: #include 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 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