首页 > 其他分享 >番外-软件设计(16)

番外-软件设计(16)

时间:2023-11-23 09:12:14浏览次数:33  
标签:account telNo String 16 软件设计 番外 user password public

改进课堂上的“用户信息操作撤销”实例,使得系统可以实现多次撤销(可以使用HashMap、ArrayList等集合数据结构实现)。

实验要求:

1. 提交源代码;

package Memorandum_mode;

 

public class Caretaker

{

    private Memento[] array = null;

    private int index;

    private Memento memento;

    public Memento getMemento()

    {

        return memento;

    }

    public void setMemento(Memento memento)

    {

        this.memento=memento;

    }

    public Caretaker(){

        array = new Memento[10];

        index = 0;

    }

    public void addMemento(Memento Memento){

        array[index++] = Memento;

    }

    public Memento preMemento(){

        Memento pop = null;

        try {

            pop = array[--index];

        } catch (Exception e) {

            e.printStackTrace();

        }

        return pop;

    }

}

package Memorandum_mode;

 

public class main {

    public static void main(String args[]) {

        UserInfoDTO user = new UserInfoDTO();

        Caretaker c = new Caretaker();

        user.setAccount("zhangrong");

        user.setPassword("123456");

        user.setTelNo("130000");

        System.out.println("状态一:");

        user.show();

        c.addMemento(user.saveMemento());

        System.out.println("-----------------");

 

        user.setPassword("000000");

        user.setTelNo("130111");

        System.out.println("状态二:");

        user.show();

        c.addMemento(user.saveMemento());

        System.out.println("-----------------");

 

        user.setPassword("111111");

        user.setTelNo("130222");

        System.out.println("状态三:");

        user.show();

        System.out.println("-----------------");

 

        user.restoreMemento(c.preMemento());

        System.out.println("回到状态二:");

        user.show();

        System.out.println("-----------------");

 

        user.restoreMemento(c.preMemento());

        System.out.println("回到状态一:");

        user.show();

        System.out.println("-----------------");

    }

}

package Memorandum_mode;

 

class Memento

{

    private String account;

    private String password;

    private String telNo;

    public Memento(String account,String password,String telNo)

    {

        this.account=account;

        this.password=password;

        this.telNo=telNo;

    }

    public String getAccount()

    {

        return account;

    }

    public void setAccount(String account)

    {

        this.account=account;

    }

    public String getPassword()

    {

        return password;

    }

    public void setPassword(String password)

    {

        this.password=password;

    }

    public String getTelNo()

    {

        return telNo;

    }

    public void setTelNo(String telNo)

    {

        this.telNo=telNo;

    }

}

package Memorandum_mode;

 

public class UserInfoDTO

{

    private String account;

    private String password;

    private String telNo;

    public String getAccount()

    {

        return account;

    }

    public void setAccount(String account)

    {

        this.account=account;

    }

    public String getPassword()

    {

        return password;

    }

    public void setPassword(String password)

    {

        this.password=password;

    }

    public String getTelNo()

    {

        return telNo;

    }

    public void setTelNo(String telNo)

    {

        this.telNo=telNo;

    }

    public Memento saveMemento()

    {

        return new Memento(account,password,telNo);

    }

    public void restoreMemento(Memento memento)

    {

        this.account=memento.getAccount();

        this.password=memento.getPassword();

        this.telNo=memento.getTelNo();

    }

    public void show()

    {

        System.out.println("账号是" + this.account);

        System.out.println("密码是" + this.password);

        System.out.println("电话是" + this.telNo);

    }

}

2. 注意编程规范。

 

标签:account,telNo,String,16,软件设计,番外,user,password,public
From: https://www.cnblogs.com/zjsdbk/p/17850794.html

相关文章

  • 2024年面向Java程序员的20个系统和软件设计面试题
    0前言系统设计问题是编程面试的重要组成部分,如果你想取得好成绩,就必须准备。在我的网站,分享了八股面试题时,也分享了一些系统设计问题,但粉丝们一直在要求更多问题,因为这个主题的确很难掌握,需要更多练习。我自己也收集了一些从朋友和同事那里获得的面试题,但为了这篇文章和自己的准......
  • P9168 [省选联考 2023] 人员调度
    去年省选的时候还不会霍尔定理,想到了线段树分治想不了贪心。今年看感觉挺傻逼的。先线段树分治,把删除操作扔了。如果我们要知道一个人最后扔到哪里,那就是一个费用流问题,不太可能解决,考虑用霍尔定理刻画这个东西,我们发现,最后一个人的集合能匹配上当且仅当:计\(u\)子树里有\(p_u......
  • 【题解】HD2016.X1,HD2016.X3,HD2016.X4,HD2016.X5
    [HD2016.X1]价钱统计题目描述夏天到了,超市里摆满了各种各样的应季水果。现在知道:西瓜的价钱是每斤1.2元;桃子的价钱是每斤3.5元;葡萄的价钱是每斤4.5元;苹果的价钱是每斤5元。现在分别给出上述四种所购买的斤数(均不超过20),请你编写程序帮助售货员阿姨计算并依次输出顾客......
  • CSE 167 3DOpenGL 开发
    我们将在本作业中开发一个用于检查3D模型的交互式界面。正如您可能从以前的家庭作业中了解到的那样,渲染需要在数百万像素和数十亿三角形。这会给性能带来重大挑战,尤其是在我们希望与内容实时交互。为了让事情变得更快,计算机图形学的先驱们提出了使用特定领域硬件加速渲染的解决......
  • 软件设计5
    实验5:建造者模式 [实验任务一]:计算机组装 使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。 实验要求: 1. 画出对应的类图;     2. 提交源代码; 1.Builde......
  • Odoo16_queue_job第三方异步队列
    1.安装第三方模块queue_jobqueue/queue_jobat16.0·OCA/queue·GitHub2.odoo配置文件,启动多workersworkers=3proxy_mode=Trueserver_wide_modules=web,queue_job[queue_job]channels=root:23.使用方法fromodooimportmodels,fields,apiclass......
  • Odoo16_开启多workers
    1.odoo配置文件limit_memory_hard=1677721600limit_memory_soft=629145600limit_request=8192limit_time_cpu=600limit_time_real=1200max_cron_threads=1workers=3proxy_mode=True2.nginx配置server{listen8000;location/{......
  • 高飞实验16和17
    packageshiyan16;publicabstractclassAbstractCommand{publicabstractintexecute(intvalue);publicabstractintundo();}AbstractCommandpackageshiyan16;publicclassAdder{privateintnum=0;......
  • 16、Flutter Wrap组件 实现流布局
    Wrap可以实现流布局,单行的Wrap跟Row表现几乎一致,单列的Wrap则跟Column表现几乎一致。但Row与Column都是单行单列的,Wrap则突破了这个限制,mainAxis上空间不足时,则向crossAxis上去扩展显示。 Wrap组件的使用//自定义按钮组件classMyAppextendsStatelessWidget{String......
  • 11.16线性表A,B顺序存储合并
     #include<iostream>#include<cstring>usingnamespacestd;typedefstructf{intdata;f*next;}node,*Node;voidbuild(f*p){intx;while(cin>>x&&x!=-1){f*now=newnode();now->data=x;......