大连理工大学C语言题目(七)

87 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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;
}