简易的账户管理系统

上传人:豆浆 文档编号:31928719 上传时间:2018-02-09 格式:DOC 页数:19 大小:196KB
返回 下载 相关 举报
简易的账户管理系统_第1页
第1页 / 共19页
简易的账户管理系统_第2页
第2页 / 共19页
简易的账户管理系统_第3页
第3页 / 共19页
简易的账户管理系统_第4页
第4页 / 共19页
简易的账户管理系统_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《简易的账户管理系统》由会员分享,可在线阅读,更多相关《简易的账户管理系统(19页珍藏版)》请在金锄头文库上搜索。

1、课 程 设 计 说 明 书课程名称:软件设计模式 设计题目:简易的账户管理系统 院 系:计算机科学与信息工程学院 学生姓名: 学 号: 专业班级: 指导教师 2014 年 6 月课 程 设 计 任 务 书设计题目 简易的账户管理系统学生姓名 所在院系 计算机科学与信 息工程学院 专业、年级、 班设计要求:1. 设计一个应用场景,最少使用所学过的三种设计模式解决一个实际问题。2. 应用场景设计要合理,模式选择要适当。学生应完成的工作:1. 应用场景:简易的账户管理系统,实现用户排队与基本信息注册问题、用户名不允许重复注册问题和不同的用户的填写信息,采用了装饰模式、建造者模式、单件模式和模板方法模

2、式。2. 设计模式:装饰模式、建造者模式、单件模式和模板方法模式。(1) 装饰模式:实现用户排队单信息。(2) 建造者模式:生成用户要填写的基本信息。(3) 单件模式:解决重复注册或登录问题。(4) 模板方法模式:不同用户的信息。3. 实现代码:代码由 JAVA 语言实现。参考文献阅读:1 徐宏喆,侯迪 等著,实用软件设计模式教程,清华大学出版2 Y.Daniel Liang 著,JAVA 语言程序设计基础篇,机械工业出版社工作计划:1. 审题,查阅资料,进行设计前的必要资料准备(3 天) 。2. 把程序完整运行出来(4 天) 。3. 增加改进程序(3 天) 。4. 写课程设计报告(3 天)

3、。5. 提交课程设计报告(1 天) 。任务下达日期: 2014 年 6 月 9 日 任务完成日期: 2014 年 6 月 22 日指导教师(签名): 学生(签名):目 录一、 系统目标 .4二、 系统模式选择 .4三、 系统设计 .7四、 系统实现 .10五、 系统 设计总结 .18六、 参 考文献 .20一、系统目标1. 设计目的设计模式的提出,是面向对象程序设计演化过程中一个重要的里程碑,设计模式使得人们可以更加简单和方便地去复用成功的软件设计和体系结构,从而能够帮助设计者更快更好地完成系统设计。希望通过本次课程设计,可以更加了解设计模式的概念、设计模式的基本要素、设计模式的原则和设计模式

4、的类型,以及各种设计模式的特点和适用情形,会根据不同的场景去灵活运用各种模式,加深对软件设计课程的理解。通过运用设计模式来解决实际系统中遇到的问题,巩固所学的理论知识,提高程序设计能力,从而具备利用计算机编程分析解决综合性实际问题的初步能力。2. 需求描述现如今银行存取款越来越方便简易,尤其是排队器的出现为我们带来了极大的便利。了解银行的各部分工作流程是很有必要的,本次课程设计选择了“简易的账户管理系统” ,应用所学到的四种设计模式来解决用户排队、注册等问题,将设计模式的具体内容与实际的问题相结合,实现系统的相应功能。系统中总共用到四种设计模式,分别是装饰模式,建造者模式,单件模式、模板方法模

5、式。二、 系统模式选择1.需求分析装饰模式提供了一个简易的排队单信息,建造者模式用来让用户填写账户单的基本信息。单件模式解决一个账户信息同时被多个用户填写或登录的问题,这是不被允许的。模板方法模式是通过把不变的行为转移到基类,去除子类中重复代码来体现它的优势,模板方法模式解决了填写不同用户信息的问题。2.选用设计模式根据需求分析,简易的账户管理系统可以采用了四种设计模式,分别是装饰模式,建造者模式,单件模式和模板方法模式。(1) 装饰模式装饰模式是一种结构型设计模式,装饰模式提供了一种给类添加功能的方法。它通过动态的组合对象,可以给原有的类添加新的代码,而无需修改现有的代码。输出排队单上的基本

