數(shù)據(jù)庫系統(tǒng)原理醫(yī)藥管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  《數(shù)據(jù)庫系統(tǒng)原理》課程設(shè)計(jì)報(bào)告</p><p>  課程設(shè)計(jì)題目:醫(yī)藥管理信息系統(tǒng)</p><p> 班  級(jí):10級(jí)計(jì)算機(jī)科學(xué)與技術(shù)(1)班             </p><p> 姓  名:</p><p> 學(xué)  號(hào):</p><p> 任課教師:</p><p>

2、; 開始時(shí)間:2012年05月02日         </p><p> 結(jié)束時(shí)間:2012年06月10日         </p><p><b>  目錄</b></p><p><b>  第一章 概述2</b></p><p>  1.1 項(xiàng)目背景2</p><p

3、>  1.2 編寫目的2</p><p>  1.3 軟件定義2</p><p>  1.4 開發(fā)環(huán)境及相關(guān)要求2</p><p>  第二章 需求分析2</p><p>  2.1 信息要求2</p><p>  2.2 處理要求2</p><p>  2.3 安全性與

4、完整性要求4</p><p>  第三章 概念結(jié)構(gòu)設(shè)計(jì)4</p><p>  第四章 邏輯結(jié)構(gòu)設(shè)計(jì)5</p><p>  第五章 主要模塊的設(shè)計(jì)以及代碼6</p><p>  5.1 設(shè)計(jì)思路6</p><p>  5.2 主要代碼6</p><p>  5.2.1查詢模塊主要代

5、碼6</p><p>  5.2.2 刪除模塊主要代碼7</p><p>  5.2.3 修改模塊主要代碼9</p><p>  5.2.4 瀏覽模塊主要代碼9</p><p>  5.2.5 打印主要代碼10</p><p>  5.2.6 添加模塊主要代碼14</p><p> 

6、 5.3 系統(tǒng)制作簡(jiǎn)介16</p><p><b>  第六章 總結(jié)16</b></p><p>  6.1開發(fā)過程中遇到的問題以及解決方法16</p><p>  6.2開發(fā)的體會(huì)17</p><p>  第七章 參考文獻(xiàn)17</p><p><b>  概論</b&g

7、t;</p><p><b>  1.1項(xiàng)目背景</b></p><p>  設(shè)計(jì)本系統(tǒng),模擬醫(yī)藥超市的部分管理功能。藥品由專門的采購人員從醫(yī)藥經(jīng)銷商處購進(jìn)醫(yī)藥超市,并將藥品信息記錄入庫,顧客從超市購買藥品需填寫相關(guān)個(gè)人信息,每次售藥需登記經(jīng)辦人(醫(yī)藥超市員工,即銷售人員)的信息,以及所售藥品的信息。</p><p><b>  1.

8、2編寫目的</b></p><p>  為了增強(qiáng)自身的編程能力,提高對(duì)數(shù)據(jù)庫學(xué)習(xí)的興趣,理解到要作為程序員應(yīng)該具備的素質(zhì)。</p><p><b>  1.3軟件定義</b></p><p>  本軟件僅供學(xué)習(xí)交流,不做他用,而且由于作者能力有限本管理系統(tǒng)難免有bug,在此特發(fā)表聲明。</p><p><

9、;b>  1.4開發(fā)環(huán)境</b></p><p>  Winxp以上操作系統(tǒng),并且裝有SQL server2000或以上的任意版本(裝好SP3或SP4補(bǔ)?。€要裝有JDK1.6或JDK1.7,此外要有能夠運(yùn)行java程序的軟件(譬如Eclipse、Myeclipse等)。</p><p><b>  需求分析</b></p><

10、p><b>  2.1信息要求</b></p><p>  通過本系統(tǒng)用戶可以從數(shù)據(jù)庫中獲得相關(guān)的藥品信息和顧客的個(gè)人信息以及購買的藥品信息,還有藥店相關(guān)人員的情況。數(shù)據(jù)庫中需要存儲(chǔ)顧客信息表,經(jīng)辦人信息表、藥品信息表、賬戶信息表。</p><p><b>  2.2處理要求</b></p><p>  此系統(tǒng)功能分

11、為八大功能模塊,主要有:</p><p> ?、拧靶畔⒉樵儭惫δ苣K</p><p><b>  ①查詢顧客信息</b></p><p><b> ?、诓樵兘?jīng)辦人信息</b></p><p><b> ?、?查詢藥品信息</b></p><p>  ⑵“

