設(shè)計(jì)數(shù)據(jù)庫(kù)課程設(shè)計(jì)(Java實(shí)現(xiàn))_第1頁(yè)
設(shè)計(jì)數(shù)據(jù)庫(kù)課程設(shè)計(jì)(Java實(shí)現(xiàn))_第2頁(yè)
設(shè)計(jì)數(shù)據(jù)庫(kù)課程設(shè)計(jì)(Java實(shí)現(xiàn))_第3頁(yè)
設(shè)計(jì)數(shù)據(jù)庫(kù)課程設(shè)計(jì)(Java實(shí)現(xiàn))_第4頁(yè)
設(shè)計(jì)數(shù)據(jù)庫(kù)課程設(shè)計(jì)(Java實(shí)現(xiàn))_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

一、

課程設(shè)計(jì)目的 在數(shù)據(jù)庫(kù)原理課程基礎(chǔ)上,培養(yǎng)學(xué)生綜合運(yùn)用數(shù)據(jù)庫(kù)知識(shí)的能力。學(xué)會(huì)數(shù)據(jù)庫(kù)的設(shè)計(jì)、規(guī)劃以及應(yīng)用程序的開(kāi)發(fā)和調(diào)試,使學(xué)生掌握客戶(hù)機(jī)/服務(wù)器體系結(jié)構(gòu),學(xué)會(huì)大型數(shù)據(jù)庫(kù)的工作模式。大型數(shù)據(jù)庫(kù)管理系統(tǒng)存放于服務(wù)器,數(shù)據(jù)庫(kù)放在服務(wù)器上,學(xué)生在客戶(hù)機(jī)上開(kāi)發(fā)應(yīng)用程序訪問(wèn)服務(wù)器上的數(shù)據(jù)庫(kù),并完成應(yīng)用系統(tǒng)所要求的各項(xiàng)功能,應(yīng)用程序的開(kāi)發(fā)需要采用當(dāng)前流行的新軟件。二、課程設(shè)計(jì)內(nèi)容數(shù)據(jù)庫(kù)的設(shè)計(jì)根據(jù)學(xué)生信息管理系統(tǒng),經(jīng)過(guò)調(diào)查研究,構(gòu)建合理的數(shù)據(jù)庫(kù)。首先構(gòu)建基本表以及表和表之間的聯(lián)系,在此基礎(chǔ)上構(gòu)建視圖和索引表。服務(wù)器的組織根據(jù)建立的基本表、視圖和索引表搭建服務(wù)器。前端開(kāi)發(fā)工具:java學(xué)習(xí)并完成編寫(xiě)程序。服務(wù)器端:SQLServer2012開(kāi)發(fā)應(yīng)用程序利用所學(xué)的新軟件開(kāi)發(fā)工具進(jìn)行應(yīng)用程序的開(kāi)發(fā)。連接、調(diào)試。 三、軟硬件環(huán)境及系統(tǒng)所采用的體系結(jié)構(gòu)系統(tǒng)的體系結(jié)構(gòu)為C/S結(jié)構(gòu),具體開(kāi)發(fā)工具為Ecplise,前臺(tái)為Java,后臺(tái)數(shù)據(jù)庫(kù)一般為SQLServer2012。四、需求分析通過(guò)對(duì)學(xué)生信息管理的了解,確定本系統(tǒng)具備一下功能。多用戶(hù)賬號(hào)登錄只要通過(guò)用戶(hù)登錄驗(yàn)證后,能對(duì)學(xué)生的記錄信息進(jìn)行修改,增加,刪除等操作。五、系統(tǒng)設(shè)計(jì)?1.系統(tǒng)結(jié)構(gòu)圖學(xué)生信息管理學(xué)生信息管理瀏覽查找瀏覽查找修改增加刪除a.功能模塊圖修改增加修改增加查看成績(jī)查看成績(jī)下一條下一條用戶(hù)刪除刪除查詢(xún)查詢(xún)上一條刪除選課查看查看學(xué)科成績(jī)查詢(xún)?cè)黾舆x課查詢(xún)?cè)黾舆x課修改2.數(shù)據(jù)庫(kù)設(shè)計(jì)學(xué)生包含的信息:姓名姓名學(xué)科成績(jī)學(xué)號(hào)學(xué)科成績(jī)學(xué)號(hào)性別性別電話(huà)學(xué)生宿舍宿舍住址課程課程選擇學(xué)生NM用戶(hù)用戶(hù)密碼密碼用戶(hù)名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_(tái)DUP_KEY=OFF,ALLO(píng)W_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,ALLO(píng)W_PAGE_LO(píng)CKS=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,ALLO(píng)W_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,ALLO(píng)W_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GO六、系統(tǒng)的實(shí)施系統(tǒng)的實(shí)現(xiàn)方法是用java結(jié)合SqlServer2012,用java編寫(xiě)前端的用戶(hù)界面主要的界面代碼如下:publicclasswindowsimplementsActionListener{ privat(yī)eJFrame frame; privateJLabel[]??label; privateJTextField[]?textField;?privateJList?? list;?privateJScrollPanejscrollPane;?privateDefaultListModellistModel;?privateJRadioButton?mjRadioButton,fjRadioButton;?privateButtonGroup? setButtonGrop;?privateJButton[] ?button;?privateJButton??jbu;?privateContainer??con; privateResultSetresultSet; privateString[]??sinfor={"*學(xué)號(hào):","*姓名:","*性別:","*宿舍:","住址:","電話(huà):"};?privateString[] ?binfor={"增加","刪除","修改","查找","上一條","下一條"};? publicwindows(){ frame=newJFrame("學(xué)生信息管理"); ??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.a(chǎn)ddActionListener(this);?? setButtonGrop=newButtonGroup();?? ? ?setButtonGrop.add(mjRadioButton);?? setButtonGrop.a(chǎn)dd(fjRadioButton);?? ?con.add(mjRadioButton);? ??con.a(chǎn)dd(fjRadioButton);???} ?? ? button[i]=newJButton(binfor[i]); ? button[i].setSize(1570/15,370/15); ?button[i].setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); button[i].a(chǎn)ddActionListener(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("查看成績(jī)");??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); }應(yīng)用程序的編制方法是用戶(hù)點(diǎn)擊給出的功能按鈕實(shí)現(xiàn)對(duì)應(yīng)的功能,按鈕響應(yīng)中調(diào)用相應(yīng)的類(lèi)及方法,重要代碼如下:privat(yī)evoidclickTwo(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,"增加失敗,請(qǐng)核對(duì)信息");???}? ?else ???JOptionPane.showMessageDialog(frame,"填入信息不全,請(qǐng)核對(duì)","警告",JOptionPane.WARNING_MESSAGE); ?? ? } ?if(e.getSource()==mjRadioButton||e.getSource()==fjRadioButton)? { sex=e.getActionCommand();? }?? if(e.getSource()==button[1]) {? ?Stringdeli=null; ? ??deli=JOptionPane.showInputDialog(frame,"請(qǐng)輸入刪除的學(xué)號(hào):");???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,"刪除失敗,請(qǐng)核對(duì)信息"); ? }? ?else? JOptionPane.showMessageDialog(frame,"學(xué)號(hào)不能為空","錯(cuò)誤",JOptionPane.ERROR_MESSAGE);???} ?}??if(e.getSource()==button[2]) ?{? ?code=textField[0].getText();?? name=textField[1].getText();?? Enumerat(yī)ion<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,"修改失敗,請(qǐng)核對(duì)信息","錯(cuò)誤",JOptionPane.ERROR_MESSAGE);? else ??JOptionPane.showMessageDialog(frame,"填入信息不全,請(qǐng)核對(duì)","警告",JOptionPane.WARNING_MESSAGE);? }? if(e.getSource()==button[3]) ?{?? ResultSets;?? selectsAll;?? Stringseach=null; ? seach=JOptionPane.showInputDialog(frame,"請(qǐng)輸入查找的學(xué)號(hào):"); ? 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));?? ? } }cat(yī)ch(HeadlessExceptione1){? ???e1.printStackTrace(); ? }catch(SQLExceptione1){ ??? JOptionPane.showMessageDialog(frame,"查找的學(xué)生記錄不存在:"); ???} ? ?sAll.isDisconnection();? ??}else?? ??JOptionPane.showMessageDialog(frame,"學(xué)號(hào)不能為空","錯(cuò)誤",JOptionPane.ERROR_MESSAGE); ? }??}? if(e.getSource()==button[4])? {? ?JScrollBarjsscroBar

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論