學生選課信息管理系統(tǒng)課程設計報告_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  數據庫課程設計報告</b></p><p>  -------學生信息管理系統(tǒng)</p><p><b>  一、系統(tǒng)開發(fā)平臺</b></p><p>  1.1 題目:學生選課管理信息系統(tǒng)</p><p>  (1) 要求系統(tǒng)可以準確地記錄和查詢學生信息,包括學生的姓名

2、、單位、年齡、性別以及身份證號碼等。</p><p>  (2) 要求系統(tǒng)可以準確地記錄學生地每一次獎懲情況。</p><p>  (3) 系統(tǒng)可以對學校的院系情況進行管理,包括設置學院名稱、修改某學院某專業(yè)方向的名稱等。</p><p>  (4) 系統(tǒng)應該可以對基礎數據進行維護。</p><p>  (5)系統(tǒng)能夠對開設的課程進行管理&l

3、t;/p><p>  (6)學生選課管理、考試(登記分數)</p><p>  (7)系統(tǒng)還應該提供強大數據統(tǒng)計、查詢、報表生成以及打印等功能。</p><p><b>  (8)用戶權限管理</b></p><p><b>  (9)異常處理</b></p><p>  1.2

4、 開發(fā)語言:Java</p><p>  用Java做設計流程清晰、結構合理,有良好的可擴充性和耦合性。</p><p>  1.3 開發(fā)工具:Eclipse</p><p>  1.4 數據庫: MySQL</p><p>  1.5 操作系統(tǒng):Microsoft Windows 8.1</p><p><b&

5、gt;  二、數據庫規(guī)劃</b></p><p><b>  2.1 任務陳述</b></p><p>  (1) 要求系統(tǒng)可以準確地記錄和查詢學生信息,包括學生的姓名、單位、年齡、性別以及身份證號碼等。</p><p>  (2) 要求系統(tǒng)可以準確地記錄學生地每一次獎懲情況。</p><p>  (3) 系

6、統(tǒng)可以對學校的院系情況進行管理,包括設置學院名稱、修改某學院某專業(yè)方向的名稱等。</p><p>  (4) 系統(tǒng)應該可以對基礎數據進行維護。</p><p>  (5)系統(tǒng)能夠對開設的課程進行管理</p><p>  (6)學生選課管理、考試(登記分數)</p><p>  (7)系統(tǒng)還應該提供強大數據統(tǒng)計、查詢、報表生成以及打印等功能。&

7、lt;/p><p><b>  (8)用戶權限管理</b></p><p><b>  (9)異常處理</b></p><p><b>  2.2 任務目標</b></p><p>  本系統(tǒng)主要可以實現以下任務目標:</p><p>  1、系統(tǒng)可以準確地

8、記錄和查詢學生信息,包括學生的姓名、專業(yè)、生日、性別以及身份證號碼等,可以準確地記錄學生的每一次獎懲情況。</p><p>  2、系統(tǒng)可以對學校的院系情況進行管理,包括添加查詢修改刪除學院信息、添加查詢修改刪除某學院某專業(yè)信息等。</p><p>  3、系統(tǒng)可以準確地記錄和查詢教師信息,包括教師的姓名、專業(yè)、生日、性別以及身份證號碼等。</p><p>  4、

9、系統(tǒng)可以對開設的課程進行管理,包括課程信息的查詢、添加、修改和刪除,選課階段、已開課、統(tǒng)計成績、公布成績三種狀態(tài)。</p><p>  5、系統(tǒng)可以對基礎數據進行維護。</p><p>  6、學生選課管理,學生只可以注銷在選課階段的課程,處于已開課、統(tǒng)計成績、公布成績的課程不可以注銷。</p><p>  7、系統(tǒng)可以提供強大數據統(tǒng)計、查詢、報表生成以及打印等功能

