2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  JAVA程序設(shè)計 課程設(shè)計報告</p><p>  課 題: </p><p>  姓 名: </p><p>  學(xué) 號: </p><p>  同組姓名:

2、 </p><p>  專業(yè)班級: </p><p>  指導(dǎo)教師: </p><p>  設(shè)計時間:2011-2-22 </p><p>  目 錄</p><p

3、>  一、課程設(shè)計目的和意義2</p><p>  二、高考信息管理系統(tǒng)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計3</p><p>  三、主控界面的設(shè)計5</p><p><b>  四、系統(tǒng)設(shè)計10</b></p><p>  五、數(shù)據(jù)源連接說明14</p><p>  六、運行截圖及說明16<

4、/p><p><b>  七、小結(jié)19</b></p><p><b>  八、參考文獻20</b></p><p>  一、課程設(shè)計目的和意義</p><p>  高考成績的統(tǒng)計和查詢工作是非常重要的,高考成績面向的是全國范圍內(nèi)的考生,它涉及的面比較廣、數(shù)據(jù)量大,如果在設(shè)計上出現(xiàn)什么問題,都會在社

5、會上產(chǎn)生巨大的影響。在這里我們只是簡單地做一個高考成績查詢和統(tǒng)計的小系統(tǒng),并沒有考慮安全性等方面的的問題,主要目的是通過這個課程設(shè)計的學(xué)習(xí),對用JAVA開發(fā)數(shù)據(jù)庫系統(tǒng)有更為深刻的認(rèn)識。還有本次我們開發(fā)的是高考管理系統(tǒng)是以“3+2”為模型的。</p><p>  高考成績管理模塊主要實現(xiàn)以下功能:</p><p> ?。?)高考成績錄入。高考成績錄入包括成績的添加、修改、編輯和自動統(tǒng)計等功能

6、。目前高考主要包括兩個方面:文科和理科。文科成績錄入和理科成績錄入分別是兩個不同的模塊。</p><p> ?。?)高考成績查詢。成績查詢也分為理科查詢和文科查詢兩個部分,成績查詢部分最好是應(yīng)用準(zhǔn)考證查詢,這是因為準(zhǔn)考證號是全國統(tǒng)一并且唯一的,這樣就避免了同名同姓出現(xiàn)查詢重復(fù)的。如圖1所示,在這個系統(tǒng)中,包含4個模塊:理科成績錄入、理科成績查詢、文科成績錄入和文科成績查詢。其中,理科成績錄入和文科成績錄入、理科成

7、績查詢和文科成績查詢兩個模塊的設(shè)計思想基本一致。</p><p> ?。?)建立理(文)科成績錄入和查詢界面。建立一個理科數(shù)據(jù)庫表,用來記錄準(zhǔn)考證號(這個作為數(shù)據(jù)庫表的主鍵,惟一標(biāo)識)、學(xué)生考號和姓名。另外再建立一個理科數(shù)據(jù)庫表,用來記錄學(xué)生姓名、考號之外的其他信息,并記錄各科的成績。</p><p> ?。?)本系統(tǒng)查詢與成績設(shè)計。系統(tǒng)設(shè)計要求在考生查詢的同時自動進行統(tǒng)計工作,這是一種人

8、性化的需求,統(tǒng)計和查詢只需要一個事件代碼和一個執(zhí)行動作即可完成。</p><p>  高考系統(tǒng)模塊設(shè)計如下圖1所示:</p><p>  圖1 高考系統(tǒng)模塊設(shè)計</p><p>  二、高考信息管理系統(tǒng)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計</p><p>  文科數(shù)據(jù)表的設(shè)計與理科表的設(shè)計方式基本上一致,并且本人負(fù)責(zé)的是理科查詢部分,在這里就不詳細(xì)介紹文科的了,

9、下面介紹理科表詳細(xì)設(shè)計。</p><p><b>  1、理科主數(shù)據(jù)表</b></p><p>  建立理科主數(shù)據(jù)表,如表1所示。</p><p>  表1 理科主數(shù)據(jù)表的結(jié)構(gòu)</p><p>  數(shù)據(jù)庫結(jié)構(gòu)設(shè)計如圖2所示,該結(jié)構(gòu)說明在數(shù)據(jù)表的結(jié)構(gòu)創(chuàng)建時,設(shè)置了準(zhǔn)考證號為關(guān)鍵字段,即在cardID的左邊有一個鑰匙的

