數(shù)據(jù)庫(kù)課程設(shè)計(jì)(學(xué)生成績(jī)管理系統(tǒng))(.xiaoy)

上傳人:小** 文檔編號(hào):159329361 上傳時(shí)間:2022-10-08 格式:DOC 頁(yè)數(shù):12 大?。?43KB
收藏 版權(quán)申訴 舉報(bào) 下載
數(shù)據(jù)庫(kù)課程設(shè)計(jì)(學(xué)生成績(jī)管理系統(tǒng))(.xiaoy)_第1頁(yè)
第1頁(yè) / 共12頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)(學(xué)生成績(jī)管理系統(tǒng))(.xiaoy)_第2頁(yè)
第2頁(yè) / 共12頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)(學(xué)生成績(jī)管理系統(tǒng))(.xiaoy)_第3頁(yè)
第3頁(yè) / 共12頁(yè)

下載文檔到電腦,查找使用更方便

0 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《數(shù)據(jù)庫(kù)課程設(shè)計(jì)(學(xué)生成績(jī)管理系統(tǒng))(.xiaoy)》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫(kù)課程設(shè)計(jì)(學(xué)生成績(jī)管理系統(tǒng))(.xiaoy)(12頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、正文: 數(shù)據(jù)庫(kù)原理與應(yīng)用課程設(shè)計(jì)說(shuō)明書(shū)題目:學(xué)生成績(jī)管理系統(tǒng) 院系:專業(yè)班級(jí):學(xué)號(hào):學(xué)生姓名:指導(dǎo)教師: 2008年12月22日 1 概述 1.1目的與要求 隨著科技的發(fā)展,基本上所有的具有一定數(shù)量數(shù)據(jù)的機(jī)構(gòu)都開(kāi)始使用計(jì)算機(jī)數(shù)據(jù)庫(kù)來(lái)做管理。幾乎所有學(xué)校也都已經(jīng)在使用計(jì)算機(jī)管理數(shù)據(jù)的機(jī)制,大大減少了學(xué)校學(xué)生成績(jī)管理的工作量。該課程設(shè)計(jì)要求設(shè)計(jì)一個(gè)學(xué)生成績(jī)的數(shù)據(jù)庫(kù)管理系統(tǒng),數(shù)據(jù)庫(kù)中要求包含學(xué)生的基本信息,學(xué)科基本信息,以及學(xué)生所學(xué)課程的考試成績(jī)。要方便學(xué)生進(jìn)行成績(jī)查詢,通過(guò)該課程設(shè)計(jì),應(yīng)該達(dá)到把數(shù)據(jù)庫(kù)理論知識(shí)更加的鞏固加深,加強(qiáng)動(dòng)手能力與實(shí)踐能力,學(xué)以致用,與現(xiàn)實(shí)生活中的應(yīng)用充分

2、的結(jié)合起來(lái)。 1.2設(shè)計(jì)環(huán)境 ①M(fèi)icrosoftSQLServer2000 6.0 2.1 系統(tǒng)功能要求設(shè)計(jì) 此系統(tǒng)實(shí)現(xiàn)如下系統(tǒng)功能: 1)使得學(xué)生的成績(jī)管理工作更加清晰、條理化、自動(dòng)化。 2)通過(guò)用戶名和密碼登錄系統(tǒng),查詢課程基本資料,學(xué)生所選課程成績(jī),修改用戶密碼等功能。容易地完成學(xué)生信息的查詢操作。 (3)設(shè)計(jì)人機(jī)友好界面,功能安排合理,操作使用方便,并且進(jìn)一步考慮系統(tǒng)在安全性,完整性,并發(fā)控制,備份和恢復(fù)等方面的功能要求。 2.2 系統(tǒng)模塊設(shè)計(jì) 成績(jī)管理系統(tǒng)大體可以分成二大模塊如,一是學(xué)生的基本信息模塊,里面應(yīng)該包含學(xué)生的各方面的基本信息;再者便是課程管理模塊,在