10、。</p><p>  8、用戶權限管理:本系統(tǒng)一共設置了三種用戶身份,分別是管理員用戶、教師用戶和學生用戶。</p><p>  院系管理員可以管理增改刪查所有學院情況、課程、老師、學生情況,修改密碼</p><p>  教師用戶擁有修改、查看那自己所授課程和錄入成績的權限,修改密碼</p><p>  學生用戶則擁有查詢學籍信息、查詢課程

11、信息、選課、注銷選課和查詢成績信息的權限。</p><p><b>  9、異常處理。</b></p><p><b>  三、系統(tǒng)定義</b></p><p><b>  3.1 系統(tǒng)邊界</b></p><p>  系統(tǒng)邊界描述數據庫系統(tǒng)和企業(yè)信息系統(tǒng)的其他部分的接口,是信

12、息系統(tǒng)內部構成元素與外部有聯系實體之間的信息關系的描述與分割。它并不需要在它們之間劃一條物理邊界,而只需要弄清它們之間信息輸入與輸出的分割。</p><p>  本數據庫系統(tǒng)共包括學生信息、教師信息、課程信息、學院及專業(yè)信息、選課信息、授課信息及成績信息八個模塊。該信息系統(tǒng)的其他部分包括學生專業(yè)選擇、教師配置、學生選課、學院設置、課程要求、具體教學等。</p><p>  數據庫系統(tǒng)的內部

13、構成元素與外部其他部分之間的信息關系如下圖所示:</p><p><b>  3.2 用戶視圖 </b></p><p>  3.2.1 學生(Student)用戶視圖</p><p><b>  修改個人信息。</b></p><p>  按課程名、課程號、專業(yè)、學分等信息查詢課程,選課和查詢已選

14、課程。</p><p>  注銷選課(只能注銷選課階段的課程,已公布成績的課程不可注銷)。</p><p>  成績查詢(教師公布成績后學生方可查看到自己的成績)。</p><p>  教師(Teacher)用戶視圖</p><p><b>  修改個人信息。</b></p><p>  修改所授

15、課程的信息(一名教師可教授多門課程)。</p><p>  錄入、查看成績(錄入成績的課程狀態(tài)為“統(tǒng)計成績” ,成績錄入的權限只有教師用戶有)。</p><p>  公布成績(公布成績后學生方可查看到自己的成績)。</p><p>  備選功能:自動計算所授課程的選課人數、有成績人數、平均成績,且按成績由高到低排序。查看所授課程選課情況。教師可以自主選課(教師所在學

16、院方向的課程)。</p><p>  學院管理員(Administrator)用戶視圖</p><p><b>  學生管理:</b></p><p>  查詢、添加、修改、刪除學生信息,添加學生獎懲信息</p><p><b>  教師管理:</b></p><p>  查

17、詢、添加、修改、刪除教師信息。</p><p><b>  課程管理:</b></p><p>  查詢、添加、修改、刪除課程信息。</p><p><b>  選課管理:</b></p><p>  查詢選課信息,添加選課信息(修改選課信息權限只有學生用戶有),修改選課狀態(tài)(選課階段、已開課、統(tǒng)計

18、成績、公布成績、結束)。</p><p><b>  授課管理:</b></p><p>  查詢、添加、修改、刪除授課信息。</p><p><b>  專業(yè)管理:</b></p><p>  查詢、添加、修改、刪除專業(yè)信息。</p><p><b>  學院管理

19、:</b></p><p>  查詢、添加、修改、刪除學院信息。</p><p><b>  管理員操作:</b></p><p>  查詢、添加、修改、刪除學院管理員信息。</p><p><b>  修改個人信息。</b></p><p>  數據庫系統(tǒng)多用戶

20、視圖</p><p><b>  四、需求分析</b></p><p>  此學生管理信息系統(tǒng)的主要功能如下圖所示:</p><p>  學生用戶:修改個人信息、課程查詢、選課、注銷選課、成績查詢</p><p>  教師用戶:修改個人信息、修改所授課程信息、查看學生選課信息、成績錄入</p><p&