10、符號,是關(guān)鍵字的符號。另個添加了學(xué)生姓名,還設(shè)計了該考生的考前學(xué)校,這樣,當(dāng)查詢到該考號時就可以知道該生所在學(xué)校。</p><p><b>  2、理科從數(shù)據(jù)表</b></p><p>  從表的字段主要包括4個字段,即科目序號、考試成績、準(zhǔn)考證號和考試科目,如下表2所示。</p><p>  表2 理科從數(shù)據(jù)表</p>&l

11、t;p>  理科從數(shù)據(jù)表設(shè)計如圖3所示,該結(jié)構(gòu)說明在數(shù)據(jù)表的結(jié)構(gòu)創(chuàng)建時,設(shè)置了準(zhǔn)考證號和科目序號一起作為關(guān)鍵字段,即在cardID和subjectID的左邊有一個鑰匙的符號,是關(guān)鍵字的符號。另個添加了考試科目、考試成績和與考試科目對應(yīng)的字段。</p><p>  圖2 理科主數(shù)據(jù)表</p><p>  圖3 理科從數(shù)據(jù)表</p><p><b>

12、  三、主控界面的設(shè)計</b></p><p>  主控界面主要用來調(diào)用其他界面,這個界面的主要作用是顯示理科成績錄入、理科成績查詢、文科成績錄入和文科成績查詢4個界面,可以根據(jù)需要對其進行選擇。它的基本結(jié)構(gòu)如圖4所示。</p><p><b>  圖4 主控界面圖</b></p><p>  1、主控界面放入控件與窗體布局:<

13、;/p><p>  (1)在控件中放入一個jPanel,將布局方式改為xyLayout.</p><p> ?。?)在控件中放入4個jLabel:jLabel1、jLabel2、jLabel3、jLabel4,主要是用來設(shè)計整個界面的布局。</p><p> ?。?)在控件中放入4個jRadioButton:rdbInputScnAch(理科成績錄入)、rdbQuer

14、yScnAch(理科成績查詢)、rdbInputArtAch(文科成績錄入)、rdbQueryArtAch(文科成績查詢)。</p><p> ?。?)添加鼠標(biāo)單擊事件rdbInputScnAch_mouseClickd(MouseEvent e)、rdbQueryScnAch_mouseClickd(MouseEvent e)、rdbInputArtAch_mouseClickd(MouseEvent e)、r

15、dbQuerytArtAch_mouseClickd(MouseEvent e).</p><p>  2、主控界面設(shè)計具體代碼如下所示:</p><p>  package infomanagement;</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</

16、p><p>  import javax.swing.*;</p><p>  import com.borland.jbcl.layout.*;</p><p>  import javax.swing.border.*;</p><p>  public class Frame1 extends JFrame {</p><

17、;p>  private JPanel contentPane;</p><p>  private BorderLayout borderLayout1 = new BorderLayout();</p><p>  private JPanel jPanel1 = new JPanel();</p><p>  //設(shè)置jPanel1的布局方式為xylay

18、out,任意布局</p><p>  private XYLayout xYLayout1 = new XYLayout();</p><p>  private JLabel jLabel1 = new JLabel();</p><p>  private TitledBorder titledBorder1;</p><p>  pri

19、vate JLabel jLabel2 = new JLabel();</p><p>  private JLabel jLabel3 = new JLabel();</p><p>  private JLabel jLabel4 = new JLabel();</p><p><b>  //理科成績錄入</b></p>&

20、lt;p>  private JRadioButton rdbInputScnAch = new JRadioButton();</p><p><b>  //理科成績查詢</b></p><p>  private JRadioButton rdbQqueryScnAch = new JRadioButton();</p><p>&

21、lt;b>  //文科成績錄入</b></p><p>  private JRadioButton rdbInputArtAch = new JRadioButton();</p><p><b>  //文科成績查詢</b></p><p>  private JRadioButton rdbQueryArtAch = n

22、ew JRadioButton();</p><p><b>  //建立框架</b></p><p>  public Frame1() {</p><p>  enableEvents(AWTEvent.WINDOW_EVENT_MASK);</p><p><b>  try {</b><

23、;/p><p><b>  jbInit();</b></p><p><b>  }</b></p><p>  catch(Exception e) {</p><p>  e.printStackTrace();</p><p><b>  }</b>