3、該模塊中應(yīng)該包含有對(duì)學(xué)生成績(jī)信息的查詢和處理,如平均成績(jī)、最好成績(jī)、最差成績(jī)以及不及格學(xué)生的統(tǒng)計(jì)等功能模塊;再其次還有教師、課程等相關(guān)信息的模塊;可以得到系統(tǒng)流程圖: 2.3 數(shù)據(jù)字典 數(shù)據(jù)項(xiàng)是數(shù)據(jù)庫(kù)的關(guān)系中不可再分的數(shù)據(jù)單位,下表分別列出了數(shù)據(jù)的名稱、數(shù)據(jù)類型、長(zhǎng)度、取值能否為空。利用SQLServer2000建立“學(xué)生選課”數(shù)據(jù)庫(kù),其基本表清單及表結(jié)構(gòu)描述如下:數(shù)據(jù)庫(kù)中用到的表: 數(shù)據(jù)庫(kù)表名 關(guān)系模式名稱 備注 Student 學(xué)生 學(xué)生學(xué)籍信息表 Course 課程 課程基本信息表 Score 成績(jī) 選課成績(jī)信息表 Student基本情況數(shù)據(jù)

4、表,結(jié)構(gòu)如下: 字段名 字段類型 NotNull 說(shuō)明 Studentsno Char Primarykey 學(xué)號(hào) Studentsn char NotNull 學(xué)生姓名 Studentsex char '男'或'女' 性別 Studentdept char 系別 Studentage char 年齡 Studentaddress char 地址 course數(shù)據(jù)表,結(jié)構(gòu)如下: 字段名 字段類型 約束控制 說(shuō)明 course_cno char 主鍵(primarykey) 課程號(hào) course_cname

5、 char notnull 課程名稱 coursehour int notnull 課時(shí) course_score numeric(2,l) notnull 學(xué)分 score情況數(shù)據(jù)表,結(jié)構(gòu)如下: 字段名 字段類型 約束控制 說(shuō)明 score_id int notnull 成績(jī)記錄號(hào) course_cno char 外部鍵 課程號(hào) student_sno char 外部鍵 學(xué)號(hào) score int 成績(jī) 三 概念模型設(shè)計(jì) 由需求分析的結(jié)果可知,本系統(tǒng)設(shè)計(jì)的實(shí)體包括: 1)學(xué)生基本信息:學(xué)號(hào),姓名,性別,地址,年齡,

6、專業(yè)。 2)課程基本信息:課程名,課程號(hào),分?jǐn)?shù),學(xué)時(shí),學(xué)分。這些實(shí)體間的聯(lián)系包括: (1)每位學(xué)生可以學(xué)習(xí)多門(mén)課程,每門(mén)課程可供多位學(xué)生學(xué)習(xí) 由上述分析可得到系統(tǒng)的E—R圖: 四 邏輯和物理結(jié)構(gòu)設(shè)計(jì) 4.1由系統(tǒng)E-R圖轉(zhuǎn)化而得到的關(guān)系模式如下: (1)學(xué)生(學(xué)號(hào),姓名,性別,年齡,地址,系別),其主關(guān)鍵字為學(xué)號(hào); (2)課程(課程名,課程號(hào),學(xué)時(shí),學(xué)分),其中主關(guān)鍵字為課程號(hào); (3)成績(jī)(課程號(hào),學(xué)號(hào),分?jǐn)?shù))其中主關(guān)鍵字為學(xué)號(hào)和課程號(hào)??梢耘c學(xué)生關(guān)系模式合并為:學(xué)生(學(xué)號(hào),姓名,性別,年齡,地址,系別,成績(jī),課程號(hào))。 4.2確定關(guān)系模型的存取方法 在將概念模型