21、gt;  管理員用戶:學生管理、教師管理、課程管理、專業(yè)管理、學員管理、管理員操作</p><p>  4.1 用戶需求說明</p><p>  4.1.1 數據需求</p><p><b>  其中需求數據為:</b></p><p><b>  學生基本信息記錄:</b></p>

22、<p>  用戶名、姓名、身份證號、方向、性別、生日、密碼、獎懲信息</p><p><b>  教師基本信息記錄:</b></p><p>  用戶名、姓名、身份證號、方向、性別、生日、密碼</p><p>  管理員基本信息記錄:</p><p>  用戶名、密碼、姓名、權限等級</p>&l

23、t;p>  5、課程基本信息記錄:</p><p>  課程號、課程名、所屬方向、學分</p><p>  6、學院及專業(yè)基本信息記錄:</p><p>  學院:學院名稱,學院號</p><p>  方向:方向名稱、所屬學院</p><p><b>  7、選課信息管理:</b></

24、p><p>  選課:學生用戶選定課程的課程號、課程名、開課專業(yè)、學分、詳細信息</p><p>  注銷選課:學生用戶注銷選課的課程號、課程名、任課教師、學分、課程狀態(tài)(只能注銷狀態(tài)為選課階段的課程)</p><p><b>  8、授課信息管理:</b></p><p>  課程號、課程名、教師號、教師姓名、選課人數&l

25、t;/p><p><b>  9、成績信息管理:</b></p><p>  學生查看:課程號、課程名、任課教師、學分、狀態(tài)、成績</p><p>  教師錄入:所授課程、學號、成績</p><p>  教師查看:名次、學號、姓名、學院、專業(yè)、班級、成績</p><p>  4.1.2 事務需求<

26、;/p><p><b>  數據錄入:</b></p><p>  錄入學生的基本信息:</p><p>  學號、姓名、所屬專業(yè)、性別、生日、身份證號</p><p><b>  錄入學生的選課信息</b></p><p>  錄入教師的基本信息:</p><

27、;p>  學工號、姓名、院系、性別、生日、身份證號、研究方向</p><p>  教師錄入學生的成績信息:</p><p>  選擇所授課程后,錄入學號、成績</p><p>  錄入課程的基本信息:</p><p>  課程號、課程名、開課專業(yè)、學分</p><p><b>  錄入授課信息:<

28、/b></p><p><b>  課程號、教師號</b></p><p><b>  錄入專業(yè)信息: </b></p><p><b>  專業(yè)名、所屬學院</b></p><p><b>  錄入學院信息:</b></p><

29、p><b>  學院名、地址</b></p><p>  錄入學院管理員的基本信息:</p><p>  管理員號、管理員姓名</p><p>  錄入超級管理員的基本信息</p><p>  管理員號、管理員姓名</p><p><b>  數據更新/刪除:</b>&

30、lt;/p><p>  (1) 學生個人信息的更新</p><p> ?。?) 學生注銷選課信息</p><p> ?。?) 教師個人信息的更新</p><p> ?。?) 教師所授課程信息的更新</p><p> ?。?) 教師錄入成績的更新/ 刪除</p><p>  (6) 學生基本信息的更新

31、/ 刪除(管理員操作)</p><p> ?。?) 教師基本信息的更新/ 刪除(管理員操作)</p><p> ?。?) 課程基本信息的更新/ 刪除(管理員操作)</p><p> ?。?) 選課狀態(tài)的更新:分為選課階段、已開課、統(tǒng)計成績、公布成績、結束(管理員操作)</p><p>  授課信息的更新(管理員操作)</p>&

32、lt;p>  專業(yè)基本信息的更新/ 刪除(管理員操作)</p><p>  學院基本信息的更新/ 刪除(管理員操作)</p><p>  管理員個人信息的更新(管理員操作)</p><p><b>  數據查看:</b></p><p><b>  學生用戶視圖下:</b></p>

