




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
一、
課程設計目的 在數據庫原理課程基礎上,培養學生綜合運用數據庫知識的能力。學會數據庫的設計、規劃以及應用程序的開發和調試,使學生掌握客戶機/服務器體系結構,學會大型數據庫的工作模式。大型數據庫管理系統存放于服務器,數據庫放在服務器上,學生在客戶機上開發應用程序訪問服務器上的數據庫,并完成應用系統所要求的各項功能,應用程序的開發需要采用當前流行的新軟件。二、課程設計內容數據庫的設計根據學生信息管理系統,經過調查研究,構建合理的數據庫。首先構建基本表以及表和表之間的聯系,在此基礎上構建視圖和索引表。服務器的組織根據建立的基本表、視圖和索引表搭建服務器。前端開發工具:java學習并完成編寫程序。服務器端:SQLServer2012開發應用程序利用所學的新軟件開發工具進行應用程序的開發。連接、調試。 三、軟硬件環境及系統所采用的體系結構系統的體系結構為C/S結構,具體開發工具為Ecplise,前臺為Java,后臺數據庫一般為SQLServer2012。四、需求分析通過對學生信息管理的了解,確定本系統具備一下功能。多用戶賬號登錄只要通過用戶登錄驗證后,能對學生的記錄信息進行修改,增加,刪除等操作。五、系統設計?1.系統結構圖學生信息管理學生信息管理瀏覽查找瀏覽查找修改增加刪除a.功能模塊圖修改增加修改增加查看成績查看成績下一條下一條用戶刪除刪除查詢查詢上一條刪除選課查看查看學科成績查詢增加選課查詢增加選課修改2.數據庫設計學生包含的信息:姓名姓名學科成績學號學科成績學號性別性別電話學生宿舍宿舍住址課程課程選擇學生NM用戶用戶密碼密碼用戶名Login表USE[Student]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[Login]( [userName][nvarchar](20)NOTNULL, [password][nvarchar](10)NULL,CONSTRAINT[PK_Login]PRIMARYKEYCLUSTERED(?[userName]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOStudentIfor表USE[Student]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[StudentIfor]( [code][nvarchar](10)NOTNULL, [name][nvarchar](10)NOTNULL,?[sex][nchar](2)NOTNULL, [room][nvarchar](10)NOTNULL,?[address][nvarchar](50)NULL, [tel][nvarchar](11)NULL,CONSTRAINT[PK_StudentInfor]PRIMARYKEYCLUSTERED(?[code]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOCrouse表CREATETABLE[dbo].[Course]( [courseID][nchar](5)NOTNULL,?[courseName][nvarchar](40)NOTNULL,CONSTRAINT[PK_Course]PRIMARYKEYCLUSTERED( [courseID]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOStudent_Crouse表CREATETABLE[dbo].[Student_Course](?[code][nvarchar](10)NOTNULL,?[courseID][nchar](5)NOTNULL,?[courseGrade][float]NULL,CONSTRAINT[PK_Student_Course]PRIMARYKEYCLUSTERED(?[code]ASC,?[courseID]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GO六、系統的實施系統的實現方法是用java結合SqlServer2012,用java編寫前端的用戶界面主要的界面代碼如下:publicclasswindowsimplementsActionListener{ privateJFrame frame; privateJLabel[]??label; privateJTextField[]?textField;?privateJList?? list;?privateJScrollPanejscrollPane;?privateDefaultListModellistModel;?privateJRadioButton?mjRadioButton,fjRadioButton;?privateButtonGroup? setButtonGrop;?privateJButton[] ?button;?privateJButton??jbu;?privateContainer??con; privateResultSetresultSet; privateString[]??sinfor={"*學號:","*姓名:","*性別:","*宿舍:","住址:","電話:"};?privateString[] ?binfor={"增加","刪除","修改","查找","上一條","下一條"};? publicwindows(){ frame=newJFrame("學生信息管理"); ??con=frame.getContentPane(); ?con.setLayout(null);??frame.setLocation(350,150); frame.setSize(7770/15,6000/15); ?frame.setResizable(false);?? textField=newJTextField[6];??label=newJLabel[6];? button=newJButton[6]; for(inti=0;i<6;i++) ?{ ??label[i]=newJLabel(sinfor[i]);?? ?label[i].setLocation(5,3+(i*670/15));?? label[i].setSize(570/15,670/15);? con.add(label[i]);?? ??if(i!=2) ??{????textField[i]=newJTextField(); ? ?textField[i].setSize(200,470/15);? textField[i].setLocation(770/15,5+(i*670/15));?? con.add(textField[i]); ? }else ??{ ???mjRadioButton=newJRadioButton("男",false); ??mjRadioButton.setVisible(true); ? mjRadioButton.setSize(570/15,670/15); ??mjRadioButton.setLocation(970/15,5+(2*670/15));? ??mjRadioButton.addActionListener(this); ??mjRadioButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));? ??fjRadioButton=newJRadioButton("女",false); ?fjRadioButton.setSize(570/15,670/15);?? ?fjRadioButton.setLocation(2070/15,5+(2*670/15)); ???fjRadioButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));? fjRadioButton.setVisible(true);? ??fjRadioButton.addActionListener(this);?? setButtonGrop=newButtonGroup();?? ? ?setButtonGrop.add(mjRadioButton);?? setButtonGrop.add(fjRadioButton);?? ?con.add(mjRadioButton);? ??con.add(fjRadioButton);???} ?? ? button[i]=newJButton(binfor[i]); ? button[i].setSize(1570/15,370/15); ?button[i].setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); button[i].addActionListener(this);? ?if(i<=2) ???button[i].setLocation(240/15+(i*2000/15),4300/15); ? else ? button[i].setLocation(240/15+((i-3)*2000/15),4300/15+450/15); ?con.add(button[i]); ?}??? jbu=newJButton("查看成績");??jbu.setSize(1570/15,800/15);??jbu.setLocation(3*2000/15,4300/15);? jbu.addActionListener(this);? con.add(jbu);? selectse=newselect(); ?resultSet=se.selectTable();? listModel=newDefaultListModel(); try{???while(resultSet.next())? { ??listModel.addElement(resultSet.getString("code")+""+resultSet.getString("name"));? ?} ?}catch(SQLExceptione){? ?e.printStackTrace(); } se.isDisconnection();??list=newJList(listModel);? list.addMouseListener(newMouseAdapter(){ ??publicvoidmouseClicked(MouseEvente){ ? if(e.getClickCount()==2&&list.getSelectedIndex()!=-1)?? ? clickTwo(list.getSelectedValue());???}??});? jscrollPane=newJScrollPane(list);??jscrollPane.setSize(200,250); jscrollPane.setLocation(270,7);??con.add(jscrollPane); ????frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }應用程序的編制方法是用戶點擊給出的功能按鈕實現對應的功能,按鈕響應中調用相應的類及方法,重要代碼如下:privatevoidclickTwo(Objectvalue){ Stringstr=null; ResultSetre; selectse;??str=value.toString().substring(0,8); str.trim(); ?se=newselect();? re=se.selectCode(str); try{ textField[0].setText(re.getString("code")); textField[1].setText(re.getString("name")); ? if(re.getString("sex").equals("女")==true) ???fjRadioButton.setSelected(true); ??else ??mjRadioButton.setSelected(true);? textField[3].setText(re.getString("room"));???textField[4].setText(re.getString("address")); ?textField[5].setText(re.getString("tel")); ?}catch(SQLExceptione){ ? e.printStackTrace();? }? se.isDisconnection(); ? } publicvoidactionPerformed(ActionEvente){ Stringcode=null,name=null,sex="",room=null,address=null,tel=null; ?if(e.getSource()==button[0]) ?{????code=textField[0].getText();?? name=textField[1].getText();? ?Enumeration<AbstractButton>en=setButtonGrop.getElements();? ?while(en.hasMoreElements()){ ? AbstractButtonab=en.nextElement();?? ?if(ab.isSelected())? ? sex=ab.getText(); ?}? ?room=textField[3].getText();???address=textField[4].getText(); ?tel=textField[5].getText();? ?code.trim(); name.trim(); ?room.trim(); ??address.trim(); tel.trim(); ??if(code.equals("")!=true&&name.equals("")!=true&&room.equals("")!=true&&sex.equals("")!=true) ?{ if(newaddInfor(code,name,sex,address,room,tel).addToDataBase()==true) ? { ? ???JOptionPane.showMessageDialog(frame,"增加成功"); ? ?selectse=newselect(); ?????resultSet=se.selectTable(); ?? ??listModel=newDefaultListModel(); ????try{ ??????while(resultSet.next())???? { ??? ???listModel.addElement(resultSet.getString("code")+""+resultSet.getString("name"));? ?? ??}?? ?}catch(SQLExceptione1){?? ?? ?e1.printStackTrace();?? ???} ? ??list.setModel(listModel);?? ??se.isDisconnection();? ? for(inti=0;i<6;i++)? ? ?if(i!=2) ?? ?textField[i].setText("");? ?} ?else ????JOptionPane.showMessageDialog(frame,"增加失敗,請核對信息");???}? ?else ???JOptionPane.showMessageDialog(frame,"填入信息不全,請核對","警告",JOptionPane.WARNING_MESSAGE); ?? ? } ?if(e.getSource()==mjRadioButton||e.getSource()==fjRadioButton)? { sex=e.getActionCommand();? }?? if(e.getSource()==button[1]) {? ?Stringdeli=null; ? ??deli=JOptionPane.showInputDialog(frame,"請輸入刪除的學號:");???if(deli!=null)? {? ?deli.trim();? ??if(deli.equals("")!=true) ?{??? ?if(newdeleteInfor(deli).studentDel()==true)???? { ? ???JOptionPane.showMessageDialog(frame,"刪除成功");? ? selectse=newselect(); ? ??resultSet=se.selectTable(); ? ? listModel=newDefaultListModel(); ? try{?? ??while(resultSet.next()) ?????{? ? ?? listModel.addElement(resultSet.getString("code")+""+resultSet.getString("name")); ?}? ? }catch(SQLExceptione1){ ????? e1.printStackTrace(); ? ???}?? ?? list.setModel(listModel); ? se.isDisconnection(); ?? } ? ?else ? ??JOptionPane.showMessageDialog(frame,"刪除失敗,請核對信息"); ? }? ?else? JOptionPane.showMessageDialog(frame,"學號不能為空","錯誤",JOptionPane.ERROR_MESSAGE);???} ?}??if(e.getSource()==button[2]) ?{? ?code=textField[0].getText();?? name=textField[1].getText();?? Enumeration<AbstractButton>en=setButtonGrop.getElements();? while(en.hasMoreElements()){ ??AbstractButtonab=en.nextElement();? if(ab.isSelected())? ???sex=ab.getText();???}?? room=textField[3].getText();? ?address=textField[4].getText(); ?tel=textField[5].getText();? ?code.trim(); ??name.trim();? ?room.trim();???address.trim(); ?tel.trim(); ? if(code.equals("")!=true&&name.equals("")!=true&&room.equals("")!=true&&sex.equals("")!=true)?? if(newupdate(code,name,sex,room,address,tel).updateStudentIfor()==true)??? { ? ?JOptionPane.showMessageDialog(frame,"修改成功"); ? ?selectse=newselect(); ? resultSet=se.selectTable();??? listModel=newDefaultListModel(); ? ?try{ ? ?while(resultSet.next())????? { ? ?? listModel.addElement(resultSet.getString("code")+""+resultSet.getString("name"));?? ???}???? }catch(SQLExceptione1){?? ?? e1.printStackTrace();? ? ?}? ???list.setModel(listModel); ?? se.isDisconnection(); ? } ?? else? ? JOptionPane.showMessageDialog(frame,"修改失敗,請核對信息","錯誤",JOptionPane.ERROR_MESSAGE);? else ??JOptionPane.showMessageDialog(frame,"填入信息不全,請核對","警告",JOptionPane.WARNING_MESSAGE);? }? if(e.getSource()==button[3]) ?{?? ResultSets;?? selectsAll;?? Stringseach=null; ? seach=JOptionPane.showInputDialog(frame,"請輸入查找的學號:"); ? if(seach!=null)? ?{ ?? seach.trim();? if(seach.equals("")!=true) ?{?? ? sAll=newselect();? ???s=sAll.selectCode(seach);? ?try{? for(inti=0;i<6;i++)??? ? {?? ? ??if(i==2)? ???? { ??? ?if(s.getString(3).equals("男"))? ? mjRadioButton.setSelected(true); ? ?? ??else???? ? fjRadioButton.setSelected(true);? ?? } ? ???else ????? ?textField[i].setText(s.getString(i+1));?? ? } }catch(HeadlessExceptione1){? ???e1.printStackTrace(); ? }catch(SQLExceptione1){ ??? JOptionPane.showMessageDialog(frame,"查找的學生記錄不存在:"); ???} ? ?sAll.isDisconnection();? ??}else?? ??JOptionPane.showMessageDialog(frame,"學號不能為空","錯誤",JOptionPane.ERROR_MESSAGE); ? }??}? if(e.getSource()==button[4])? {? ?JScrollBarjsscroBar
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年南寧市青秀區委統戰部招聘考試真題
- 臨沂市機電工程學校招聘教師筆試真題2024
- 福建漳州衛生職業學院招聘筆試真題2024
- 小學經典文學閱讀推廣計劃
- 2025年節能型空氣分離設備合作協議書
- 2025年耐輻照電絕緣玻璃纖維項目發展計劃
- 一年級學生音樂欣賞活動計劃
- 農業生產安全整改報告范文
- 醫療器械產品質量檢驗報告范文
- 2025項目部管理人員安全培訓考試試題【必刷】
- 《同分母分數加減法》教學課件人教新課標
- 產業經濟學第三版(蘇東水)課后習題及答案完整版
- 初中綜合實踐課程標準
- 首件檢驗記錄表(標準樣版)
- 中建六局建設發展公司責任目標管理考核辦法
- 太陽能光伏發電系統PVsyst運用
- 調頻發射機項目建議書范文
- 壓實瀝青混合料密度(表干法)自動計算
- 管樁水平承載力計算
- 博碩BSL2236OAC全自動說明書(觸摸屏)
- 施工日志填寫范本
評論
0/150
提交評論