12、信息錄入”功能模塊</p><p><b> ?、黉浫腩櫩托畔?lt;/b></p><p><b> ?、阡浫虢?jīng)辦人信息</b></p><p><b> ?、垆浫胨幤沸畔?lt;/b></p><p>  ⑶“信息刪除”功能模塊</p><p><b>

13、; ?、賱h除顧客信息</b></p><p><b> ?、趧h除經(jīng)辦人信息</b></p><p><b>  ③刪除藥品信息</b></p><p> ?、取靶畔⑿薷摹惫δ苣K</p><p><b> ?、傩薷念櫩托畔?lt;/b></p><p&

14、gt;<b> ?、谛薷慕?jīng)辦人信息</b></p><p><b>  ③修改藥品信息</b></p><p> ?、伞靶畔g覽”功能模塊</p><p><b> ?、贋g覽顧客信息</b></p><p><b>  ②瀏覽經(jīng)辦人信息</b></p

15、><p><b>  ③瀏覽藥品信息</b></p><p> ?、省皵?shù)據(jù)報(bào)表”功能模塊</p><p><b>  ①顧客信息報(bào)表</b></p><p><b> ?、诮?jīng)辦人信息報(bào)表</b></p><p><b>  ③藥品信息報(bào)表</

16、b></p><p> ?、擞脩艄芾砼c用戶登陸功能模塊</p><p>  系統(tǒng)可根據(jù)需要添加、刪除用戶,并可對(duì)已有的用戶信息進(jìn)行修改操作;在添加新用戶時(shí),可定義其操作權(quán)限(查詢、更新、瀏覽、報(bào)表等權(quán)限);用戶密碼可進(jìn)行隨時(shí)修改;各種不同身份的用戶登陸系統(tǒng)后,可享有不同的系統(tǒng)操作權(quán)限。</p><p> ?、滔到y(tǒng)幫助及使用說明功能模塊</p>&

17、lt;p>  為用戶提供必要的在線幫助功能和簡(jiǎn)要的操作使用說明。</p><p>  下圖為本管理系統(tǒng)的大致功能模塊圖</p><p>  2.3安全性與完整性要求</p><p>  本系統(tǒng)由于是供學(xué)習(xí)交流用的,所以在數(shù)據(jù)庫的安全性方面做的不是特別嚴(yán)密,對(duì)于藥品的信息可以公開查詢,而系統(tǒng)中的賬戶的信息則不對(duì)外公開。一般的賬戶時(shí)沒辦法查看其他賬戶的信息(除管理

18、員外)。這些都是根據(jù)不同賬戶設(shè)定的,安全性可以跟據(jù)情況作恰當(dāng)?shù)母膭?dòng)。至于完整性也是一樣,可以根據(jù)實(shí)際情況修改數(shù)據(jù)庫的完整性約束條件,以此來滿足用戶的要求。</p><p><b>  概念結(jié)構(gòu)設(shè)計(jì)</b></p><p>  下圖為根據(jù)本系統(tǒng)而做的基本E-R圖</p><p><b>  邏輯結(jié)構(gòu)設(shè)計(jì)</b></p&

19、gt;<p>  把E-R圖轉(zhuǎn)為關(guān)系表如下:</p><p>  顧客(顧客號(hào),顧客名,顧客性別,顧客年齡,顧客住址,顧客電話,顧客癥狀,藥品號(hào),經(jīng)辦人號(hào),日期,顧客備注)</p><p>  藥品(藥品號(hào),藥品名稱,藥品服用方法,藥品功效)</p><p>  經(jīng)辦人(經(jīng)辦人號(hào),經(jīng)辦人姓名,經(jīng)辦人電話,經(jīng)辦人備注)</p><p&

20、gt;  主要模塊的設(shè)計(jì)以及代碼</p><p>  5.1總體模塊設(shè)計(jì)思路</p><p><b>  5.2關(guān)鍵代碼:</b></p><p>  5.2.1 查詢模塊部分主要代碼:</p><p> ?。?)c=new Choice();</p><p>  String[] selec

21、tname={"cno","cname","csex","cage","caddress","cphone","csymptom","mno","ano","cdate","cremark"};</p>&

22、lt;p>  for(int i=0;i<selectname.length;i++)</p><p>  c.add(selectname[i]);</p><p>  jl=new JLabel("請(qǐng)選擇查詢類型:");</p><p>  b1=new JButton("查詢");</p>&l

23、t;p>  b1.addActionListener(this);</p><p>  //=========================================監(jiān)聽查詢按鈕</p><p>  (2)public void actionPerformed(ActionEvent e){</p><p>  if(e.getSource()==b1

