數(shù)據(jù)庫原理課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)設(shè)計(jì)_第1頁
數(shù)據(jù)庫原理課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)設(shè)計(jì)_第2頁
數(shù)據(jù)庫原理課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)設(shè)計(jì)_第3頁
數(shù)據(jù)庫原理課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)設(shè)計(jì)_第4頁
數(shù)據(jù)庫原理課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫課程設(shè)計(jì)超市物流管理系統(tǒng)課 程 設(shè) 計(jì) 報(bào) 告課程名稱 數(shù)據(jù)庫原理課程設(shè)計(jì) 課題名稱 學(xué)生成績管理系統(tǒng) 專 業(yè) 班 級 學(xué) 號 姓 名 指導(dǎo)教師 2012年 1 月 3 日目 錄一、系統(tǒng)定義.1二、需求分析.1三、系統(tǒng)設(shè)計(jì).5四、詳細(xì)設(shè)計(jì)13五、課程設(shè)計(jì)總結(jié)20六、參考文獻(xiàn)21七、附錄22一、系統(tǒng)定義學(xué)生成績管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要,所以學(xué)生成績管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄危瑢W(xué)生來說可以輕松的查閱自己在校的成績以及信息等。使用計(jì)算機(jī)對學(xué)生成績信息進(jìn)行管理,有著手工管理所無法比擬的優(yōu)點(diǎn).例如:檢索迅速、查

2、找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生成績管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。因此,開發(fā)這樣的一套成績管理系統(tǒng)成為很有必要的事情。 學(xué)生成績管理系統(tǒng)提供了強(qiáng)大的學(xué)生成績管理管理功能,方便系統(tǒng)管理員對學(xué)生成績等信息的添加、修改、刪除、查詢、留言等操作,同時(shí)一樣的方面學(xué)生對自己各科成績查詢,學(xué)習(xí)的交流。 二、需求分析(一)系統(tǒng)綜合需求1. 教師(管理員)夠?qū)崿F(xiàn)對整個(gè)學(xué)生信息的添加、修改、刪除、查詢等操作,對教師(管理員)用戶的添加、刪除、修改等操作。2. 教師(管理員)可以將學(xué)生成績的數(shù)據(jù)庫發(fā)布到網(wǎng)上,學(xué)生的信息發(fā)布的網(wǎng)上,方

3、便學(xué)生教師進(jìn)行查詢,達(dá)到資源共享的目的。 3.教師(管理員)能夠在一定的權(quán)限內(nèi)對所有學(xué)生成績的查詢、刪除、修改是、查看等,對,登錄密碼的修改。4.學(xué)生可以在自己的權(quán)限內(nèi)對對自己成績的查詢,以及個(gè)人信息的查詢,登錄密碼的修改,的相關(guān)操作。 (二)系統(tǒng)邏輯模型1數(shù)據(jù)流圖:用戶登錄院系查詢主界面信息查詢系別管理系別查詢班級查詢教研室查詢教師信息成績查詢學(xué)生信息課程信息按班級按學(xué)號按課程教研室管理班級管理教師管理學(xué)生管理課程管理成績管理菜單欄2數(shù)據(jù)字典(1)對學(xué)生信息的管理編號1名稱學(xué)生信息管理簡述維護(hù)學(xué)生信息的完整性輸入學(xué)生姓名、學(xué)號、班級號、出生年月、性別、民族、籍貫處理1 新增學(xué)生信息的錄入2

4、修改學(xué)生信息3 刪除學(xué)生信息記錄4 查詢個(gè)人學(xué)生信息及班級學(xué)生信息輸出學(xué)生信息表(2)對系別信息的管理編號2名稱系別信息管理簡述維護(hù)系別信息的完整性輸入系別名,班級號等處理1.新增系別信息的錄入2.修改系別信息3.刪除系別信息記錄4.查詢系別信息輸出系別信息表(3)對學(xué)生證注冊信息的管理編號3名稱學(xué)生證注冊信息管理簡述維護(hù)學(xué)生證注冊信息的完整性輸入學(xué)號,注冊日期,截止日期處理1.新增注冊信息的錄入2.修改注冊信息3.刪除注冊信息記錄4.查詢注冊信息輸出注冊信息表三、系統(tǒng)設(shè)計(jì)(一)概念結(jié)構(gòu)設(shè)計(jì)系別教研室教師號學(xué)分教師號學(xué)時(shí)教師姓名班級成績學(xué)號課程號性別學(xué)生系號系名教研室名教師成績課程課程號姓名班