24、</p><p><b>  }</b></p><p><b>  //組件初始化</b></p><p>  private void jbInit() throws Exception {</p><p>  contentPane = (JPanel) this.getContentPan

25、e();</p><p>  titledBorder1 = new TitledBorder("");</p><p>  contentPane.setLayout(borderLayout1);</p><p>  this.setSize(new Dimension(399, 288));</p><p>  th

26、is.setTitle("Frame Title");</p><p>  jPanel1.setLayout(xYLayout1);</p><p>  jLabel1.setFont(new java.awt.Font("Dialog", 0, 23));</p><p>  jLabel1.setForeground(C

27、olor.green);</p><p>  jLabel1.setBorder(titledBorder1);</p><p><b>  //輸入項目標(biāo)題</b></p><p>  jLabel1.setText(" 通用高考成績管理系統(tǒng)");</p><p>  //

28、設(shè)置jLabel2的邊界為etch</p><p>  jLabel2.setBorder(BorderFactory.createEtchedBorder());</p><p>  jLabel3.setText("請選擇");</p><p>  jLabel4.setBorder(BorderFactory.createEtchedBor

29、der());</p><p>  jLabel4.setToolTipText("");</p><p>  //將文字顏色設(shè)為紅色</p><p>  rdbInputScnAch.setForeground(Color.red);</p><p>  //rdbInputScnAch的標(biāo)題 理科成績錄入</p&

30、gt;<p>  rdbInputScnAch.setText("理科成績錄入");</p><p>  //加入jRadioButton事件,rdbInputScnAch(理科成績錄入)</p><p>  rdbInputScnAch.addMouseListener(new java.awt.event.MouseAdapter() {</p&

31、gt;<p>  //添加鼠標(biāo)單擊事件</p><p>  public void mouseClicked(MouseEvent e) {</p><p>  rdbInputScnAch_mouseClicked(e);</p><p><b>  }</b></p><p><b>  })

32、;</b></p><p>  //將文字顏色設(shè)為紅色</p><p>  rdbQqueryScnAch.setForeground(Color.red);</p><p>  //rdbQqueryScnAch的標(biāo)題 理科成績查詢</p><p>  rdbQqueryScnAch.setText("理科成績查詢&q

33、uot;);</p><p>  //加入jRadioButton事件 rdbQqueryScnAch("理科成績查詢")</p><p>  rdbQqueryScnAch.addMouseListener(new java.awt.event.MouseAdapter() {</p><p>  //添加鼠標(biāo)單擊事件</p>&

34、lt;p>  public void mouseClicked(MouseEvent e) {</p><p>  rdbQqueryScnAch_mouseClicked(e);</p><p><b>  }</b></p><p><b>  });</b></p><p>  //將文

35、字顏色設(shè)為紅色</p><p>  rdbInputArtAch.setForeground(Color.red);</p><p>  //rdbInputArtAch的標(biāo)題 文科成績錄入</p><p>  rdbInputArtAch.setText("文科成績錄入");</p><p>  //加入jRadioBu

36、tton事件 rdbInputArtAch("文科成績錄入")</p><p>  rdbInputArtAch.addMouseListener(new java.awt.event.MouseAdapter() {</p><p>  //添加鼠標(biāo)單擊事件</p><p>  public void mouseClicked(MouseEve

37、nt e) {</p><p>  rdbInputArtAch_mouseClicked(e);</p><p><b>  }</b></p><p><b>  });</b></p><p>  //將文字顏色設(shè)為紅色</p><p>  rdbQueryArtAch

38、.setForeground(Color.red);</p><p>  //rdbQueryArtAch的標(biāo)題 文科成績查詢</p><p>  rdbQueryArtAch.setText("文科成績查詢");</p><p>  //加入jRadioButton事件 rdbQueryArtAch("文科成績查詢")<