24、){</p><p>  String select=new String(c.getSelectedItem()).trim();//下拉選擇要查詢的條件</p><p>  String input=tf.getText().trim();//從文本框中獲取輸入的內(nèi)容</p><p>  String sql="use market select *

25、from client where "+""+select+""+"="+"'"+input+"'";//寫出sql語句</p><p>  System.out.println("ssfsfsfs=="+sql);</p><p>  cm=n

26、ew ClientModel(sql);// 執(zhí)行sql查詢,并且更新table,顯示結(jié)果</p><p>  table.setModel(cm);</p><p><b>  }</b></p><p>  5.2.2刪除模塊的主要部分代碼:</p><p>  if(e.getSource()==b3){//---

27、-----------------=========================---------</p><p>  int rownum=this.table.getSelectedRow();</p><p>  if(rownum==-1){</p><p>  JOptionPane.showMessageDialog(this, "請(qǐng)選一行

28、");</p><p><b>  return ;</b></p><p><b>  }</b></p><p>  // System.out.println("西歐 "+rownum);</p><p>  num=(String)cm.getValueA

29、t(rownum, 0);//----------------------------獲取當(dāng)前行的cno------------</p><p>  // System.out.println(num);</p><p><b>  try{</b></p><p>  Class.forName("com.microsoft.

30、jdbc.sqlserver.SQLServerDriver");</p><p>  con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433; databaseName=market","sa","1234");</p><p

31、>  String sql="use market delete from client where cno="+""+num+"";</p><p>  stmt=con.createStatement();</p><p>  stmt.executeUpdate(sql);</p><p>  

32、}catch (ClassNotFoundException e1) {</p><p>  e1.printStackTrace();</p><p>  JOptionPane.showMessageDialog(null, "驅(qū)動(dòng)未找到!");</p><p><b>  }</b></p><p&

33、gt;  catch (SQLException e1) {</p><p>  e1.printStackTrace();</p><p>  JOptionPane.showMessageDialog(null, "應(yīng)用軟件錯(cuò)誤");</p><p>  } finally{</p><p><b>  tr

34、y {</b></p><p>  if (rs != null) {</p><p>  rs.close(); // 關(guān)閉命令對(duì)象連接</p><p>  rs = null;</p><p><b>  }</b></p><p>  if (stmt != null) {<

35、;/p><p>  stmt.close();</p><p>  stmt = null;</p><p><b>  }</b></p><p>  if (con != null) {</p><p>  con.close(); // 關(guān)閉數(shù)據(jù)庫連接</p><p> 

36、 con = null;</p><p><b>  }</b></p><p>  } catch (SQLException e1) {</p><p>  e1.printStackTrace();</p><p><b>  }</b></p><p><b&g

37、t;  }</b></p><p>  cm=new ClientModel();</p><p>  table.setModel(cm);</p><p><b>  }</b></p><p>  5.2.3修改模塊的主要代碼:</p><p><b>  try {&

38、lt;/b></p><p>  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");</p><p>  con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433; databaseNa

39、me=market","sa","1234");</p><p>  stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);</p><p>  rs = stmt.executeQuery(sql);</p>

40、<p>  while (rs.next()) {</p><p>  Vector<String> temp = new Vector<String>();</p><p>  temp.add(rs.getString(1));</p><p>  temp.add(rs.getString(2));</p>

41、<p>  temp.add(rs.getString(3));</p><p>  temp.add(String.valueOf(rs.getInt(4)));</p><p>  temp.add(rs.getString(5));</p><p>  temp.add(rs.getString(6));</p><p>  

42、temp.add(rs.getString(7));</p><p>  temp.add(rs.getString(8));</p><p>  temp.add(rs.getString(9));</p><p>  temp.add(String.valueOf(rs.getDate(10)));</p><p>  temp.add(

43、rs.getString(11));</p><p>  a.add(temp);</p><p><b>  }</b></p><p><b>  }</b></p><p>  5.2.4瀏覽模塊主要代碼:</p><p><b>  try{</b&g

44、t;</p><p>  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");</p><p>  con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433; databaseName=mark

45、et","sa","1234");</p><p>  String sql="use market delete from client where cno="+""+num+"";</p><p>  stmt=con.createStatement();</p>

46、<p>  stmt.executeUpdate(sql);</p><p>  }catch (ClassNotFoundException e1) {</p><p>  e1.printStackTrace();</p><p>  JOptionPane.showMessageDialog(null, "驅(qū)動(dòng)未找到!");&l

47、t;/p><p><b>  }</b></p><p>  catch (SQLException e1) {</p><p>  e1.printStackTrace();</p><p>  JOptionPane.showMessageDialog(null, "SQL語句執(zhí)行錯(cuò)誤");</

48、p><p><b>  }</b></p><p>  5.2.5打印報(bào)表:</p><p>  public class FileChose extends JFrame {</p><p>  te JFileChooser chooser = null;</p><p>  private Fi

49、leNameExtensionFilter filter = null;</p><p>  int returnVal;</p><p>  String[] NameA = {"編號(hào) ","姓名 ","性別 ","電話 ","備注 "};</p><p>  St

50、ring[] NameM = {"編號(hào) ","名稱 ","服用方法 ","功效 "};</p><p>  String[] NameC = {"編號(hào) ","姓名 ","性別 ","年齡 ","住址 ","電話 ",

51、"癥狀 ","已購藥品 ","經(jīng)辦人 " , "錄入時(shí)期" , "備注 "};</p><p>  /*ClientOne client;</p><p>  AttnOne agency;</p><p>  MedicineOne medi;*/</p&g

52、t;<p>  ClientModel cclient = new ClientModel();</p><p>  AgencyModel aagency = new AgencyModel();</p><p>  MedicineModel mmedi = new MedicineModel();</p><p>  public FileCh

53、ose(int select) /*throws MalformedURLException*/{</p><p>  //System.out.println("123");</p><p><b>  try{</b></p><p>  //UIManager.setLookAndFeel( UIManager.get

54、SystemLookAndFeelClassName());</p><p>  //Font font = new Font("Courier",Font.BOLD,20);</p><p>  }catch(Exception e){</p><p>  e.printStackTrace();</p><p>

55、<b>  }</b></p><p>  FileNameExtensionFilter filter = new FileNameExtensionFilter(</p><p>  "xls文件", "xls");</p><p>  chooser = new JFileChooser();<

