信安李自然UML实验报告顺序图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
public Movie getMovie()
{
return _movie。
}
double getCharge()
{
return _movie.getCharge(_daysRented)。
}
int getFrequentRenterPoints()
{
return _movie.getFrequentRenterPoints(_daysRented)。
private int _daysRented。//租期
public Rental(Movie movie, int daysRented)
{
_movie = movie。
_daysRented = daysRented。
}
public int getDaysRented()
{
return _daysRented。
while (rentals.hasMoreElements())
{
Rental each = (Rental) rentals.nextElement()。
result += each.getFrequentRenterPoints()。
}
return result。
}
//计算总费用
private double getTotalCharge()
Rental r3 = new Rental(m3, 2)。
c1.addRental(r1)。
c1.addRental(r2)。
}
//结尾打印(总费用和积分)
result += "<P>You owe <EM>" + String.valueOf(getTotalCharge()) + "</EM><P>\n"。
result += "On this rental you earned <EM>" + String.valueOf(getTotalFrequentRenterPoints()) +
{
return 1。
}
}
//儿童价格类的定义
class ChildrensPrice extends Price
{
int getPriceCode()
{
return Movie.CHILDRENS。
}
double getCharge(int daysRented)
{
double result = 1.5。
public partial class RentForm : Form
{
public RentForm()
{
InitializeComponent()。
}
private void button1_Click(object sender, EventArgs e)
{
Movie m1 = new Movie("阿凡达", 1)。
if (daysRented > 3)
result += (daysRented - 3) * 1.5。
return result。
}
}
//新片价格类的定义
class NewReleasePrice extends Price
{
int getPriceCode()
{
return Movie.NEW_RELEASE。
"</EM> frequent renter points<P>"。
return result。
}
//计算总积分
private int getTotalFrequentRenterPoints()
{
int result = 0。
Enumeration rentals = _rentals.elements()。
北京信息科技大学
实验(上机)报告
课程名称UML及建模工具学号2012012194姓名李自然成绩_______
专业名称
信息安全
实验室名称
3-702
实验时间
15.6
实验名称
实验6:绘制顺序图
1.实验目的:
1)掌握UML顺序图建模的意义。
2)掌握Rational Rose或其他工具绘制顺序图的方法。
3)理解顺序图和类图之间的关系。
{
int getPriceCode()
{
return Movie.REGULAR。
}
double getCharge(int daysRented)
{
double result = 2。
if (daysRented > 2)
result += (daysRented - 2) * 1.5。
return result。
}
public void setPriceCode(int arg)
{
switch (arg)
{
case REGULAR: //普通片
_price = new RegularPrice()。
break。
case CHILDRENS: //儿童片
_price = new ChildrensPrice()。
}
//结尾打印(总费用和积分)
result += "Amount owed is " + String.valueOf(getTotalCharge()) + "\n"。
result += "You earned " +String.valueOf(getTotalFrequentRenterPoints()) +" frequent renter points"。
2.实验内容:
1)根据附录一源程序,绘制顺序图(店员租赁影片用例)。
2)根据上学期的数据库系统开发的试卷题目及答案(见附录二),绘制顺序图(教务员添加课程用例)
3)同步课程设计任务:小组成员在分层架构和实体类的共同讨论的基础上,对个人负责的用例进行详细设计(用例的界面、界面数据的说明、实现用例的参与类、用例的详细流程的顺序图)。
{
double result = 0。
Enumeration rentals = _rentals.elements()。
while (rentals.hasMoreElements()) {
Rental each = (Rental) rentals.nextElement()。
result += each.getCharge()。
}
double getCharge(int daysRented)
{
return daysRented * 3。
}
int getFrequentRenterPoints(int daysRented)
{
return (daysRented > 1) ? 2: 1。
}
}
//普通片价格类的定义
class RegularPrice extends Price
private Price _price。//影片的价格
public Movie(String title, int priceCode)
{
_title = title。
setPriceCode(priceCode)。
}
pubHale Waihona Puke Baiduic int getPriceCode()
{
return _price.getPriceCode()。
3.实验要求:
1)直接将顺序图拷贝粘贴到实验报告中提交。
2)正确使用消息。
3)个人独立完成。
4)提交最后期限:当日提交。
4.实验准备:
1)
5.实验过程和结果:
1)根据附录一源程序,绘制顺序图(店员租赁影片用例)
2)根据上学期的数据库系统开发的试卷题目及答案(见附录二),绘制顺序图(教务员添加课程用例)
{
_name = name。
}
public void addRental(Rental arg)
{
_rentals.addElement(arg)。
}
public String getName()
{
return _name。
}
//输出租赁交易报告
public String statement()
{
Enumeration rentals = _rentals.elements()。
return result。
}
//已超文本方式输出租赁交易报告
public String htmlStatement()
{
Enumeration rentals = _rentals.elements()。
String result = "<H1>Rentals for <EM>" + getName() +"</EM></H1><P>\n"。
}
}
//顾客类的定义
class Customer
{
private String _name。//姓名
private String _phone。//电话号码
private Vector _rentals = new Vector()。//租借纪录
public Customer(String name)
}
//主程序
using System。
using System.Collections.Generic。
using System.ComponentModel。
using System.Data。
using System.Drawing。
using System.Text。
using System.Windows.Forms。
6.实验总结:
通过这次实验,掌握UML顺序图建模的意义。掌握了用Rational Rose绘制顺序图的方法。
理解顺序图和类图之间的关系
附录一:
影片租赁源程序
//租赁类的定义
class Rental
{
private Movie _movie。//影片
private int _rentDate。//租赁日期
while (rentals.hasMoreElements())
{
Rental each = (Rental) rentals.nextElement()。
//显示该顾客的每个租赁
result += each.getMovie().getTitle()+ ": "+String.valueOf(each.getCharge()) + "<BR>\n"。
break。
case NEW_RELEASE: //新片
_price = new NewReleasePrice()。
break。
default:
throw new IllegalArgumentException("Incorrect Price Code")。
}
}
public String getTitle()
}
return result。
}
}
//抽象价格类的定义
abstract class Price
{
abstract int getPriceCode()。//取得价格代号
abstract double getCharge(int daysRented)。//根据租期计算费用
int getFrequentRenterPoints(int daysRented)//根据租期计算积分
Movie m2 = new Movie("将爱情进行到底", 2)。
Movie m3 = new Movie("喜羊羊与灰太郎", 3)。
//客户的租赁
Customer c1 = new Customer("张三")。
Rental r1 = new Rental(m1, 4)。
Rental r2 = new Rental(m2, 2)。
String result = "Rental Record for " + getName() + "\n"。
while (rentals.hasMoreElements())
{
Rental each = (Rental) rentals.nextElement()。
//显示该顾客的每个租赁
result += "\t" + each.getMovie().getTitle()+ "\t" + String.valueOf(each.getCharge()) + "\n"。
{
return _title。
}
//影片租金
double getCharge(int daysRented)
{
return _price.getCharge(daysRented)。
}
//影片积分
int getFrequentRenterPoints(int daysRented)
{
return _price.getFrequentRenterPoints(daysRented)。
}
}
//影片类和主程序
public class Movie
{
public static final int CHILDRENS = 2。
public static final int REGULAR = 0。
public static final int NEW_RELEASE = 1。
private String _title。//名称
相关文档
最新文档