39、;/p><p>  rdbQueryArtAch.addMouseListener(new java.awt.event.MouseAdapter() {</p><p>  //添加鼠標(biāo)單擊事件</p><p>  public void mouseClicked(MouseEvent e) {</p><p>  rdbQueryArtAch

40、_mouseClicked(e);</p><p><b>  }</b></p><p><b>  });</b></p><p>  contentPane.add(jPanel1, BorderLayout.CENTER);</p><p>  //放置jLanel1在jPanel1中的位置

41、</p><p>  jPanel1.add(jLabel1, new XYConstraints(0, 0, 400, 47));</p><p>  //放置jLanel2在jPanel1中的位置</p><p>  jPanel1.add(jLabel2, new XYConstraints(1, 46, 398, 242));</p>

42、<p>  //放置rdbInputScnAch在jPanel1中的位置</p><p>  jPanel1.add(rdbInputScnAch, new XYConstraints(50, 130, -1, -1));</p><p>  //放置rdbQqueryScnAch在jPanel1中的位置</p><p>  jPanel1.add(r

43、dbQqueryScnAch, new XYConstraints(200, 130, -1, -1));</p><p>  //放置rdbInputArtAch在jPanel1中的位置</p><p>  jPanel1.add(rdbInputArtAch, new XYConstraints(50, 200, -1, -1));</p><p>  

44、//放置rdbQueryArtAch在jPanel1中的位置</p><p>  jPanel1.add(rdbQueryArtAch, new XYConstraints(200, 200, -1, -1));</p><p>  //放置jLanel3在jPanel1中的位置</p><p>  jPanel1.add(jLabel3, new XYCon

45、straints(3, 48, 92, 22));</p><p>  //放置jLanel4在jPanel1中的位置</p><p>  jPanel1.add(jLabel4, new XYConstraints(33, 94, 320, 165));</p><p><b>  }</b></p><p>  //

46、當(dāng)窗口關(guān)閉時,退出系統(tǒng)</p><p>  protected void processWindowEvent(WindowEvent e) {</p><p>  super.processWindowEvent(e);</p><p>  if (e.getID() == WindowEvent.WINDOW_CLOSING) {</p><

47、p>  System.exit(0);</p><p><b>  }</b></p><p><b>  }</b></p><p>  //顯示理科成績錄入界面</p><p>  void rdbInputScnAch_mouseClicked(MouseEvent e) {</p

48、><p>  //調(diào)用理科成績錄入界面對話框</p><p>  ScienceAchievement dlg = new ScienceAchievement();</p><p>  Dimension dlgSize = dlg.getPreferredSize();</p><p>  Dimension frmSize = getSiz

49、e();</p><p>  Point loc = getLocation();</p><p>  dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);</p><p>  dlg.setModal(

50、true);</p><p>  dlg.pack();</p><p>  dlg.show();</p><p><b>  }</b></p><p>  //顯示理科成績查詢界面</p><p>  void rdbQqueryScnAch_mouseClicked(MouseEvent

51、e) {</p><p>  //調(diào)用理科成績查詢界面對話框</p><p>  ScienceQuery dlg = new ScienceQuery();</p><p>  Dimension dlgSize = dlg.getPreferredSize();</p><p>  Dimension frmSize = getSize(

52、);</p><p>  Point loc = getLocation();</p><p>  dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);</p><p>  dlg.setModal(tr

53、ue);</p><p>  dlg.pack();</p><p>  dlg.show();</p><p><b>  }</b></p><p>  //顯示文科成績錄入界面</p><p>  void rdbInputArtAch_mouseClicked(MouseEvent e)

54、{</p><p>  //調(diào)用文科成績錄入界面對話框</p><p>  ArtsAchievement dlg = new ArtsAchievement();</p><p>  Dimension dlgSize = dlg.getPreferredSize();</p><p>  Dimension frmSize = getSi

55、ze();</p><p>  Point loc = getLocation();</p><p>  dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);</p><p>  dlg.setModal

56、(true);</p><p>  dlg.pack();</p><p>  dlg.show();</p><p><b>  }</b></p><p>  //顯示文科成績查詢界面</p><p>  void rdbQueryArtAch_mouseClicked(MouseEvent

