本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1.编写一个用户类(User),定义三个数据成员,用户id号,用户名以及密码(必须为6位);编写构造函数,根据输入进来的id号和用户名构造一个新用户,并将密码初始化为000000;编写输出id号和用户名的函数;提供更改用户名的函数;编写更改密码的操作(要求输入旧密码和新密码),只有输入的旧密码正确的情况下才能修改密码,并进行操作是否成功的提示。
类的定义5分;构造函数、用户名修改函数、更改密码函数各4分,输出函数3分。
#include<iostream>
#include<cstring>
using namespace std;
class User{
int id;
char*username;
char*password;
public:
User(int i,const char*u):id(i){
username=new char[10];
strcpy(username,u);
password=new char[6];
strcpy(password,"000000");
}
void Put(){
cout<<"Your id is "<<id<<endl;
cout<<"Your username is "<<username<<endl;
}
void Changeusername(){
cin>>username;
}
void Changepassword(){
char*checkpassword=new char[6];
cin>>checkpassword;
if(strcmp(password,checkpassword)==0){
cin>>password;
cout<<password<<endl;
cout<<"success";
}
else{
cout<<"failed";
}
delete[]checkpassword;
}
~User(){
delete[]password;
delete[]username;
}
};
int main(){
int j=123;
const char*k="ren";
User a(j,k);
a.Put();
a.Changeusername();
a.Put();
a.Changepassword();
return 0;
}
2.定义一个分数类如下,要求实现各个成员函数,并在主函数中测试两个分数的加减乘除等运算。
class Rational
{
public: Rational(int nn=1,int mm=1); //构造函数 5分 Rational R_add(Rational & A); //加 5分 Rational R_sub(Rational & A); //减 5分 Rational R_mul(Rational & A); //乘 5分 Rational R_div(Rational & A); //除 5分 void print(); //以简分数形式显示,注意约分 5分 private: void simple( ); //约分 5分 int m; //分母 int n; //分子
};
#include<iostream>
using namespace std;
class Rational{
int m,n;
void simple(){
int a=m,b=n,c=1;
while(c){
c=a%b;
a=b;
b=c;
}
m/=a;
n/=a;
}
public:
Rational(int nn=1,int mm=1):n(nn),m(mm){}
Rational R_add(Rational & A){
Rational r;
r.n=n*A.m+m*A.n;
r.m=m*A.m;
return r;
}
Rational R_sub(Rational & A){
Rational r;
r.n=n*A.m-m*A.n;
r.m=m*A.m;
return r;
}
Rational R_mul(Rational & A){
Rational r;
r.n=n*A.n;
r.m=m*A.m;
return r;
}
Rational R_div(Rational & A){
Rational r;
r.n=n*A.m;
r.m=m*A.n;
return r;
}
void print(){
simple();
cout<<n<<'/'<<m<<endl;
}
};
int main(){
int i,j,k,l;
cin>>i>>j>>k>>l;
Rational a(i,j),b(k,l);
Rational c;
c=a.R_add(b);;
c.print();
c=a.R_sub(b);
c.print();
c=a.R_mul(b);
c.print();
c=a.R_div(b);
c.print();
return 0;
}