目錄
1 緒論
1.1 課程意義
2 需求分析
2.1可行性分析
3 系統數據庫設計
3.1學生信息表
3.2 課程信息表
4 數據庫實現
4.1創建表空間及用戶
4.2表創建
4.3存儲過程創建
4.4觸發器創建
4.5 視圖創建
4.6序列創建
5 學生成績管理系統實現
5.1 用戶登錄界面
5.2 orcal數據庫連接
6 系統測試
6.1 用戶登錄界面測試
6.2 學生信息表測試
6.3課程信息表測試
6.4選課信息表測試
6.5成績視圖測試
7 課程設計總結
1 緒 論 學生的成績管理是學校工作中的一項重要內容,我國的大中專院校的學生成績管理水平普遍不高。隨著辦學規模的擴大和招生人數的增加,建立一個成績管理系統是非常必要的。普通的成績管理浪費了許多的人力和物力,已不能適應時代的發展。在當今信息時代,這種傳統的管理方法必然被以計算機為基礎的信息管理系統所代替。為了提高成績管理的效率,我選擇了學生成績管理系統作為畢業設計的課題。 1.1 課程意義隨著高校辦學規模的擴大和招生人數的增加,學生成績管理維護是學校管理中異常重要的一個環節,作為學校,除了育人,就是育知,學生成績管理的計算機化是整個學校教務管理中的重要一部分, 介于它的重要性,學生成績管理系統的開發與應用就逐漸提入議程,并占著越來越重要的份量。運用學生成績管理維護系統可以減輕學院教學人員的工作量,縮小開支,提高工作效率與準確率,能夠節省時間, 學生也能夠盡快的知道自己的考試成績,投入新的課程的學習或復習這次沒有考過的課程。而學生成績管理系統的應用也為今天的民辦教育在未來市場的競爭力有所提高。 在現代高科技的飛躍發展,人們工作習慣的改變,特別是電腦的大量普及,人們生活節奏越來越快,怎樣提高工作效率是人們首先考慮的問題。學生成績管理是一個非常繁瑣與復雜的一項工作,一個原因就是工作量大、不好管,對于一個學校而言,管理好學生的成績,是非常重要的。因此開發出一套學生成績管理系統是非常必要的,應用到的技術數據庫設計(ER圖、關系模式、表設計、存儲過程、觸發器、視圖)應用開發語言VC#訪問Oracle數據庫。
2 需求分析 2.1可行性分析2.1.1技術可行性分析 由于本系統管理的對象單一,都是在校學生,且每個數據內容具有較強的關聯性,涉及的計算過程不是很復雜。因此, 比較適合于采用數據庫管理。且學校用于學生管理的微機都是PIII以上的機器,在存儲量、速度方面都能滿足數據庫運行的要求。在技術難度方面,由于有指導老師的指導和相關參考文獻,特別是網上資料,特別是參考其它程序的功能,因此完全可以實現。 2.1.2技術可行性分析 由于本系統采用網絡方式,因此投入比較多,但此系統建成后可以直接進行信息查詢和修改,本系統以后節省不少人員一因此可以帶來一定的經濟效益。從經濟上是可行的。 2.1.3功能需求 系統涉及到兩個實體學生和課程,學生的屬性有學號、姓名、專業名、性別、出生日期和備注;課程的屬性有課程號、課程名稱、開學學期、學時和學分,同時學生可以根據學號和課程號進行選課,學生選課信息的屬性有學號、課程號和成績。系統可以實現數據管理功能,具有學生信息表、課程信息表、學生選課信息表中的數據插入、修改和刪除功能;同時具有對數據查詢功能:查詢學生所有的課程成績,并按照成績進行排序;查詢學生總學分(如果學生成績低于60分,則該課程的學分不能記在總分里)
2.1.5關系模式 考生信息表(考生準考證#,姓名,性別,身份證號,考試考點代碼(外鍵),院系名稱,考試級別名稱) 管理員(管理員id,管理員姓名,管理員密碼) 考試信息表(考試信息表的主鍵,考生準考證號,筆試成績,上機成績,總成績) 院系(院系名字#) 考點信息表(考點代碼#,考點名稱) 考點管理表(管理員id,考點代碼id) 考生信息管理表(考生準考證,管理員id) 成績信息管理表(管理員id,考試信息的id) 院系查看信息表(院系名稱,考試信息表) 性別(男女) 考點代碼為整數 













3 系統數據庫設計 3.1學生信息表學生信息表中,學號是主碼,性別取值是“男”或“女”圖3.1 圖3.1學生信息表 3.2 課程信息表課程信息表中,課程號是主碼,學分和學時要求大于0,開學學期是數值類型,取值在1和8之間圖3.2。 圖3.2課程信息表 3.3選課信息表 學生選課信息表中,采用自增長序列作為主碼,學號和課程號是外碼,分別參考學生信息表的學號和課程信息表的課程號;成績采用百分制如圖3.3。
圖3.3學生選課信息表
4 數據庫實現 4.1創建表空間及用戶新建表空間SS和臨時表空間SSTemp,新建用戶student;如圖4.1 圖4.1表空間臨時表空間 圖4.2用戶創建 4.2表創建4.2.1課程信息表 根據關系模式設計出課程信息表如圖4.3 圖4.3創建課程信息表 4.2.2選課信息表 根據關系模式設計出選課信息表如圖4.4 圖4.4創建選課信息表 4.2.3學生信息表 根據關系模式設計出學生信息表如圖4.5 圖4.5創建學生信息表
4.3存儲過程創建4.3.1課程信息表插入的存儲過程 課程信息表插入的存儲過程在更新之前,查詢數據表中是否存在相應記錄,存在更新數據,不存在插入數據失敗如圖4.6。
圖4.6課程信息表插入的存儲 4.3.2課程信息表刪除的存儲過程 課程信息表刪除的存儲過程在更新之前,查詢數據表中是否存在相應記錄,存在更新數據,不存在刪除數據。 圖4.7課程信息表刪除的存儲 4.3.3課程信息表更新的存儲過程 課程信息表中更新的存儲過程,在更新之前,查詢數據表中是否存在相應記錄,存在更新數據,不存在更新數據失敗,課程信息表中更新的存儲過程如圖4.8 圖4.8課程信息表更新的存儲過程 4.3.4學生信息表添加的存儲過程 學生信息表中添加存儲過程,在更新之前,查詢數據表中是否存在相應記錄,存在更新數據,不存在更新失敗如圖4.9 圖4.9學生信息表中添加存儲過程 4.3.5學生信息表刪除的存儲過程 學生信息表中刪除存儲過程,在更新之前,查詢數據表中是否存在相應記錄,存在更新數據,不存在更新數據失敗如圖4.10
圖4.10學生信息表中刪除存儲過程 4.3.6學生信息表更新的存儲過程 學生信息表更新存儲過程,在更新之前,查詢數據表中是否存在相應記錄,存在更新數據,不存在更新數據失敗如圖4.11 圖4.11學生信息表中更新存儲過程 4.3.7選課信息表添加的存儲過程 選課信息表插入的存儲過程在更新之前,查詢數據表中是否存在相應記錄,存在更新數據,不存在插入數據失敗如圖4.12 圖4.12選課信息表中插入存儲過程 4.3.8選課信息表刪除的存儲過程 選課信息表中刪除存儲過程,在更新之前,查詢數據表中是否存在相應記錄,存在更新數據,不存在更新數據失敗如圖4.13 圖4.12選課信息表中刪除存儲過程 4.3.9選課信息表更新的存儲過程 選課信息表中更新存儲過程,在更新之前,查詢數據表中是否存在相應記錄,存在更新數據,不存在更新數據失敗如圖4.13 圖4.13選課信息表中更新存儲過程 4.4觸發器創建在刪除學生信息時,刪除該學生選課信息表中數據觸發器圖4.14 圖4.14刪除學生信息表觸發器
在刪除課程時,刪除該學生選課信息表中數據觸發器圖4.15 圖4.15刪除課程信息表觸發器 4.5 視圖創建查詢所有課程總學分如圖4.16
圖4.16查詢高于60總學分視圖
查詢總成績視圖如圖4.17
圖4.17查詢所有成績的視圖 4.6序列創建創建序列如圖4.18 圖4.18序列創建
5 學生成績管理系統實現 5.1 用戶登錄界面用戶登錄界面設計如圖5.1 圖5.1用戶登錄界面 5.2 orcal數據庫連接連接Oracle數據庫代碼如下 public partial class 登錄窗口 : Form { public 登錄窗口() { InitializeComponent(); } private void login_Click(object sender, EventArgs e) { String username = txtUsername.Text; String password = txtPassword.Text; ; String connstring = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User Id=" + username + ";Password=" + password + ";"; OracleConnection conn; conn = new OracleConnection(connstring); try { conn.Open(); System.IO.File.WriteAllText(@"c:\a.txt", connstring); 主頁面fm1 = new 主頁面(); conn.Close(); this.Hide(); fm1.ShowDialog(); } catch (Exception ex) { MessageBox.Show("無法登陸請核對用戶名,密碼核對數據庫連接或者約束"); MessageBox.Show(ex.ToString()); } } } } //選課信息表更新 private void btnSCalter_Click(object sender, EventArgs e) { String csid = txtCJH.Text.Trim(); int score = Int32.Parse(cobcsscore.Text); int vcount;
OracleConnection conn = new OracleConnection(connstring); conn.Open(); OracleCommand cmd = conn.CreateCommand(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "selectcourse_inf_update";
cmd.Parameters.Add("v_csid", OracleType.VarChar).Direction = ParameterDirection.Input; cmd.Parameters["v_csid"].Value = csid; cmd.Parameters.Add("v_score", OracleType.VarChar).Direction = ParameterDirection.Input; cmd.Parameters["v_score"].Value = score;
cmd.Parameters.Add("vresult", OracleType.Number).Direction = ParameterDirection.Output; cmd.ExecuteNonQuery(); vcount = Int32.Parse(cmd.Parameters["vresult"].Value.ToString()); conn.Close(); if (vcount == 0) { MessageBox.Show("該選課信息不存在,無法更新"); } else if (vcount == 2) { MessageBox.Show("插入數據有誤請核對"); //MessageBox.Show(sbirthday + "\r\n" + ssex); } else selectcourse_inf_datarefresh();} 登錄成功 6 系統測試 6.1 用戶登錄界面測試登錄失敗測試如圖6.1
圖6.1登錄失敗測試 登錄成功測試如圖6.2 圖6.2登錄成功測試
6.2 學生信息表測試學生信息表插入如圖6.3 圖6.3學生信息表插入 學生信息表重復插入失敗如圖6.3
圖6.3學生信息表重復插入失敗學生信息表修改如圖6.4
 圖6.4學生信息表修改 學生信息表刪除如圖6.5 圖6.5學生信息表刪除
6.3課程信息表測試課程信息表查詢如圖6.6 圖6.6課程信息表查詢
課程信息表插入如圖6.7 圖6.7課程信息表插入
課程信息表插入課時小于0的如圖6.8 圖6.8課程信息表插入課時小于0
課程信息表插入學期出現異常如圖6.9 圖6.9課程信息表插入學期出現異常
課程信息表修改如圖6.10 圖6.10課程信息表修改
課程信息表刪除如圖6.11
圖6.11課程信息表刪除
6.4選課信息表測試選課信息表添加如圖6.12 圖6.12選課信息表添加
選課信息表重復添加如圖6.13 圖6.13選課信息表重復添加
選課信息表刪除如圖6.14 圖6.14選課信息表刪除
選課信息表修改如圖6.15 圖6.15選課信息表修改 6.5成績視圖測試查詢總成績如圖6.16 查詢總成績圖6.16
查詢低于60分不計入總學分如圖6.17 圖6.17查詢低于60分不計入總學分
黑盒子測試用例 表6-1黑盒測試
7 課程設計總結 兩周的課程設計結束了, 我和同學們一起度過了這段忙 碌而充實的時光。 這次的課程設計深刻的反映出實踐是檢驗 真理的唯一標準這句話的真諦。 課程設計是我們專業課程知 識綜合應用的實踐訓練,是我們邁向社會,從事職業工作前 一個必不少的過程。 “千里之行始于足下” ,通過這次課程設 計,我深深體會到這句千古名言的真正含義。我今天認真的 進行課程設計,學會腳踏實地邁開這一步,就是為明天能穩 健地在社會大潮中奔跑打下堅實的基礎。 過而能改,善莫大焉。在課程設計過程中,我們不斷發現錯誤,不斷改正,不斷領 悟,不斷獲取。最終的檢測調試環節,本身就是在踐行。 “過而能改,善莫大焉”的知行觀。這次課程設計終于順利完成了,在設計中遇到了很多問題,最后在老師的指導下,終于 游逆而解。在今后社會的發展和學習實踐過程中,一定要不懈努力,不能遇到問題就想 到要退縮,一定要不厭其煩的發現問題所在,然后一一進行解決,只有這樣,才能成功 的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠不可能收 獲成功,收獲喜悅,也永遠不可能得到社會及他人對你的認可! 同時在開發過程中遇見了很多問題,也是在不斷地探索。
完整的Word格式文檔51黑下載地址:
oracle數 據 庫.docx
(1.11 MB, 下載次數: 10)
2019-2-12 14:24 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|