5、號班名教研室號教研室號課程名學(xué)號班號系號系號系教研室教師號學(xué)分教研室號學(xué)時(shí)教師姓名所屬班級成績學(xué)號課程號所屬性別學(xué)生系號系名教研室名教師成績課程學(xué)習(xí)所屬所屬教課課程號姓名班號班名教研室號教師號課程名學(xué)號班號系號系號(二)邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)是獨(dú)立于任何一種數(shù)據(jù)模型的信息結(jié)構(gòu)。邏輯結(jié)構(gòu)的任務(wù)是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本e-r圖轉(zhuǎn)化為宜選用的dbms所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu),并對其進(jìn)行優(yōu)化。設(shè)計(jì)學(xué)生成績管理數(shù)據(jù)庫,包括系別、教研室、班級、教師、學(xué)生、課程、成績七個(gè)關(guān)系,考慮到數(shù)據(jù)庫完整性,其關(guān)系模式中對每個(gè)實(shí)體定義的屬性如下:系別表系別:(系號,系名)教研室表教研室:(教研室號,教研室

6、名)班級表班級:(班號,班名,系號)教師表教師:(教師號,姓名,教研室號)學(xué)生表學(xué)生:(學(xué)號,姓名,性別,班號)課程表課程:(課程號,課程名,教師號,學(xué)時(shí),學(xué)分)成績表成績:(學(xué)號,課程號,成績)為了存放前臺用戶信息再添加一用戶表用戶表用戶:(用戶名,密碼)四、詳細(xì)設(shè)計(jì)1.注冊新用戶注冊用戶界面如圖所示,新注冊的賬戶存于數(shù)據(jù)庫中的用戶表中。通過相關(guān)代碼設(shè)置用戶名和密碼都不為空,并且彈出提示框。詳細(xì)代碼見附錄。2菜單欄設(shè)計(jì)菜單欄前三個(gè)菜單都為查詢菜單,通過sql查詢語句顯示查詢結(jié)果。初始化狀態(tài)為顯示全部結(jié)果,若記錄太多可按主碼值查詢,若要返回初始狀態(tài),點(diǎn)擊刷新按鈕即可。可以為每個(gè)窗口設(shè)置適當(dāng)?shù)膱D

7、片背景。(1) 院系查詢院系查詢菜單提供系別、教研室和班級的詳細(xì)信息。單擊相應(yīng)菜單實(shí)現(xiàn)對應(yīng)的查詢功能。(2)信息查詢信息查詢菜單提供教師信息、學(xué)生信息和課程信息的詳細(xì)查詢。單擊相應(yīng)菜單實(shí)現(xiàn)對應(yīng)的查詢功能。 (3)成績查詢成績查詢菜單提供按不同方式對學(xué)生成績的詳細(xì)查詢。單擊相應(yīng)菜單實(shí)現(xiàn)對應(yīng)的查詢功能。3.管理模塊設(shè)計(jì)管理模塊在主界面主面板上,用于對各個(gè)數(shù)據(jù)表的更新操作。數(shù)據(jù)操作部允許控制操作,若有空值則提示錯(cuò)誤。(1) 系別管理系別管理可以通過系號來確定系別,從而對系別信息進(jìn)行操作。不允許有空值操作。(2) 教研室管理教研室管理通過教研室號來確定教研室,從而對教研室信息進(jìn)行操作。不允許有空值操作

8、。(3) 班級管理班級管理可以通過班號來確定班級,從而對班級信息進(jìn)行操作。不允許有空值操作。(4) 教師管理教師管理通過教師號來確定教師,從而對教師信息進(jìn)行操作。(5) 學(xué)生管理學(xué)生管理可根據(jù)學(xué)號唯一確定學(xué)生,從而對信息進(jìn)行添加、刪除、修改操作。(一)開發(fā)平臺及工具l 開發(fā)工具microsoft visual c+ 6.0l dbms:microsoft sql server 2000l 建模工具:microsoft visio, sybase powerdesigner(二)編碼設(shè)計(jì)及觸發(fā)器1查詢學(xué)生信息(1)給定學(xué)號,查詢某位學(xué)生的學(xué)生證信息創(chuàng)建存儲過程qureyinfor,傳遞參數(shù)sno

