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日第二階段項目整理