任务描述:用户登录与注册是大多数软件都拥有的一个模块。请编写一个控制台程序,实现用户的登录与注册功能,并且用户能够修改自己信息。

【需求分析】由于本程序是一个演示程序,用户的信息我们做简化处理,仅包括:用户名、密码和EMAIL。

1.系统功能分析

分析一个系统或一个模块,我们首先需要了解系统需要实现哪些功能,通常可采用用例图来描述分析结果。对于本任务,用例图为:

对于每个用例,可以使用用例描述表来详细阐述用例内容。用户登录注册模块的三个用例描述表如下:

(1)登录用例描述表

(2)修改个人信息用例:

(3)用户注册用例

2.识别类

通过用例图知道了系统具有应具有哪些功能,接着需要从用例图分析中识别出系统应该具有哪些主要的类。

1)很显然,用户模块主要完成对用户的管理,每个“用户”是一个对象,应该是将“用户“作为系统的一个类,

name:用户名

password:用户密码

email:用户邮箱

introduce():自我介绍,也就是在控制台下输出用户名和email

2)程序运行,需要显示各种与用户交互的信息,我们可以用一个“界面”对象来完成所有与用户操作相关的交互过程,包括显示主菜单,提示用户输入信息,显示操作结果信息等。

mainUI():显示主界面

modifyUI():显示修改个人信息的界面

registerUI():显示用户注册的界面

3)用户在登录时填写登录名、密码,或者在注册时填写个人信息,或者在修改个人信息时填写各项信息,然后将信息提交给一个专门负责处理用户信息的对象(UserService对象),让此对象完成用户验证、用户注册、用户信息修改任务。此对象接受一个User对象作为参数,然后去访问数据库或文件,完成数据的读写操作。这跟实际生活的情况类似,我们进入某家公司或大楼,都需要提交自己的信息,然后由门卫或保安负责对我们的信息进行处理,最后告诉我们是能进去还是不能进去。我们这里设计的UserService对象也是这个思路。

login(User usr):登录验证方法,参数是User对象(也可以是用户名和密码),验证通过返回true,否则返回false。

logout(String name):将指定用户(用户名为name)从登录状态置为非登录状态。本项目任务中简单处理,直接输出“退出登录”一行提示信息即可。

register(User usr):将传入的新用户usr写到数据文件中去。返回true表示增加成功,返回false表示失败。

modifyInfo(User usr):修改用户信息。修改用户名为usr.name的用户所有信息。返回true表示修改成功,返回false表示修改失败。

Java入门:用户登录与注册模块1(实践项目)——分析的更多相关文章

  1. Django用户登录与注册系统

    一.创建项目 1.1.创建项目和app python manage.py startproject mysite_login python manage.py startapp login 1.2.设 ...

  2. Django实战(一)-----用户登录与注册系统5(图片验证码)

    为了防止机器人频繁登录网站或者破坏分子恶意登录,很多用户登录和注册系统都提供了图形验证码功能. 验证码(CAPTCHA)是一种区分用户是计算机还是人的公共全自动程序. 可以防止恶意破解密码.刷票.论坛 ...

  3. Django实战(一)-----用户登录与注册系统2(数据模型、admin后台、路由视图)

    使用Django开发Web应用的过程中,很多人都是急急忙忙地写视图,写前端页面,把最根本的模型设计给忽略了. 模型中定义了数据如何在数据库内保存,再直白点说就是数据表的定义.这部分工作体现在Djang ...

  4. 使用PHP实现用户登录和注册的功能

    登陆界面 login.php <form action="logincheck.php" method="post"> 用户名:<input ...

  5. MFC 用户登录、注册、工作主窗体

    创建项目由向导生成的窗体作为工作的主窗体.用户登录.注册窗体添加对话框来实现. [具体功能] 1.主窗体应该出现在登录窗体成功之后. 2.登录窗体关闭(右上角❌),程序直接退出. 在App.cpp的I ...

  6. 20155320 2016-2017-2《Java程序设计》第十二周课堂实践项目

    20155320 2016-2017-2<Java程序设计>第十二周课堂实践项目 1.修改教材P98 Score2.java, 让执行结果数组填充是自己的学号: 2.在IDEA中以TDD的 ...

  7. 利用开源项目使discus论坛与java应用同步登录和注册

    最近做了一个资源库系统的项目,老师说可以搭建开源论坛替代自己开发社交模块(评论啊,反馈啊)来减轻负担,甚至提到了要给每个资源开一帖的功能..使我十分怀疑到底是减轻负担还是增加负担...不过怀疑归怀疑, ...

  8. PHP用户登录与注册页面

    PHP用户登录模块实现 项目包含的功能脚本: login.php//登录 reg.php//注册用户 user_add.php//注册校验脚本 user_login_check.php//登录校验脚本 ...

  9. jsp+postgresql学习笔记(1)用户登录与注册

    前期准备: tomcat的安装与配置(略) jdk的安装与配置(略) eclipse软件安装与配置(略) webstrom软件或IDEA的安装与配置(大概用了IDEA就不需要eclipse了,但是怎么 ...

随机推荐

  1. python之爬虫_模块

    目录 一.requests模块二.Beautifulsoup模块 一.requests模块 1.介绍 Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但 ...

  2. JSBridge实现示例

    前言 参考来源 前人栽树,后台乘凉,本文参考了以下来源 Hybrid APP架构设计思路 marcuswestin/WebViewJavascriptBridge 楔子 本文介绍JSBridge的完整 ...

  3. Daily Scrum 11.10

    今日完成任务: 1.加入更改头像功能 2.解决不发送激活邮件和重置密码邮件的问题 3.在服务器上部署网站 4.加入匿名提问功能 明日任务: 黎柱金 修改数据库用户表,实现用户积分管理功能 晏旭瑞 解决 ...

  4. Java第一次试验

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计   班级:1352       姓名:朱国庆   学号:20135237 成绩:             ...

  5. C#中周,月,第几周,周开始结束时间de方法总结

    1.c#获取当前时间是本年的第几周,本月的第几周 private static int getWeekNumInMonth(DateTime daytime) { int dayInMonth = d ...

  6. 剑指offer :跳台阶

    这题之前刷leetcode也遇到过,感觉是跟斐波拉契差不多的题. 题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 解 ...

  7. 阅读<构建之法>第三10、11、12章并提出问题

    <构建之法>第10.11.12章 第10章: 问题:对我们了解了用户的需求后,但是我们想法和做出来的软件会和用户的需求有偏差,比如风格.界面的修饰等等,那么我们程序猿怎样才能让自己的想法更 ...

  8. C#简单窗体应用程序(二)

    使用C#创建控制台应用程序的基本步骤: (1)创建项目: (2)用户界面设计: (3)属性设置: (4)编写程序代码: (5)保存.调试.运行: 例题:设计登录界面,效果如下: 第一步:创建项目: 文 ...

  9. 对象字典0x1005和0x1006的理解

    SYNC不一定由主站产生,因此,产生SYNC的节点,0x1005对象的值一般是0x40000080,第30位为1表示本节点产生 SYNC,而本节点的0x1006对象就是产生同步周期值了;而接收SYNC ...

  10. 实测 | 转型微服务,这4大工具谁是API网关性能最优?

    转自:http://www.servicemesh.cn/?/article/45 作者:Turgay Çelik 翻译:钟毅(Drew Zhong) 原文:Comparing API Gateway ...