57、e) {</p><p>  //調(diào)用文科成績查詢界面對話框</p><p>  ArtsQuery dlg = new ArtsQuery();</p><p>  Dimension dlgSize = dlg.getPreferredSize();</p><p>  Dimension frmSize = getSize();<

58、/p><p>  Point loc = getLocation();</p><p>  dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);</p><p>  dlg.setModal(true);&l

59、t;/p><p>  dlg.pack();</p><p>  dlg.show();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  四、系統(tǒng)設(shè)計</b></p><p>

60、;  據(jù)分工不同,此處只說明本人負(fù)責(zé)的理科成績查詢設(shè)計,文科成績錄入及查詢等其他功能部分由同組其他成員詳敘。</p><p>  1、理科成績查詢模塊窗體屬性事件的設(shè)計如下:</p><p> ?。?)加入jPanel1,并設(shè)布局方式威爾xyLayout1。</p><p> ?。?)加入兩個jLabel,對窗體進行整體布局。jLabel1的文本標(biāo)題設(shè)置為“理科成績

61、查詢”;jLabel2在整體布局時只是起到裝飾作用。</p><p> ?。?)加入一個jLabel3,文本標(biāo)題為“準(zhǔn)考證號”。</p><p> ?。?)加入一個jTextField,將其命名為jtfCardID.</p><p> ?。?)加入一個jButton,將其命名為jbnQuery,文本設(shè)置為“執(zhí)行查詢”。</p><p>  (

62、6)加入一個jLabel4,文本標(biāo)題設(shè)置為“總成績”。</p><p> ?。?)加入一個jdbTextField1。</p><p> ?。?)加入一個jButton,將其命名為jbnExit。</p><p> ?。?)加入一個數(shù)據(jù)庫控件database1,用于連接數(shù)據(jù)庫。</p><p>  (10)加入一個數(shù)據(jù)庫控件queryData

63、Set1,用于執(zhí)行SQL語句。</p><p> ?。?1)加入一個jdbTable1數(shù)據(jù)庫控件。 </p><p>  窗體屬性設(shè)計部分具體代碼如下:</p><p>  package infomanagement;</p><p>  import java.awt.*;</p><p>  import jav

64、ax.swing.*;</p><p>  import com.borland.jbcl.layout.*;</p><p>  import com.borland.dbswing.*;</p><p>  import com.borland.dx.sql.dataset.*;</p><p>  import java.awt.eve

65、nt.*;</p><p>  import com.borland.dx.dataset.*;</p><p>  public class ScienceQuery extends JDialog {</p><p>  private JPanel jPanel1 = new JPanel(); //添加新的面板</p><p> 

66、 private XYLayout xYLayout1 = new XYLayout();</p><p>  private JLabel jLabel1 = new JLabel(); //添加“理科成績查詢標(biāo)簽”</p><p>  private JLabel jLabel2 = new JLabel(); //添加一個標(biāo)簽,完成界面布局</p><p&

67、gt;  private JLabel jLabel3 = new JLabel(); //添加“準(zhǔn)考證號”標(biāo)簽</p><p>  private JTextField jtfCardID = new JTextField();</p><p>  private JButton jbnQuery = new JButton();</p><p>  priv

68、ate Database database1 = new Database();</p><p>  private QueryDataSet queryDataSet1 = new QueryDataSet(); //添加數(shù)據(jù)集queryDataSet1</p><p>  private JdbTable jdbTable1 = new JdbTable();</p>&

69、lt;p>  private JLabel jLabel4 = new JLabel(); //添加“總成績”標(biāo)簽</p><p>  private JLabel jLabel5 = new JLabel(); //添加“退出”標(biāo)簽</p><p>  private JButton jbnExit = new JButton();</p><p

70、>  private Column column1 = new Column();</p><p>  private Column column2 = new Column();</p><p>  private Column column3 = new Column();</p><p>  private Column column4 = new Co

71、lumn();</p><p>  private Column column5 = new Column();</p><p>  private JdbTextField jdbTextField1 = new JdbTextField();</p><p>  private QueryDataSet queryDataSet2 = new QueryData

72、Set();</p><p>  public ScienceQuery(Frame frame, String title, boolean modal) {</p><p>  super(frame, title, modal);</p><p><b>  try {</b></p><p><b> 

73、 jbInit();</b></p><p><b>  pack();</b></p><p><b>  }</b></p><p>  catch(Exception ex) {</p><p>  ex.printStackTrace();</p><p>

74、;<b>  }</b></p><p><b>  }</b></p><p>  public ScienceQuery() {</p><p>  this(null, "", false);</p><p><b>  }</b></p>

75、<p>  private void jbInit() throws Exception {</p><p>  //設(shè)置jPanel1為任意放置</p><p>  jPanel1.setLayout(xYLayout1);</p><p>  jLabel1.setFont(new java.awt.Font("Dialog",

76、 0, 23));</p><p>  jLabel1.setForeground(Color.magenta);</p><p>  jLabel1.setBorder(BorderFactory.createEtchedBorder());</p><p>  //設(shè)置文本標(biāo)題 理科成績查詢</p><p>  jLabel1.setTe

