一、问题一

“远程网络教学系统”的功能需求如下:学生登录网站后,可以浏览课件、查找课件、下载课件、观看教学视频。教师登录网站后,可以上传课件、上传教学视频、发布教学心得、查看教学心得、修改教学心得。系统管理员负责对网站页面的维护、审核不合法课件和不合法教学信息、批准用户注册。

1、学生需要登录“远程网络教学系统”后才能正常使用该系统的所有功能。如果忘记密码,可与通过“找回密码”功能恢复密码。请画出学生参与者的用例图。

2、教师如果忘记密码,可以通过“找回密码”功能找回密码。请画出教师参与者的用例图。

二、问题二

设计开发一个新闻发布系统。

假设管理员可以在后台对新闻、评论、注册会员进行管理,并发布新闻;任何游客可以浏览新闻,浏览者注册后可以成为系统会员;注册会员可以发表新闻评论。新闻信息实体的主要属性主要包含标题(title)、内容(content)、发布日期(DateTime),主要操作有添加新闻(Addnews)、删除新闻(Delnews)、修改新闻(Modinews); 评论实体的主要属性包含新闻标识(ArticleID)、评论者名(UserName)和评论内容(body),主要操作有添加评论(AddRemark)、删除评论(DelRemark); 会员实体的主要属性有会员编号(MemberNo)、会员密码(Memberpsw)、会员名字(MemberName)、会员描述等,主要操作有登陆(Login);管理员实体的主要属性有管理员编号(AdmNo)、会员密码(Admpsw)、会员名字(AdmName)等, 主要操作有添加用户(Adduser)、删除新闻(Deluser)。

请完成下列工作:

(1)画出系统用例图

(2)画出“新闻管理”的活动图

(3)画出分析类图和初步的设计类图

三、问题三

设计一款基于贷款支付额度的GUI简单应用程序。然后根据你的GUI程序画出类图。建议用最简单的tkinter来编写。
程序效果展示:

import tkinter
class App():def __init__(self):action = Action()windows = tkinter.Tk()windows.geometry('800x700')Label_title = tkinter.Label(windows,text="个人贷款计算器",font=('黑体',16), )Label_title.place(relx=0.4,rely=0.015)#输入数据区摆放self.frame_input = tkinter.LabelFrame(windows,text="输入数据", font=('黑体',14 )  ,labelanchor="n")self.frame_input.place( relx=0.05,rely=0.1,relwidth=0.9,relheight=0.4)self.Label_money = tkinter.Label(self.frame_input,text="贷款金额(元):",font=('黑体',10), )self.Label_money.place(relx=0.28,rely=0.12)self.Label_term = tkinter.Label( self.frame_input,text="贷款期限(年): ",font=('黑体',10))self.Label_term.place( relx=0.28,rely=0.32)self.Label_rate = tkinter.Label(self.frame_input,text="年利率(%):" ,font=('黑体',10))self.Label_rate.place( relx=0.28,rely=0.52)self.Entry_money = tkinter.Entry(self.frame_input , width=30)self.Entry_money.place( relx=0.42,rely=0.12)self.Entry_term = tkinter.Entry(self.frame_input,  width=30)self.Entry_term.place( relx=0.42,rely=0.32)self.Entry_rate = tkinter.Entry( self.frame_input,  width=30)self.Entry_rate.place( relx=0.42,rely=0.52)self.Button_count = tkinter.Button(self.frame_input , text='计算',command=action.show)self.Button_count.place( relx=0.45,rely=0.75)self.Button_count = tkinter.Button( self.frame_input , text='重置',command=action.cle)self.Button_count.place(relx=0.62,rely=0.75)#等额本息还款法结果区摆放self.frame_output = tkinter.LabelFrame(windows,text="等额本息还款法" ,font=('黑体',14),labelanchor="n")self.frame_output.place(relx=0.05,rely=0.55,relwidth=0.4,relheight=0.4 )self.Label_months_money = tkinter.Label(self. frame_output,text="每月还款(元):" ,font=('黑体',10))self.Label_months_money.place(relx=0.06,rely=0.16)self.Label_total_rates = tkinter.Label(self.frame_output,text="总支付利息(元): ",font=( '黑体',10))self.Label_total_rates.place(relx=0.06,rely=0.44)self.Label_total_money = tkinter.Label(self.frame_output,text="本息合计(元):" ,font=("黑体" ,10))self.Label_total_money.place( relx=0.06,rely=0.72)self.Text_months_money = tkinter.Text( self. frame_output ,   width=20,height=1)self.Text_months_money.place( relx=0.45,rely=0.16)self.Text_total_rates = tkinter.Text(self.frame_output ,  width=20,height=1)self.Text_total_rates.place( relx=0.45,rely=0.44)self.Text_total_money = tkinter. Text( self. frame_output,   width=20,height=1)self.Text_total_money.place( relx=0.45,rely=0.72)#等额本金还款法结果区摆放self.frame_output_Equalloan = tkinter.LabelFrame(windows,text="等额本金还款法" ,  font=("黑体",14),labelanchor="n")self.frame_output_Equalloan.place(relx=0.55,rely=0.55,relwidth=0.4,relheight=0.4)self.Label_months_money_Equalloan = tkinter.Label(self. frame_output_Equalloan,text="每月还款(元): ",font=('黑体',10), )self.Label_months_money_Equalloan.place(relx=0.06,rely=0.16)self.Label_total_rates_Equalloan = tkinter.Label(self.frame_output_Equalloan,text="总支付利息(元): ",font=('黑体',10), )self.Label_total_rates_Equalloan.place(relx=0.06,rely=0.44)self.Label_total_money_Equalloan = tkinter.Label( self. frame_output_Equalloan,text="本息合计(元): ",font=('黑体',10), )self.Label_total_money_Equalloan.place( relx=0.06,rely=0.72)self.Button_months_money_Equalloan = tkinter.Button( self.frame_output_Equalloan,text="点击查看" , command=action.revise)self.Button_months_money_Equalloan.place( relx=0.45,rely=0.15)self. Text_total_rates_Equalloan = tkinter.Text(self. frame_output_Equalloan,  width=20, height=1)self.Text_total_rates_Equalloan.place( relx=0.45,rely=0.44)self.Text_total_money_Equalloan = tkinter.Text(self. frame_output_Equalloan,  width=20,height=1)self.Text_total_money_Equalloan.place( relx=0.45,rely=0.72)windows.mainloop()class Action():def __init__(self):returndef count(self):self.Loan_money = int(self.Entry_money.get())   # 获取输入的贷款本金self.Loan_term = int(self.Entry_term.get())     # 获取输入的贷款年限self.Loan_rate = float(self.Entry_rate.get())   # 获取输入的贷款年利率self.Loan_term_month = self.Loan_term*12       # 把贷款年限的单位由年转换成月self.Loan_rate_month = self.Loan_rate/100/12   # 把年利率转换成月利率# 计算等额本息法每月还款金额self.repayment_months_money = self.Loan_money*self.Loan_rate_month*pow((1+self.Loan_rate_month),self.Loan_term_month)/(pow((1+self.Loan_rate_month),self.Loan_term_month)-1)self.repayment_months_money_2 = round(self.repayment_months_money,2)# 计算等额本息法总共要还的本息之和self.repayment_all_money = self.repayment_months_money_2 * self.Loan_term_monthself.repayment_all_money_2 = round(self.repayment_all_money,2)# 计算等额本息法要还的利息self.repayment_rate_money = self.repayment_all_money - self.Loan_moneyself.repayment_rate_money_2 = round(self.repayment_rate_money,2)# 等额本金法每月需要还款本金:贷款本金÷还款月数self.money_month = self.Loan_money/self.Loan_term_monthdef show(self):self.count()# 把等额本息还款法的结果插入对应的Text组件self.Text_months_money.delete(1.0, "end") self.Text_months_money.insert('end',self.repayment_months_money_2)self.Text_total_rates.delete(1.0, "end") self.Text_total_rates.insert('end',self.repayment_rate_money_2)self.Text_total_money.delete(1.0, "end") self.Text_total_money.insert('end',self.repayment_all_money_2)# 计算等额本金法还款本息之和和还款利息self.all_money_Equalloan = 0for i in range(self.Loan_term_month):self.repayment_months_money = self.money_month + (self.Loan_money-(self.money_month*i))*self.Loan_rate_monthself.repayment_months_money_2 = round(self.repayment_months_money,2)self.all_money_Equalloan += self.repayment_months_money_2self.all_money_Equalloan_2 = round(self.all_money_Equalloan,2)self.Loan_money_Equalloan = self.all_money_Equalloan_2 - self.Loan_moneyself.Loan_money_Equalloan_2 = round(self.Loan_money_Equalloan,2)# 把等额本金还款法的结果插入对应的Text组件self.Text_total_rates_Equalloan.delete(1.0, "end") self.Text_total_rates_Equalloan.insert('end',self.Loan_money_Equalloan_2)self.Text_total_money_Equalloan.delete(1.0, "end") self.Text_total_money_Equalloan.insert('end',self.all_money_Equalloan_2)def cle(self):self.Entry_money.delete(0,"end")self.Entry_term.delete(0,"end")self.Entry_rate.delete(0,"end") self.Text_months_money.delete(1.0, "end") self.Text_total_rates.delete(1.0, "end") self.Text_total_money.delete(1.0, "end") self.Text_total_rates_Equalloan.delete(1.0, "end") self.Text_total_money_Equalloan.delete(1.0, "end")def revise(self):# 构建个顶级窗口self.top_repayment = tkinter.Toplevel()self.top_repayment.title('每月还款')self.top_repayment.geometry('300x500')self.top_repayment.configure()# 设置带滚动条的Text组件scr = tkinter.Scrollbar(self.top_repayment)scr.pack(side='right', fill='y')Text_repayment_month = tkinter.Text(self.top_repayment, width=60, height=40, font=('黑体',12),yscrollcommand=scr.set)Text_repayment_month.pack(expand='yes',fill='both')# 计算等额本金还款法每月还款金额,并插入到Text组件里for i in range(self.Loan_term_month):self.repayment_months_money = self.money_month + (self.Loan_money-(self.money_month*i))*self.Loan_rate_monthself.repayment_months_money_2 = round(self.repayment_months_money,2)Text_repayment_month.insert("end", " 第 %s 月: %s元" % (i+1,self.repayment_months_money_2))Text_repayment_month.insert(tkinter.INSERT, '\n')  # 换行if __name__ == "__main__":App()