9、,通過給定學(xué)號,判斷該學(xué)生的學(xué)生證信息是否存在,如不存在,則告知不存在該學(xué)生證信息;如存在,則顯示出該學(xué)生的學(xué)生證信息.create procedure qureyinfor( sno char(10)asbegin declare cant varchar(50)set cant=信息不存在if exists (select * from stu_card where sno=sno)select *from stu_cardwhere sno=snoelseprint cantend(2)給定班號,查詢該班所有學(xué)生的學(xué)生證信息創(chuàng)建存儲過程displayinfor,傳遞參數(shù)classno,通

10、過給定班級號,判斷該班學(xué)生的學(xué)生證信息是否存在,如不存在,則告知不存在該班學(xué)生證信息;如存在,則顯示出該班全部學(xué)生的學(xué)生證信息。create procedure displayinfor( classno char(6) )asbegin declare cant varchar(50)set cant=無相關(guān)信息if exists (select * from stu_card where classno=classno)select *from stu_cardwhere classno=classnoelseprint cantend2.修改學(xué)生信息對于學(xué)生證信息的修改,是先通過給定學(xué)生

11、學(xué)號,先判斷該學(xué)生的學(xué)生證信息是否存在,如存在,再通過添加表信息來添加學(xué)生證信息。(1)首先創(chuàng)建存儲過程modif,用來判斷需修改的學(xué)生證信息是否存在,如不存在,則告知不存在該學(xué)生證信息;如存在,則將該學(xué)生證原本信息顯示出來,表明可以進(jìn)行修改。create procedure modif( sno char(10) )asbegindeclare cant varchar(50)set cant=無此學(xué)生證信息,不能修改if exists (select * from stu_card where sno=sno)beginselect * from stu_card where sno=sn

12、oendelse print cantend(2)再創(chuàng)建存儲過程mods,modc及modd,通過更新操作update對表進(jìn)行修改,以修改學(xué)生證信息。create procedure mods /更新表中學(xué)生信息(sname varchar(30),sno char(10),classno char(6),sex char(2),birthday datetime,native char(2),birthplace varchar(30)as update s set stu_name=sname,stu_no=sno,class_no=classno,stu_sexsex,stu_birth

13、day=birthday,stu_native=native,stu_birthplace=birthplacecreate procedure modd /更新表中學(xué)生信息(dept varchar(30),classno char(6),)as update s set dept=dept,class_no=classnocreate procedure modc -修改表中信息(sno char(10),logindate datetime,validate datetime)asupdate cset stu_no=sno,login_date=logindate,validity_d

14、ate=validate3刪除學(xué)生信息在刪除學(xué)生證信息時(shí),并不是將學(xué)生證中的學(xué)生信息及相關(guān)系別信息也相應(yīng)刪除,而只是刪除該學(xué)生證的注冊信息。應(yīng)保證在刪除學(xué)生證信息同時(shí)保留該學(xué)生的學(xué)生信息及相關(guān)的系別信息。(1)判斷該學(xué)生證信息是否存在 創(chuàng)建存儲過程,給定學(xué)號參數(shù),判斷是否存在該學(xué)生的學(xué)生證信息,如不存在,則告知不存在該學(xué)生證信息,即無法刪除;如存在,則告知存在信息,并顯示出該條信息。 該操作同樣可以使用存儲過程modif來完成,因此不需再重新創(chuàng)建。(2)刪除信息 創(chuàng)建存儲過程delinfor,給出要?jiǎng)h除的學(xué)生學(xué)號,通過delete操作刪除注冊信息表c中的該條記錄,即完成學(xué)生證信息的刪除工作。c

15、reate procedure delinfor( sno char(6) )asdelete from cwhere stu_no=sno(3)顯示刪除后信息 在刪除完成后,通過顯示剩余全部學(xué)生證信息,確認(rèn)要?jiǎng)h除的學(xué)生證信息是否刪除成功。 創(chuàng)建觸發(fā)器displayall,完成刪除工作的檢驗(yàn)工作,當(dāng)對表c進(jìn)行delete操作時(shí),通過查詢視圖,顯示剩余全部學(xué)生證信息。create trigger displayallon cfor deleteasselect *from stu_card五、課程設(shè)計(jì)總結(jié)經(jīng)過一周的課程設(shè)計(jì),完成了一個(gè)簡單的學(xué)生證管理系統(tǒng),并成功實(shí)現(xiàn)了各要求所需功能。首先,在設(shè)計(jì)