77、xt("理科成績查詢");</p><p>  jLabel2.setBorder(BorderFactory.createEtchedBorder());</p><p>  //設(shè)置文本標(biāo)題 準(zhǔn)考證號</p><p>  jLabel3.setText("準(zhǔn)考證號");</p><p><b&

78、gt;  //設(shè)置文本標(biāo)題</b></p><p>  jbnQuery.setText("執(zhí)行查詢");</p><p>  jbnQuery.addActionListener(new java.awt.event.ActionListener() {</p><p>  public void actionPerformed(A

79、ctionEvent e) {</p><p>  jbnQuery_actionPerformed(e);</p><p><b>  }</b></p><p><b>  });</b></p><p>  //連接數(shù)據(jù)庫(local)</p><p>  databa

80、se1.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:odbc:local","sa","",false, "sun.jdbc.odbc.JdbcOdbcDriver"));</p><p>  //設(shè)置文本標(biāo)題 執(zhí)行查詢</p&g

81、t;<p>  jLabel4.setText("總成績");</p><p>  //設(shè)置文本標(biāo)題 退出</p><p>  jbnExit.setText("退出");</p><p><b>  //添加退出事件</b></p><p>  jbnExit.ad

82、dActionListener(new java.awt.event.ActionListener() {</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  jbnExit_actionPerformed(e);</p><p><b>  }</b></p&

83、gt;<p><b>  });</b></p><p>  column1.setColumnName("NewColumn1");</p><p>  column1.setDataType(com.borland.dx.dataset.Variant.STRING);</p><p>  column1.

84、setPreferredOrdinal(4);</p><p>  column1.setServerColumnName("NewColumn1");</p><p>  column1.setSqlType(0);</p><p>  column2.setColumnName("subject");</p>

