版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、正文:數(shù)據(jù)庫原理與應(yīng)用課程設(shè)計說明書題目學(xué)生選課管理信息系統(tǒng)院系:電氣信息工程學(xué)院專業(yè)班級:電氣11106班學(xué)號:43811621學(xué)生姓名:劉浪指導(dǎo)教師:李玉成2012-6-27一概述1.1目地與要求隨著現(xiàn)代科技地發(fā)展,基本上所有地具有一定數(shù)量數(shù)據(jù)地機構(gòu)都開始使用計算機數(shù)據(jù)庫來做管理.幾乎所有學(xué)校也都已經(jīng)在使用計算機管理數(shù)據(jù)地機制,大大減少了學(xué)校對學(xué)生信息地管理工作量該課程設(shè)計要求設(shè)計一個學(xué)生選課地數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫中要求包含學(xué)生地基本信息 ,學(xué)科基本信息,教師基本信息,選課基本信息,成績信息要方便學(xué)生進行選課操作1.2設(shè)計環(huán)境 Microsoft SQL Server 2000 Micr
2、osoft Visual C+ 6.0二需求分析2.1系統(tǒng)功能要求設(shè)計此系統(tǒng)實現(xiàn)如下系統(tǒng)功能:(1)使得學(xué)生地成績管理工作更加清晰、條理化、自動化(2) 通過用戶名和密碼登錄系統(tǒng),查詢課程基本資料,學(xué)生所選課程成績,修改用戶密碼等功能.容易地 完成學(xué)生信息地查詢操作.(3)設(shè)計人機友好界面,功能安排合理,操作使用方便,并且進一步考慮系統(tǒng)在安全性,完整性,并發(fā)控制,備份和恢復(fù)等方面地功能要求.2.2系統(tǒng)模塊設(shè)計成績管理系統(tǒng)大體可以分成三大模塊如,一是學(xué)生地基本信息模塊,里面應(yīng)該包含學(xué)生地各方面地基本信息;再者便是課程管理模塊;三是教師基本信息模塊,里面應(yīng)包含教師地各方面基本信息.在該模塊中應(yīng)該包
3、含有對學(xué)生成績信息地查詢和處理,如平均成績、最好成績、最差成績以及不及格學(xué)2.3數(shù)據(jù)字典數(shù)據(jù)項是數(shù)據(jù)庫地關(guān)系中不可再分地數(shù)據(jù)單位,下表分別列出了數(shù)據(jù)地名稱、數(shù)據(jù)類型、長度、取值能否為空.利用SQL Server 2000建立“學(xué)生選課”數(shù)據(jù)庫,其基本表清單及表結(jié)構(gòu)描述如下: 數(shù)據(jù)庫中用到地表:數(shù)據(jù)庫表名關(guān)系模式名稱備注Stude nt學(xué)生學(xué)生學(xué)籍信息表Course課程課程基本信息表Score成績選課成績信息表Student基本情況數(shù)據(jù)表,結(jié)構(gòu)如下:字段名字段類型Not Null說明Stude nt snoCharPrimary key學(xué)號Stude nt sncharNot Null學(xué)生姓名S
4、tude nt sexchar'男或女性別Stude nt deptchar系別Stude nt agechar年齡Stude nt addresschar地址course數(shù)據(jù)表,結(jié)構(gòu)如下:字段名字段類型約束控制說明course c nochar主鍵(primary key)】田千口 i=r. 課程號course c namecharnot n ull課程名稱course hourintnot n ull課時course scorenu meric(2,1)not n ull學(xué)分score情況數(shù)據(jù)表,結(jié)構(gòu)如下:字段名字段類型約束控制說明score idintnot n ull成績記錄號
5、course c nochar外部鍵】田千口 i=r. 課程號stude nt snochar外部鍵學(xué)號scoreint成績?nèi)拍钅P驮O(shè)計由需求分析地結(jié)果可知,本系統(tǒng)設(shè)計地實體包括:(1)學(xué)生基本信息:學(xué)號,姓名性別,地址,年齡,專業(yè).(2) 課程基本信息:課程名,課程號,分數(shù),學(xué)時,學(xué)分 這些實體間地聯(lián)系包括:(1)每位學(xué)生可以學(xué)習(xí)多門課程 ,每門課程可供多位學(xué)生學(xué)習(xí) 由上述分析可得到系統(tǒng)地 E R圖:四邏輯和物理結(jié)構(gòu)設(shè)計4.1由系統(tǒng)E R圖轉(zhuǎn)化而得到地關(guān)系模式如下:(1)學(xué)生(學(xué)號 姓名 性別,年齡 地址,系別),其主關(guān)鍵字為學(xué)號;(2)課程(課程名,課程號,學(xué)時,學(xué)分),其中主關(guān)鍵字為課
6、程號;(3) 成績(課程號,學(xué)號,分數(shù))其中主關(guān)鍵字為學(xué)號和課程號可以與學(xué)生關(guān)系模式合并為:學(xué)生(學(xué)號,姓名,性別,年齡,地址,系別,成績,課程號).4. 2確定關(guān)系模型地存取方法在將概念模型轉(zhuǎn)換成物理模型之后,我們可以對物理模型進行設(shè)計,雙擊物理模型地關(guān)系,可以對該 關(guān)系地名稱、注釋等信息進行查詢 可對該關(guān)系地屬性列進行設(shè)計 ,可分別設(shè)置其名稱、碼、數(shù)據(jù)類型以 及主碼、是否為空等在實際設(shè)計中最常用地存取方法是索引發(fā),使用索引可以大大減少數(shù)據(jù)地查詢時間在建立索引時應(yīng)遵循: 在經(jīng)常需要搜索地列上建立索引; 在主關(guān)鍵字上建立索引; 在經(jīng)常用于連接地 列上建立索引,即在外鍵上建立索引;在經(jīng)常需要根據(jù)
7、范圍進行搜索地列上創(chuàng)建索引 ,因為索引已經(jīng)排序 其指定地范圍是連續(xù)地等規(guī)則 才能充分利用索引地作用避免因索引引起地負面作用4.3確定數(shù)據(jù)庫地存儲結(jié)構(gòu)確定數(shù)據(jù)庫地存儲結(jié)構(gòu)主要指確定數(shù)據(jù)地存放位置和存儲結(jié)構(gòu),包括確定關(guān)系、索引、日志、備份等地存儲安排及存儲結(jié)構(gòu),以及確定系統(tǒng)存儲參數(shù)地配置因為該成績管理系統(tǒng)地數(shù)據(jù)量小”所以我們只用把數(shù)據(jù)存儲在使用地電腦硬盤上,不用作更多地安排(1)創(chuàng)建學(xué)生基本信息表:create table Student (學(xué)號varchar(11)not null,系別varchar(5)not null,姓名varchar(6)not null,性別varchar(2)not
8、 null,年齡char(2)not null,地址varchar(20)not null,constraint PK_STUDENT primary key(學(xué)號)goexecute sp_addextendedproperty 'MS_Description','學(xué)生基本信息描述','user', ", 'table', 'Studentslnfo' go(2)創(chuàng)建課程表:create table Course (cnovarchar(5)not null,cnamevarchar(10)null,x
9、ueshismallintnull,xuefenintnull,constraint PK_COURSE primary key(課程號)go execute sp_addextendedproperty 'MS_Description', go(3)創(chuàng)建學(xué)生與課程地成績表create table SC ( snocnochengjiconstraint PK_SC primary keyvarchar(11)varchar(5)varchar(4)(學(xué)號,課程號)not null,not null,not null在SC表上創(chuàng)建索弓I SC_FK與SC2_FK create
10、index SC_FK on SC (學(xué)號 ASC) Gocreate index SC2_FK on SC (課程號 ASC) go建立課程號索引create index TC_FK on TC (課程號ASC)go下圖顯示了學(xué)生,課程和成績?nèi)齻€關(guān)系地物理設(shè)計其中課程號與學(xué)號號分別為關(guān)系地主碼se *score courseidcoursecoursecoursehourcoursfecredi tac tistatusDOJES?student *Estudent_rkostudeiit_sex student_phone acti ve_EtatiiE s tudent_addr
11、71; s.雪J五數(shù)據(jù)庫地實施與維護5.1數(shù)據(jù)庫地實施:此階段主要任務(wù)包括創(chuàng)建數(shù)據(jù)庫,加載初始數(shù)據(jù),數(shù)據(jù)庫試運行,數(shù)據(jù)庫地安全性和完整性控制數(shù)據(jù)庫地備份與恢復(fù),數(shù)據(jù)庫性能地監(jiān)督分析和改僅,數(shù)據(jù)庫地重組和重構(gòu)等首先在數(shù)據(jù)庫中建立一個學(xué) 生成績管理系統(tǒng)數(shù)據(jù)庫,然后新建一個數(shù)據(jù)源主要代碼如下:#include "stdafx.h"#include "StudentScore.h"#include "Course.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char T
12、HIS_FILE = _FILE_;/ CCourseIMPLEMENT_DYNAMIC(CCourse, CRecordset)CCourse:CCourse(CDatabase* pdb):CRecordset(pdb)AFX_FIELD_INIT(CCourse)AFX_FIELD_INITm_nDefaultType = snapshot;CString CCourse:GetDefaultConnect() return _T("ODBC;DSN=");CString CCourse:GetDefaultSQL() return _T("");
13、void CCourse:DoFieldExchange(CFieldExchange* pFX)AFX_FIELD_MAP(CCourse) pFX->SetFieldType(CFieldExchange:outputColumn);AFX_FIELD_MAP/ CCourse diagnosticsvoid CCourse:AssertValid() constCRecordset:AssertValid();void CCourse:Dump(CDumpContext& dc) constCRecordset:Dump(dc);/ MainFrm.h : interfac
14、e of the CMainFrame classclass CMainFrame : public CFrameWndprotected: / create from serialization onlyCMainFrame();DECLARE_DYNCREA TE(CMainFrame)/ Attributespublic:/ Operationspublic:/ Overrides/ ClassWizard generated virtual function overridesAFX_VIRTUAL(CMainFrame)virtual BOOL PreCreateWindow(CRE
15、ATESTRUCT & cs);AFX_VIRTUAL/ Implementationpublic:virtual CMainFrame();protected: / control bar embedded members/CStatusBar m_wndStatusBar;/CToolBar m_wndToolBar;/ Generated message map functionsprotected:AFX_MSG(CMainFrame)afx_msg int OnCreate(LPCREA TESTRUCT lpCreateStruct);afx_msg void OnPass
16、word();afx_msg void OnUser();afx_msg void OnStudent();afx_msg void OnTeach();afx_msg void OnTeacher();afx_msg void OnScore();afx_msg void OnQueryTeach();afx_msg void OnQueryScore();afx_msg void OnCourse();AFX_MSGDECLARE_MESSAGE_MAP();AFX_INSERT_LOCA TION/ Microsoft Visual C+ will insert additional d
17、eclarations immediately before the previous line./ CScoreAddDlg dialogCScoreAddDlg:CScoreAddDlg(CWnd* pParent /*=NULL*/):CDialog(CScoreAddDlg:IDD, pParent)/AFX_DA TA_INIT(CScoreAddDlg)/AFX_DA TA_INITvoid CScoreAddDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DA TA_MAP(CScore
18、AddDlg)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_DA TA_MAPBEGIN_MESSAGE_MAP(CScoreAddDlg, CDialog)AFX_MSG_MAP(CScoreAddDlg)/AFX_MSG_MAPEND_MESSAGE_MAP()void CScoreAddDlg:OnOK()CString student,course,
19、score,student_no,course_no;m_cStudent.GetWindowText(student);m_cCourse.GetWindowText(course);m_cScore.GetWindowText(score);else/成績不為空CString strSQL;/查岀該學(xué)生地學(xué)號strSQL.Format("select * from student where active_status='Y' and student_name='%s"',student); CRecordset m_recordSet=
20、&m_database; m_recordSet.Open(CRecordset:forwardOnly,strSQL);m_recordSet.GetFieldValue("student_no",student_no); m_recordSet.Close();/查岀該課程地課程號strSQL.Format("select * from course where active_status='Y' and course_name='%s'",course); m_recordSet.Open(CRecordse
21、t:forwardOnly,strSQL);m_recordSet.GetFieldValue("course_no",course_no);m_recordSet.Close();BOOL CScoreAddDlg:OnlnitDialog()CDialog:OnInitDialog();CRecordset m_recordSet;if(!m_database.lsOpen()m_database.Open(_T("student"); m_recordSet.m_pDatabase=&m_database;CString strSQL;st
22、rSQL.Format("select course_name from course where active_status='Y"');m_recordSet.Open(CRecordset:forwardOnly,strSQL);for(int i=0;i<m_recordSet.GetRecordCount();i+)CString temp;m_recordSet.GetFieldValue("course_name",temp);m_cCourse.AddString(temp);m_recordSet.MoveNext
23、();m_recordSet.Close();m_cCourse.SetCurSel(1);strSQL.Format("select student_name from student where active_status='Y'");m_recordSet.Open(CRecordset:forwardOnly,strSQL);for(int j=0;jvm_recordSet.GetRecordCount();j+)CString temp;m_recordSet.GetFieldValue("student_name",temp);m_cStudent.AddString(temp);m_recordSet.MoveNext();m_recordSet.Close();m_cStudent.SetCurSel(1);this->SetWindowText(” 成績窗口 ");return true;void CScoreAddDlg:OnCancel()/ TODO: Add extra cleanup hereCDialog:OnCancel();5.2部分操作截圖:下圖顯示了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 賀州學(xué)院《教師職業(yè)技能》2023-2024學(xué)年第一學(xué)期期末試卷
- 菏澤學(xué)院《音樂鑒賞》2022-2023學(xué)年第一學(xué)期期末試卷
- 菏澤學(xué)院《藥用植物學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 菏澤學(xué)院《土力學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 河南師范大學(xué)《中國教育論著選讀》2022-2023學(xué)年第一學(xué)期期末試卷
- 河南師范大學(xué)《油畫基礎(chǔ)》2021-2022學(xué)年第一學(xué)期期末試卷
- 河南師范大學(xué)《信號與系統(tǒng)》2021-2022學(xué)年第一學(xué)期期末試卷
- 河南師范大學(xué)《外國文學(xué)(一)》2022-2023學(xué)年第一學(xué)期期末試卷
- 河南師范大學(xué)《中國音樂史與名作欣賞1》2022-2023學(xué)年第一學(xué)期期末試卷
- 河南師范大學(xué)《國際經(jīng)貿(mào)》2023-2024學(xué)年第一學(xué)期期末試卷
- 肛瘺的MRI診斷及治療介紹學(xué)習(xí)ppt
- 《朝花夕拾》【名著導(dǎo)讀】
- 新教材教科版六年級上冊科學(xué)全冊期末復(fù)習(xí)背誦知識點整理
- 外國人住宿登記表(模板)
- 2022年三年級提示語在不同位置標點符號專項訓(xùn)練題和答案
- 貴州省專業(yè)技術(shù)職務(wù)任職資格評審表(樣表)
- 消防水池施工設(shè)計方案
- 安全系統(tǒng)工程第三章-系統(tǒng)安全定量分析課件
- WinCC監(jiān)控組態(tài)軟件應(yīng)用教程(第5章 報警消息系統(tǒng))
- 中小學(xué)大隊委競選匯報自我介紹PPT模板課件(PPT 17頁)
- 模擬電路考試試題10套和答案
評論
0/150
提交評論