




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGE18數據庫課程設計(學生成績管理系統(tǒng))(xiaoy)[1]正文:數據庫原理與應用課程設計說明書題目:學生成績管理系統(tǒng)院系: 專業(yè)班級: 學號: 學生姓名: 指導教師:2008年12月22日一概述1.1目的與要求隨著科技的發(fā)展,基本上所有的具有一定數量數據的機構都開始使用計算機數據庫來做管理。幾乎所有學校也都已經在使用計算機管理數據的機制,大大減少了學校學生成績管理的工作量。該課程設計要求設計一個學生成績的數據庫管理系統(tǒng),數據庫中要求包含學生的基本信息,學科基本信息,以及學生所學課程的考試成績。要方便學生進行成績查詢,通過該課程設計,應該達到把數據庫理論知識更加的鞏固加深,加強動手能力與實踐能力,學以致用,與現實生活中的應用充分的結合起來。1.2設計環(huán)境 ①
MicrosoftSQLServer2000②
MicrosoftVisualC++6.0二需求分析2.1系統(tǒng)功能要求設計此系統(tǒng)實現如下系統(tǒng)功能:(1)使得學生的成績管理工作更加清晰、條理化、自動化。(2)通過用戶名和密碼登錄系統(tǒng),查詢課程基本資料,學生所選課程成績,修改用戶密碼等功能。容易地完成學生信息的查詢操作。(3)設計人機友好界面,功能安排合理,操作使用方便,并且進一步考慮系統(tǒng)在安全性,完整性,并發(fā)控制,備份和恢復等方面的功能要求。2.2系統(tǒng)模塊設計登陸失敗學生管理課程管理登陸失敗學生管理課程管理退出系統(tǒng)用戶驗證成績查詢登陸成功2.3數據字典 數據項是數據庫的關系中不可再分的數據單位,下表分別列出了數據的名稱、數據類型、長度、取值能否為空。利用SQLServer2000建立“學生選課”數據庫,其基本表清單及表結構描述如下:數據庫中用到的表:數據庫表名關系模式名稱備注Student學生學生學籍信息表Course課程課程基本信息表Score成績選課成績信息表Student基本情況數據表,結構如下:字段名字段類型NotNull說明Student_snoCharPrimarykey學號Student_sncharNotNull學生姓名Student_sexchar‘男’或‘女’性別Student_deptchar系別Student_agechar年齡Student_addresschar地址course數據表,結構如下:字段名字段類型約束控制說明course_cnochar主鍵(primarykey)課程號course_cnamecharnotnull課程名稱course_hourintnotnull課時course_scorenumeric(2,1)notnull學分score情況數據表,結構如下:字段名字段類型約束控制說明score_idintnotnull成績記錄號course_cnochar外部鍵課程號student_snochar外部鍵學號scoreint成績三概念模型設計由需求分析的結果可知,本系統(tǒng)設計的實體包括:(1)學生基本信息:學號,姓名,性別,地址,年齡,專業(yè)。(2)課程基本信息:課程名,課程號,分數,學時,學分。這些實體間的聯系包括:(1)每位學生可以學習多門課程,每門課程可供多位學生學習。由上述分析可得到系統(tǒng)的E—R圖:選修課程選修課程成績學生課程號課程名學時學分分數學號姓名性別系別地址年齡四邏輯和物理結構設計4.1由系統(tǒng)E—R圖轉化而得到的關系模式如下:(1)學生(學號,姓名,性別,年齡,地址,系別),其主關鍵字為學號;(2)課程(課程名,課程號,學時,學分),其中主關鍵字為課程號;(3)成績(課程號,學號,分數)其中主關鍵字為學號和課程號。可以與學生關系模式合并為:學生(學號,姓名,性別,年齡,地址,系別,成績,課程號)。4.2確定關系模型的存取方法在將概念模型轉換成物理模型之后,我們可以對物理模型進行設計,雙擊物理模型的關系,可以對該關系的名稱、注釋等信息進行查詢??蓪υ撽P系的屬性列進行設計,可分別設置其名稱、碼、數據類型以及主碼、是否為空等。在實際設計中最常用的存取方法是索引發(fā),使用索引可以大大減少數據的查詢時間,在建立索引時應遵循:在經常需要搜索的列上建立索引;
在主關鍵字上建立索引;在經常用于連接的列上建立索引,即在外鍵上建立索引;在經常需要根據范圍進行搜索的列上創(chuàng)建索引,因為索引已經排序,其指定的范圍是連續(xù)的等規(guī)則。才能充分利用索引的作用避免因索引引起的負面作用。4.3確定數據庫的存儲結構確定數據庫的存儲結構主要指確定數據的存放位置和存儲結構,包括確定關系、索引、日志、備份等的存儲安排及存儲結構,以及確定系統(tǒng)存儲參數的配置。因為該成績管理系統(tǒng)的數據量小,,所以我們只用把數據存儲在使用的電腦硬盤上,不用作更多的安排。(1)創(chuàng)建學生基本信息表:createtableStudent(學號varchar(11)notnull,系別varchar(5)notnull,姓名varchar(6)notnull,性別varchar(2)notnull,年齡char(2)notnull,地址varchar(20)notnull,constraintPK_STUDENTprimarykey(學號))goexecutesp_addextendedproperty'MS_Description','學生基本信息描述','user','','table','StudentsInfo'go(2)創(chuàng)建課程表:createtableCourse(cnovarchar(5)notnull,cnamevarchar(10)null,xueshismallintnull,xuefenintnull,constraintPK_COURSEprimarykey(課程號))goexecutesp_addextendedproperty'MS_Description',(3)創(chuàng)建學生與課程的成績表createtableSC(snovarchar(11)notnull,cnovarchar(5)notnull,chengjivarchar(4)notnullconstraintPK_SCprimarykey(學號,課程號))go在SC表上創(chuàng)建索引SC_FK與SC2_FKcreateindexSC_FKonSC(學號ASC)GocreateindexSC2_FKonSC(課程號ASC)go建立課程號索引createindexTC_FKonTC(課程號ASC)go下圖顯示了學生,課程和成績三個關系的物理設計其中課程號與學號號分別為關系的主碼。五數據庫的實施與維護5.1數據庫的實施:此階段主要任務包括創(chuàng)建數據庫,加載初始數據,數據庫試運行,數據庫的安全性和完整性控制數據庫的備份與恢復,數據庫性能的監(jiān)督分析和改僅,數據庫的重組和重構等。首先在數據庫中建立一個學生成績管理系統(tǒng)數據庫,然后新建一個數據源。主要代碼如下:#include"stdafx.h"#include"StudentScore.h"#include"Course.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;//CCourseIMPLEMENT_DYNAMIC(CCourse,CRecordset)CCourse::CCourse(CDatabase*pdb) :CRecordset(pdb){ //{{AFX_FIELD_INIT(CCourse) //}}AFX_FIELD_INIT m_nDefaultType=snapshot;CStringCCourse::GetDefaultConnect(){ return_T("ODBC;DSN=");}CStringCCourse::GetDefaultSQL(){ return_T("");}voidCCourse::DoFieldExchange(CFieldExchange*pFX){ //{{AFX_FIELD_MAP(CCourse) pFX->SetFieldType(CFieldExchange::outputColumn); //}}AFX_FIELD_MAP}//CCoursediagnosticsvoidCCourse::AssertValid()const{ CRecordset::AssertValid();}voidCCourse::Dump(CDumpContext&dc)const{ CRecordset::Dump(dc);}//MainFrm.h:interfaceoftheCMainFrameclassclassCMainFrame:publicCFrameWnd{protected://createfromserializationonly CMainFrame(); DECLARE_DYNCREATE(CMainFrame)//Attributespublic://Operationspublic://Overrides //ClassWizardgeneratedvirtualfunctionoverrides //{{AFX_VIRTUAL(CMainFrame) virtualBOOLPreCreateWindow(CREATESTRUCT&cs); //}}AFX_VIRTUAL//Implementationpublic: virtual~CMainFrame();protected://controlbarembeddedmembers //CStatusBarm_wndStatusBar; //CToolBarm_wndToolBar;//Generatedmessagemapfunctionsprotected: //{{AFX_MSG(CMainFrame) afx_msgintOnCreate(LPCREATESTRUCTlpCreateStruct); afx_msgvoidOnPassword(); afx_msgvoidOnUser(); afx_msgvoidOnStudent(); afx_msgvoidOnTeach(); afx_msgvoidOnTeacher(); afx_msgvoidOnScore(); afx_msgvoidOnQueryTeach(); afx_msgvoidOnQueryScore(); afx_msgvoidOnCourse(); //}}AFX_MSG DECLARE_MESSAGE_MAP()};//{{AFX_INSERT_LOCATION}}//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.//CScoreAddDlgdialogCScoreAddDlg::CScoreAddDlg(CWnd*pParent/*=NULL*/) :CDialog(CScoreAddDlg::IDD,pParent){/{{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,m_cCourse); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CScoreAddDlg,CDialog) //{{AFX_MSG_MAP(CScoreAddDlg) //}}AFX_MSG_MAPEND_MESSAGE_MAP()voidCScoreAddDlg::OnOK(){ CStringstudent,course,score,student_no,course_no; m_cStudent.GetWindowText(student); m_cCourse.GetWindowText(course);m_cScore.GetWindowText(score); else//成績不為空 { CStringstrSQL; //查出該學生的學號 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.Close(); //查出該課程的課程號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_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<m_recordSet.GetRecordCount();i++){ CStringtemp; 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<m_recordSet.GetRecordCount();j++){ CStringtemp; m_recordSet.GetFieldValue("student_name",temp); m_cStudent.AddString(temp);m_recordSet.MoveNext(); } m_recordSet.Close();m_cStudent.SetCurSel(1); { this->SetWindowText("成績窗口"); } returntrue;}voidCScoreAddDlg::OnCancel(){ //TODO:Addextracleanuphere CDialog::OnCancel();}PAGE165.2部分操作截圖:下圖顯示了學生登陸系統(tǒng)進行查詢時界面:下圖顯示了進行課程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 可行性研究報告編寫
- 化妝品與日用化學品制造業(yè)作業(yè)指導書
- 季度工作進展計劃及部署方案
- 新媒體運營實踐與優(yōu)化指南
- 農業(yè)項目資金申請手冊
- 外科復習題復習試題及答案
- 三農村基本公共服務均等化實施方案
- 項目進度匯報及下一步計劃演講詞
- 農村人居環(huán)境整治法律法規(guī)指南
- 農業(yè)生態(tài)環(huán)境保護策略指南
- 樓梯 欄桿 欄板(一)22J403-1
- GB 19377-2003天然草地退化、沙化、鹽漬化的分級指標
- 中國隧道及地下工程修建技術PPT
- 不良事件魚骨圖分析
- 三角形章起始課-展示課件
- 有限空間作業(yè)審批表范本
- 超市便利店日常工作檢查記錄表
- 細支氣管肺泡癌的影像診斷(61頁)
- X射線的物理學基礎-
- 財務英語英漢對照表
- 腦電圖學專業(yè)水平考試大綱初級
評論
0/150
提交評論