85、<p>  column2.setDataType(com.borland.dx.dataset.Variant.STRING);</p><p>  column2.setPrecision(50);</p><p>  column2.setPreferredOrdinal(0);</p><p>  column2.setSchemaName(&q

86、uot;dbo");</p><p>  column2.setTableName("science2");</p><p>  column2.setServerColumnName("subject");</p><p>  column2.setSqlType(12);</p><p>

87、  column3.setColumnName("subjectNameID");</p><p>  column3.setDataType(com.borland.dx.dataset.Variant.LONG);</p><p>  column3.setPreferredOrdinal(1);</p><p>  column3.setS

88、chemaName("dbo");</p><p>  column3.setTableName("science2");</p><p>  column3.setServerColumnName("subjectNameID");</p><p>  column3.setSqlType(-5);<

89、;/p><p>  column4.setColumnName("cardID");</p><p>  column4.setDataType(com.borland.dx.dataset.Variant.LONG);</p><p>  column4.setPreferredOrdinal(2);</p><p>  c

90、olumn4.setSchemaName("dbo");</p><p>  column4.setTableName("science2");</p><p>  column4.setServerColumnName("cardID");</p><p>  column4.setSqlType(-5)

91、;</p><p>  column5.setColumnName("achievement");</p><p>  column5.setDataType(com.borland.dx.dataset.Variant.STRING);</p><p>  column5.setPrecision(50);</p><p&g

92、t;  column5.setPreferredOrdinal(3);</p><p>  column5.setSchemaName("dbo");</p><p>  column5.setTableName("science2");</p><p>  column5.setServerColumnName("

93、achievement");</p><p>  column5.setSqlType(12);</p><p>  this.getContentPane().add(jPanel1, BorderLayout.CENTER);</p><p>  //在jPanel1中放置各個控件</p><p>  jPanel1.add(j

94、Label1, new XYConstraints(0, 1, 399, 53));</p><p>  jPanel1.add(jLabel3, new XYConstraints(10, 66, 80, 19));</p><p>  jPanel1.add(jtfCardID, new XYConstraints(97, 66, 80, 21));</p>&

95、lt;p>  jPanel1.add(jLabel2, new XYConstraints(0, 53, 398, 49));</p><p>  jPanel1.add(jbnQuery, new XYConstraints(300, 66, 90, 22));</p><p>  jPanel1.add(jdbTable1, new XYConstrai

96、nts(0, 100, 398, 154));</p><p>  jPanel1.add(jLabel4, new XYConstraints(10, 268, 80, 20));</p><p>  jPanel1.add(jbnExit, new XYConstraints(300, 268, 90, 20));</p><p>  jPane

97、l1.add(jdbTextField1, new XYConstraints(100, 268, 90, 20));</p><p><b>  }</b></p><p><b>  //定義退出方法</b></p><p>  void cancel(){</p><p>  dispo

98、se() ;</p><p><b>  }</b></p><p><b>  //退出事件</b></p><p>  void jbnExit_actionPerformed(ActionEvent e) {</p><p>  cancel();}</p><p>&

99、lt;b>  }</b></p><p>  2、成績查詢流程圖如下:</p><p>  圖5 理科成績查詢流程圖</p><p><b>  五、數(shù)據(jù)源連接說明</b></p><p>  在SQL Server 里創(chuàng)建數(shù)據(jù)庫和表后,前臺界面設(shè)計好,就開始前后臺數(shù)據(jù)源的連接了。我們采用的是ODBC數(shù)

100、據(jù)源連接,具體做法是在電腦控制面板中點擊“管理工具”—>“數(shù)據(jù)源(ODBC)”,彈出數(shù)據(jù)源管理器對話框,選擇系統(tǒng)DNS面板,配置SQL sever DNS,如圖6所示,接著一步一步選擇相應(yīng)數(shù)據(jù)庫等簡單步驟,最后測試數(shù)據(jù)源,確定即可,見圖7。</p><p><b>  圖 6 配置數(shù)據(jù)源</b></p><p><b>  圖7 測試數(shù)據(jù)源</b

101、></p><p><b>  六、運行截圖及說明</b></p><p>  本人負(fù)責(zé)理科查詢,此處只貼出理科查詢運行情況,其他功能部分運行截圖略去。</p><p>  理科成績查詢?nèi)缦聢D15:</p><p>  圖15 理科成績查詢截圖</p><p>  上述查詢結(jié)果由輸入準(zhǔn)考證號

102、,點擊“執(zhí)行查詢”觸發(fā)數(shù)據(jù)集執(zhí)行數(shù)據(jù)庫里查詢,主要方法代碼如下:</p><p><b>  //執(zhí)行查詢語句</b></p><p>  void jbnQuery_actionPerformed(ActionEvent e) {</p><p><b>  //進行數(shù)據(jù)查詢</b></p><p&g

103、t;<b>  try{</b></p><p>  queryDataSet1 = new QueryDataSet();</p><p>  queryDataSet2 = new QueryDataSet();</p><p><b>  //獲得準(zhǔn)考證號</b></p><p>  int

104、cardID1 = Integer.parseInt(jtfCardID.getText().trim());</p><p><b>  //查詢學(xué)習(xí)成績</b></p><p>  queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELEC

105、T science2.cardID,science2.subject,science2.achievement,science2.subjectNameID " +</p><p>  "FROM info.dbo.science2 where science2.cardID = '"+cardID1+"'", null, true, Load.A

106、LL));</p><p>  //加入到j(luò)dbTable1中</p><p>  jdbTable1.setDataSet(queryDataSet1);</p><p>  //執(zhí)行sum語句,獲得成績總分</p><p>  queryDataSet2.setQuery(new com.borland.dx.sql.dataset.Qu