33、<p> ?。?) 列出學生基本信息</p><p> ?。?) 按照課程號列出課程的課程號、課程名、開課專業(yè)、學分</p><p><b>  教師用戶視圖下:</b></p><p> ?。?) 列出教師基本信息</p><p> ?。?) 列出所授課程的基本信息</p><p>

34、; ?。?) 列出所授課程的學生選課信息:學號、姓名、所屬專業(yè)、性別、生日、身份證號</p><p><b>  管理員用戶視圖下:</b></p><p>  (1) 按照學號列出學生的學號、姓名、所屬專業(yè)、性別、生日、身份證號</p><p>  (2) 按照學工號列出教師的學工號、姓名、院系、性別、生日、身份證號、研究方向</p&g

35、t;<p>  (3) 按照課程號列出課程的課程號、課程名、開課專業(yè)、學分</p><p>  (4)按照課程號列出選課信息:課程號、課程名、學號、學生姓名、教師號、教師姓名、狀態(tài)、成績</p><p> ?。?)按照學生學號列出選課信息:課程號、課程名、學號、學生姓名、教師號、教師姓名、狀態(tài)、成績</p><p> ?。?)按照教師學工號列出選課信息

36、:課程號、課程名、學號、學生姓名、教師號、教師姓名、狀態(tài)、成績</p><p> ?。?)按照課程號列出授課信息:課程號、課程名、教師號、教師姓名、選課人數</p><p>  (8)按照課程名列出授課信息:課程號、課程名、教師號、教師姓名、選課人數</p><p>  (9)按照教師學工號列出授課信息:課程號、課程名、教師號、教師姓名、選課人數</p>

37、<p> ?。?0)按照學院管理員號列出學院管理員的管理員號、姓名</p><p>  (11)按照超級管理員號列出超級管理員的管理員號、姓名</p><p>  4.2 系統(tǒng)需求說明 </p><p>  該學生選課管理信息系統(tǒng)需要較強的數據處理功能,理論上應該能夠容納上萬人的數據資料,并且在搜索方面理應具有較快的響應速度,能夠處理多方面的數據請求。

38、權限設置清晰明了,能夠有效的防止越權操作。系統(tǒng)能夠有效的處理各種異常,具有較好的健壯性。</p><p>  4.2.1 初始數據庫大小</p><p> ?。?) 大約有10門課程,分屬于約4個學院中,每個學院有10個以下的專業(yè)。</p><p> ?。?) 大約有20名學生分布在各個學院,每個學院平均有2名學生。</p><p> ?。?

39、) 大約有20名教師分布在各個學院,每個學院平均有2名教師。</p><p> ?。?) 大約有10名管理員分布在各個學院,每個學院平均有1名學院管理員。</p><p> ?。?) 每名學生一學期平均選擇2門課程。</p><p> ?。?) 每名教師平均所授課程為2門。</p><p>  4.2.2 網絡和共享需求</p>

40、<p> ?。?) 所有學院必須安全的和總部中央數據庫網絡互連</p><p> ?。?) 必須能夠支持每個學院至少300名用戶同時訪問,需要考慮這么大數量并發(fā)訪問的許可需求。</p><p><b>  性能:</b></p><p><b>  4.2.3 性能</b></p><p&

41、gt;  高峰期:每年的1月、3月、6月、9月</p><p> ?。?) 單個記錄查詢時間少于1秒,高峰期少于5秒</p><p> ?。?) 多個記錄查詢時間少于5秒,高峰期少于10秒</p><p> ?。?) 更新/保存記錄時間少于1秒,高峰期少于5秒</p><p><b>  4.2.4 安全性</b><

42、;/p><p> ?。?) 數據庫必須有口令保護</p><p> ?。?) 每個用戶分配特定的用戶視圖所應有的訪問權限</p><p> ?。?) 用戶只能在適合他們完成工作需要的窗口中看到需要的數據</p><p>  4.2.5 備份和恢復</p><p><b>  每天24點備份</b>&l