16、方面,考慮到數(shù)據(jù)的冗余及沖突等問題,將學(xué)生證信息分別存儲到三個(gè)表中,考慮了系別信息數(shù)據(jù),學(xué)生信息數(shù)據(jù)及學(xué)生證注冊信息數(shù)據(jù)的獨(dú)立性問題。其次,在設(shè)計(jì)表時(shí),注意了數(shù)據(jù)的數(shù)據(jù)類型及長度的選擇,考慮各種數(shù)據(jù)的添加情況,在添加該項(xiàng)時(shí)將“漢”設(shè)置為默認(rèn)情況,同時(shí)還要保證不浪費(fèi)數(shù)據(jù)的存儲空間。第三,使用了視圖,實(shí)現(xiàn)數(shù)據(jù)的保密性,將學(xué)生證所需信息以視圖方式存放,在數(shù)據(jù)查詢時(shí)使用視圖查詢。第四,對于各功能的實(shí)現(xiàn),均使用了存儲過程,通過傳遞參數(shù)得到想要的結(jié)果。在實(shí)現(xiàn)功能時(shí),注意了條件的判斷,根據(jù)分析各種情況,實(shí)現(xiàn)不同的操作。例如,在實(shí)現(xiàn)信息的添加時(shí),總的分兩種情況,一是存在信息,另一個(gè)則是不存在信息,在不存在信息

17、中又需考慮兩種情況,即存在該學(xué)生信息,但由于未注冊學(xué)生證,因此也不存在學(xué)生證信息;另一是根本不存在該學(xué)生信息。針對這兩種情況,在添加信息時(shí)就有兩種不同的方法。第四,在本系統(tǒng)中使用了觸發(fā)器,觸發(fā)器用于響應(yīng)數(shù)據(jù)庫更新,因此在刪除信息時(shí),我使用了觸發(fā)器,在信息刪除后,顯示其余信息,用來確認(rèn)信息是否成功刪除。第五,設(shè)置了安全性,在數(shù)據(jù)庫中,安全性十分重要,因此,我創(chuàng)建了自己的登錄名,并對數(shù)據(jù)庫及各表的訪問設(shè)置了權(quán)限,用以保護(hù)數(shù)據(jù),防止他人任意修改。在這一周做課程設(shè)計(jì)中,收獲了很多。因?yàn)檫@次課程設(shè)計(jì)設(shè)計(jì)的知識面非常廣。從數(shù)據(jù)庫方面來說,涉及到數(shù)據(jù)庫設(shè)計(jì)的五個(gè)步驟:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物

18、理結(jié)構(gòu)設(shè)計(jì)和運(yùn)行調(diào)試。數(shù)據(jù)庫的設(shè)計(jì)嚴(yán)重影響著系統(tǒng)的功能,如果數(shù)據(jù)庫設(shè)計(jì)不夠合理,前臺操作就不能正常運(yùn)行。在運(yùn)行過程中我發(fā)現(xiàn)數(shù)據(jù)庫的設(shè)計(jì)比較合理,查詢時(shí)特別方便。這為以后的開發(fā)積累了很寶貴的經(jīng)驗(yàn)。從mfc編程方面來說又對mfc編程有了進(jìn)一步的提高,讓系統(tǒng)不再單調(diào),通過有關(guān)設(shè)置使系統(tǒng)更為個(gè)性化。通過 mfc 程序來訪問并修改數(shù)據(jù)庫,從中體會(huì)到了編程的樂趣??吹阶约洪_發(fā)的系統(tǒng)實(shí)現(xiàn)了一個(gè)又一個(gè)功能,會(huì)有一種特別快樂的感覺。學(xué)以致用,這才是學(xué)習(xí)的目的。當(dāng)然,系統(tǒng)的開發(fā)離不開好的資料和同學(xué)的交流。在這次課程設(shè)計(jì)中深深感受到了同學(xué)之間交流合作的重要性。交流不但可以發(fā)現(xiàn)新的問題,提高解決問題的效率,而且可以快