6、信息,包括头部信息,正文和脚注信息,解决排队时需要做得工作问题。模式结构图如下:(2) 建造者模式建造者模式是一种创建型设计模式,采用建造者模式的主要原因是它将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。该模式主要解决用户填写的账户单基本信息问题。模式结构图如下:(3) 单件模式单件设计模式是一种创建型设计模式,每个系统中都会有好多对象,它们在同一时刻只能被一个线程所访问。采用单件模式的主要用来解决用户名重复问题。模式结构图如下:(4) 模板方法模式模板方法模式是一种行为型设计模式,该模式定义了一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法模式使得子类可以不改

7、变一个算法的结构即可重定义该算法的某些特定步骤。该模式主要用来解决不同用户填写信息问题。模式结构图如下:3、 系统设计1. 系统功能模块设计a:装饰模式,输出排队单上的基本信息。b:建造者模式,用户填写的账户单基本信息。c.单件模式,解决用户名重复问题。d:模板方法模式,不同用户填写信息。系统流程图如下:2.系统模块类图系统流程图:3. 系统控制函数import java.util.Scanner;public class Main /* param args*/public static void main(String args) / TODO Auto-generated method

8、stubwhile(true)System.out.println( );System.out.println( 请仔细填写表单上的数据 );System.out.println( 欢迎来到荣氏银行 );System.out.println( 1。装饰模式(账户排队) );System.out.println( 2.建造者模式(用户登陆详细信息) );System.out.println( 3.单件模式(是否重复登陆) );System.out.println( 4.模板方法模式(登陆不同的用户);System.out.println( 0(退出);int number ;Scanner in

9、put=new Scanner(System.in);number =input.nextInt();if (number=0)break;if(number=1)System.out.println(装饰模式n);billDecorator bill=new header1bill(new footer2bill(new footer1bill(new concreteBill();bill.printBill();if(number=2)System.out.println(建造者模式n);Director director=new Director();/Builder a=new Ad

10、vanced();Builder b=new Common();/director.Construct(a);/Landing Advanced=a.GetLanding();/Advanced.show();director.Construct(b);Landing Common=b.GetLanding();Common.show();if(number=3)System.out.println(单件模式n);Singleton s1=Singleton.GetInstance();Singleton s2=Singleton.GetInstance();System.out.printl

11、n();if(number=4)System.out.println(第一人填写的信息:);Slip1 s1= new Slip1();s1.FillItem1();s1.FillItem2();System.out.println(n 第二人填写的信息:);Slip2 s2= new Slip2();s2.FillItem1();s2.FillItem2();4、 系统实现1.装饰模式装饰模式主要包含: bill 类,headerbill 类,footerbill 类用来实现头部信息,正文,脚注的输出。bill 类用来实现正文对象,headerbill 类用来实现头部信息对象,footerb

12、ill 类用来实现脚注信息对象。/装饰模式abstract class bill public abstract void printBill();class concreteBill extends bill Overridepublic void printBill() / TODO Auto-generated method stubSystem.out.println(请自动排队,这是您的排队号: *n);abstract class billDecorator extends billprotected bill xpobj;public billDecorator(bill obj

13、)xpobj=obj;public abstract void printBill();class header1bill extends billDecorator public header1bill(bill obj) super(obj);/ TODO Auto-generated constructor stubOverridepublic void printBill() / TODO Auto-generated method stubSystem.out.println( 荣氏银行 n);xpobj.printBill();class header2bill extends b

14、illDecorator public header2bill(bill obj) super(obj);/ TODO Auto-generated constructor stubOverridepublic void printBill() / TODO Auto-generated method stubSystem.out.println(n);xpobj.printBill();class footer1bill extends billDecorator public footer1bill(bill obj) super(obj);/ TODO Auto-generated constructor stubOverridepublic void printBill() / TODO Auto-generated method stubxpobj.printBill();System.out.println(排队时间:*n);class footer2bill extends billDecoratorpublic footer2bill(bill obj) super(obj);/ TODO A

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号