




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、java語言課程設(shè)計報告題 目:小型超市管理系統(tǒng)設(shè) 計 者: 專業(yè)班級: 學(xué) 號: 指導(dǎo)教師: 2010 年 12 月 12 日 計算機學(xué)院目錄一、系統(tǒng)需求分析- 1 -1.1系統(tǒng)名稱:- 1 -1.2系統(tǒng)介紹:- 1 -1.3開發(fā)背景- 1 -1.4.系統(tǒng)面向的用戶群體- 1 -1.5開發(fā)環(huán)境- 1 -二、系統(tǒng)總體設(shè)計- 2 -2.1系統(tǒng)功能結(jié)構(gòu)圖- 2 -三、系統(tǒng)詳細設(shè)計- 2 -3.1數(shù)據(jù)庫實體e-r圖設(shè)計- 2 -3.2數(shù)據(jù)庫表的設(shè)計- 4 -3.3物理設(shè)計文檔- 6 -3.4詳細設(shè)計- 10 -四、系統(tǒng)總結(jié)- 20 -五、系統(tǒng)設(shè)計心得體會- 21 -六、參考文獻- 21 -一、系統(tǒng)需
2、求分析1.1系統(tǒng)名稱:小型超市管理系統(tǒng)1.2系統(tǒng)介紹:界面設(shè)計簡潔、友好、美觀大方操作簡單、快捷方便數(shù)據(jù)存儲安全、可靠信息分類清晰、準(zhǔn)確強大的查詢功能、保證數(shù)據(jù)查詢的靈活性提供銷售排行,為管理員提供真實的數(shù)據(jù)信息提供靈活、方便的權(quán)限設(shè)置功能,使整個系統(tǒng)的管理分工明確對用戶的輸入的數(shù)據(jù),系統(tǒng)進行嚴(yán)格的數(shù)據(jù)檢驗,盡可能排人為錯誤1.3開發(fā)背景隨著現(xiàn)代科學(xué)技術(shù)的迅猛發(fā)展,計算機技術(shù)已經(jīng)滲透到各個領(lǐng)域,成為各行業(yè)必不可少的工具,特別是internet技術(shù)的推廣和信息高速公路的建立,使it產(chǎn)業(yè)在市場競爭中越發(fā)顯示出其獨特的優(yōu)勢,步入信息化時代,有巨大的數(shù)據(jù)信息等待加工處理和傳輸,這使得對數(shù)據(jù)庫的進一步開
3、發(fā)和利用顯得尤為迫切。作為國內(nèi)市場的一些中小型超市,它們在信息化過程中的步伐要落后于大中型超市,而對于這些企業(yè)的資源管理,信息的存儲和處理也顯得迫切需要,要適應(yīng)市場競爭,就需要有高效的處理方式和管理方法,因此加快超市的信息化進程是必不可少的。我國的超市在20世紀(jì)90年代初期形成,現(xiàn)在已經(jīng)成為我國零售業(yè)的一種重要形態(tài),為國民經(jīng)濟的發(fā)展發(fā)揮了重要的作用。隨著經(jīng)濟的快速發(fā)展,超市的經(jīng)營管理也變得愈加復(fù)雜,早期的售貨員站柜臺的形式早已不能滿足現(xiàn)有銷售業(yè)的發(fā)展,這樣就迫切地需要引入新的管理技術(shù)。1.4.系統(tǒng)面向的用戶群體主要是中小型超市使用者,該消費群體具有以下特征:1超市日常管理人工化居多,工作效率較
4、低;2超市日常交易額較小,貨物流通較小,不愿花高價購進大型超市管理系統(tǒng)。因此,該消費群體對產(chǎn)品的功能性需求并不高,只需滿足前臺銷售系統(tǒng)、后臺貨物管理即可。1.5開發(fā)環(huán)境eclipse+mysql二、系統(tǒng)總體設(shè)計2.1系統(tǒng)功能結(jié)構(gòu)圖登陸界面主界面商品信息管理基本信息管理進銷管理查詢統(tǒng)計權(quán)限管理庫存管理供貨商信息管理進銷管理退貨處理商品查詢供貨商查詢庫存盤點生成報表修改密碼權(quán)限管理商品查詢數(shù)據(jù)統(tǒng)計用戶管理三、系統(tǒng)詳細設(shè)計3.1數(shù)據(jù)庫實體e-r圖設(shè)計(1)圖書信息實體e-r圖商品進貨價商品編號商品名稱有效期數(shù)量下限單位銷售價生產(chǎn)日期(2)讀者信息實體用戶用戶名用戶編號用戶類型用戶密碼用戶狀態(tài)(3)圖
5、書借閱實體供貨商供貨商姓名供貨商地址供貨商編號供貨商電話(4)多圖之間的e-r圖商品進貨價商品編號商品名稱有效期數(shù)量下限單位銷售價生產(chǎn)日期供貨商供貨商姓名供貨商地址供貨商編號供貨商電話用戶用戶名用戶編號用戶類型用戶密碼用戶狀態(tài)出入庫供貨3.2數(shù)據(jù)庫表的設(shè)計數(shù)據(jù)庫名:limitedmarket(1) 用戶登錄表(account)字段名類型長度字段約束中文名accountnumberinteger登錄號accountnamevarchar30not null登錄名accountpasswordvarchar20not null登錄密碼accounttypesmallint6not null登錄類型
6、accountstatesmallint6not null登錄狀態(tài)manageridintegernot null用戶id(2) 用戶信息表(manager)字段名類型長度字段約束中文名manageridinteger用戶編號managernamevarchar20not null用戶姓名mobilephonevarchar15手機號碼phonevarchar15固定電話manageremailvarchar30電子郵件(3) 商品信息表(commodity)字段名類型長度字段約束中文名commodityidinteger商品編號commoditynamevarchar40not null商品
7、名稱producedatedatatimenot null生產(chǎn)日期inpricenumeric2not null進貨價格salepricenumeric2not null銷售價格storagetimeintnot null有效期downlimitintnot null數(shù)量下限unitvarchar8not null單位providernumberint供應(yīng)商編號indatedate進貨日期(4) 供應(yīng)商表(provider)字段名類型長度約束中文名providernumberint供應(yīng)商編號providernamevarchar40not null供應(yīng)商名稱provideraddressvar
8、char60not null供應(yīng)商地址phonevarchar20not null供應(yīng)商電話(5) 銷售表(sale)字段名類型長度約束中文名saleidint銷售票號commodityidintnot null商品編號selltimedatenot null銷售日期numberintnot null銷售數(shù)量moneyfloatnot null收入operatorvarchar45not null銷售員commoditynamevarchar45not null商品名稱(6) 庫存信息表(storage)字段名類型長度約束中文名storageidint入庫編號commoditynamevarc
9、har45not null商品名稱commodityidvarcharnot null商品編號unitvachar45not null單位pricefloat45not null單價outdatedatenot null退貨時間providervarchar45not null供應(yīng)商operatorvarchar45not null操作員numberintnot null數(shù)量(7) 銷售退貨(returnsale)字段名類型長度約束中文名rsaleidint退貨票號commodityidintnot null商品編號commoditynamevarchar商品名稱numberintnot nu
10、ll商品數(shù)量moenyfolatnot null金額returntimedatenot null退貨時間operatorvarchar45not null操作員(8) 入庫退貨(returnsale)字段名類型長度約束中文名ridint退貨編號commoditynamevarcgar45not null商品名稱commodityidintnot商品編號pricefloatnot null價格outdatedatenot null退貨時間providervarchar45not null供應(yīng)商名稱numberintnot null退貨數(shù)量unitvarchar8not null單位3.3物理設(shè)計
11、文檔/*-創(chuàng)建數(shù)據(jù)庫-*/本系統(tǒng)使用mysql數(shù)據(jù)庫,首先我們在navicat for mysql的host: localhost下創(chuàng)建數(shù)據(jù)庫limitedmarket,選擇數(shù)據(jù)庫編碼為utf8 - utf-8 unicode?;蚴褂胹ql語句create database limitedmarket創(chuàng)建數(shù)據(jù)庫。/*-創(chuàng)建基本表-*/* 創(chuàng)建account表*/drop table if exists account;create table account ( accountnumber integer not null auto_increment, accountname varchar
12、(30) not null, accountpassword varchar(20) not null, accounttype smallint(6) not null, managerid integer default null, accountstate smallint(6) not null, primary key (accountnumber), key fk_manage (managerid), constraint fk_manage foreign key (managerid) references manager (managerid) engine=innodb
13、default charset=utf8;/*創(chuàng)建manage表*/drop table if exists manager;create table manager ( managerid integer not null auto_increment, managername varchar(20) not null, managermobilephone varchar(15) , managerregionnumber varchar(4) , manageremail varchar(30) default null, managerphone varchar(10) ,primar
14、y key (managerid) engine=innodb default charset=utf8;/*創(chuàng)建commodity表*/drop table if exists commodity;create table commodity ( commodityid integer not null auto_increment, providernumber int(11) default null, commodityname varchar(45) not null, indate datetime not null, producedate datetime not null,
15、inprice float not null, saleprice float not null, storagetime int(11) not null, downlimit int(11) not null, unit varchar(8) default null, primary key (commodityid), key fk_supply (providernumber), constraint fk_supply foreign key (providernumber) references provider (providernumber) engine=innodb de
16、fault charset=utf8;/*創(chuàng)建returncommodity*/drop table if exists returncommodity;create table returncommodity ( rcid int unsigned not null auto_increment, commodityname varchar(45) not null, commodityid varchar(45) not null, unit varchar(45) not null, price float not null, outdate datetime not null, pro
17、vider varchar(45) not null, operator varchar(45) not null, number int unsigned not null, primary key (rcid) engine=innodb default charset=utf8;/*創(chuàng)建sale表*/drop table if exists sale;create table sale ( commodityname varchar(45) not null, commodityid int unsigned not null, selltime datetime not null, n
18、umber varchar(45) not null, money double not null, operator varchar(45) not null, saleid int not null auto_increment, primary key (saleid) engine=innodb default charset=gb2312 pack_keys=1;/*創(chuàng)建returnsale表*/drop table if exists returnsale;create table returnsale ( rsaleid int unsigned not null auto_in
19、crement, commodityid int unsigned not null, commodityname varchar(45) not null, number int unsigned not null, money double not null, returntime datetime not null, operator varchar(45) not null, primary key (rsaleid) engine=innodb default charset=utf8;/*創(chuàng)建provider表*/drop table if exists provider;crea
20、te table provider ( providernumber int(11) not null auto_increment, phone varchar(20) not null, provideraddress varchar(60) not null, providername varchar(40) not null, primary key (providernumber) engine=innodb default charset=utf8;/*創(chuàng)建stroge表*/drop table if exists storage;create table storage ( st
21、orageid int unsigned not null auto_increment, commodityname varchar(45) not null, commodityid int unsigned not null, unit varchar(45) not null, price float not null, indate datetime not null, provider varchar(45) not null, operators varchar(45) not null, number int unsigned not null, primary key (st
22、orageid) engine=innodb default charset=utf8/* 創(chuàng)建storageinfo表*/drop table if exists storageinfo;create table storageinfo ( commoditynumber int unsigned not null, accountid int unsigned not null, amount int unsigned not null, storageid int unsigned not null auto_increment, money double not null, prima
23、ry key (storageid) engine=innodb default charset=utf8;3.4詳細設(shè)計(1)數(shù)據(jù)庫與eclipse的連接package dao;import java.sql.connection;import java.sql.drivermanager;import java.sql.statement;/* * * author administrator */public class connectdatabase protected static string dbclassname = com.mysql.jdbc.driver;protecte
24、d static string dburl=jdbc:mysql:/127.0.0.1:3306/limitedmarket?user=root&password=123;static connection con = null;static statement stmt = null;public static connection getconnection() throws exceptionclass.forname(dbclassname);con = drivermanager.getconnection(dburl);return con; public static state
25、ment getstatement() throws exceptionclass.forname(dbclassname);con = drivermanager.getconnection(dburl);stmt = con.createstatement();return stmt;(2)主要代碼stmt = con.createstatement();/* statement對象靜態(tài)執(zhí)行查詢sql語句 */public dao()public static resultset findforresultset(string sql) resultset rs = null; state
26、ment smt; try smt = connectdatabase.getstatement(); rs = smt.executequery(sql); system.out.print(sql語句已經(jīng)執(zhí)行!); catch (exception ex) logger.getlogger(dao.class.getname().log(level.severe, null, ex); return rs;/* statement對象靜態(tài)執(zhí)行插入、刪除、更新sql語句 */public static int update(string sql) int result = 0; try st
27、atement smt = connectdatabase.getstatement(); result = smt.executeupdate(sql); catch (exception ex) logger.getlogger(dao.class.getname().log(level.severe, null, ex); return result;/* 指定參數(shù)的查詢sql語句,動態(tài) */public static resultset query(string querystr) resultset set = findforresultset(querystr); return s
28、et;/* 執(zhí)行查詢的sql語句 */public static int delete(string sql) return update(sql);/* 插入查詢語句 */public static boolean insert(string sql) boolean result = true;try statement stmt = connectdatabase.getstatement();result = stmt.execute(sql); catch (exception e) e.printstacktrace();return result;public static li
29、st findforlist(string sql) list list = new arraylist();resultset rs = findforresultset(sql);try resultsetmetadata metadata = rs.getmetadata();int colcount = metadata.getcolumncount();while (rs.next() list row = new arraylist();for (int i = 1; i = colcount; i+) string str = rs.getstring(i);if (str !=
30、 null & !str.isempty()str = str.trim();row.add(str);list.add(row); catch (exception e) e.printstacktrace();return list;/用戶登錄方法public static account getuser(string username,string password) account account = new account(); resultset rs = findforresultset(select * from account where accountname = +use
31、rname+); try if (rs.next() account.setaccountname(username); account.setaccountpassword(rs.getstring(accountpassword).trim(); if (account.getaccountpassword().equals(password) account.setaccountname(rs.getstring(accountname).trim(); account.setaccountstate(integer.parseint(rs.getstring(accountstate)
32、;account.setaccounttype(integer.parseint(rs.getstring(accounttype);account.setmanagerid(integer.parseint(rs.getstring(managerid);account.setaccountnumber(integer.parseint(rs.getstring(accountnumber); else account.setaccountname(null); account.setaccountpassword(null); catch (exception e) e.printstac
33、ktrace(); return account;/ 獲取用戶對象的方法public static account getuser(item item) string where = accountname= + item.getname() + ;/ if (item.getid() != null)/ where = name= + item.getid() + ;resultset rs = findforresultset(select * from account where + where);account account = new account();try if (rs.ne
34、xt() account.setaccountname(rs.getstring(accountname).trim();account.setaccountpassword(rs.getstring(accountpassword).trim();account.setaccountstate(integer.parseint(rs.getstring(accountstate).trim();account.setaccounttype(integer.parseint(rs.getstring(accounttype).trim(); catch (sqlexception e) e.p
35、rintstacktrace();return account; /* 通過存儲過程添加商品 */ public static boolean addcommodity(commodity com) boolean flag = true; if(com=null) return true; try conn = connectdatabase.getconnection(); callablestatement callstm = conn.preparecall(call insertcommodity(?,?,?,?,?,?,?,?,?); callstm.setint(1, com.g
36、etprovidernumber(); callstm.setstring(2, com.getcommodityname(); callstm.setfloat(3, com.getinprice(); callstm.setfloat(4, com.getsaleprice(); callstm.setint(5, com.getstoragetime(); callstm.setint(6, com.getdownlimit(); callstm.setstring(7, com.getunit(); callstm.setstring(8, com.getindate(); calls
37、tm.setstring(9, com.getprocudedate(); callstm.execute(); catch(exception e) flag = true; flag = false; return flag; / 讀取商品信息public static commodity getspinfo(item item) string where = commodityname= + item.getname() + ;if (item.getid() != null)where = commodityid= + item.getid() + ;resultset rs = fi
38、ndforresultset(select * from commodity where + where);commodity spinfo = new commodity();try if (rs.next() spinfo.setcommodityid(integer.parseint(rs.getstring(1);spinfo.setcommodityname(rs.getstring(3);spinfo.setprovidernumber(integer.parseint(rs.getstring(2);spinfo.setindate(rs.getstring(4);spinfo.
39、setprocudedate(rs.getstring(5);spinfo.setinprice(float.parsefloat(rs.getstring(6);spinfo.setsaleprice(float.parsefloat(rs.getstring(7);spinfo.setstoragetime(integer.parseint(rs.getstring(8);spinfo.setdownlimit(integer.parseint(rs.getstring(9);spinfo.setunit(rs.getstring(10); catch (sqlexception e) e
40、.printstacktrace();return spinfo;/修改商品信息/ 獲取所有商品信息public static list getspinfos() list list = findforlist(select * from commodity);return list;public static list getcominfo(int id) list list = findforlist(select * from commodity where commodityid=+ id + );return list;/* 添加供應(yīng)商信息 */ public static int
41、updatecommodity(commodity com) int flag = 1; try conn = connectdatabase.getconnection(); callablestatement st = conn.preparecall(call updatecommodity(?,?,?,?,?,?,?,?,?,?); st.setint(1, com.getprovidernumber();st.setstring(2, com.getcommodityname();st.setfloat(3, com.getinprice();st.setfloat(4, com.g
42、etsaleprice();st.setint(5, com.getstoragetime();st.setint(6, com.getdownlimit();st.setstring(7, com.getunit();st.setstring(8, com.getindate();st.setstring(9, com.getprocudedate();st.setint(10, com.getcommodityid(); st.execute(); catch(exception e) flag = 0; return flag; public static boolean addprov
43、ider(provider pro) boolean flag = true; if(pro = null) return false; return insert(insert into provider (providername, provideraddress, phone) values(+ pro.getprovidername()+ ,+ pro.getprovideraddress()+ ,+ pro.getphone() + ); / 讀取所有供應(yīng)商信息public static list getgysinfos() list list = findforlist(selec
44、t * from provider); return list; / 讀取指定供應(yīng)商信息public static provider getgysinfo(item item) string where = providername= + item.getname() + ;if (item.getid() != null)where = providernumber= + item.getid() + ;provider p = new provider();resultset set = findforresultset(select * from provider where + whe
45、re);try if (set.next() p.setprovidernumber(integer.parseint(set.getstring(1);p.setprovideraddress(set.getstring(3);p.setphone(set.getstring(2);p.setprovidername(set.getstring(4); catch (sqlexception e) e.printstacktrace();return p; / 修改供應(yīng)商信息的方法public static int updategys(provider p) return update(up
46、date provider set providername = + p.getprovidername() + , provideraddress=+ p.getprovideraddress() + ,phone= + p.getphone()+ where providernumber = + p.getprovidernumber() + ); /將商品信息入庫 public static boolean rukuinfo(storageinfo s) try conn = connectdatabase.getconnection(); callablestatement csmt = conn.preparecall(call ruku(?,?,?,?,?,?,?,?); csmt.setstrin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 口腔醫(yī)療機構(gòu)可行性研究報告
- 時間軸表格-項目時間節(jié)點
- 三農(nóng)標(biāo)準(zhǔn)化生產(chǎn)實施計劃
- 污水處理項目可行性研究報告
- 新能源汽車充電樁發(fā)展
- 家用電器使用說明與維護指南
- 無人直升機物流配送項目可行性研究報告
- 職業(yè)規(guī)劃與就業(yè)前景分析
- 監(jiān)控練習(xí)試卷附答案
- 家服務(wù)員中級復(fù)習(xí)試題及答案
- GB 4404.1-2024糧食作物種子第1部分:禾谷類
- 2024年江西省公務(wù)員錄用考試《行測》真題及答案解析
- 計算流體力學(xué)CFD
- 三大戰(zhàn)役完整版本
- 電子商務(wù)概論(第四版)課件 第11、12章 電子商務(wù)典型應(yīng)用、電子商務(wù)應(yīng)用案例
- DB11T 353-2021 城市道路清掃保潔質(zhì)量與作業(yè)要求
- 2024電力建設(shè)土建工程施工技術(shù)檢驗規(guī)范
- 2024年中國除塵器濾袋市場調(diào)查研究報告
- MFP無機硅聲能凝膠施工方案
- 麥肯錫和波士頓解決問題方法和創(chuàng)造價值技巧
- DBJ33T 1320-2024 建設(shè)工程質(zhì)量檢測技術(shù)管理標(biāo)準(zhǔn)
評論
0/150
提交評論