107、eryDescriptor(database1,"SELECT SUM(achievement) AS SUM_achievement FROM info.dbo.science2\n" +"where science2.cardID ='"+cardID1+"'", null, true, Load.ALL));</p><p>  /

108、/在jdbTextField1中加入一列</p><p>  jdbTextField1.setColumnName("SUM_achievement");</p><p>  //把數(shù)據(jù)集加入到j(luò)dbTextField1中</p><p>  jdbTextField1.setDataSet(queryDataSet2);</p>

109、<p><b>  }</b></p><p>  catch(Exception sql){</p><p>  JOptionPane.showMessageDialog(this,"準(zhǔn)考證不存在,請重試");</p><p>  sql.printStackTrace();</p><p

110、><b>  }</b></p><p><b>  }</b></p><p>  其中數(shù)據(jù)集QueryDataSet()在數(shù)據(jù)庫里的操作具體實現(xiàn)如下:</p><p>  package infomanagement;</p><p>  import com.borland.dx.dat

111、aset.*;</p><p>  public class QueryDataSet1RowIterator {</p><p>  private RowIterator rowIterator = new RowIterator();</p><p>  public QueryDataSet1RowIterator() {}</p><p

112、>  void bind(DataSet dataset) throws DataSetException {</p><p>  rowIterator.bind(dataset);</p><p><b>  }</b></p><p>  void bind(ReadRow readRow) throws DataSetExcept

113、ion {</p><p>  rowIterator.bind(readRow);</p><p><b>  }</b></p><p>  void bind(ReadWriteRow readWriteRow) throws DataSetException {</p><p>  rowIterator.bin

114、d(readWriteRow);</p><p><b>  }</b></p><p>  void bind(RowIterator ri) throws DataSetException {</p><p>  rowIterator.bind(ri);</p><p><b>  }</b>

115、</p><p><b>  //獲得第一條記錄</b></p><p>  public void first() throws DataSetException {</p><p>  rowIterator.first();</p><p><b>  }</b></p><

116、;p>  //獲得最后一條記錄</p><p>  public void last() throws DataSetException {</p><p>  rowIterator.last();</p><p><b>  }</b></p><p><b>  //獲得下一條記錄</b>

117、;</p><p>  public boolean next() throws DataSetException {</p><p>  return rowIterator.next();</p><p><b>  }</b></p><p><b>  //獲得上一條記錄</b></p

118、><p>  public boolean prior() throws DataSetException {</p><p>  return rowIterator.prior();</p><p><b>  }</b></p><p><b>  //獲得準(zhǔn)考證號</b></p>

119、<p>  public int getCardID() throws DataSetException { </p><p>  return rowIterator.getInt("cardID");</p><p><b>  }</b></p><p><b>  //設(shè)置準(zhǔn)考證號</b&

120、gt;</p><p>  public void setCardID(int value) throws DataSetException { </p><p>  rowIterator.setInt("cardID", value);</p><p><b>  }</b></p><p>&l

121、t;b>  //獲得學(xué)生姓名</b></p><p>  public String getStudentName() throws DataSetException { </p><p>  return rowIterator.getString("studentName");</p><p><b>  }&l

122、t;/b></p><p><b>  //設(shè)置學(xué)生姓名</b></p><p>  public void setStudentName(String value) throws DataSetException {</p><p>  rowIterator.setString("studentName", val

123、ue);</p><p><b>  } </b></p><p><b>  //獲得學(xué)校名</b></p><p>  public String getSchoolBefore() throws DataSetException { </p><p>  return rowIterator.

124、getString("schoolBefore");</p><p><b>  } </b></p><p><b>  //設(shè)置學(xué)校</b></p><p>  public void setSchoolBefore(String value) throws DataSetException {&l

125、t;/p><p>  rowIterator.setString("schoolBefore", value);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  七、小結(jié)</b></p>

溫馨提示

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

評論

0/150

提交評論