超市账单管理系统设计思路
生活随笔
收集整理的這篇文章主要介紹了
超市账单管理系统设计思路
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一.設(shè)計(jì)需求
圖1
注意事項(xiàng):
1.登錄界面應(yīng)該有用戶名和密碼非空驗(yàn)證,登錄錯(cuò)誤有錯(cuò)誤信息提示;
2.根據(jù)用戶權(quán)限不同,左側(cè)菜單樹展示內(nèi)容不同(普通用戶和管理員之分),普通用戶只能修改自己賬戶的信息,不能修改其他用戶信息;
3.管理員不能添加和修改賬單信息,但是可以刪除賬單信息;
4.賬單、供應(yīng)商和用戶模塊都具有組合查詢功能(模糊查詢);
5.賬單、供應(yīng)商、用戶和修改密碼頁應(yīng)具有格式驗(yàn)證功能(js實(shí)現(xiàn));
6.關(guān)鍵操作應(yīng)該具有提示功能(刪除,修改,增加);
7.瀏覽信息表信息時(shí),各功能框不可修改(鎖死);
二.設(shè)計(jì)素材分析
1.前端頁面及樣式已經(jīng)提供:
圖2
分別為:登錄頁面(login.html),系統(tǒng)主頁面(admin_index.html:該頁面使用HTML框架技術(shù),分別由頁面頭部(admin_top.html),頁面左側(cè)(admin_left.html),頁面右側(cè)(實(shí)際自行添加admin_right頁面,素材暫時(shí)使用admin_bill_list.html替代)),賬單列表頁面(admin_bill_list.html),賬單增加頁面(modify.html),供應(yīng)商列表頁面(providerAdmin.html),供應(yīng)商增加頁面(providerAdd.html),用戶列表頁面(userAdmin.html),用戶增加頁面(userAdd.html)。
2.數(shù)據(jù)庫代碼分析:
--創(chuàng)建供應(yīng)商表
create table provider(--供應(yīng)商管理:provider
providerID number primary key,--編號
providerName varchar2(30),--供應(yīng)商名稱
providerDesc varchar2(100),--供應(yīng)商描述
contact varchar2(20),--聯(lián)系人
phone varchar2(20),--電話
address varchar2(50)--地址
);
--創(chuàng)建用戶表
create table users(--用戶管理:users
userID number primary key,--編號
userName varchar2(20),--用戶名稱
userPassword varchar2(20),--用戶名密碼
gender varchar2(2),--性別
age number ,--年齡
phone varchar2(20),--電話
address varchar2(50),--地址
auth number--權(quán)限
);
--創(chuàng)建賬單表
create table bill(--賬單管理:modify
billID number primary key,--賬單編號:
goodname varchar2(20),--商品名稱
goodnumber number,--商品數(shù)量
goodunit varchar2(10),--商品單位
payMoney number,--交易金額
payStatus number,--是否付款(0:否;1:是)
providerID number references provider(providerID),--供應(yīng)商編號 外鍵
usersID number references users(userID),--用戶編號 外鍵
goodDescription varchar2(100),--商品描述
billDate date --賬單時(shí)間
);
--創(chuàng)建三張表對應(yīng)的序列
create sequence sep_provider
start with 0
minvalue 0;
create sequence sep_users
start with 0
minvalue 0;
create sequence sep_bill
start with 0
minvalue 0;
根據(jù)數(shù)據(jù)庫的實(shí)際情況創(chuàng)建對題的實(shí)體類。
三.設(shè)計(jì)思路
1.本項(xiàng)目的系統(tǒng)框架結(jié)構(gòu):MVC架構(gòu)
模型(Model ):
實(shí)現(xiàn)數(shù)據(jù)操作和業(yè)務(wù)處理,它對應(yīng)的組件就是JavaBean,模型能夠提供和處理數(shù)據(jù),它的代碼能被其他組件調(diào)用,可以達(dá)到代碼重用的目的。
對應(yīng)與本項(xiàng)目中的entity,util,dao和service包。
視圖(View):
顯示信息與用戶交互的界面,它對應(yīng)的組件是JSP頁面或者HTML文件,視圖一般不處理用戶的請求,它只顯示數(shù)據(jù)并接收用戶的操作。
控制器(Control):
它的作用是接收請求,調(diào)用模型實(shí)現(xiàn)業(yè)務(wù),調(diào)用視圖顯示數(shù)據(jù),最終完成操作。
對應(yīng)本項(xiàng)目中的servlet。
2.編寫思路
針對該類型項(xiàng)目,編寫思路很清晰:
(1)首先根據(jù)數(shù)據(jù)庫及系統(tǒng)需求,盡可能的全面把模型牽扯的代碼編寫包成,具體如下:
參考數(shù)據(jù)庫中表單的屬性編寫實(shí)體類,屬性名盡量與數(shù)據(jù)庫表屬性一致。本項(xiàng)目中為Bill.java,Providers.java,Users.java;
因?yàn)樵O(shè)計(jì)到數(shù)據(jù)庫操作,所以需要BaseDao.java;
為了實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)操作,所以需要DAO類和Service類,DAO類具體為BillDao,ProvidersDao,UserDao極其對應(yīng)的接口實(shí)現(xiàn)類,Service類則完成所有DAO類的封裝,為控制器所調(diào)用。
注意:編寫完成,應(yīng)先驗(yàn)證各個(gè)業(yè)務(wù)功能是否正確,防止后面系統(tǒng)功能調(diào)試時(shí)麻煩。
圖3
(2)JSP頁面改造
針對系統(tǒng)功能的需要大致需要如下JSP頁面來實(shí)現(xiàn)界面功能:
登錄頁面:
Login.jsp——依照login.html
主要編寫功能js登錄驗(yàn)證,登錄失敗故障信息顯示。
登錄成功主界面:
Admin_index.jsp——依照admin_index.html
由frameset元素把a(bǔ)dmin_top.jsp(admin_top.html)、admin_left.jsp(admin_left.html)和admin_right.jsp(新建,歡迎圖片)組成。
注意點(diǎn):admin_left.jsp會根據(jù)用戶的權(quán)限做相應(yīng)的顯示判斷。
商品賬單操作頁面:
bill_list.jsp——依照admin_bill_list.html,主要實(shí)現(xiàn)商品信息列表顯示。
Bill_add.jsp——依照modify.html,主要實(shí)現(xiàn)商品信息添加的功能(輸入驗(yàn)證由js完成)。
Bill_update.jsp——新建頁面,主要顯示單個(gè)商品的具體信息(input文本框無法編輯),提供修改、刪除功能。
Bill_doupdate.jsp——新建頁面,主要完成商品修改信息功能(文本框可以編輯)。
供應(yīng)商操作頁面:
Provider_list.jsp——依照providerAdmin.html,主要實(shí)現(xiàn)供應(yīng)商信息列表顯示。
Provider_add.jsp——依照providerAdd.html,主要實(shí)現(xiàn)供應(yīng)商信息添加功能(輸入驗(yàn)證由js完成)。
Provider_update.jsp——新建頁面,顯示需要修改的供應(yīng)商信息(文本框不能編輯)。
Provider_doupdate.jsp——新建頁面,完成商品信息的修改(文本框可以修改)。
用戶操作頁面:
User_list.jap——依照userAdmin.html,顯示用戶信息列表。
User_add.jsp——依照userAdd.html,實(shí)現(xiàn)用戶增加功能。
User_update.jsp——新增頁面,實(shí)現(xiàn)單個(gè)用戶信息顯示(文本框不能編輯)。
User_doupdate.jsp——新增頁面,編輯單個(gè)用戶信息。
Password_update.jsp——新增頁面,修改用戶密碼功能。
Common.jsp——實(shí)現(xiàn)頁面正常登錄判斷功能。
注:以上頁面的數(shù)據(jù)提交均指向servlet類,如下所示:
圖4
數(shù)據(jù)操作指向servlet文件,并攜帶op參數(shù),op參數(shù)負(fù)責(zé)引導(dǎo)相應(yīng)的具體操作。
(3)servlet編寫
servlet可由商品列表、供應(yīng)商和用戶獨(dú)立的servlet組成,也可以由一個(gè)組合的servlet組成,針對復(fù)雜系統(tǒng),建議編寫單元模塊功能的servlet。
通過不同的op標(biāo)志位信息,servlet選擇不同的邏輯操作,通過serviceImpl對象實(shí)現(xiàn)相應(yīng)的增刪改查動(dòng)作,完成頁面上的功能。
組合查詢知識點(diǎn):
Sql語句:select * from provider where providername like '%查詢信息1%' and providerdesc like '%查詢信息2%';(查詢信息可以為空)
Java實(shí)現(xiàn)方式:
圖5
圖1
注意事項(xiàng):
1.登錄界面應(yīng)該有用戶名和密碼非空驗(yàn)證,登錄錯(cuò)誤有錯(cuò)誤信息提示;
2.根據(jù)用戶權(quán)限不同,左側(cè)菜單樹展示內(nèi)容不同(普通用戶和管理員之分),普通用戶只能修改自己賬戶的信息,不能修改其他用戶信息;
3.管理員不能添加和修改賬單信息,但是可以刪除賬單信息;
4.賬單、供應(yīng)商和用戶模塊都具有組合查詢功能(模糊查詢);
5.賬單、供應(yīng)商、用戶和修改密碼頁應(yīng)具有格式驗(yàn)證功能(js實(shí)現(xiàn));
6.關(guān)鍵操作應(yīng)該具有提示功能(刪除,修改,增加);
7.瀏覽信息表信息時(shí),各功能框不可修改(鎖死);
二.設(shè)計(jì)素材分析
1.前端頁面及樣式已經(jīng)提供:
圖2
分別為:登錄頁面(login.html),系統(tǒng)主頁面(admin_index.html:該頁面使用HTML框架技術(shù),分別由頁面頭部(admin_top.html),頁面左側(cè)(admin_left.html),頁面右側(cè)(實(shí)際自行添加admin_right頁面,素材暫時(shí)使用admin_bill_list.html替代)),賬單列表頁面(admin_bill_list.html),賬單增加頁面(modify.html),供應(yīng)商列表頁面(providerAdmin.html),供應(yīng)商增加頁面(providerAdd.html),用戶列表頁面(userAdmin.html),用戶增加頁面(userAdd.html)。
2.數(shù)據(jù)庫代碼分析:
--創(chuàng)建供應(yīng)商表
create table provider(--供應(yīng)商管理:provider
providerID number primary key,--編號
providerName varchar2(30),--供應(yīng)商名稱
providerDesc varchar2(100),--供應(yīng)商描述
contact varchar2(20),--聯(lián)系人
phone varchar2(20),--電話
address varchar2(50)--地址
);
--創(chuàng)建用戶表
create table users(--用戶管理:users
userID number primary key,--編號
userName varchar2(20),--用戶名稱
userPassword varchar2(20),--用戶名密碼
gender varchar2(2),--性別
age number ,--年齡
phone varchar2(20),--電話
address varchar2(50),--地址
auth number--權(quán)限
);
--創(chuàng)建賬單表
create table bill(--賬單管理:modify
billID number primary key,--賬單編號:
goodname varchar2(20),--商品名稱
goodnumber number,--商品數(shù)量
goodunit varchar2(10),--商品單位
payMoney number,--交易金額
payStatus number,--是否付款(0:否;1:是)
providerID number references provider(providerID),--供應(yīng)商編號 外鍵
usersID number references users(userID),--用戶編號 外鍵
goodDescription varchar2(100),--商品描述
billDate date --賬單時(shí)間
);
--創(chuàng)建三張表對應(yīng)的序列
create sequence sep_provider
start with 0
minvalue 0;
create sequence sep_users
start with 0
minvalue 0;
create sequence sep_bill
start with 0
minvalue 0;
根據(jù)數(shù)據(jù)庫的實(shí)際情況創(chuàng)建對題的實(shí)體類。
三.設(shè)計(jì)思路
1.本項(xiàng)目的系統(tǒng)框架結(jié)構(gòu):MVC架構(gòu)
模型(Model ):
實(shí)現(xiàn)數(shù)據(jù)操作和業(yè)務(wù)處理,它對應(yīng)的組件就是JavaBean,模型能夠提供和處理數(shù)據(jù),它的代碼能被其他組件調(diào)用,可以達(dá)到代碼重用的目的。
對應(yīng)與本項(xiàng)目中的entity,util,dao和service包。
視圖(View):
顯示信息與用戶交互的界面,它對應(yīng)的組件是JSP頁面或者HTML文件,視圖一般不處理用戶的請求,它只顯示數(shù)據(jù)并接收用戶的操作。
控制器(Control):
它的作用是接收請求,調(diào)用模型實(shí)現(xiàn)業(yè)務(wù),調(diào)用視圖顯示數(shù)據(jù),最終完成操作。
對應(yīng)本項(xiàng)目中的servlet。
2.編寫思路
針對該類型項(xiàng)目,編寫思路很清晰:
(1)首先根據(jù)數(shù)據(jù)庫及系統(tǒng)需求,盡可能的全面把模型牽扯的代碼編寫包成,具體如下:
參考數(shù)據(jù)庫中表單的屬性編寫實(shí)體類,屬性名盡量與數(shù)據(jù)庫表屬性一致。本項(xiàng)目中為Bill.java,Providers.java,Users.java;
因?yàn)樵O(shè)計(jì)到數(shù)據(jù)庫操作,所以需要BaseDao.java;
為了實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)操作,所以需要DAO類和Service類,DAO類具體為BillDao,ProvidersDao,UserDao極其對應(yīng)的接口實(shí)現(xiàn)類,Service類則完成所有DAO類的封裝,為控制器所調(diào)用。
注意:編寫完成,應(yīng)先驗(yàn)證各個(gè)業(yè)務(wù)功能是否正確,防止后面系統(tǒng)功能調(diào)試時(shí)麻煩。
圖3
(2)JSP頁面改造
針對系統(tǒng)功能的需要大致需要如下JSP頁面來實(shí)現(xiàn)界面功能:
登錄頁面:
Login.jsp——依照login.html
主要編寫功能js登錄驗(yàn)證,登錄失敗故障信息顯示。
登錄成功主界面:
Admin_index.jsp——依照admin_index.html
由frameset元素把a(bǔ)dmin_top.jsp(admin_top.html)、admin_left.jsp(admin_left.html)和admin_right.jsp(新建,歡迎圖片)組成。
注意點(diǎn):admin_left.jsp會根據(jù)用戶的權(quán)限做相應(yīng)的顯示判斷。
商品賬單操作頁面:
bill_list.jsp——依照admin_bill_list.html,主要實(shí)現(xiàn)商品信息列表顯示。
Bill_add.jsp——依照modify.html,主要實(shí)現(xiàn)商品信息添加的功能(輸入驗(yàn)證由js完成)。
Bill_update.jsp——新建頁面,主要顯示單個(gè)商品的具體信息(input文本框無法編輯),提供修改、刪除功能。
Bill_doupdate.jsp——新建頁面,主要完成商品修改信息功能(文本框可以編輯)。
供應(yīng)商操作頁面:
Provider_list.jsp——依照providerAdmin.html,主要實(shí)現(xiàn)供應(yīng)商信息列表顯示。
Provider_add.jsp——依照providerAdd.html,主要實(shí)現(xiàn)供應(yīng)商信息添加功能(輸入驗(yàn)證由js完成)。
Provider_update.jsp——新建頁面,顯示需要修改的供應(yīng)商信息(文本框不能編輯)。
Provider_doupdate.jsp——新建頁面,完成商品信息的修改(文本框可以修改)。
用戶操作頁面:
User_list.jap——依照userAdmin.html,顯示用戶信息列表。
User_add.jsp——依照userAdd.html,實(shí)現(xiàn)用戶增加功能。
User_update.jsp——新增頁面,實(shí)現(xiàn)單個(gè)用戶信息顯示(文本框不能編輯)。
User_doupdate.jsp——新增頁面,編輯單個(gè)用戶信息。
Password_update.jsp——新增頁面,修改用戶密碼功能。
Common.jsp——實(shí)現(xiàn)頁面正常登錄判斷功能。
注:以上頁面的數(shù)據(jù)提交均指向servlet類,如下所示:
圖4
數(shù)據(jù)操作指向servlet文件,并攜帶op參數(shù),op參數(shù)負(fù)責(zé)引導(dǎo)相應(yīng)的具體操作。
(3)servlet編寫
servlet可由商品列表、供應(yīng)商和用戶獨(dú)立的servlet組成,也可以由一個(gè)組合的servlet組成,針對復(fù)雜系統(tǒng),建議編寫單元模塊功能的servlet。
通過不同的op標(biāo)志位信息,servlet選擇不同的邏輯操作,通過serviceImpl對象實(shí)現(xiàn)相應(yīng)的增刪改查動(dòng)作,完成頁面上的功能。
組合查詢知識點(diǎn):
Sql語句:select * from provider where providername like '%查詢信息1%' and providerdesc like '%查詢信息2%';(查詢信息可以為空)
Java實(shí)現(xiàn)方式:
圖5
轉(zhuǎn)載于:https://www.cnblogs.com/archermeng/p/7537540.html
總結(jié)
以上是生活随笔為你收集整理的超市账单管理系统设计思路的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 四则运算APP最后阶段
- 下一篇: 15个最佳的代码评审(Code Revi