7、轉(zhuǎn)換成物理模型之后,我們可以對(duì)物理模型進(jìn)行設(shè)計(jì),雙擊物理模型的關(guān)系,可以對(duì)該關(guān)系的名稱、注釋等信息進(jìn)行查詢??蓪?duì)該關(guān)系的屬性列進(jìn)行設(shè)計(jì),可分別設(shè)置其名稱、碼、數(shù)據(jù)類型以及主碼、是否為空等。在實(shí)際設(shè)計(jì)中最常用的存取方法是索引發(fā),使用索引可以大大減少數(shù)據(jù)的查詢時(shí)間,在建立索引時(shí)應(yīng)遵循:在經(jīng)常需要搜索的列上建立索引;在主關(guān)鍵字上建立索引;在經(jīng)常用于連接的列上建立索引,即在外鍵上建立索引;在經(jīng)常需要根據(jù)范圍進(jìn)行搜索的列上創(chuàng)建索引,因?yàn)樗饕呀?jīng)排序,其指定的范圍是連續(xù)的等規(guī)則。才能充分利用索引的作用避免因索引引起的負(fù)面作用。 4.3 確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu) 確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)主要指確定數(shù)據(jù)的存放位置

8、和存儲(chǔ)結(jié)構(gòu),包括確定關(guān)系、索引、日志、備 因?yàn)樵摮煽?jī)管理系統(tǒng)的數(shù)據(jù)量小,,所以 份等的存儲(chǔ)安排及存儲(chǔ)結(jié)構(gòu),以及確定系統(tǒng)存儲(chǔ)參數(shù)的配置。我們只用把數(shù)據(jù)存儲(chǔ)在使用的電腦硬盤(pán)上,不用作更多的安排 (1)創(chuàng)建學(xué)生基本信息表: createtableStudent( 學(xué)號(hào) varchar(11) notnull, 系別 varchar(5) notnull, 姓名 varchar(6) notnull, 性別 varchar(2) notnull, 年齡 char(2) notnull, 地址 varchar(20) notnull, con

9、straintPK_STUDENTprimarykey (學(xué)號(hào)) 6 # go executesp_addextendedproperty'MS_Description','學(xué)生基本信息描述', 'user','','table','StudentsInfo'go (2)創(chuàng)建課程表:createtableCourse( cno cname xueshi varchar(5) varchar(10)smallint int xuefen constraintPK_COURSEprimarykey(課程號(hào))) notnull, null,

10、 null, null, # go MS_Description', executesp_addextendedproperty' createtableSC(sno (3)創(chuàng)建學(xué)生與課程的成績(jī)表 cno varchar(5) notnull, chengji varchar(4) notnull varchar(11) notnull, constraintPK_SCprimarykey(學(xué)號(hào),課程號(hào))) go 在SC表上創(chuàng)建索引SC_FK與SC2_FKcreateindexSC_FKonSC(學(xué)號(hào)ASC) Go createindexSC

11、2_FKonSC(課程號(hào)ASC) go 建立課程號(hào)索引 createindexTC_FKonTC( 課程號(hào)ASC ) go 下圖顯示了學(xué)生,課程和成績(jī)?nèi)齻€(gè)關(guān)系的物理設(shè)計(jì)其中課程號(hào)與學(xué)號(hào)號(hào)分別為關(guān)系的主碼。 "student+ SCOTC+ 五 數(shù)據(jù)庫(kù)的實(shí)施與維護(hù) 5.1數(shù)據(jù)庫(kù)的實(shí)施: 此階段主要任務(wù)包括創(chuàng)建數(shù)據(jù)庫(kù),加載初始數(shù)據(jù),數(shù)據(jù)庫(kù)試運(yùn)行,數(shù)據(jù)庫(kù)的安全性和完整性控制數(shù)據(jù)庫(kù)的備份與恢復(fù),數(shù)據(jù)庫(kù)性能的監(jiān)督分析和改僅,數(shù)據(jù)庫(kù)的重組和重構(gòu)等。首先在數(shù)據(jù)庫(kù)中建立一個(gè)學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù),然后新建一個(gè)數(shù)據(jù)源。主要代碼如下: #include"stdafx.h" #inc

