數(shù)據(jù)庫課程設(shè)計_第1頁
數(shù)據(jù)庫課程設(shè)計_第2頁
數(shù)據(jù)庫課程設(shè)計_第3頁
數(shù)據(jù)庫課程設(shè)計_第4頁
數(shù)據(jù)庫課程設(shè)計_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、需求分析1、系統(tǒng)簡介本系統(tǒng)是一個工程項目管理系統(tǒng),主要應(yīng)用于建筑類的工程項目管理。由于對 系統(tǒng)的分析可能不夠全面,只能是模擬一下工程管理系統(tǒng)。項目一般有供應(yīng)的零件、 供應(yīng)商、供應(yīng)的項目組成的,構(gòu)成一個供應(yīng)關(guān)系。每一種零件、供應(yīng)商,工程項目 都有各自的唯一的編號,另外,本系統(tǒng)還設(shè)立了唯一的一個管理員,他有的權(quán)限最 高,可以對此系統(tǒng)所有供應(yīng)商、零件、工程項目及供應(yīng)情況進(jìn)行增刪改查四種操作。目前,對需求進(jìn)行分析,能想到的基本功能就這些了,這些功能基本能夠?qū)崿F(xiàn) 工程項目管理,對于系統(tǒng)的不足,我們將不斷對其進(jìn)行改進(jìn)。開發(fā)語言:java開發(fā)工具:MyEclipse+Oracle2、數(shù)據(jù)流圖3、數(shù)據(jù)字典1:

2、表格J的列清單名稱數(shù)據(jù)類型長度注釋JNOVARCHAR2(5):主鍵,外鍵JNAMEVARCHAR2(10)10CITYVARCHAR2(5)52:表格P的列清單名稱數(shù)據(jù)類型長度注釋PNOVARCHAR2(5)5主鍵,外鍵PNAMEVARCHAR2(10)10COLORVARCHAR2(5)5WEIGHTFLOAT3:表格S的列清單名稱數(shù)據(jù)類型長度注釋SNOVARCHAR2(5)5主鍵,外鍵SNAMEVARCHAR2(10)10STATUSVARCHAR2(5)5CITYVARCHAR2(5)54:表格SPJ的列清單名稱數(shù)據(jù)類型長度注釋SNOVARCHAR2(5)5主鍵JNOVARCHAR2(

3、5)5主鍵PNOVARCHAR2(5)5主鍵QTYINTEGER5:表格operator的列清單名稱數(shù)據(jù)類型長度注釋idVARCHAR2(5)10登錄帳號,主鍵NameVARCHAR2(5)15PasswordVARCHAR2(5)15登錄密碼,主鍵gradeINTEGER1為管理員,0為普通用戶數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計SSNO VARCHAR2( SNAMEVARCHAR2(10) STATUSARCHAR2(5) CITY VARCHAR2(5)供應(yīng)FK_SP供應(yīng)_S供應(yīng)情況表SPJSNOVARCHAR2JNOVARCHAR2PNOVARCHAR2 QTYINTEGERL_7WFK_SP供應(yīng)3_

4、P零件表JFK_JNO VARCHAR2( JNAMVARCHAR2(10) CITY VARCHAR2(5)供應(yīng)SP供應(yīng)2_J工程項目表PNO VARCHAR2( PNAMEVARCHAR2(10) COLOFVARCHAR2(5) WEIGHTLOAT從 powerdes in ger 導(dǎo)出的 E-R 圖數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計a)數(shù)據(jù)的設(shè)計(其中劃橫線的為主關(guān)鍵字)1供應(yīng)商(SNO,SNAME,STA TUS,CITY)2零件(PNO,PNAME,COLOR,WEIGHT)3工程項目(JNO,JNAME,CITY)4供應(yīng)情況(SNO,PNO,JNO,QTY)5.用戶(id,name,grade

5、,passwordb)功能結(jié)構(gòu)圖點(diǎn)擊修改選擇要修改的列修改其屬性N確定修改圖1添加功能結(jié)構(gòu)圖修改成功11結(jié)束圖3刪除功能結(jié)構(gòu)圖圖2修改功能結(jié)構(gòu)圖圖4查詢功能結(jié)構(gòu)圖圖4-5修改密碼功能結(jié)構(gòu)圖五、系統(tǒng)的實(shí)施運(yùn)行結(jié)果1、登陸界面系統(tǒng)運(yùn)行后即可看到此界面,默認(rèn)為管理員。輸入用戶名和密碼,驗證正確 后就可進(jìn)入其相應(yīng)界面了。2、主界面漳加R應(yīng)Ifl 虞應(yīng)琦帙改他洱供應(yīng)商管理菜卑零件管理菜單工程項目育理菜單 供應(yīng)蓿況管理菜單 系紙錐護(hù)添加零件零件修改和刪除主界面2扭丁管理至統(tǒng)供應(yīng)商管理菜單 霽件管理菜申工程項目管理菜單供應(yīng)情況管理菜單 系紙維護(hù)添加工程工程頂目修改和刪陳主界面3E! spj管理系統(tǒng)口回S供應(yīng)

6、商管理菜單零件管理菜單工程項目管理菜單供辭呪莒理菜單廉逐施添加供應(yīng)惜況 修改和刪除供應(yīng)替況管理系統(tǒng)口問岡供應(yīng)商管理粟單 春件管理菜單 工程項目管理菜單 供應(yīng)皆呪管理菓單系紙維護(hù)更改口令 用尸管理b主界面53、添加界面添加供應(yīng)商信息界面添加零件信息界面添加工程信息界面添加供應(yīng)情況信息界面3、修改及刪除(包括查詢)供應(yīng)商信息修改與刪除界面零件信息修改與刪除界面工程項目信息修改與刪除供應(yīng)情況信息修改與刪除界面用戶信息修改與刪除界面更改當(dāng)前登錄用戶密碼界面總結(jié)在三周的課程設(shè)計中,通過建立一個項目及完成它,我收獲頗豐。在此過程 中我學(xué)到了好多書本上學(xué)不到的東西,在這之前我甚至不知道數(shù)據(jù)庫的具體概 念,但

7、現(xiàn)在,我已經(jīng)熟練掌握了數(shù)據(jù)庫的建立、數(shù)據(jù)源的配置以及增刪改查的 SQL語句的使用,當(dāng)然還有用JAVA進(jìn)行數(shù)據(jù)庫編程的各種技巧等等。當(dāng)然這努力的過程總不是那么順利, 我碰到了好多問題,最典型的一個就是 進(jìn)行記錄插入和修改時的 SQL語句的格式問題,想了好久都沒能解決,這個花 了好多精力,當(dāng)然最終還是解決了!雖然系統(tǒng)還存在很多缺陷,功能不夠完善, 但我還是會找時間逐漸完善它的!參考文獻(xiàn)::1:數(shù)據(jù)庫系統(tǒng)概論王珊高等教育出版社;:2:從零開始學(xué)Eclipse麥廷琮編著中國鐵道出版社;:3:java程序設(shè)計與開發(fā)電子工業(yè)出版社;附錄系統(tǒng)部分源代碼/*主窗體*/public class SupplySi

8、tuati on exte nds JFrame private static fin al JDesktopPa ne DESKTOP_PANE = new JDesktopPa ne(); public static void main( Stri ng args)try UIMa nager.setLookA ndFeel(UIMa nager.getSystemLookA ndFeelClassName();new loginlFrame(); 登錄窗口 catch (Excepti on ex) ex.pri ntStackTrace();public static void add

9、IFame(JI nternalFrame iframe) /添加子窗體的方法DESKTOP_PANE.add(iframe);public SupplySituatio n() super();setDefaultCloseOperati on (Wi ndowCo nsta nts.EXIT_ON_CLOSE);/setModalExc lusionType(ModalExclusionType.APPLICA TION_EXCLUDE); setLocati on ByPlatform(true);setSize(800, 600);setTitle(SPJ 管理系統(tǒng));JMe nuBa

10、r me nuBar = createMe nu(); / 調(diào)用創(chuàng)建菜單欄的方法 setJMe nuBar(me nuBar);final JLabel label = new JLabel();label.setBou nds(0, 0, 0, 0);/label.setIc on(n ull); / 窗體背景DESKTOP_PANE.addCompo nen tListe ner( new Compo nen tAdapter() public void comp onen tResized(fi nal Comp onen tEve nt e) Dime nsion size = e.g

11、etComp onen t().getSize(); label.setSize(e.getComp onen t().getSize();/*label.setText();*/);DESKTOP_PANE.add(label,new Integer(Integer.MIN_V ALUE); getCo nte ntPa ne().add(DESKTOP_PANE);/*創(chuàng)建菜單欄*/private JMe nuBar createMe nu() / 創(chuàng)建菜單欄的方法JMe nuBar men uBar = new JMe nuBar();JMe nu SupplierMa nageMe n

12、u = new JMen u(); / 借閱管理SupplierManageMenu.setText(” 供應(yīng)商管理菜單”);SupplierMa nageMe nu.add(Me nu Actio ns.Supplier_ADD); /增加供應(yīng)商SupplierMa nageMe nu.add(Me nu Actio ns.Supplier_MODIFY); /更改供應(yīng)商JMe nu PartMa nageMe nu = new JMen u(); / 借閱管理PartManageMenu.setText(” 零件管理菜單”);PartMa nageMe nu.add(Me nu Acti

13、ons.P art_ADD); /增加零件PartMa nageMe nu.add(Me nu Actio ns.P art_MODIFY); /更改零件JMe nu ProjectMa nageMe nu = new JMen u(); / 借閱管理ProjectManageMenu.setText(” 工程項目管理菜單 ”);ProjectMa nageMe nu.add(Me nuActio ns.P roject_ADD); /增加工程項目ProjectMa nageMe nu.add(Me nuActi ons.P roject_MODIFY); /更改工程項目JMe nu Supp

14、lyMa nageMe nu = new JMen u(); / 借閱管理SupplyManageMenu.setText(” 供應(yīng)情況管理菜單”);SupplyMa nageMe nu.add(Me nuActio ns.Supply_ADD); /增加供應(yīng)情況SupplyMa nageMe nu.add(Me nu Actio ns.Supply_MODIFY); /更改供應(yīng)情況JMe nu sysMa nageMe nu = new JMen u(); / 系統(tǒng)維護(hù) sysManageMenu.setText(” 系統(tǒng)維護(hù));JMenu userManageMItem = new JMe

15、nu(” 用戶管理);/ 用戶管理userMa nageMltem.add(Me nu Actio ns.USER_ADD);userMa nageMltem.add(Me nu Actio ns.USER_MODIFY); sysMa nageMe nu.add(Me nuActio ns.MODIFY_PASSWORD); sysMa nageMe nu .add(userMa nageMItem);me nuBar.add(SupplierMa nageMe nu); /添加供應(yīng)商管理菜單到菜單欄menuBar.add(PartManageMenu); /添加零件管理菜單到菜單欄menu

16、Bar.add(ProjectManageMenu); /添加工程項目管理菜單到菜單欄menuBar.add(SupplyManageMenu); /添加供應(yīng)情況管理菜單到菜單欄men uBar.add(sysMa nageMe nu);return men uBar;添加功能經(jīng)典代碼public SupplierAddIFrame() super();final BorderLayout borderLayout = new BorderLayout();/設(shè)置窗體可最小化必須/設(shè)置窗體可關(guān)閉必須/設(shè)置窗體標(biāo)題必須/設(shè)置窗體位置和大小getC onten tPa ne().setLayout

17、(borderLayout); setIc oni fiable(true);setClosable(true);setTitle(供應(yīng)商信息添加);setBounds(100, 100, 396, 260);必須final JPa nel panel = new JPa nel();panel.setBorder(new EmptyBorder(5, 10, 5, 10); final GridLayout gridLayout = new GridLayout(0, 4); gridLayout.setVgap(5);gridLayout.setHgap(5);pan el.setLayo

18、ut(gridLayout);getC onten tPa ne().add(pa nel);fin al JLabel label_2 = new JLabel();label_2.setText(” 供應(yīng)商編號:”);pan el.add(label_2);SNO = new JTextField(請輸入供應(yīng)商編號 ,5);SNO.setDocument(new MyDocument(5); / 設(shè)置文本框最大輸入值為5SNO.setColum ns(5);SNO.addKeyListe ner(new SNOkeyListe ner();SNO.addFocusListe ner(n e

19、w SNOFocusListe ner();pan el.add(SNO);fin al JLabel label_1 = new JLabel();label_1.setText(供應(yīng)商姓名:”);pan el.add(label_1);SNAME = new JTextField(請輸入供應(yīng)商姓名 ,10);SNAME.setDocume nt(new MyDocume nt(5); / 設(shè)置書號文本框最大輸入值為5SNAME.setColum ns(10);pan el.add(SNAME);fin al JLabel label_3 = new JLabel();label_3.set

20、Horizo ntalAlig nmen t(Swi ngCo nsta nts.CENTER); label_3.setText(重要性:”);pan el.add(label_3);STATUS = new JTextField(請輸入重要性:,5);STATUS.setDocument(new MyDocument(5); / 設(shè)置書號文本框最大輸入值為5STATUS.setColum ns(5);pan el.add(STATUS);fin al JLabel label_2_1 = new JLabel();label_2_1.setText(城市:”);pan el.add(lab

21、el_2_1);CITY = new JTextField(請輸入城市,5);CITY.setDocument(new MyDocument(5); / 設(shè)置書號文本框最大輸入值為5CITY.setColum ns(5);pan el.add(CITY);final JPa nel pan el_1 = new JPa nel();pan el_1.setBorder( new Lin eBorder(SystemColor.activeCaptio nBorder, 1, false); getCo nte ntPa ne().add(pa nel_1, BorderLayout.SOUTH

22、);final FlowLayout flowLayout = new FlowLayout();flowLayout.setVgap(2);flowLayout.setHg ap(30);flowLayout.setAlig nmen t(FlowLayout.RIGHT);pan el_1.setLayout(flowLayout);butt on add= new JButt on();butt on add.addAct ion Liste ner(new addBookAct ion Liste ner();butto nadd.setText(” 添加”);pan el_1.add

23、(butt on add);butt on close = new JButt on();butt on close.addActi on Liste ner(new CloseAct ion Liste ner();buttonclose.setText(” 關(guān)閉);pan el_1.add(butt on close);setVisible(true);/顯示窗體可閉必須在添加所有控件之后執(zhí)行該語句class SNOFocusListe ner exte nds FocusAdapter public void focusLost(FocusEve nt e)if(!Dao.selectS

24、NOI nfo(SNO.getText().trim().isEmpty()JOptionPane.showMessageDialog(null,供應(yīng)商編號重復(fù)!”);SNO.setText(”);return;class SNOkeyListe ner exte nds KeyAdapter public void keyPressed(fi nal KeyEve nt e) if (e.getKeyCode() = 5)butto nadd.doClick();class CloseActionListener implements ActionListener / 添加關(guān)閉按鈕的事件監(jiān)聽

25、器public void action Performed(fi nal Actio nEvent e) doDefaultCloseActio n();class addBookActionListener implements ActionListener / 添加按鈕的單擊事件監(jiān)聽器public void action Performed(fi nal Actio nEvent e) if( SNO.getText().le ngth()=O)JOptionPane.showMessageDialog(null,供應(yīng)商編號不可以為空”);return;String SNOs=SNO.ge

26、tText().trim(); 返回字符串的副本,忽略前導(dǎo)空白和尾部空白。Stri ng SNAMEs=SNAME.getText().trim();Stri ng STATUSs=STATUS.getText().trim();String CITYs=CITY .getText().trim();int i=Dao.InsertSNO(SNOs,SNAMEs, STA TUSs, CITYs);if(i=1)JOptionPane.showMessageDialog(null,添加成功”);doDefaultCloseActio n();修改和刪除功能經(jīng)典代碼public class Su

27、pplierModiA ndDellFrame exte nds JI nternalFrame private JTextField SNO;private JTextField SNAME;private JTextField STATUS;private JTextField CITY ;private String columnNames= 供應(yīng)商編號,”姓名,狀態(tài),城市;private JTable table;private JTextField keepm on ey;* Create the frame*/private Object getFileStates(List li

28、st)Objectresults=new Objectlist.size()columnNames.length; for(i nt i=O;ilist.size();i+)Supplier supplier=(Supplier)list.get(i); resultsiO=reader.getld(); resultsiO=supplier.getSNO(); resultsi1=supplier.getSNAME(); resultsi2=supplier.getSTA TUS(); resultsi3=supplier.getCITY();return results;public Su

29、pplierModiA ndDellFrame() super();setIc oni fiable(true);setClosable(true);setTitle(”供應(yīng)商信息修改與刪除”); setBou nds(100, 100, 600, 420);final JPa nel pan el_1 = new JPa nel();pan el_1.setLayout (new BorderLayout();getC onten tPa ne().add(pa nel_1);final JScrollPa ne scrollPa ne = new JScrollPa ne(); scrol

30、lPa ne.setPreferredSize( new Dime nsion(0, 100); pa nel_1.add(scrollPa ne, BorderLayout.NORTH);final DefaultTableModel model=new DefaultTableModel(); Object results=getFileStates(Dao.selectSNOI nfo(); model.setDataVector(results,colu mnN ames);table = new JTable();table.setModel(model);scrollPa ne.s

31、etViewportView(table); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table.addMouseListe ner(new TableListe ner();final JPa nel panel_2 = new JPa nel();final GridLayout gridLayout = new GridLayout(0, 4); gridLayout.setVgap(9);pan el_2.setLayout(gridLayout);pan el_2.setPreferredSize( new Dime nsio

32、n(0, 200);pan el_1.add(pa nel_2, BorderLayout.SOUTH);fin al JLabel label_1 = new JLabel();label_1.setText(供應(yīng)商編號:”);pan el_2.add(label_1);SNO= new JTextField();SNO.setDocume nt(new MyDocume nt(5);pan el_2.add(SNO);fin al JLabel label_2 = new JLabel();label_2.setText(”姓名:”);pan el_2.add(label_2);SNAME

33、= new JTextField();SNAME.setDocume nt(new MyDocume nt(1O);pan el_2.add(SNAME);final JLabel label_5 = new JLabel();label_5.setText(狀態(tài):”);pan el_2.add(label_5);STATUS = new JTextField();STATUS.setDocume nt(new MyDocume nt(5);pa nel_2.add(STATUS);fin al JLabel label_6 = new JLabel();label_6.setText(城市:

34、”);pan el_2.add(label_6);CITY = new JTextField();CITY.setDocume nt(n ew MyDocume nt(5);pa nel_2.add(CITY);final JPa nel panel_4 = new JPa nel();pan el_4.setMaximumSize( new Dime nsi on (0, 0); final FlowLayout flowLayout = new FlowLayout(); flowLayout.setVgap(0);flowLayout.setHgap(4);pan el_4.setLay

35、out(flowLayout);pan el_2.add(pa nel_4);fin al JButt on butt on = new JButt on();butt on .setHorizo ntalTextPositio n(Swi ngCo nsta nts.CENTER); pan el_4.add(butt on);butt on .setText(” 修改);butt on. addActi on Liste ner(new ModiButt on Liste ner(model);fin al JButton butto nDel = new JButto n();pan e

36、l_4.add(butt on Del);buttonDel.setText(” 刪除);butt on Del.addActio nListe ner(new DelButto nListe ner(model);setVisible(true);/class TableListe ner exte nds MouseAdapter public void mouseClicked(fi nal MouseEve nt e) int selRow = table.getSelectedRow();SNO.setText(table.getValueAt(selRow, 0).toStri n

37、g().trim();SNAME.setText(table.getV alueAt(selRow, 1).toString().trim();STATUS.setText(table.getValueAt(selRow, 2).toStri ng().trim();CITY .setText(table.getValueAt(selRow, 3).toStri ng().trim();final class NumberListe ner exte nds KeyAdapter public void keyTyped(KeyEve nt e) Stri ng numStr=01234567

38、89+(char)8;if(n umStr.i ndexOf(e.getKeyChar()0)e.c on sume();private final class DelButt on Liste ner impleme nts Action Liste ner private final DefaultTableModel model;private DelButto nListe ner(DefaultTableModel model) this.model = model;public void action Performed(fi nal Actio nEvent e) if(!Dao

39、.selectSPJI nfo_1(SNO.getText().trim().isEmpty()JOptionPane.showMessageDialog(null,在 SPJ 表存在外鍵,不能刪除!);Object results=getFileStates(Dao.selectSNOI nfo(); model.setDataVector(results,colu mnN ames);table.setModel(model);int i=Dao.DelSupplier(SNO.getText().trim();if(i=1)JOptionPane.showMessageDialog(null,刪除成功”);Object results=getFileStates(Dao.selectSNOI nfo(); model.setDataVector(results,colu mnN ames);table.setModel(model);class ModiButt on Liste ner

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論