任务描述:用户登录与注册是大多数软件都拥有的一个模块。请编写一个控制台程序,实现用户的登录与注册功能,并且用户能够修改自己信息。
【需求分析】由于本程序是一个演示程序,用户的信息我们做简化处理,仅包括:用户名、密码和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表示修改失败。