




免費預(yù)覽已結(jié)束,剩余6頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫技術(shù)與應(yīng)用課程設(shè)計說明書題目: 學(xué)生成績管理系統(tǒng) 院 系: 專業(yè)班級: 學(xué) 號: 學(xué)生姓名: 指導(dǎo)教師: 2014年 12 月 22 日一 概述1.1目的與要求隨著科技的發(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é)生所學(xué)課程的考試成績。要方便學(xué)生進行成績查詢,通過該課程設(shè)計,應(yīng)該達到把數(shù)據(jù)庫理論知識更加的鞏固加深,加強動手能力與實踐能力,學(xué)以致用,與現(xiàn)實生活中的應(yīng)用充分的結(jié)合起來。1.2設(shè)計環(huán)境Microsoft SQL Server 2000Microsoft 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)該包含有對學(xué)生成績信息的查詢和處理,如平均成績、最好成績、最差成績以及不及格學(xué)生的統(tǒng)計等功能模塊;再其次還有教師、課程等相關(guān)信息的模塊;可以得到系統(tǒng)流程圖:登陸成功登陸失敗學(xué)生管理課程管理退出系統(tǒng)用戶驗證成績查詢2.3 數(shù)據(jù)庫設(shè)計 數(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)系模式名稱備注Student學(xué)生學(xué)生學(xué)籍信息表Course課程課程基本信息表Score成績選課成績信息表Student基本情況數(shù)據(jù)表,結(jié)構(gòu)如下:字段名字段類型Not Null說明Student _snoCharPrimary key學(xué)號Student _sncharNot Null學(xué)生姓名Student _sexchar男或女性別Student _deptchar系別Student_agechar年齡Student_addresschar地址course數(shù)據(jù)表,結(jié)構(gòu)如下:字段名字段類型約束控制說明course_cnochar主鍵(primary key)課程號course_cnamecharnot null課程名稱course_hourintnot null課時course_scorenumeric(2,1)not null學(xué)分score情況數(shù)據(jù)表,結(jié)構(gòu)如下:字段名字段類型約束控制說明score_idintnot null成績記錄號course_cnochar外部鍵課程號student_snochar外部鍵學(xué)號scoreint成績?nèi)?概念模型設(shè)計由需求分析的結(jié)果可知,本系統(tǒng)設(shè)計的實體包括:(1)學(xué)生基本信息:學(xué)號,姓名,性別,地址,年齡,專業(yè)。(2)課程基本信息: 課程名,課程號,分?jǐn)?shù),學(xué)時,學(xué)分。 這些實體間的聯(lián)系包括:(1)每位學(xué)生可以學(xué)習(xí)多門課程,每門課程可供多位學(xué)生學(xué)習(xí)。由上述分析可得到系統(tǒng)的ER圖:選修課程成績學(xué)生課程號課程名學(xué)時 學(xué)分分?jǐn)?shù)學(xué)號姓名性別系別 地址年齡四 邏輯和物理結(jié)構(gòu)設(shè)計4.1由系統(tǒng)ER圖轉(zhuǎn)化而得到的關(guān)系模式如下:(1)學(xué)生(學(xué)號,姓名,性別,年齡,地址,系別),其主關(guān)鍵字為學(xué)號;(2)課程(課程名,課程號,學(xué)時,學(xué)分),其中主關(guān)鍵字為課程號;(3)成績(課程號,學(xué)號,分?jǐn)?shù))其中主關(guān)鍵字為學(xué)號和課程號??梢耘c學(xué)生關(guān)系模式合并為:學(xué)生(學(xué)號,姓名,性別,年齡,地址,系別,成績,課程號)。4.2 確定關(guān)系模型的存取方法在將概念模型轉(zhuǎn)換成物理模型之后,我們可以對物理模型進行設(shè)計,雙擊物理模型的關(guān)系,可以對該關(guān)系的名稱、注釋等信息進行查詢??蓪υ撽P(guān)系的屬性列進行設(shè)計,可分別設(shè)置其名稱、碼、數(shù)據(jù)類型以及主碼、是否為空等。在實際設(shè)計中最常用的存取方法是索引發(fā),使用索引可以大大減少數(shù)據(jù)的查詢時間,在建立索引時應(yīng)遵循:在經(jīng)常需要搜索的列上建立索引; 在主關(guān)鍵字上建立索引;在經(jīng)常用于連接的列上建立索引,即在外鍵上建立索引;在經(jīng)常需要根據(jù)范圍進行搜索的列上創(chuàng)建索引,因為索引已經(jīng)排序,其指定的范圍是連續(xù)的等規(guī)則。才能充分利用索引的作用避免因索引引起的負(fù)面作用。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 null, 年齡 char(2) not null, 地址 varchar(20) not null, constraint PK_STUDENT primary key (學(xué)號)goexecute sp_addextendedproperty MS_Description, 學(xué)生基本信息描述, user, , table, StudentsInfogo(2)創(chuàng)建課程表:create table Course ( cno varchar(5) not null, cname varchar(10) null, xueshi smallint null, xuefen int null, constraint PK_COURSE primary key (課程號)goexecute sp_addextendedproperty MS_Description, (3)創(chuàng)建學(xué)生與課程的成績表create table SC ( sno varchar(11) not null,cno varchar(5) not null,chengji varchar(4) not null constraint PK_SC primary key (學(xué)號, 課程號)go在SC表上創(chuàng)建索引SC_FK與SC2_FKcreate 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)系的主碼。 五 數(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 THIS_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();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 : interface of the CMainFrame classclass CMainFrame : public CFrameWndprotected: / create from serialization onlyCMainFrame();DECLARE_DYNCREATE(CMainFrame)/ Attributespublic:/ Operationspublic:/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CMainFrame)virtual BOOL PreCreateWindow(CREATESTRUCT& 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(LPCREATESTRUCT lpCreateStruct);afx_msg void OnPassword();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_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line./ CScoreAddDlg dialogCScoreAddDlg:CScoreAddDlg(CWnd* pParent /*=NULL*/): CDialog(CScoreAddDlg:IDD, pParent)/AFX_DATA_INIT(CScoreAddDlg)/AFX_DATA_INITvoid CScoreAddDlg: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_MAPBEGIN_MESSAGE_MAP(CScoreAddDlg, CDialog)/AFX_MSG_MAP(CScoreAddDlg)/AFX_MSG_MAPEND_MESSAGE_MAP()void CScoreAddDlg:OnOK()CString student,course,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=&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(CRecordset:forwardOnly,strSQL); m_recordSet.GetFieldValue(course_no,course_no);m_recordSet.Close();BOOL CScoreAddDlg:OnInitDialog()CDialog:OnInitDialog();CRecordset m_recordSet;if(!m_database.IsOpen()m_database.Open(_T(student); m_recordSet.m_pDatabase=&m_database;CString strSQL;strSQL.Format(select course_name from course where active_status=Y); m_recordSet.Open(CRecordset:forwardOnly,strSQL);for(int i=0;im_recordSet.GetRecordCount();i+)CString temp;m_recordSet.GetFieldValue(course_name,temp);m_cCourse.AddString(temp); m_recordSet.MoveNext();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;jSetWindowText(成績窗口);return true;void CScoreAddDlg:OnCancel() / TODO: Add extra cleanup hereCDialog:OnCancel();5.2部分操作截圖:下圖顯示了學(xué)生登陸系統(tǒng)進行查詢時界面:下圖顯示了進行課程查
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 差旅服務(wù)定制化解決方案合作協(xié)議
- 車輛抵押反擔(dān)保借款合同解除后的后續(xù)處理
- 建筑行業(yè)常年法律顧問專業(yè)服務(wù)協(xié)議
- 土地利用規(guī)劃保密及實施合同
- 倉儲空間轉(zhuǎn)讓與倉儲管理軟件應(yīng)用合同
- 釣魚艇轉(zhuǎn)讓協(xié)議書范本
- 木房合同協(xié)議書范本
- 生物質(zhì)發(fā)電項目安裝與運營管理合同
- 旅游企業(yè)特色旅游辦公用品采購及服務(wù)協(xié)議
- 城市綜合體停車場場地租賃及收費管理制度合同
- 智能機器人介紹課件
- 胎心監(jiān)護醫(yī)學(xué)宣教
- 2024屆四川省成都市溫江區(qū)八年級語文第二學(xué)期期末達標(biāo)測試試題含解析
- 電商平臺的運營和增長策略
- 家庭安全隱患排查和應(yīng)對策略及方案
- 《塞翁失馬》課件
- 慣性導(dǎo)航與組合導(dǎo)航
- 急性腎盂腎炎疾病查房
- 第九屆全國大學(xué)生化學(xué)實驗邀請賽無機分析題
- 單位就業(yè)人員登記表
- 《應(yīng)用寫作》(第三版)復(fù)習(xí)思考、案例訓(xùn)練參考答案
評論
0/150
提交評論