19、速的學(xué)習(xí)到新的知識。最后感謝這次課程設(shè)計(jì)中給予我?guī)椭睦蠋熀屯瑢W(xué),是你們的幫助才使我的系統(tǒng)有了突破性的進(jìn)展。六、參考文獻(xiàn)1.數(shù)據(jù)庫系統(tǒng)概論(第三版) 薩師煊等 高等教育出版社七、附錄 部分源代碼1登錄控制:void cncistssmdlg:onenter() cdatabase database;database.open(湖南工程學(xué)院成績管理,false,false,odbc;,false);crecordset rs(&database); updatedata(true);cstring str;str.format(select * from 用戶 where 用戶名=%s,m_na

20、me);crecordset rs1(&database);rs1.open(afx_db_use_default_type,str);if(rs1.iseof()messagebox(用戶名輸入錯(cuò)誤!);return;str.format(select * from 用戶 where 用戶名=%sand 密碼=%s,m_name,m_password);rs.open(afx_db_use_default_type,str);if(rs.getrecordcount()=0)messagebox(密碼輸入錯(cuò)誤!);else cmaindlg dlg;dlg.domodal();/進(jìn)入主界面c

21、ncistssmdlg:oncancel();database.close();2添加記錄:updatedata(true);/ 確定所有輸入有效cstring swarning=;if ( =m_couno) swarning=_t(課程號); else if ( =m_couname) swarning=_t(課程名);else if ( =m_teano) swarning=_t(教師號);else if ( =m_xueshi) swarning=_t(學(xué)時(shí));else if ( =m_xuefen) swarning=_t(學(xué)分);if ( !=swarning ) swarning

22、 += _t(不能為空); afxmessagebox(swarning, mb_iconexclamation); return;cdatabase database; database.open(湖南工程學(xué)院成績管理);cstring sql; cstring item;sql.format(insert into 課程(課程號,課程名,教師號,學(xué)時(shí),學(xué)分) values(+m_couno+,+m_couname+,+m_teano+,+m_xueshi+,+m_xuefen+);trydatabase.executesql(sql);/執(zhí)行sql語句messagebox(添加成功!);c

23、atch(cdbexception e)messagebox(添加失?。?;return;database.close();show();updatedata(true);3修改記錄:updatedata(true);cstring str,swarning=;cdatabase database;/cstring swarning=;if ( =m_couno) swarning=_t(課程號); else if ( =m_couname) swarning=_t(課程名);else if ( =m_teano) swarning=_t(教師號);else if ( =m_xueshi) s

24、warning=_t(學(xué)時(shí));else if ( =m_xuefen) swarning=_t(學(xué)分);if ( !=swarning ) swarning += _t(不能為空); afxmessagebox(swarning, mb_iconexclamation); return;database.open(湖南工程學(xué)院成績管理);trystr.format(update 課程 set 課程名=+m_couname+ where (課程號=+m_couno+); database.executesql(str);str.format(update 課程 set 教師號=+m_teano+

25、 where (課程號=+m_couno+);database.executesql(str);str.format(update 課程 set 學(xué)時(shí)=+m_xueshi+ where (課程號=+m_couno+);database.executesql(str);str.format(update 課程 set 學(xué)分=+m_xuefen+ where (課程號=+m_couno+);database.executesql(str);afxmessagebox(修改成功!); catch(cdbexception e1) afxmessagebox(修改失??!);database.close

26、();show();4刪除記錄:updatedata(true);cstring str,swarning=;cdatabase database;/cstring swarning=;if ( =m_couno) swarning=_t(課程號);if ( !=swarning ) swarning += _t(不能為空); afxmessagebox(swarning, mb_iconexclamation); return;database.open(湖南工程學(xué)院成績管理);trystr.format(delete from 課程 where (課程號=+m_couno+); database.executesql(str);afxmessagebox(刪除成功!); catch(cdbexception e1) afxmessagebox(刪除失??!);database.close();show();5查詢記錄:updatedata(true);/ todo: add your control notification handler code herecdatabase database;

溫馨提示

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

評論

0/150

提交評論