类图如下:

四、问题四

游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征。当前设计为有四类鸭子RubberDuck、MallardDuck、CottonDuck和RedHeadDuck。每类鸭子都为支持将来能够模拟更多种类鸭子的特征,采用某设计模式设计来实现模拟。请选择一个设计模式,并做写出程序框架,解释选择该设计模式的理由

五、问题五

用户登录火车票网上订票系统后,在用户界面上选择出发站、到站、日期和车次,提交订单给处理中心,并在45分钟之内在支付中心完成网上支付,视为订票成功。画出顾客成功订票的序列图。

【UML】用例图、活动图、类图、顺序图练习题相关推荐

  1. YY博客园UML用例图-活动图-状态图之博客模块

    UML建模YY系列: YY博客园UML类图之博客模块 YY博客园UML时序图之博客模块 YY博客园UML用例图-活动图-状态图之博客模块 前面YY了博客园UML类图之博客模块和博客园UML时序图之博客 ...

  2. UML用例图的作用、功能模块图作用与数据库设计三者关系

    这周周一,我们导师要求小组成员开会,我们分别汇报自己的工作,在会中,谈到了用例图,于是我们开始对大家熟悉的用例图进行探讨.经过探讨与自己的思考,我认为应该从以下几个问题来弄清楚用例图的作用. 1.用例 ...

  3. 类图 顺序图 活动图 状态图 用法和比较

    使用电梯仿真系统来解释下列各种图的关系 类图 为什么要使用用类图: 我们在开发系统的时候是不是经常采用 分而治之  的思想 即将其分解为较为简单的子系统. 而使用类图道理也是一样,目的就是为了简化逻辑 ...

  4. 【软件工程】看我火眼金睛——系统流程图、程序流程图、数据流图、活动图、状态图、顺序图辨析

    [前言] 在软件工程中我们学习了数据流图,程序流程图,UML中的活动图,状态图,顺序图,这些图貌似都是在描述软件的执行过程,那么它们到底有哪些相同点,又有哪些不同点呢?下面,我们一起来探索一下. [软 ...

  5. UML学习笔记——顺序图(时序图)

    文章目录 顺序图(时序图) 顺序图的引入 顺序图的概念 顺序图的组成 ①对象( Object) ②生命线( Lifeline ) ③激活(Activation) (控制焦点focus of contr ...

  6. UML 的概述 和 顺序图

    UML 的概述 和 顺序图 标准建模语言 UML 是一种直观化.明确化和文档化的通用可视化建模语言.它捕捉了被构建系统的有关决策和理解,用来理解.设计.浏览.配置.维护以及控制系统的信息. 由于复杂系 ...

  7. uml通信图画法_UML 交互图 (顺序图、通信图、鲁棒图、定时图)

    交互与交互图 交互的概念 一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为 消息 UML中的4种交互图 顺序图:顺序图是一种强调消息时间顺序的交互图,为读 ...

  8. UML顺序图/序列图/时序图

    UML顺序图/序列图/时序图 UML时序图 什么是顺序图 基本元素 参与者 对象 生命线 激活框 消息 绘制工具 visio 亿图 UML时序图 什么是顺序图 为了实现系统功能,若干个对象之间需要交互 ...

  9. 用Enterprise Architect画类图和顺序图(一)

    新建一个Project 没什么好说的,"文件-新建项目",然后选择保存位置就好了,模式的话由于我喜欢一个包一张图所以一般都选择"新建包的时候同时新建图". 会弹 ...

  10. UML详解之二——类图

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50475352 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...

最新文章

  1. 这才是我想要的云盘工具
  2. Shape Drawable
  3. DHL全球货运与第四范式达成合作
  4. Scala _07trait特性
  5. 如何架设自己的 SAP UI5 资源服务器
  6. nfs mysql_heatbeat-gui实现基于nfs的mysql高可用集群
  7. 分类算法----逻辑回归预测
  8. 「管理数学基础」3.2 凸分析:凸函数
  9. 通信网中的数据报子网和虚电路子网
  10. Kali [BeEF-XSS]XSS利用工具
  11. 电磁场与电磁波MIT版笔记
  12. 毕业设计之 ----基于微信小程序的商城购物系统
  13. AI算法模型线上部署方法总结
  14. bada开发tips
  15. Windows下Eclipse for C/C++的“Launch failed. Binary not found”完美解决方案
  16. Bzoj4763 雪辉
  17. 任意多边形的面积计算
  18. OpenGL---GLUT教程(六) GLUT场景漫游
  19. Vue核心⑨(数据监测原理)
  20. HDU-1493 QQpet exploratory park(概率+二维dp)

热门文章

  1. Mac苹果电脑怎样输入表情符号?
  2. Java框架tk_关于Spring框架的基本认识
  3. RT-thread应用讲解——OTA
  4. 40岁了去华为19级,薪酬翻倍,但现在比较稳定,值得吗?
  5. 苹果cms影视系统成品站打包+电影先生6.1.1模板优化版+15W+数据
  6. 安卓开发培训!没想到一个Handler还有中高级几种问法,看这一篇就够了!
  7. Linux基础命令大全(详细版)
  8. CCF智能无人车比赛(国内绿洲科学实验云平台)心路历程+AWS Deepracer智能无人车比赛经验(附优秀代码re:lnvent 2018赛道)
  9. [CSS]分享几条漂亮的下划线样式
  10. python pandas dataframe 获取除了指定列以外的所有列