43、t;/p><p>  4.2.6 用戶界面</p><p><b>  菜單驅動,聯機幫助</b></p><p>  4.2.7 法律問題</p><p>  對用戶信息管理,遵守法律</p><p><b>  五、數據庫邏輯設計</b></p><p&g

44、t;  5.1 ER圖【3】:</p><p>  本系統(tǒng)的ER圖如下:</p><p>  實體: 聯系: 屬性: </p><p>  m m</p><p>  n n </p&

45、gt;<p>  m m </p><p>  1 1</p><p>  1 m</p><p>  該ER圖包括課程、教師、學生、學院、專業(yè)五個實

46、體和授課、選課、工作于、屬于、包含五個聯系。</p><p><b>  5.2 數據字典</b></p><p>  5.2.1 從數據字典中抽取出來的系統(tǒng)實體描述:</p><p>  5.2.2 從數據字典中抽取出來的聯系的描述:</p><p><b>  5.3 關系表</b></p

47、><p>  該數據庫關系圖如下:</p><p><b>  其中包含的聯系有:</b></p><p><b>  六、數據庫物理設計</b></p><p><b>  6.1 安全機制</b></p><p>  6.1.1 系統(tǒng)安全</p&g

48、t;<p>  1、提供了充足的異常處理機制,能夠捕獲由各種錯誤引發(fā)的異常(如:越權操作、輸入數據類型與數據庫要求類型不一致、查詢過程中出現的錯誤等等)。</p><p>  2、系統(tǒng)登錄時要憑用戶名和口令進入,輸入正確時才可以進入系統(tǒng)。用戶需要選擇自己的身份(學生、教師、管理員),若用戶名和密碼輸入正確,系統(tǒng)可以打開符合該用戶身份的操作界面。其他界面該用戶沒有權限訪問。</p>&l

49、t;p>  6.1.2 數據安全</p><p>  1、根據用戶身份,用戶進入不同的用戶界面,即享有不同的權限,只有管理員才可以實現修改一些重要信息,以確保數據庫不被隨意更改,保證數據安全。</p><p>  2、該學生系統(tǒng)共有三種身份:學生、教師、管理員。他們相應的權限如下:</p><p> ?。?)學生:查看修改個人信息、查看課程信息、選課/注銷選課

50、(只有在選課階段的課程才可以注銷)、查看自己所選課程成績(教師公布成績后學生方可查看到自己的成績)。</p><p> ?。?)教師:查看修改個人信息、查看修改所授課程信息(一名教師可教授多門課程)、查看所授課程的學生選課情況、成績錄入(錄入成績的課程狀態(tài)為“統(tǒng)計成績” ,成績錄入的權限只有教師用戶有)、公布成績(公布成績后學生方可查看到自己的成績)。</p><p> ?。?)管理員:添

51、加刪除修改查看學生信息、添加刪除修改查看教師信息、添加刪除修改查看課程信息、添加刪除修改查看學院信息、添加刪除修改查看專業(yè)信息、添加查看選課信息(修改選課信息權限只有學生用戶有)、修改課程狀態(tài)、添加修改查看授課信息、添加刪除修改查看其他管理員信息、查看修改個人信息。</p><p><b>  6.2 其他</b></p><p>  規(guī)范化產生一個結構上一致且最小冗

52、余的邏輯數據庫設計,但是,規(guī)范化的數據庫設計有時不能提供最大的處理效率。所以我們愿意接收規(guī)范化設計方面的一些損失而實現更好的性能。在該系統(tǒng)中,表“學生”中復制了表“專業(yè)”的“所屬學院”一列,加快了檢索速度,方便通過列“學院”來查詢特定學院的學生,也方便形成某學院的視圖。</p><p><b>  七、應用程序設計</b></p><p><b>  7.1

53、 功能模塊</b></p><p>  該學生管理信息系統(tǒng)共有三個角色:學生、教師、管理員</p><p><b>  7.2 界面設計</b></p><p><b>  登錄界面</b></p><p><b>  7.3 代碼設計</b></p>

