




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
頁共35頁1.項目概述書店為了對圖書的采購、銷售信息的管理,就需要一個方便快捷的軟件來對此進行系統的、高效的操作。該圖書管理系統操作節目簡潔,實用,能夠在較短時間內掌握使用方法。1.1功能概述通過初步分析,得到銷售管理系統的主要功能如下:·用戶登陸驗證·用戶信息維護·圖書信息維護·供應商信息維護·采購入庫訂單生成·采購退貨訂單生成·銷售出庫訂單生成·銷售退貨訂單生成·庫存查詢1.2可行性分析從投資角度看,本系統能夠提高業務的運轉效率和企業的市場競爭力,采用計算機軟件管理,可以降低運營成本,減少員工的工作量。該系統運用.NET平臺和Oracle數據庫,能夠有效的幫助企業管理業務,能夠滿足企業的需要。再者,現在運用計算機軟件管理企業業務已經是一種趨勢,運用軟件可以減少員工手工記賬是的錯誤,大大的提高了企業的營業效率。2.項目需求分析2.1系統功能需求分析分析得出銷售管理系統的使用者分為三類:銷售人員、采購人員以及管理人員。于是對三者收集需求,統計得到如下表所示的功能需求。根據用戶的需求,可以把模塊劃分為如表2-2所示,并對其模塊進行劃分和功能描述。2.2系統總用例分析圖2-1系統總用例2.3系統用例分析·描述:提供維護員工信息、維護圖書信息、維護供應商信息(刪除操作在庫存不為0是不能進行圖書信息刪除)。·參與者:管理者。·用例圖:圖2-2.圖2-2基本信息維護用例·描述:提供采購圖書入庫(若新增圖書,則該圖書的庫存量為0,需要在采購界面輸入采購數量)的功能。·參與者:采購員.·用例圖:圖2-3圖2-3采購用例圖·描述:提供圖書庫存盤點。·參與者:系統管理員、采購員、銷售員·用例圖:圖2-4圖2-4庫存管理用例圖·描述:生成銷售訂單與銷售退貨訂單。·參與者:銷售員。·用例圖:圖2-5圖2-5銷售用例圖2.4系統流程分析了解用戶需求之后,就能夠根據用戶需求來設定系統的流程,下面就是整個銷售系統的流程圖,如圖2-7所示。圖2-7銷售系統流程圖2.5模塊分析通過上面的分析能夠得出該系統的模塊結構圖如圖2-8所示圖2-8銷售系統模塊結構圖3.系統詳細設計3.1數據庫邏輯結構設計3.2表設計 在Oracle中設計的數據庫名字為BookSaleD,其中包含用戶信息表,供應商信息表,圖書信息表,庫存表,訂單表。用戶表(用戶編號,用戶帳號,用戶密碼,用戶名稱,權限);供應商表格(供應商編號,供應商名稱,負責人,聯系,地址);圖書信息(圖書編號,圖書名稱,價格,折扣,出版日期,供應商編號,圖書類型);庫存表(庫存編號,圖書編號,圖書名稱,庫存數量,最低數量);訂單表(訂單編號,日期,操作員,圖書名稱,數量,訂單類型,判斷符號)。3.3后臺數據庫設計及重要的PL&SQL代碼首先開辟一個新的表空間:createtableplacebooksaledbdatafile然后建立一個新的用戶:createuserbooksaleidentifiedbyzhbsm0010defaulttablespacebooksaledb;對用戶授權,由于該用戶會執行很多操作,因此這里授予最高的dba權限(該操作是在sysdba用戶先操作的):Grantdbatobooksale;圖書信息表,用來存儲圖書的各種信息。PL&SQL代碼如下:createtableBookInfo(BookIdvarchar2(22)primarykey,BookNamevarchar2(50)notnull,BookPricenumber(10,2)notnull,BookRatenumber(3,2)notnull,BookDatedatenotnull,BookProviderIdintnotnull,BookTypevarchar2(50)notnull,foreignkey(BookProviderId)referencesProviders(PrivId))用戶信息表,用來存儲用戶的基本信息。其中用戶權限一項0表示管理員,1表示銷售員,2表示采購員。createtableUserInfo(UserIdintprimarykey,UserLonginIDvarchar2(20)notnull,UserNamevarchar2(20)notnull,UserPassvarchar2(20)notnull,UserRoleintnotnull)供應商表,及圖書出版社,用戶存儲供應商的基本信息。createtableProviders(PrivIdintprimarykey,PrivNamevarchar2(20)notnull,PrivLinkManvarchar2(20)notnull,privTelvarchar2(20)notnull,PrivAdrvarchar2(50)notnull)訂單表,用來存儲訂單的信息。其中在訂單類型一欄中0表示采購入庫,1表示采購退貨,2表示銷售出庫,3表示銷售退貨出庫,還有訂單新舊判斷列0代表是新訂單,1代表是已經經過庫存盤點之后的訂單。createtableOrders(OrderIdintprimarykey,OrderTimetimestampwithtimezonedefaultsystimestampnotnull,UserIdintnotnull,boonnamevarchar2(50)notnull;OrderQualityintnotnull,OrderTypeintnotnull,OrderJudgeintnotnull,foreignkey(UserId)referencesUserInfo(UserId))庫存表,顯示圖書的庫存量,以及產生采購訂單的標準。createtableStoreRoom(StoreIDintprimarykey,BookIdvarchar2(22)notnull,BookNamevarchar2(50)notnull,StoreSumintnotnull,StoreLastNumintnotnull,foreignkey(BookId)referencesBookInfo(BookId))另外,在數據庫設計中還設計了幾個遞增序號,分別是:UserId,StoreID,OrderId,PrivId。產生序列號的代碼如下:首先對用戶授權:grantcreatesequencetoBookSale然后建立序列號,由于序列號建立的代碼格式一樣,因此這里只列出建立orderid的代碼:createsequenceorderidINCREMENTby1STARTwith1NOCYCLE建立了序列號之后,用觸發器來產生遞增的列下面是在orders表上建立的orderid遞增的觸發器,每當插入一張訂單,訂單編號就增加1,代碼如下:createorreplacetriggerorders_triggerbeforeinsertonordersforeachrowbeginselectorderid.nextvalinto:new.orderidfromdual;end;3.3前臺開發前臺開發使用的是.net開發工具,.net能夠支持Oracle數據庫的連接,而且提供了大量的控件,便于界面設計。能夠有效的提高開發效率。系統登陸界面提供給用戶登陸系統的可視操作,用戶根據相應的用戶名,密碼,登陸權限登陸系統。不同的權限在會擁有不同的操作界面。圖3-2系統登陸界面主界面是根據不同的權限的用戶設計的一個菜單界面,用戶在這個界面可以根據自己的權限與操作要求選擇相應的操作。選這操作之后會打開子窗口,進行下面的操作。圖3-3系統主界面基本信息界面是只有擁有管理員權限的用戶才能夠操作的界面,才這個界面中有員工信息、圖書信息、供應商信息三個選項,分別對應員工信息更新,圖書信息更新,供應商信息跟新。采購界面是采購員生成采購訂單的界面,采購訂單包括采購與退貨的訂單。采購員對圖書進行相關采購之后,可以生成采購訂單,以便對于庫存的管理。圖3-4采購訂單生成界面圖3-5采購退貨訂單生成界面銷售界面是銷售員生成銷售訂單的界面,銷售訂單包括正常銷售和銷售退貨。銷售員在圖書銷售時產生銷售訂單,以便對庫存進行管理。圖3-6銷售退貨訂單生成界面庫存界面是根據各種訂單對庫存進行相關的管理的界面。在庫存界面可以根據訂單修改庫存圖書的相關信息。也可以查看訂單的相關信息,從而能夠統計訂單的各種信息,對圖書銷售進行匯總。圖3-7盤點庫存—采購退貨訂單圖3-8庫存盤點-采購訂單圖3-9庫存盤點-銷售訂單圖3-10庫存盤點-銷售退貨訂單3.4功能實現該系統主要實現的功能有,根據對庫存圖書的存儲量產生采購訂單,退貨訂單。根據銷售的圖書兩產生銷售訂單,然后如果有顧客退還所購買的圖書,要產生銷售退貨訂單,然后更加訂單再修改庫存中的圖書存量。圖3-11系統實驗的功能關系輸入圖書名稱可以查看庫存中的該種圖書存量與和該圖書有關的訂單。根據庫存量與訂單可以決定需要采購的圖書數量。在輸入圖書名稱和采購數量,點擊“生成采購訂單”就能夠產生新的采購訂單。圖3-12采購訂單生成功能入圖書名稱可以查看庫存中的該種圖書存量與和該圖書有關的訂單。根據庫存量與訂單可以決定需要退貨的圖書數量。在輸入圖書名稱和采購數量,點擊“生成訂單”就能夠產生新的退貨訂單。圖3-13退貨訂單生成實現入圖書名稱可以查看庫存中的該種圖書存量與和該圖書有關的訂單。根據庫存量與訂單可以決定需要退貨的圖書數量。在輸入圖書名稱和退貨數量,點擊“生成訂單”就能夠產生新的退貨訂單。圖3-14銷售退貨訂單生成點擊訂單查詢可以查看新的采購訂單,根據圖書庫存,輸入圖書名稱,圖書數量,和訂單編號可以修改圖書的庫存量和改變訂單是成為已經使用過的訂單。查詢功能可以查看該圖書在庫存中的存儲量。圖3-15盤點-采購入庫點擊訂單查詢可以查看新的退貨訂單,根據圖書庫存,輸入圖書名稱,圖書數量,和訂單編號可以修改圖書的庫存量和改變訂單是成為已經使用過的訂單。查詢功能可以查看該圖書在庫存中的存儲量。圖3-16盤點-采購退貨點擊訂單查詢可以查看新的銷售退貨訂單,根據圖書庫存,輸入圖書名稱,圖書數量,和訂單編號可以修改圖書的庫存量和改變訂單是成為已經使用過的訂單。查詢功能可以查看該圖書在庫存中的存儲量。圖3-17盤點-銷售退貨4.開發心得通過圖書銷售系統的開發,讓我了解到一個一項目開發的大致過程,雖然這個系統某些功能根據課程設計的要求并沒有開發實現。但是就這個系統目前能實現的功能來說,即使有些地方不夠完善,但是對于我來說這也是一個新的里程碑。這個系統的開發,不僅讓我了解了有關Oracle數據庫的知識,還有.NET的有關知識,認識的在大學很多知識并不是從課堂上來的,更多的是靠自己平時學習慢慢積累的。每次課程設計都有不同的收獲,這次也一樣。這次課程設計我就靠自己學會了C#的相關編程和一種關于Oracle的PL&SQL的有關知識。這對我能完成這次項目開發有很大的幫助。參考文獻:1.秦倩、石葉平,精通C#與.NET4.0數據庫開發,北京,清華大學出版社,2011.12.蕭文龍、陳怡如,Oracle10g數據庫入門與實踐,北京,清華大學出版社出版社,2006.13.(美)凱特著,蘇金國等譯,Oracle9i&10g編程藝術:深入數據庫體系結構,北京,人民郵電出版社,2006.1附錄1:數據庫相關代碼createsequenceorderidINCREMENTby1STARTwith1NOCYCLE;/createorreplacetriggerorders_triggerbeforeinsertonordersforeachrowbeginselectorderid.nextvalinto:new.orderidfromdual;end;/createsequenceuseridINCREMENTby1STARTwith1NOCYCLE;/createorreplacetriggerorders_triggerbeforeinsertonordersforeachrowbeginselectuserid.nextvalinto:new.useridfromdual;end;/createsequenceStoreIDINCREMENTby1STARTwith1NOCYCLE;/createorreplacetriggerorders_triggerbeforeinsertonordersforeachrowbeginselectStoreID.nextvalinto:new.StoreIDfromdual;end;/createsequencePrivIdINCREMENTby1STARTwith1NOCYCLE;/createorreplacetriggerorders_triggerbeforeinsertonordersforeachrowbeginselectPrivId.nextvalinto:new.PrivIdfromdual;end;/附錄2:功能實現主要代碼附圖1目錄結構圖//采購訂單生成usingSystem;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;namespaceBookSaleSystem.Purchase{publicpartialclassPurchase_OrderAdd:Form{publicPurchase_OrderAdd(){InitializeComponent();}privateDataTableLoad_Data(){OracleConnectioncon=newOracleConnection(ConDB.constr);try{con.Open();DataTabledt=newDataTable();{stringsql=string.Format("selectStoreID,BookId,BookName,StoreSum,StoreLastNumfromstoreroomwherebooknamelike'%{0}%'",Bookname_Inquire.Text);OracleDataAdapterda=newOracleDataAdapter(sql,con);da.Fill(dt);}else{stringsql=@"select*fromstoreroom";OracleDataAdapterda=newOracleDataAdapter(sql,con);da.Fill(dt);}return(dt);}finally{con.Close();}}privateDataTableOrderInfo_Load(){OracleConnectioncon=newOracleConnection(ConDB.constr);try{con.Open();DataTabledt=newDataTable();{stringsql=string.Format("selectOrderId,OrderTime,UserId,bookname,OrderQuality,OrderType,OrderJudgefromOrderswherebooknamelike'%{0}%'andordertype=0",Bookname_Inquire.Text);OracleDataAdapterda=newOracleDataAdapter(sql,con);da.Fill(dt);}else{stringsql=@"select*fromorders";OracleDataAdapterda=newOracleDataAdapter(sql,con);da.Fill(dt);}return(dt);}finally{con.Close();}}privatevoidInquiry_button_Click(objectsender,EventArgse){Inquiry_dataGridView.DataSource=Load_Data();OrderInfo_dataGridView.DataSource=OrderInfo_Load();}privatevoidProduce_PurchaseOrder_Click(objectsender,EventArgse){OracleConnectioncon=newOracleConnection(ConDB.constr);try{con.Open();OracleCommandcom=newOracleCommand(sql,con);intresult=com.ExecuteNonQuery();if(result!=0){MessageBox.Show("訂單生成生成成功!");}else{MessageBox.Show("訂單生成生成失敗!");}}finally{con.Close();}}privatevoidPurchase_OrderAdd_Load(objectsender,EventArgse){}}}//登陸窗口usingSystem;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingBookSaleSystem.Entity;namespaceBookSaleSystem{publicpartialclassLogin_Form:Form{publicLogin_Form(){InitializeComponent();}privatevoidlogin_button_Click(objectsender,EventArgse){loginValidate();}publicvoidloginValidate(){{MessageBox.Show("用戶名不能為空!","登錄提示");userloginid_textBox.Focus();}{MessageBox.Show("密碼不能為空!","登錄提示");password_textBox.Focus();}{MessageBox.Show("請選擇登錄類型!","登錄提示");}else{UserInfou=null;OracleConnectioncon=newOracleConnection(ConDB.constr);try{con.Open();intuserRole=usertype_comboBox.SelectedIndex;stringsql=string.Format("select*fromuserinfowhereuserlonginid='{0}'anduserpass='{1}'andUserRole={2}",userloginid_textBox.Text,password_textBox.Text,userRole);OracleCommandcom=newOracleCommand(sql,con);OracleDataReaderdr=com.ExecuteReader();if(dr.Read()){u=newUserInfo();u.UserId=Convert.ToInt32(dr["UserId"]);u.UserlonginId=dr["UserlonginId"].ToString();u.UserName=dr["UserName"].ToString();u.UserPass=dr["UserPass"].ToString();u.UserRole=dr["UserRole"].ToString();}dr.Close();if(u!=null){LoginInfo.LoginUserInfo=u;//保存登錄用戶信息//UserLoginId.入庫Form_Mainfm=new入庫Form_Main();fm.ShowDialog();}else{MessageBox.Show("用戶名或密碼錯誤!","登錄提示");}}catch(Exception){MessageBox.Show("請注意數據庫連接字符串!","登錄提示");}finally{con.Close();}}}privatevoidcbo_loginType_KeyDown(objectsender,KeyEventArgse){if(e.KeyCode==Keys.Enter)//當點擊回車鍵{if(userloginid_textBox.Text!=""&&password_textBox.Text!="")loginValidate();elseSendKeys.Send("{TAB}");}}privatevoidreset_button_Click_1(objectsender,EventArgse){userloginid_textBox.Text="";password_textBox.Text="";userloginid_textBox.Focus();}}}//主界面usingSystem;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingBookSaleSystem.Entity;usingBookSaleSystem.Purchase;usingBookSaleSystem.Sell;usingBookSaleSystem.Store;namespaceBookSaleSystem{publicpartialclass入庫Form_Main:Form{public入庫Form_Main(){InitializeComponent();}privatevoidForm_Main_Load(objectsender,EventArgse){{BascInfo_ToolStripMenuItem.Enabled=false;Purchase_ToolStripMenuItem.Enabled=false;}{BascInfo_ToolStripMenuItem.Enabled=false;Sell_ToolStripMenuItem.Enabled=false;}}privatevoidPurchase_OrderAdd_ToolStripMenuItem_Click(objectsender,EventArgse){Purchase_OrderAddNewForm=newPurchase_OrderAdd();NewForm.MdiParent=this;NewForm.Show();}privatevoidPurchase_OrderReturn_Click(objectsender,EventArgse){Purchase_OrderReturnNewForm=newPurchase_OrderReturn();NewForm.MdiParent=this;NewForm.Show();}privatevoidSell_OrderoutToolStripMenuItem_Click(objectsender,EventArgse){Sell_OrderoutNewForm=newSell_Orderout();NewForm.MdiParent=this;NewForm.Show();}privatevoidSellin_ToolStripMenuItem_Click(objectsender,EventArgse){Sell_OrderInNewForm=newSell_OrderIn();NewForm.MdiParent=this;NewForm.Show();}privatevoidPurchaseIn_ToolStripMenuItem_Click(objectsender,EventArgse){Form_PurchaseInNewForm=newForm_PurchaseIn();NewForm.MdiParent=this;NewForm.Show();}privatevoidStore_Check_ToolStripMenuItem_Click(objectsender,EventArgse){}privatevoidPurchaseOut_ToolStripMenuItem_Click(objectsender,EventArgse){Form_PurchaseOutNewForm=newForm_PurchaseOut();NewForm.MdiParent=this;NewForm.Show();}privatevoidSellOut_ToolStripMenuItem_Click(objectsender,EventArgse){Form_SellInNewForm=newForm_SellIn();NewForm.MdiParent=this;NewForm.Show();}privatevoidSellInToolStripMenuItem_Click(objectsender,EventArgse){Form_SellOutNewForm=newForm_SellOut();NewForm.MdiParent=this;NewForm.Show();}}}//盤點-采購訂單usingSystem;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;namespaceBookSaleSystem.Store{publicpartialclassForm_PurchaseIn:Form{publicForm_PurchaseIn(){InitializeComponent();}privateDataTableOrders_Load(){OracleConnectioncon=newOracleConnection(ConDB.constr);DataTabledt=newDataTable();try{stringsql=@"select*fromOrderswhereordertype=0andorderjudge=0";OracleDataAdapterda=newOracleDataAdapter(sql,con);da.Fill(dt);return(dt);}finally{con.Close();}}privatevoidPurchaseIN_button_Click(objectsender,EventArgse){Order_dataGridView1.DataSource=Orders_Load();}privatevoidReset_button_Click(objectsender,EventArgse){OracleConnectioncon=newOracleConnection(ConDB.constr);try{con.Open();stringsql=string.Format("updatestoreroomsetstoresum=storesum+{0}wherebookname='{1}'",Quantity_textBox.Text,Bookname_textBox.Text);OracleCommandcmd=newOracleCommand(sql,con);intresult=cmd.ExecuteNonQuery();if(result!=0){MessageBox.Show("庫存更新成功");}else{MessageBox.Show("庫存更新失敗");}}catch(Exception){MessageBox.Show("庫存更新失敗");}finally{con.Close();}}privatevoidReset_Order_button_Click(objectsender,EventArgse){OracleConnectioncon=newOracleConnection(ConDB.constr);try{con.Open();stringsql=string.Format("updateorderssetorderjudge=1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國即時配送行業市場深度調研分析及投資前景研究預測報告
- 公路環境保護培訓課件
- 醫保科培訓課件
- 可行性研究報告范文案例
- 道橋專用防水卷材項目投資可行性研究分析報告(2024-2030版)
- 稅務師網課價格
- 供應商考察報告范文怎么寫
- 中國自行車頭盔行業市場調查研究及投資前景預測報告
- 2025年 杭州市建德市資產經營投資有限公司招聘考試筆試試題附答案
- 拍賣會策劃方案范文
- 2024年-2025年農作物植保員職業技能考試題及答案
- (小升初分班考)2023年小升初英語專題訓練:閱讀理解(人與自然)(含答案解析)人教PEP版
- 拍賣合同模板三篇
- 2023北京西城區初二期末(下)物理試卷及答案
- 2023-2024學年山東省煙臺市高一下學期期中生物試題(解析版)
- 淺談機械設計制造及其自動化在飛機發動機中的應用
- 2024年西北工業大學附中丘成桐少年班初試數學試題真題(含答案詳解)
- 北京東城五中2025屆高三(最后沖刺)歷史試卷含解析
- 2023-2024學年浙江省衢州市開化縣七年級(下)期中數學試卷(含答案)
- 房產自愿轉讓協議書
- 人教版必修二研究與實踐了解車用能源化學
評論
0/150
提交評論