12、lude"StudentScore.h" #include"Course.h" #ifdef_DEBUG #definenewDEBUG_NEW #undefTHIS_FILE staticcharTHIS_FILE[]=__FILE__; //CCourse IMPLEMENT_DYNAMIC(CCourse,CRecordset) CCourse::CCourse(CDatabase*pdb) :CRecordset(pdb) {〃{{AFX_FIELD_INIT(CCourse)//}}AFX_FIELD_INITm_nDefaultType=snapshot; C

13、StringCCourse::GetDefaultConnect() {return_T("ODBC;DSN="); } CStringCCourse::GetDefaultSQL() {return_T("");} voidCCourse::DoFieldExchange(CFieldExchange*pFX) { //{{AFX_FIELD_MAP(CCourse)pFX->SetFieldType(CFieldExchange::outputColumn);//}}AFX_FIELD_MAP } //CCoursediagnostics voidCCourse::As

14、sertValid()const {CRecordset::AssertValid();}voidCCourse::Dump(CDumpContext&dc)const {CRecordset::Dump(dc);} //MainFrm.h:interfaceoftheCMainFrameclassclassCMainFrame:publicCFrameWnd{protected://createfromserializationonly CMainFrame();DECLARE_DYNCREATE(CMainFrame) //Attributespublic: //Operati

15、onspublic: //Overrides //ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUAL(CMainFrame) virtualBOOLPreCreateWindow(CREATESTRUCT&cs);//}}AFX_VIRTUAL //Implementation public: virtual~CMainFrame(); protected://controlbarembeddedmembers //CStatusBarm_wndStatusBar;//CToolBarm_wndToolBar;

16、 //Generatedmessagemapfunctionsprotected: //{{AFX_MSG(CMainFrame)afx_msgintOnCreate(LPCREATESTRUCTlpCreateStruct);afx_msgvoidOnPassword(); afx_msgvoidOnUser(); afx_msgvoidOnStudent(); afx_msgvoidOnTeach(); afx_msgvoidOnTeacher(); afx_msgvoidOnScore(); afx_msgvoidOnQueryTeach(); afx_msgvoidO

17、nQueryScore(); afx_msgvoidOnCourse(); //}}AFX_MSGDECLARE_MESSAGE_MAP() }; //{{AFX_INSERT_LOCATION}} //MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline. //CScoreAddDlgdialog CScoreAddDlg::CScoreAddDlg(CWnd*pParent/*=NULL*/) :CDialog(CScoreAddDlg::IDD,pParent)

18、 {/{{AFX_DATA_INIT(CScoreAddDlg) //}}AFX_DATA_INIT } voidCScoreAddDlg::DoDataExchange(CDataExchange*pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CScoreAddDlg) DDX_Control(pDX,IDC_SCORE_STUDENT,m_cStudent); DDX_Control(pDX,IDC_SCORE_SCORE,m_cScore); DDX_Control(pDX,IDC_SCORE_COURSE

19、,m_cCourse); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CScoreAddDlg,CDialog) //{{AFX_MSG_MAP(CScoreAddDlg) //}}AFX_MSG_MAP END_MESSAGE_MAP() voidCScoreAddDlg::OnOK() { CStringstudent,course,score,student_no,course_no;m_cStudent.GetWindowText(student);m_cCourse.GetWindowText(course);m_cScore.GetW

20、indowText(score); else//成績(jī)不為空 { CStringstrSQL; //查出該學(xué)生的學(xué)號(hào) strSQL.Format("select*fromstudentwhereactive_status='Y'andstudent_name='%s'",student);CRecordsetm_recordSet=&m_database;m_recordSet.Open(CRecordset::forwardOnly,strSQL); m_recordSet.GetFieldValue("student_no",student_no);m_recordSet.Clo

21、se(); //查出該課程的課程號(hào) strSQL.Format("select*fromcoursewhereactive_status='Y'andcourse_name='%s'",course);m_recordSet.Open(CRecordset::forwardOnly,strSQL); m_recordSet.GetFieldValue("course_no",course_no);;m_recordSet.Close(); BOOLCScoreAddDlg::OnInitDialog() { CDialog::OnInitDialog(); CRecordsetm

22、_recordSet;if(!m_database.IsOpen()){ m_database.Open(_T("student"));m_recordSet.m_pDatabase=&m_database; } CStringstrSQL; strSQL.Format("selectcourse_namefromcoursewhereactive_status='Y'");m_recordSet.Open(CRecordset::forwardOnly,strSQL); for(inti=0;i

23、temp; m_recordSet.GetFieldValue("course_name",temp);m_cCourse.AddString(temp); m_recordSet.MoveNext(); } m_recordSet.Close();m_cCourse.SetCurSel(1); strSQL.Format("selectstudent_namefromstudentwhereactive_status='Y'");m_recordSet.Open(CRecordset::forwardOnly,strSQL); for(intj=0;j

24、etRecordCount();j++){ CStringtemp; m_recordSet.GetFieldValue("student_name",temp);m_cStudent.AddString(temp); m_recordSet.MoveNext(); } m_recordSet.Close();m_cStudent.SetCurSel(1); { this->SetWindowText("成績(jī)窗口"); } returntrue; } voidCScoreAddDlg::OnCancel() { //TODO:Addextracleanuphere

25、CDialog::OnCancel(); } 10 5.2部分操作截圖: 下圖顯示了學(xué)生登陸系統(tǒng)進(jìn)行查詢時(shí)界面: 成績(jī)查詢功能: 下圖顯示了進(jìn)行課程查詢時(shí)界面: 5.3數(shù)據(jù)庫(kù)的維護(hù) 當(dāng)試運(yùn)行數(shù)據(jù)庫(kù)合格后,數(shù)據(jù)庫(kù)開(kāi)發(fā)設(shè)計(jì)的工作就基本完成了,接下來(lái)就是正式運(yùn)行中的調(diào)試,應(yīng)為該系統(tǒng)比較簡(jiǎn)單,數(shù)據(jù)量小,數(shù)據(jù)庫(kù)中幾乎不會(huì)發(fā)生什么大的變化,但是還是需要做好數(shù)據(jù)的備份,在sqlserver中我們可以利用備份數(shù)據(jù)庫(kù)的功能對(duì)已經(jīng)設(shè)計(jì)好的數(shù)據(jù)做備份,如果數(shù)據(jù)庫(kù)受到破壞或系統(tǒng)故障,我們便可輕松的利用備份文件恢復(fù)數(shù)據(jù)庫(kù)的數(shù)據(jù)。當(dāng)然也可以利用其他各*方法進(jìn)行數(shù)據(jù)維護(hù)。 六總纟口 進(jìn)一步深入理解數(shù)據(jù)庫(kù)設(shè)計(jì)的整個(gè)過(guò)程,該學(xué)生選課系統(tǒng)的需求分析、數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)有關(guān)內(nèi)容等。掌握使用前臺(tái)程序設(shè)計(jì)技術(shù)VC和SQLServer結(jié)合設(shè)計(jì) C/S結(jié)構(gòu)的管理信息系統(tǒng)。綜合練習(xí)了SQLServer的使用和數(shù)據(jù)庫(kù)得管理技術(shù)。綜合熟悉并練習(xí)了SQL語(yǔ)言在編程中的使用。綜合訓(xùn)練編程能力。認(rèn)識(shí)系統(tǒng),取得系統(tǒng)需求分析,更重要得是在編程方面提高了實(shí)現(xiàn)目標(biāo)代碼得能力及調(diào)試代碼得能力

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!