2018年4月16日第二阶段项目整理
Posted jason111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018年4月16日第二阶段项目整理相关的知识,希望对你有一定的参考价值。
项目名称:
管家婆记账软件
产品详情:
使用技术:JavaSE、mysql。
运行环境:Windows
需求简介: 随着“后理财时代”的到来,“你不理财,财不理你”成为人们常挂在嘴边的一句口头禅,个人理财的重要性日益凸显。本软件就是从个人(家庭)财务规划需要为出发点,使个人财务能够及时的记录在数据库中,通过特定功能查询自己的收支记录,计算收支总额等,使个人账务的记录更加方便快捷。
该记账软件的优点:检索迅速、查找方便、可靠性高、寿命长、成本低等。这些优点能够极大地提高个人的财务管理的效率,使家庭理财更加科学。
实现功能:
(1)用户注册(对用户名进行校验合法性和是否已存在用户名)
(2)登陆(登陆的用户名和密码进行验证)
(3)找回密码(通过手机号码进行找回,并验证手机号的合法性)
(4)查询(多条件查询)、添加、修改、删除账单
(5)收入、支出总览
(6)年收入支出的总额计算
(7)月度收入和支出的总额计算
(8)年收入支出的盈余计算,收支比计算
(9)月度收入支出的盈余计算,收支比计算
(10)月管理员查询、修改、删除用户功能
产品规模:本软件功能约10个,数据表共有2个,代码约100行,开发用时约4天
一,首页
首页有用户登陆,用户注册,密码找回等功能
二.帐务
查询账务,增加帐务,删除账务,修改账务,计算账务
三.用户
查询用户,增加用户,删除用户,修改用户
view层作用: 视图层,即项目中的界面
controller层作用: 控制层, 获取界面上的数据,为界面设置数据; 将要实现的功能交给业务层处理
service层作用: 业务层, 功能的实现, 与controller控制层和数据访问层DAO交互, 将对数据库的操作交给DAO数据访问层来处理
dao层作用: 数据访问层, 用来操作数据库表的数据
db数据库: 这里指MySQL
domain 实体包: 存放JavaBean,管理javaBean实体对象的
tools工具包:存放项目中使用到的工具类
test 测试包: 存放项目功能测试的代码
1.用户登录:
(1)登录:登陆时会判断出是普通用户还是管理员用户,从而进入不同界面权限不同
2.用户注册
(1)注册:注册时
(2)注册时会判断数据库中是否有该用户,如果有提示用户名已存在
(3)注册时运用正则表达式规定输入的用户名只能是5-10位的字母和数字组合,密码时6-12位组合,并二次输入验证密码是否相同,不同的话显示两次输入不一致并返回重新输入。
如果输入的格式不对会提示输入的用户名或输入的密码格式不正确
3.帮助和企业文化
(1)打印文字
4.退出系统
(1)退出系统后有文字提示
普通用户登陆时显示的界面,主要功能是增删改查账务信息,并计算你输入年月的收入和支出总额,利用的模糊查询
管理员用户登陆时显示的界面,主要功能是增删改查账务信息,计算账务和增删改查用户信息,查询用户信息是根据当前输入的用户名来查找相关用户信息,计算帐务可计算每年的收入总额和支出总额,那年那月的收入和支出总额。帐务盈余状况是可以计算你每年和每个月的收入和支出,收入率和支出率,看自己是亏损还是挣钱了。
//=============================================case1.用户登陆界面================================================ //在主页面点1的时候调用,其中通过调用findusers和findadmin两个方法用if判断登陆的是普通用户还是管理员,从而进入不同页面 public void login() throws SQLException{ Users users=new Users(); System.out.println("请输入您的用户名:"); String username=sc.next(); users.setUsername(username); System.out.println("请输入您的密码:"); String upassword=sc.next(); users.setUpassword(upassword); System.out.println("当前验证码是:"); System.out.println("---------"); String sjm=getRandomCode(5);//调用生成随机数的方法,生成五位的验证码 System.out.println("---------"); System.out.println("请输入验证码(区分大小写)"); System.out.println("---------"); String yzm=sc.next(); if(sjm.equals(yzm)){ if(username.equals("admin")&&upassword.equals("admin123")){ findadmin(users);//通过用户输入的用户名和密码来判断是否是管理员账户 }else{ findUsers(users);} }else{ System.out.println("验证码输入错误,请重新输入!"); login(); } } //生成验证码 public static String getRandomCode(int number){ String codeNum = ""; int [] code = new int[3]; Random random = new Random(); for (int i = 0; i < number; i++) { int num = random.nextInt(10) + 48; int uppercase = random.nextInt(26) + 65; int lowercase = random.nextInt(26) + 97; code[0] = num; code[1] = uppercase; code[2] = lowercase; codeNum+=(char)code[random.nextInt(3)]; } System.out.println(codeNum); return codeNum; } //============================================finadmin方法===================================================== //查找管理员账户 //用来验证登陆的时候是否是管理员,是管理员的话进入adminrun()方法管理员权限页面 //============================================================================================================= public void findadmin(Users users) throws SQLException{ String mes=userscontroller.findadmin(users); if(mes.equals("您是管理员,管理员模式登录成功!")){ System.out.println(mes); adminrun(); } else{ System.out.println(mes); } } //===========================================findusers方法======================================================== /* * 验证用户登录功能,用户在登陆界面中选择菜单1的时候调用 * 实现思想: * 调用controller层方法,接收返回值 * 根据返回值判断是否登陆成功 * 如果登陆成功则调用商城界面run()方法 * 如果不成功,则打印提示信息 */ public void findUsers(Users users) throws SQLException{ String mes=userscontroller.findsingle(users); if(mes.equals("登录成功,欢迎使用jason-manager^-^")){ System.out.println(mes); run(); } else{ System.out.println(mes); } }
//===========================================case2.注册用户的界面================================================= //在主页面点击3的时候调用,运用正则表达式来判断用户输入的用户名密码的格式和长度 public void adduser() throws SQLException{ Users users=new Users(); System.out.println("请输入要注册的用户名(必须是数字或字母组合,5-10位):"); String username=sc.next(); String reg="^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{5,10}$"; /*用户名规则:1,不能全部是数字 2,不能全部是字母 3,必须是数字或字母 4,5-10位数*/ boolean f=username.matches(reg); if(!f){ System.out.println("用户名格式不正确,请重新输入"); adduser(); }else{ users.setUsername(username); System.out.println("请设置您的密码(必须是数字或字母组合,6-12位):"); String upassword=sc.next(); System.out.println("请确认你的密码:"); String up=sc.next(); String reg1="^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,12}$"; /*用户名规则:1,不能全部是数字 2,不能全部是字母 3,必须是数字或字母 4,6-12位数*/ boolean f1=upassword.matches(reg1); boolean f2=up.matches(reg1); if(upassword.equals(up)){ if(!f1&&!f2){ System.out.println("密码格式不正确,请重新输入!"); adduser(); }else{ users.setUpassword(upassword); System.out.println("输入需要找回密码时验证的问题:"); System.out.println("问题1:你的小学老师是:"); String qus1=sc.next(); users.setQus1(qus1); System.out.println("问题2:你父亲的姓名是:"); String qus2=sc.next(); users.setQus2(qus2); System.out.println("问题3:你母亲的姓名是:"); String qus3=sc.next(); users.setQus3(qus3); String mes=userscontroller.adduser(users); System.out.println(mes); } }else{ System.out.println("两次密码输入不一致,请重新输入!"); adduser(); } } }
以上是关于2018年4月16日第二阶段项目整理的主要内容,如果未能解决你的问题,请参考以下文章