56、;/p><p>  chooser.setFileFilter(filter);</p><p>  chooser.setSelectedFile(new File("123.xls"));</p><p>  int returnVal = chooser.showSaveDialog(this);</p><p>  i

57、f(returnVal == JFileChooser.APPROVE_OPTION){</p><p>  String path = chooser.getCurrentDirectory().getPath()+chooser.getSelectedFile().getName();</p><p>  File dataFile = new File(path);</

58、p><p><b>  try{</b></p><p>  int length = 0 ;</p><p>  PrintWriter pw = new PrintWriter(dataFile);</p><p>  if(select == 1){</p><p>  for(int i =

59、0 ; i < 11 ; i++){</p><p>  pw.write(NameC[i]);</p><p>  pw.write("\t");</p><p><b>  }</b></p><p>  length = cclient.getRowCount();</p>

60、<p>  pw.write("\n");</p><p>  for(int i = 0 ; i < length ; i++){</p><p>  for(int j = 0 ; j < 11 ; j++){</p><p>  pw.write(cclient.getValueAt(i, j).toString())

61、;</p><p>  pw.write("\t");</p><p><b>  }</b></p><p>  pw.write("\n");</p><p><b>  }</b></p><p><b>  }<

62、/b></p><p>  if(select == 2){</p><p>  for(int i = 0 ; i < 5 ; i++){</p><p>  pw.write(NameA[i]);</p><p>  pw.write("\t");</p><p><b>

63、  }</b></p><p>  length = aagency.getRowCount();</p><p>  pw.write("\n");</p><p>  for(int i = 0 ; i < length ; i++){</p><p>  for(int j = 0 ; j <

64、 5 ; j++){</p><p>  pw.write(aagency.getValueAt(i, j).toString());</p><p>  pw.write("\t");</p><p><b>  }</b></p><p>  pw.write("\n");&l

65、t;/p><p><b>  }</b></p><p><b>  }</b></p><p>  if(select == 3){</p><p>  for(int i = 0 ; i < 4 ; i++){</p><p>  pw.write(NameM[i]);

66、</p><p>  pw.write("\t");</p><p><b>  }</b></p><p>  length = mmedi.getRowCount();</p><p>  pw.write("\n");</p><p>  for(in

67、t i = 0 ; i < length ; i++){</p><p>  for(int j = 0 ; j < 4 ; j++){</p><p>  pw.write(mmedi.getValueAt(i, j).toString());</p><p>  pw.write("\t");</p><p&g

68、t;<b>  }</b></p><p>  pw.write("\n");</p><p><b>  }</b></p><p>  pw.close();</p><p>  }catch(FileNotFoundException e){</p>

69、<p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p>  5.2.6 添加模塊主要代碼:</p><p>  public void actionPerformed(ActionEvent e

70、){</p><p>  if(e.getSource()==b1){</p><p><b>  try{</b></p><p>  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");</p><p>  aConnecti

71、on = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433; databaseName=market","sa","1234");</p><p>  //pas = aConnection.createStatement(ResultSet.TYPE_SCR

72、OLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);</p><p>  String c1= t1.getText();</p><p>  String c2=t2.getText();</p><p>  String c3=ch.getSelectedItem().trim();</p><p>  i

73、nt c4=Integer.parseInt(t4.getText().trim());</p><p>  String c5=t5.getText();</p><p>  String c6=t6.getText();</p><p>  String c7=t7.getText();</p><p>  c8=t8.getText()

74、;</p><p>  c9=t9.getText();</p><p>  String c10=t0.getText();</p><p>  String c11=t11.getText();</p><p>  String sql="use market insert into client values("+&

75、quot;'"+c1+"'"+","+"'"+c2+"'"+","+"'"+c3+"'"+","+"'"+c4+"'"+","+"

76、9;"+c5+"'"+","+"'"+c6+"'"+","+"'"+c7+"'"+","+"'"+c8+"'"+","+"'"

77、+c9+"'"+","+"'"+c10+"'"+","+"'"+c11+"'"+")";</p><p>  pas=aConnection.prepareStatement(sql);</p><

78、;p>  pas.executeUpdate();</p><p>  frame.dispose();//================================關(guān)閉添加窗口</p><p>  new Clienttable2();</p><p><b>  }</b></p><p>  catch

79、 (SQLException e1) {</p><p>  if(Integer.parseInt(c9)>6){</p><p>  e1.printStackTrace();</p><p>  JOptionPane.showMessageDialog(frame,"注意沒有這個(gè)經(jīng)辦人");</p><p>

80、<b>  }</b></p><p>  if(Integer.parseInt(c8)>18){</p><p>  e1.printStackTrace();</p><p>  JOptionPane.showMessageDialog(null, "抱歉,沒有這藥品");</p><p&g

81、t;<b>  }</b></p><p>  } catch (ClassNotFoundException e1) {</p><p>  // TODO Auto-generated catch block</p><p>  e1.printStackTrace();</p><p>  JOptionPane.

82、showMessageDialog(null, "驅(qū)動(dòng)未找到!");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  5.3系統(tǒng)制作簡(jiǎn)介</b></p><p>  本系統(tǒng)采用的是Elipse作為前

83、臺(tái)開發(fā)軟件,通過java的JDBC和數(shù)據(jù)庫sql語句連接SQL Server2000。在這之前要先安裝好SQLServer SP3或SP4補(bǔ)丁,并且要加載好sql驅(qū)動(dòng)程序,最好通過一系列的sql語句和JDBC的executeupdate和executeQurty來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的增刪改和查詢等操作。</p><p><b>  總結(jié)</b></p><p>  6.1開

84、發(fā)過程中遇到的問題以及解決方法</p><p>  一開始著手因?yàn)橛玫氖莣in7操作系統(tǒng),所以在安裝補(bǔ)丁和驅(qū)動(dòng)時(shí)就遇到了不少的問題,不過幸得有百度幫忙,才順利弄好。之后在連接數(shù)據(jù)庫時(shí),也連了很多次都不行,生成報(bào)表功能也是弄了很久,后來在同學(xué)的幫助下完成了。</p><p><b>  6.2開發(fā)的體會(huì)</b></p><p>  從這次制作mi

85、ni版的管理系統(tǒng),我深刻的認(rèn)識(shí)到再看發(fā)項(xiàng)目前要先做好規(guī)劃,按照軟件的開發(fā)過程詳細(xì)的做好準(zhǔn)備工作。譬如在選擇前臺(tái)的運(yùn)行軟件上優(yōu)先選擇Eclipse,建好相關(guān)的數(shù)據(jù)庫及相關(guān)的數(shù)據(jù)表約束條件。之后認(rèn)真分析怎樣用JDBC連接SQLServer 2000和相關(guān)功能模塊的實(shí)現(xiàn)。在時(shí)間上我盡量用實(shí)驗(yàn)課的時(shí)間和平時(shí)的業(yè)余時(shí)間來完成。如果遇到有什么不同的地方就請(qǐng)教同學(xué)、老師還有自己翻書、上網(wǎng)查資料。</p><p><b&g

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論