




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學(xué)習(xí)與交流廣工數(shù)據(jù)庫課程設(shè)計.精品文檔.教師信息管理系統(tǒng)題目名稱 專業(yè)班級 學(xué) 號 學(xué)生姓名 指導(dǎo)教師 2016 年 3 月 26 日一、實驗環(huán)境硬件環(huán)境:處理器: Intel(R) Core(TM) i5-3230M CPU 2.60FHz 2.60GHz已安裝的內(nèi)存(RMA): 4.00GB軟件環(huán)境 操作系統(tǒng): Windows 10數(shù)據(jù)庫管理系統(tǒng): SQL Server 2008開發(fā)工具: Eclipse二、需求分析信息需求教師信息(職工號,教師姓名,年齡,性別)課程信息(課程號,課程名,學(xué)分)課程評價信息(職工號,課程號,等級)獎金信息
2、(序號,等級,獎金)用戶信息(登錄名,密碼,用戶組)功能需求1. 教師用戶: (1)對教師信息、課程信息、課程評價、獎金信息的查詢。2. 管理員 (1)對教師信息、課程信息、課程評價的查詢,修改,增加,刪除; (2)對教師的獎金等信息的查詢,修改。安全性與完整性需求1. 不同的身份有不同的功能權(quán)限。2.實體完整性:通過設(shè)置主鍵都已實現(xiàn)。數(shù)據(jù)字典該軟件的數(shù)據(jù)庫由下述信息組成:1. 教師信息字段字段名類型寬度說明1職工號 Int型2教師姓名 字符型103年齡 Int型大于等于18且小于等于654性別 字符型2男或女2.課程信息字段字段名類型寬度說明1課程號 Int型2課程名 字符型163學(xué)分 In
3、t型3. 課程評價信息字段字段名類型寬度說明1職工號 Int型2課程號 Int型3等級 字符型2優(yōu),良,中,差4. 獎金信息字段字段名類型寬度說明1序號 Int型2等級 字符型2優(yōu),良,中,差3獎金 Int型5. 用戶信息字段字段名類型寬度說明1登錄名 字符型82密碼 Int型3用戶組 字符型6三、概念結(jié)構(gòu)設(shè)計1. 教師信息實體2. 課程實體3. 課程評價實體4. 獎金實體5. 用戶實體概念模型:E-R圖四、邏輯結(jié)構(gòu)設(shè)計關(guān)系模型教師信息表(職工號,教師姓名,年齡,性別),其主碼為職工號。課程表(課程號,課程名,學(xué)分),其主碼為課程號。課程評價表(職工號,課程號,等級),其主碼為職工號與課程號。
4、獎金表(序號,等級,獎金),其主碼為序號。用戶表(登錄名,密碼,用戶組),其主碼為登錄名。用戶子模式應(yīng)用程序功能模塊圖安全性該系統(tǒng)的用戶只有兩種,一種是管理員,另一種是教師,管理員具有對數(shù)據(jù)庫操作的所有權(quán)限,教師只有對教師的信息、課程信息、課程評價、獎金信息的查詢權(quán)限。完整性實體完整性:通過設(shè)置主鍵都已實現(xiàn)。參照完整性:課程評價表中的職工號和課程號分別參照教師信息表中的職工號和課程表中的課程號。用戶自定義完整性:教師信息表中的年齡必須在18到60之間,性別必須為男、女,課程評價表和獎金表中的等級必須為優(yōu)、良、中、差。五、數(shù)據(jù)庫物理設(shè)計數(shù)據(jù)的存放位置說明D:Program Files Micro
5、soft SQL Server MSSQL10_50.SQLEXPRESSMSSQLDATA系統(tǒng)配置說明使用登錄名:sa 登陸密碼:123 登陸SQL Server 2008模塊設(shè)計(模塊IPO圖)六、數(shù)據(jù)庫實施1.創(chuàng)建教師信息表CREATE TABLE 教師信息表 (職工號 INT NOT NULL PRIMARY KEY, 教師姓名 CHAR(10), 年齡 INT CHECK(年齡>=18 AND 年齡<=60), 性別 CHAR(2) CHECK(性別 IN('男','女')2. 創(chuàng)建課程表CREATE TABLE 課程表 (課程號 INT
6、NOT NULL PRIMARY KEY, 課程名 CHAR(16), 學(xué)分 INT3. 創(chuàng)建課程評價表CREATE TABLE 課程評價表 (職工號 INT, 課程號 INT, 等級 CHAR(2) CHECK(等級 IN('優(yōu)','良','中','差'), PRIMARY KEY(職工號,課程號), FOREIGN KEY (職工號) REFERENCES 教師信息表(職工號), FOREIGN KEY (課程號) REFERENCES 課程表(課程號)4. 創(chuàng)建獎金表CREATE TABLE 獎金表 (等級 CHAR(2)
7、CHECK(等級 IN('優(yōu)','良','中','差') PRIMARY KEY, 獎金 INT5. 創(chuàng)建用戶表CREATE TABLE 用戶表 (登錄名 CHAR(8) NOT NULL PRIMARY KEY, 密碼 INT, 用戶組 CHAR(6)6. 各表元組INSERT INTO 教師信息表 VALUES(201501,'翁嘉民',20,'男')INSERT INTO 教師信息表 VALUES(201502,'陳天翔',19,'男')INSERT INTO
8、教師信息表 VALUES(201503,'周詩妍',21,'女')INSERT INTO 教師信息表 VALUES(201504,'宋嘉瑩',20,'女')INSERT INTO 課程表 VALUES(100,'語文',5)INSERT INTO 課程表 VALUES(101,'數(shù)學(xué)',5)INSERT INTO 課程表 VALUES(102,'英語',4)INSERT INTO 課程表 VALUES(103,'物理',3)INSERT INTO 課程表 VALUES
9、(104,'化學(xué)',3)INSERT INTO 課程表 VALUES(105,'生物',3)INSERT INTO 課程表 VALUES(106,'地理',3)INSERT INTO 課程表 VALUES(107,'歷史',3)INSERT INTO 課程表 VALUES(108,'政治',3)INSERT INTO 課程評價表 VALUES(201501,100,'優(yōu)')INSERT INTO 課程評價表 VALUES(201501,107,'良')INSERT INTO 課程評價
10、表 VALUES(201501,108,'優(yōu)')INSERT INTO 課程評價表 VALUES(201502,101,'良')INSERT INTO 課程評價表 VALUES(201502,103,'良')INSERT INTO 課程評價表 VALUES(201502,106,'優(yōu)')INSERT INTO 課程評價表 VALUES(201503,102,'中')INSERT INTO 課程評價表 VALUES(201503,105,'良')INSERT INTO 課程評價表 VALUES(201
11、503,107,'優(yōu)')INSERT INTO 課程評價表 VALUES(201504,104,'良')INSERT INTO 課程評價表 VALUES(201504,105,'優(yōu)')INSERT INTO 課程評價表 VALUES(201504,106,'良')INSERT INTO 獎金表 VALUES('1','優(yōu)',8000)INSERT INTO 獎金表 VALUES('2','良',4000)INSERT INTO 獎金表 VALUES('3
12、9;,'中',2000)INSERT INTO 獎金表 VALUES('4','差',0)INSERT INTO 用戶表 VALUES('admin',123,'管理員')INSERT INTO 用戶表 VALUES('admin2',456,'管理員')7、 數(shù)據(jù)庫運行和維護主要窗口截圖主要代碼1. 數(shù)據(jù)庫的連接Connection con=null;StringJ Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver&
13、quot;/SQL數(shù)據(jù)庫引擎String connectDB="jdbc:sqlserver:/127.0.0.1:1433;DatabaseName=Teacher"/數(shù)據(jù)源注意IP地址和端口號,數(shù)據(jù)庫名字 Teacher為數(shù)據(jù)庫名try Class.forName(JDriver);/加載數(shù)據(jù)庫引擎,返回給定字符串名的類catch(ClassNotFoundException e)/e.printStackTrace();System.out.println("加載數(shù)據(jù)庫引擎失敗");System.exit(0);tryString user=&qu
14、ot;sa"/你自己創(chuàng)建的用戶名字和密碼String password="fuxiao456" con=DriverManager.getConnection(connectDB,user,password);/連接數(shù)據(jù)庫對象Statement stmt=con.createStatement();/創(chuàng)建SQL命令對象/關(guān)閉連接stmt.close();/關(guān)閉命令對象連接con.close();/關(guān)閉數(shù)據(jù)庫連接catch(SQLException e)e.printStackTrace();/System.out.println("數(shù)據(jù)庫連接錯誤&quo
15、t;);System.exit(0);2. 更新函數(shù)public static void function10(String id17,String id18,String id19,Connection con) int a = 0;try String sql = "update 課程評價表 set 等級=? where 職工號=? and 課程號=?"PreparedStatement stmta = con.prepareStatement(sql); /執(zhí)行SQL語句stmta.setString(1, id19); /用id27的字符串代替SQL語句中的第一個?
16、stmta.setString(2, id17); /用id27的字符串代替SQL語句中的第二個?stmta.setString(3, id18); /用id27的字符串代替SQL語句中的第三個?a=stmta.executeUpdate(); /將受影響的行數(shù)賦值給acatch (Exception e) if(a=1) System.out.println("修改成功"); /通過受影響的行數(shù)來判斷SQL語句是否執(zhí)行成功if(a=0) System.out.println("修改失敗");3. 增加函數(shù)public static void funct
17、ion11(String id20,String id21,String id22,Connection con) int a = 0;try String sql = "insert into 課程評價表 values(?,?,?)"PreparedStatement stmta = con.prepareStatement(sql); /執(zhí)行SQL語句 stmta.setString(1, id20); /用id20的字符串代替SQL語句中的第一個?stmta.setString(2, id21); /用id21的字符串代替SQL語句中的第一個?stmta.setStr
18、ing(3, id22); /用id22的字符串代替SQL語句中的第一個? a=stmta.executeUpdate(); /將受影響的行數(shù)賦值給acatch (Exception e) if(a=1) System.out.println("插入成功"); /通過受影響的行數(shù)來判斷SQL語句是否執(zhí)行成功if(a=0) System.out.println("插入失敗");4. 連接查詢public static void function15(String id27,Connection con) try String sql = "sel
19、ect 教師信息表.職工號,教師信息表.教師姓名,課程名,學(xué)分,獎金表.等級,獎金 from 教師信息表,課程表,課程評價表,獎金表 where 教師信息表.職工號=課程評價表.職工號 and 課程表.課程號=課程評價表.課程號 and 課程評價表.等級=獎金表.等級 and 教師信息表.職工號=?"PreparedStatement stmta = con.prepareStatement(sql); /執(zhí)行SQL語句stmta.setString(1, id27); /用id27的字符串代替SQL語句中的第一個?ResultSet rs = stmta.executeQuery(
20、); System.out.println("職工號"+"t"+"教師姓名"+"t"+"課程名"+"t"+"學(xué)分"+"t"+"等級"+"t"+"獎金");while (rs.next() /輸出選擇結(jié)果System.out.println(rs.getString("職工號")+"t"+rs.getString("教師姓名&qu
21、ot;)+"t"+rs.getString("課程名")+rs.getString("學(xué)分")+"t"+rs.getString("等級")+"t"+rs.getString("獎金");catch (Exception e) 5. 分組求和public static void function19(Connection con) try String sql = "select 教師信息表.職工號,教師信息表.教師姓名,sum(獎金) as 總獎金 from 教師信息表,課程評價表,獎金表 where 教師信息表.職工號=課程評價表.職工號 and 課程評價表.等級=獎金表.等級 group by 教師信息表.教師姓名,教師信息表.職工號"PreparedStatement stmta = con.
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中考數(shù)學(xué)總復(fù)習(xí)《特殊角三角函數(shù)值的混合運算》專項測試卷帶答案
- 風(fēng)險識別在公司戰(zhàn)略根基構(gòu)建過程中的作用試題及答案
- 山東省泰安市東平縣2025屆七下數(shù)學(xué)期末調(diào)研試題含解析
- 跨越難關(guān)2025年VB考試試題及答案
- 優(yōu)化養(yǎng)老院安全管理計劃
- 班級國際交流活動的計劃與實施
- 向善向上社團活動安排計劃
- 2024年云南省機關(guān)事務(wù)局下屬事業(yè)單位真題
- 2024年西安雁塔雁南小學(xué)教師招聘筆試真題
- 生物學(xué)科學(xué)術(shù)研討交流計劃
- 鋼質(zhì)防火門安裝施工工藝
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)基礎(chǔ)(廣西師范大學(xué))智慧樹知到答案章節(jié)測試2023年
- 雷雨第四幕完整版
- 芯片手冊盛科sdk用戶開發(fā)指南
- Proworks消防控制室圖形顯示裝置用戶手冊要點
- 射頻指標及測試方法
- GB/T 23321-2009紡織品防水性水平噴射淋雨試驗
- GB/T 22418-2008工業(yè)車輛車輛自動功能的附加要求
- GB/T 21663-2019小容量隱極同步發(fā)電機技術(shù)要求
- GB/T 11944-2002中空玻璃
- 700字的初中入團申請書
評論
0/150
提交評論