【码图】C++程序设计(2023)第8章 作业1

输出类的X和Y值(C++)

通过课程进入题 号:136输出类的X和Y值(C++)语言要求:C++
在下面横线处填上适当字句,是函数实现指定功能。
class Location{
    private :
	int X,Y;
	public:
	void init(int initX,int initY){
	     X = initX;
		 Y = initY;
	}
	int GetX(){
	    return X;
	}
	int GetY(){
	    return Y;
	}
};
int main(){
     Location A1;
	 A1.init(20,90);
	 ___①_____       //定义一个指向A1的引用rA1;
	 ___②_____      //用rA1在屏幕上依次输出对象A1的数据成员X和Y的值;
     return 0;	 
}

main函数:

         

int main() {
    Location A1;
    A1.init(20, 90);


    Location& rA1 = A1; // 定义一个指向A1的引用rA1

    cout<<rA1.GetX()<<rA1.GetY();//用rA1在屏幕上依次输出对象A1的数据成员X和Y的值;
    

    return 0;
}

首先定义了类 Location,包含两个 private 成员变量 XY,以及三个 public 成员函数 init()GetX()GetY()。其中,init() 函数用于初始化对象的 X 和 Y 坐标,GetX()GetY() 函数分别返回对象的 X 和 Y 坐标。

main() 函数中,首先创建了一个 Location 类型的对象 A1,并调用 init() 函数对其进行初始化。然后,创建了一个 Location 类型的引用 rA1,用于指向对象 A1。最后,通过引用 rA1,依次调用对象 A1GetX()GetY() 函数输出其数据成员 XY 的值。

 完整答案:

#include <iostream>
using namespace std;
class Location{
private :
    int X,Y;
public:
    void init(int initX,int initY){
        X = initX;
        Y = initY;
    }
    int GetX(){
        return X;
    }
    int GetY(){
        return Y;
    }
};
int main(){
    Location A1;
    A1.init(20,90);
    Location &rA1=A1;
    cout<<rA1.GetX()<<rA1.GetY();
    return 0;
}

实现Clock类(C++)

通过课程进入题 号:140实现Clock类(C++)语言要求:C++
实现时钟类Clock,(24小时制,0~23)
在代码中引入头文件 Clock.h
它的定义如下:
#include <iostream>
using namespace std;
class Clock{
public:
      Clock(int h,int m, int s);
	  void SetAlarm(int h,int m,int s);
	  void run();
	  void ShowTime(){
		  cout<<"Now:"<<hour<<":"<<minute<<":"<<second<<endl;
	  }
private:
	int hour;   //时
	int minute;  //分
	int second;  //秒

	int Ahour;   //时(闹钟)
	int Aminute;  //分(闹钟)
	int Asecond;   //秒(闹钟)
};

实现构造函数Clock(int h,int m, int s)
构造函数设置时、分、秒。设置前先判断传入的时分秒是否合法,如果不合法将其设置为0
例如 Clock c(25,61,-1);
      c.ShowTime();
输出:
Now:0:0:0

实现SetAlarm 成员函数,设置闹钟设置时同样要判断传入的时分秒是否合法,但闹钟的时分秒可以为负数,表示关闭闹钟

实现run成员函数,将现在的时间秒数加一 ,然后检查闹钟时间是否到 ,如果闹钟触发,则输出"Plink!plink!plink!..."
例如:
Clock c(2,3,4);
c.SetAlarm(2,3,5);
c.run();
输出:
Plink!plink!plink!...回车

在你的代码中需实现上述三个方法,例如:
#include "Clock.h"
Clock::Clock(int h,int m, int s){
...
}
void Clock::SetAlarm(int h,int m, int s){
...
}

void Clock::run(){
  ...
}

#include<iostream>
#include"Clock.h"
using namespace std;
Clock::Clock(int h,int m,int s)
{
	if(h<0||h>23) hour=0;
	else hour=h;
	if(m<0||m>59) minute=0;
	else minute=m;
	if(s<0||s>59) second=0;
	else second=s;
}
void Clock::SetAlarm(int h,int m,int s)
{
	if(h>23) Ahour=0;
	else Ahour=h;
	if(m>59) Aminute=0;
	else Aminute=m;
	if(s>59) Asecond=0;
	else Asecond=s;
	return ;
}
void Clock::run()
{
	second+=1;
	if(second>59)
	{second=0;
    minute+=1;}
	if(minute>59)
	{minute=0;
    hour+=1;}
	if(hour>23)
	{hour=0;}
	if((hour==Ahour)&&(minute==Aminute)&&(second==Asecond))
		cout<<"Plink!plink!plink!..."<<endl;
	return ;
}

实现User类(C++)

通过课程进入题 号:148实现User类(C++)语言要求:C++
设计一个User类,要求User类可以保持多个用户的用户名和密码信息,
实现User类的构造函数和AddUser方法添加新用户,
实现int login(char *name,char * pass)方法,该方法接受用户名和密码,
判断用户名对应的密码是否正确,如果正确返回用户的编号,如果不正确返回-1。

User类的使用示意如下所示,在你的代码中除了实现User类以外,还需一如如下main函数

int main(){
	char name[10],name1[10],pass[10],pass1[10];
	cin>>name>>pass>>name1>>pass1;
	User user("LiWei","liwei101");
	user.AddUser(name,pass);
	if (user.login(name1,pass1) >=0)
	{
		cout<<"Success Login!"<<endl;
	}
	else{
		cout<<"Login failed!"<<endl;
	}
	  return 0;
}

例如输入:
test 1234567 test 123456回车
输出:
Login failed!

#include <iostream>
#include <string.h>
using namespace std;

class User{
private:
    char name[1000][10];
    char pass[1000][10];
    int num;
public:
    int login(char *name1,char * pass1){
        for(int i=0;i<num;i++){
            if(strcmp(name[i],name1)==0){
                if(strcmp(pass[i],pass1)==0){
                    return i;
                }else{
                    break;
                }
            }
        }return -1;
    }
    User(char * name1,char * pass1){
        num=0;
        strcpy(name[num],name1);
        strcpy(pass[num],pass1);
        num++;
    }
    void AddUser(char * name1,char * pass1){
        strcpy(name[num],name1);
        strcpy(pass[num],pass1);
        num++;
    }
};

int main(){
    char name[10],name1[10],pass[10],pass1[10];
    cin>>name>>pass>>name1>>pass1;
    User user("LiWei","liwei101");
    user.AddUser(name,pass);
    if (user.login(name1,pass1) >=0)
    {
        cout<<"Success Login!"<<endl;
    }
    else{
        cout<<"Login failed!"<<endl;
    }
    return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值