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













3 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì) 3.1學(xué)生信息表學(xué)生信息表中,學(xué)號(hào)是主碼,性別取值是“男”或“女”圖3.1 圖3.1學(xué)生信息表 3.2 課程信息表課程信息表中,課程號(hào)是主碼,學(xué)分和學(xué)時(shí)要求大于0,開(kāi)學(xué)學(xué)期是數(shù)值類型,取值在1和8之間圖3.2。 圖3.2課程信息表 3.3選課信息表 學(xué)生選課信息表中,采用自增長(zhǎng)序列作為主碼,學(xué)號(hào)和課程號(hào)是外碼,分別參考學(xué)生信息表的學(xué)號(hào)和課程信息表的課程號(hào);成績(jī)采用百分制如圖3.3。
圖3.3學(xué)生選課信息表
4 數(shù)據(jù)庫(kù)實(shí)現(xiàn) 4.1創(chuàng)建表空間及用戶新建表空間SS和臨時(shí)表空間SSTemp,新建用戶student;如圖4.1 圖4.1表空間臨時(shí)表空間 圖4.2用戶創(chuàng)建 4.2表創(chuàng)建4.2.1課程信息表 根據(jù)關(guān)系模式設(shè)計(jì)出課程信息表如圖4.3 圖4.3創(chuàng)建課程信息表 4.2.2選課信息表 根據(jù)關(guān)系模式設(shè)計(jì)出選課信息表如圖4.4 圖4.4創(chuàng)建選課信息表 4.2.3學(xué)生信息表 根據(jù)關(guān)系模式設(shè)計(jì)出學(xué)生信息表如圖4.5 圖4.5創(chuàng)建學(xué)生信息表
4.3存儲(chǔ)過(guò)程創(chuàng)建4.3.1課程信息表插入的存儲(chǔ)過(guò)程 課程信息表插入的存儲(chǔ)過(guò)程在更新之前,查詢數(shù)據(jù)表中是否存在相應(yīng)記錄,存在更新數(shù)據(jù),不存在插入數(shù)據(jù)失敗如圖4.6。
圖4.6課程信息表插入的存儲(chǔ) 4.3.2課程信息表刪除的存儲(chǔ)過(guò)程 課程信息表刪除的存儲(chǔ)過(guò)程在更新之前,查詢數(shù)據(jù)表中是否存在相應(yīng)記錄,存在更新數(shù)據(jù),不存在刪除數(shù)據(jù)。 圖4.7課程信息表刪除的存儲(chǔ) 4.3.3課程信息表更新的存儲(chǔ)過(guò)程 課程信息表中更新的存儲(chǔ)過(guò)程,在更新之前,查詢數(shù)據(jù)表中是否存在相應(yīng)記錄,存在更新數(shù)據(jù),不存在更新數(shù)據(jù)失敗,課程信息表中更新的存儲(chǔ)過(guò)程如圖4.8 圖4.8課程信息表更新的存儲(chǔ)過(guò)程 4.3.4學(xué)生信息表添加的存儲(chǔ)過(guò)程 學(xué)生信息表中添加存儲(chǔ)過(guò)程,在更新之前,查詢數(shù)據(jù)表中是否存在相應(yīng)記錄,存在更新數(shù)據(jù),不存在更新失敗如圖4.9 圖4.9學(xué)生信息表中添加存儲(chǔ)過(guò)程 4.3.5學(xué)生信息表刪除的存儲(chǔ)過(guò)程 學(xué)生信息表中刪除存儲(chǔ)過(guò)程,在更新之前,查詢數(shù)據(jù)表中是否存在相應(yīng)記錄,存在更新數(shù)據(jù),不存在更新數(shù)據(jù)失敗如圖4.10
圖4.10學(xué)生信息表中刪除存儲(chǔ)過(guò)程 4.3.6學(xué)生信息表更新的存儲(chǔ)過(guò)程 學(xué)生信息表更新存儲(chǔ)過(guò)程,在更新之前,查詢數(shù)據(jù)表中是否存在相應(yīng)記錄,存在更新數(shù)據(jù),不存在更新數(shù)據(jù)失敗如圖4.11 圖4.11學(xué)生信息表中更新存儲(chǔ)過(guò)程 4.3.7選課信息表添加的存儲(chǔ)過(guò)程 選課信息表插入的存儲(chǔ)過(guò)程在更新之前,查詢數(shù)據(jù)表中是否存在相應(yīng)記錄,存在更新數(shù)據(jù),不存在插入數(shù)據(jù)失敗如圖4.12 圖4.12選課信息表中插入存儲(chǔ)過(guò)程 4.3.8選課信息表刪除的存儲(chǔ)過(guò)程 選課信息表中刪除存儲(chǔ)過(guò)程,在更新之前,查詢數(shù)據(jù)表中是否存在相應(yīng)記錄,存在更新數(shù)據(jù),不存在更新數(shù)據(jù)失敗如圖4.13 圖4.12選課信息表中刪除存儲(chǔ)過(guò)程 4.3.9選課信息表更新的存儲(chǔ)過(guò)程 選課信息表中更新存儲(chǔ)過(guò)程,在更新之前,查詢數(shù)據(jù)表中是否存在相應(yīng)記錄,存在更新數(shù)據(jù),不存在更新數(shù)據(jù)失敗如圖4.13 圖4.13選課信息表中更新存儲(chǔ)過(guò)程 4.4觸發(fā)器創(chuàng)建在刪除學(xué)生信息時(shí),刪除該學(xué)生選課信息表中數(shù)據(jù)觸發(fā)器圖4.14 圖4.14刪除學(xué)生信息表觸發(fā)器
在刪除課程時(shí),刪除該學(xué)生選課信息表中數(shù)據(jù)觸發(fā)器圖4.15 圖4.15刪除課程信息表觸發(fā)器 4.5 視圖創(chuàng)建查詢所有課程總學(xué)分如圖4.16
圖4.16查詢高于60總學(xué)分視圖
查詢總成績(jī)視圖如圖4.17
圖4.17查詢所有成績(jī)的視圖 4.6序列創(chuàng)建創(chuàng)建序列如圖4.18 圖4.18序列創(chuàng)建
5 學(xué)生成績(jī)管理系統(tǒng)實(shí)現(xiàn) 5.1 用戶登錄界面用戶登錄界面設(shè)計(jì)如圖5.1 圖5.1用戶登錄界面 5.2 orcal數(shù)據(jù)庫(kù)連接連接Oracle數(shù)據(jù)庫(kù)代碼如下 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); 主頁(yè)面fm1 = new 主頁(yè)面(); conn.Close(); this.Hide(); fm1.ShowDialog(); } catch (Exception ex) { MessageBox.Show("無(wú)法登陸請(qǐng)核對(duì)用戶名,密碼核對(duì)數(shù)據(jù)庫(kù)連接或者約束"); 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("該選課信息不存在,無(wú)法更新"); } else if (vcount == 2) { MessageBox.Show("插入數(shù)據(jù)有誤請(qǐng)核對(duì)"); //MessageBox.Show(sbirthday + "\r\n" + ssex); } else selectcourse_inf_datarefresh();} 登錄成功 6 系統(tǒng)測(cè)試 6.1 用戶登錄界面測(cè)試登錄失敗測(cè)試如圖6.1
圖6.1登錄失敗測(cè)試 登錄成功測(cè)試如圖6.2 圖6.2登錄成功測(cè)試
6.2 學(xué)生信息表測(cè)試學(xué)生信息表插入如圖6.3 圖6.3學(xué)生信息表插入 學(xué)生信息表重復(fù)插入失敗如圖6.3
圖6.3學(xué)生信息表重復(fù)插入失敗學(xué)生信息表修改如圖6.4
 圖6.4學(xué)生信息表修改 學(xué)生信息表刪除如圖6.5 圖6.5學(xué)生信息表刪除
6.3課程信息表測(cè)試課程信息表查詢?nèi)鐖D6.6 圖6.6課程信息表查詢
課程信息表插入如圖6.7 圖6.7課程信息表插入
課程信息表插入課時(shí)小于0的如圖6.8 圖6.8課程信息表插入課時(shí)小于0
課程信息表插入學(xué)期出現(xiàn)異常如圖6.9 圖6.9課程信息表插入學(xué)期出現(xiàn)異常
課程信息表修改如圖6.10 圖6.10課程信息表修改
課程信息表刪除如圖6.11
圖6.11課程信息表刪除
6.4選課信息表測(cè)試選課信息表添加如圖6.12 圖6.12選課信息表添加
選課信息表重復(fù)添加如圖6.13 圖6.13選課信息表重復(fù)添加
選課信息表刪除如圖6.14 圖6.14選課信息表刪除
選課信息表修改如圖6.15 圖6.15選課信息表修改 6.5成績(jī)視圖測(cè)試查詢總成績(jī)?nèi)鐖D6.16 查詢總成績(jī)圖6.16
查詢低于60分不計(jì)入總學(xué)分如圖6.17 圖6.17查詢低于60分不計(jì)入總學(xué)分
黑盒子測(cè)試用例 表6-1黑盒測(cè)試
7 課程設(shè)計(jì)總結(jié) 兩周的課程設(shè)計(jì)結(jié)束了, 我和同學(xué)們一起度過(guò)了這段忙 碌而充實(shí)的時(shí)光。 這次的課程設(shè)計(jì)深刻的反映出實(shí)踐是檢驗(yàn) 真理的唯一標(biāo)準(zhǔn)這句話的真諦。 課程設(shè)計(jì)是我們專業(yè)課程知 識(shí)綜合應(yīng)用的實(shí)踐訓(xùn)練,是我們邁向社會(huì),從事職業(yè)工作前 一個(gè)必不少的過(guò)程。 “千里之行始于足下” ,通過(guò)這次課程設(shè) 計(jì),我深深體會(huì)到這句千古名言的真正含義。我今天認(rèn)真的 進(jìn)行課程設(shè)計(jì),學(xué)會(huì)腳踏實(shí)地邁開(kāi)這一步,就是為明天能穩(wěn) 健地在社會(huì)大潮中奔跑打下堅(jiān)實(shí)的基礎(chǔ)。 過(guò)而能改,善莫大焉。在課程設(shè)計(jì)過(guò)程中,我們不斷發(fā)現(xiàn)錯(cuò)誤,不斷改正,不斷領(lǐng) 悟,不斷獲取。最終的檢測(cè)調(diào)試環(huán)節(jié),本身就是在踐行。 “過(guò)而能改,善莫大焉”的知行觀。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多問(wèn)題,最后在老師的指導(dǎo)下,終于 游逆而解。在今后社會(huì)的發(fā)展和學(xué)習(xí)實(shí)踐過(guò)程中,一定要不懈努力,不能遇到問(wèn)題就想 到要退縮,一定要不厭其煩的發(fā)現(xiàn)問(wèn)題所在,然后一一進(jìn)行解決,只有這樣,才能成功 的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠(yuǎn)不可能收 獲成功,收獲喜悅,也永遠(yuǎn)不可能得到社會(huì)及他人對(duì)你的認(rèn)可! 同時(shí)在開(kāi)發(fā)過(guò)程中遇見(jiàn)了很多問(wèn)題,也是在不斷地探索。
完整的Word格式文檔51黑下載地址:
oracle數(shù) 據(jù) 庫(kù).docx
(1.11 MB, 下載次數(shù): 10)
2019-2-12 14:24 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|