54、<p><b>  連接數據庫:</b></p><p>  String url="jdbc:mysql://localhost:3306/dbsml?"</p><p>  + "user=dbsml & password=28129";</p><p>  Connection

55、con;</p><p>  String sql;</p><p>  Statement stmt;</p><p><b>  try{</b></p><p>  Class.forName("com.mysql.jdbc.Driver");</p><p>  Sys

56、tem.out.println(4);</p><p>  conn=DriverManager.getConnection(url,"dbsml","28129");</p><p>  stmt=conn.createStatement();</p><p>  }catch (SQLException e) {</

57、p><p>  System.out.println("MySQL操作錯誤");</p><p>  e.printStackTrace();</p><p><b>  增加:</b></p><p>  System.out.println("actionPerformed4");

58、</p><p>  b4.setPreferredSize(new Dimension(120, 40));</p><p>  b4.addActionListener(new ActionListener() {</p><p><b>  @Override</b></p><p>  public void a

59、ctionPerformed(ActionEvent e) {</p><p>  // // TODO Auto-generated method stub</p><p><b>  try {</b></p><p>  jt.print();</p><p>  } catch (PrinterException

60、 e1) {</p><p>  // TODO Auto-generated catch block</p><p>  e1.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p><b&

61、gt;  });</b></p><p><b>  刪除:</b></p><p><b>  try{</b></p><p>  con=DriverManager.getConnection(url,"dbsml","28129");</p><

62、;p>  stmt=con.createStatement();</p><p>  sql = "select * from course where C_id = '" + t1.getText() + "'";</p><p>  ResultSet rs = stmt.executeQuery(sql);</p&g

63、t;<p>  if(rs.next()){</p><p>  sql="DELETE FROM course WHERE(C_id='"+t1.getText()+"')";</p><p>  stmt.executeUpdate(sql);</p><p>  sql="DELE

64、TE FROM tc WHERE(C_id='"+t1.getText()+"')";</p><p>  stmt.executeUpdate(sql);</p><p>  sql="DELETE FROM sc WHERE(C_id='"+t1.getText()+"')";<

65、/p><p>  stmt.executeUpdate(sql);</p><p>  JOptionPane.showMessageDialog(this,"刪除課程成功!","提示",JOptionPane.INFORMATION_MESSAGE);</p><p><b>  }</b></p&g

66、t;<p><b>  else</b></p><p>  JOptionPane.showMessageDialog(this,"此課程不存在!","提示",JOptionPane.INFORMATION_MESSAGE);</p><p>  stmt.close();</p><p>

67、;  con.close();</p><p>  }catch(SQLException e2){</p><p>  e2.printStackTrace();</p><p><b>  }</b></p><p>  t1.setText("");</p><p>&l

68、t;b>  }</b></p><p><b>  查詢:</b></p><p><b>  try{</b></p><p>  sql = "SELECT * FROM " + getTable() + " WHERE "+ chooseState() + &

69、quot; = '" + t1.getText() + "'" +</p><p>  " and " + getPassword() + " = '" + t2.getText() + "'";</p><p>  System.out.println(sql);&l

70、t;/p><p>  ResultSet rs = stmt.executeQuery(sql);</p><p>  if(rs.next()){</p><p>  result = true;</p><p><b>  }</b></p><p>  System.out.println(re

71、sult);</p><p>  stmt.close();</p><p>  conn.close();</p><p>  }catch (SQLException e) {</p><p>  System.out.println("MySQL操作錯誤");</p><p>  e.prin

72、tStackTrace();</p><p>  } catch (Exception e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  獲取Choice狀態(tài):</p><p>  public int getSta

73、te(){</p><p>  System.out.println(7);</p><p>  int state = 1;</p><p>  if(c.getSelectedItem().equals("管 理 員")){</p><p>  state = 1;</p><p>  Syst

74、em.out.println(8);</p><p>  }else if(c.getSelectedItem().equals("教 師")){</p><p>  state = 2;</p><p>  System.out.println(9);</p><p><b>  }</b><

75、/p><p>  else if(c.getSelectedItem().equals("學 生")){</p><p>  state = 3; </p><p>  System.out.println(10);</p><p><b>  }</b></p><p>  re

76、turn state;</p><p><b>  }</b></p><p>  給Choice增加查詢到的item</p><p>  public void addChoice() throws SQLException {</p><p>  // TODO Auto-generated method stub&

77、lt;/p><p>  System.out.println("addChoice");</p><p>  conn = getConnection();</p><p>  stmt = conn.createStatement();</p><p>  sql = "select C_name from tea

78、cher natural join tc natural join course where T_id = '"+DLA.t1.getText()+"'";</p><p>  ResultSet rs = stmt.executeQuery(sql);</p><p>  System.out.println(sql);</p>

79、<p>  while(rs.next()){</p><p>  c.add(rs.getString(1));</p><p><b>  }</b></p><p><b>  }</b></p><p>  給TableModle加數據</p><p> 

80、 class MyTableModel1 extends AbstractTableModel{</p><p>  String kcnum,kcname,score;</p><p>  final String[] columnNames={"課程號","課程名","學分"};</p><p>  O

81、bject[][]data=new Object[100][3];</p><p>  public MyTableModel1(){</p><p><b>  int m=0;</b></p><p>  String url="jdbc:mysql://localhost:3306/dbsml?"</p>

82、<p>  + "user=dbsml & password=28129";</p><p>  Connection con;</p><p>  String sql;</p><p>  Statement stmt;</p><p><b>  try{</b></p

83、><p>  Class.forName("com.mysql.jdbc.Driver");</p><p>  }catch(java.lang.ClassNotFoundException e){</p><p><b>  }</b></p><p><b>  try{</b>

84、;</p><p>  con=DriverManager.getConnection(url,"dbsml","28129");</p><p>  stmt=con.createStatement();</p><p>  sql="SELECT * FROM tc natural join course WHE

85、RE T_id='"+DLA.t1.getText()+"'";</p><p>  ResultSet rs=stmt.executeQuery(sql);</p><p>  while(rs.next()){</p><p>  kcnum=rs.getString(1);</p><p>

86、  kcname=rs.getString(3);</p><p>  score=rs.getString(5);</p><p>  data[m][0]=kcnum;data[m][1]=kcname;data[m++][2]=score;</p><p><b>  }</b></p><p>  stmt.cl

87、ose();</p><p>  con.close();</p><p>  }catch(SQLException e){</p><p><b>  }</b></p><p><b>  }</b></p><p>  public int getColumnCou

88、nt(){</p><p>  return columnNames.length;</p><p><b>  }</b></p><p>  public int getRowCount(){</p><p>  return data.length;</p><p><b>  }

89、</b></p><p>  public String getColumnName(int col){</p><p>  return columnNames[col];</p><p><b>  }</b></p><p>  public Object getValueAt(int row,int

90、col){</p><p>  return data[row][col];</p><p><b>  }</b></p><p>  public void setValueAt(Object value,int row,int col){</p><p>  int numRows=getRowCount();&l

91、t;/p><p>  int numCols=getColumnCount();</p><p>  for(int i=0;i<numRows;i++){</p><p>  for(int j=0;j<numCols;j++){</p><p>  System.out.print(" "+data[i][j]

92、);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  打?。?lt;/b>&

93、lt;/p><p><b>  下載:</b></p><p><b>  int m=0;</b></p><p>  System.out.println("actionPerformed3");</p><p>  Boolean result=false;</p>

94、<p><b>  try{</b></p><p>  Class.forName("com.mysql.jdbc.Driver");</p><p>  System.out.println(4);</p><p>  conn=getConnection();</p><p>  

95、Statement stmt=conn.createStatement();</p><p>  System.out.println(5);</p><p>  String sql = "select C_name,S_id,S_name,State_name,score from sc "</p><p>  + "natural

96、 join student natural join state natural join tc natural"</p><p>  + " join course"</p><p>  + " where T_id='"+DLA.t1.getText()+"'and C_name = '"+g

97、etChoice()+"'";</p><p>  System.out.println(sql);</p><p>  ResultSet rs = stmt.executeQuery(sql);</p><p>  rs.last();</p><p>  int temp=rs.getRow();</p

98、><p>  rs.beforeFirst();</p><p>  o2=new Object[temp][5];</p><p>  while(rs.next()){</p><p>  System.out.println(rs.getString(1));</p><p>  o2[m][0]=rs.getStr

99、ing(1);</p><p>  o2[m][1]=rs.getString(2);</p><p>  o2[m][2]=rs.getString(3);</p><p>  o2[m][3]=rs.getString(4);</p><p>  o2[m++][4]=rs.getString(5);</p><p&g

100、t;<b>  }</b></p><p>  System.out.println(result);</p><p>  stmt.close();</p><p>  conn.close();</p><p>  }catch (SQLException c) {</p><p>  Sys

101、tem.out.println("MySQL操作錯誤");</p><p>  c.printStackTrace();</p><p>  } catch (Exception d) {</p><p>  d.printStackTrace();</p><p><b>  } </b></

102、p><p>  JFileChooser chooser = new JFileChooser();</p><p>  chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);</p><p>  if (JFileChooser.APPROVE_OPTION == chooser.showSa

103、veDialog(null)) {</p><p>  File saveFile = chooser.getSelectedFile();</p><p>  if (saveFile.exists()) {</p><p>  JOptionPane.showConfirmDialog(null, "文件已存在是否覆蓋",</p>

104、<p>  "文件存在", JOptionPane.YES_NO_OPTION,</p><p>  JOptionPane.WARNING_MESSAGE);</p><p><b>  } else {</b></p><p><b>  try {</b></p>&l

105、t;p><b>  // 打開文件</b></p><p>  String filepath = saveFile.getPath() + ".xls";</p><p>  File fi = new File(filepath);</p><p>  WritableWorkbook book = Workboo

106、k.createWorkbook(fi);</p><p>  // 生成名為“第一頁”的工作表,參數0表示這是第一頁</p><p>  WritableSheet sheet = book.createSheet("第一頁", 0);</p><p>  // 在Label對象的構造子中指名單元格位置是第一列第一行(0,0)</p>

107、;<p>  // 以及單元格內容為test</p><p>  Label label = new Label(0, 0, "課程名稱");</p><p>  Label label01 = new Label(1, 0, "學生學號");</p><p>  Label label02 = new Labe

108、l(2, 0, "學生姓名");</p><p>  Label label03 = new Label(3, 0, "課程狀態(tài)");</p><p>  Label label04 = new Label(4, 0, "課程成績");</p><p>  // 將定義好的單元格添加到工作表中</p&

109、gt;<p>  sheet.addCell(label);</p><p>  sheet.addCell(label01);</p><p>  sheet.addCell(label02);</p><p>  sheet.addCell(label03);</p><p>  sheet.addCell(label04)

110、;</p><p><b>  /*</b></p><p>  * 生成一個保存數字的單元格 必須使用Number的完整包路徑,否則有語法歧義</p><p>  * 單元格位置是第二列,第一行,值為789.123</p><p><b>  */</b></p><p>

111、  for (int i = 0; i < o2.length; i++) {</p><p>  for (int k = 0; k < o2[i].length; k++) {</p><p>  Label lab = new Label(k, i + 1, o2[i][k]</p><p>  .toString());</p>&

112、lt;p>  sheet.addCell(lab);</p><p><b>  }</b></p><p><b>  }</b></p><p>  // 寫入數據并關閉文件</p><p>  book.write();</p><p>  book.close(

113、);</p><p>  } catch (Exception e1) {</p><p>  System.out.println(e1);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b

溫馨提示

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

評論

0/150

提交評論