版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、長春工業(yè)大學(xué)人文信息學(xué)院工商管理系工商管理專業(yè)課程設(shè)計管 理 信 息 系 統(tǒng)課 程 設(shè) 計題 目 超市管理信息系統(tǒng)專業(yè)年級 2010級 100734班姓 名 指導(dǎo)老師 職業(yè) 老師日 期 2012年3月6日目錄一.概述 1設(shè)計背景.2設(shè)計目的.3設(shè)計內(nèi)容.二 .需求分析1功能分析.2工作流圖3數(shù)據(jù)流圖.4數(shù)據(jù)字典.三.概念模型設(shè)計(e-r圖).1實體及屬性圖.2.實體及其聯(lián)系圖.四.邏輯設(shè)計.1.e-r模型轉(zhuǎn)換為關(guān)系模式.2.范式分析.五.源代碼及查詢截圖.1程序流程圖.2程序源代碼.(1)建表代碼.(2)數(shù)據(jù)庫連接代碼.(3)功能模塊代碼:.顯示數(shù)據(jù)庫中原紀錄.增加記錄功能實現(xiàn).刪除記錄功能實
2、現(xiàn).修改記錄功能實現(xiàn).查詢記錄功能實現(xiàn).3.程序截圖. (1)程序界面. (2)增加記錄.(3)增加結(jié)果. (4)刪除記錄(密碼為1234). (5)刪除結(jié)果. (6)修改記錄(密碼為1234). (7)修改結(jié)果. (8)查詢記錄. (9)查詢結(jié)果. (10)顯示學(xué)生,教師,科目基本信息六總結(jié).1.設(shè)計中存在的問題.2.體會.概述1. 設(shè)計背景學(xué)生成績管理系統(tǒng)是一個教育單位不可缺少的部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要,所以學(xué)生成績管理系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段,但是幾年前,各個學(xué)校的學(xué)生成績管理基本上都是靠手工進行,隨著各個學(xué)校的規(guī)模增大,有關(guān)學(xué)生成績管
3、理工作所涉及的數(shù)據(jù)量越來越大,有的學(xué)校不得不靠增加人力、物力來進行學(xué)生成績管理。這種管理方式存在著許多缺點,如:效率低、保密性差,另外所用其時間長,產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。如今學(xué)校的學(xué)生越來越多,成績管理的工作量越來越大,手工管理成績的弊端也越來越明顯。隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。作為計算機應(yīng)用的一部分,使用計算機對學(xué)生檔案信息進行管理,具有手工管理所無法比擬的優(yōu)點。例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地
4、提高學(xué)生檔案管理的效率。所以我想借本次課程設(shè)計之際,設(shè)計一個簡易的學(xué)生成績管理系統(tǒng)。2. 設(shè)計目的1、掌握運用數(shù)據(jù)庫原理進行系統(tǒng)分析和設(shè)計的方法;2、掌握關(guān)系數(shù)據(jù)庫的設(shè)計方法;3、掌握利用sql server 2000技術(shù);4、加強c+的編程能力3. 設(shè)計內(nèi)容1.設(shè)計一個簡易學(xué)生成績管理的數(shù)據(jù)庫系統(tǒng),包括數(shù)據(jù)庫的建立的需求分析,數(shù)據(jù)的輸入輸出。2.設(shè)計用戶的操作界面,主要實現(xiàn)數(shù)據(jù)的查詢,添加,修改,刪除基本功能。 二 .需求分析1. 功能分析在成績管理系統(tǒng)中最主要的是對學(xué)生成績的管理,管理主要包括:對學(xué)生成績的錄入,修改,刪除,以及按不同的方式對學(xué)生成績進行查詢。系統(tǒng)中包括學(xué)生的基本信息(如:
5、學(xué)號,姓名,專業(yè)等),學(xué)生的各科成績信息,教師的基本信息(如:教師編號,姓名,性別,所教科目,學(xué)歷等),學(xué)生所學(xué)科目科目的基本信息(如:科目編號,名稱,出版社等),以便查詢。2. 工作流圖 學(xué)生成績管理系統(tǒng)顯示系統(tǒng)原先記錄增加記錄刪除記錄修改記錄查詢記錄班級成績信息學(xué)生基本信息教師基本信息科目基本信息學(xué)生,教師,科目基本信息 3. 數(shù)據(jù)流圖通知參加考試成績學(xué)生管理教師4. 數(shù)據(jù)字典數(shù)據(jù)項卡片1: 數(shù)據(jù)項名學(xué)號別名學(xué)生學(xué)號描述唯一標識每個學(xué)生定義學(xué)號=3字符3取值范圍100199位置學(xué)生基本信息表數(shù)據(jù)項卡片2:數(shù)據(jù)項名姓名別名學(xué)生姓名描述標識每個學(xué)生定義姓名=10字符10位置學(xué)生基本信息表數(shù)據(jù)項
6、卡片3: 數(shù)據(jù)項名專業(yè)別名學(xué)生專業(yè)描述標識學(xué)生的專業(yè)定義專業(yè)=10字符10位置學(xué)生基本信息表 數(shù)據(jù)項卡片4: 數(shù)據(jù)項名編號別名教師標號描述唯一標識每個教師定義編號=2字符2取值范圍099位置教師基本信息數(shù)據(jù)項卡片5: 數(shù)據(jù)項名職稱別名教師職稱描述標識教師職稱定義職稱=4字符4位置教師基本信息數(shù)據(jù)項卡片6:數(shù)據(jù)項名所教科目別名教師所教科目描述標識教師所教的科目定義所教科目=10字符10位置教師基本信息數(shù)據(jù)項卡片7:數(shù)據(jù)項名課程號別名課程編號描述標識課程的課號定義課程號=5字符5取值范圍010位置科目基本信息數(shù)據(jù)項卡片8:數(shù)據(jù)項名課程名別名課程名稱定義課程名=10字符10位置科目基本信息數(shù)據(jù)項卡片
7、9:數(shù)據(jù)項名學(xué)分別名科目學(xué)分定義學(xué)分=5字符5取值范圍15位置科目基本信息數(shù)據(jù)結(jié)構(gòu)卡片1:數(shù)據(jù)結(jié)構(gòu)名學(xué)生別名學(xué)生基本信息描述定義學(xué)生的基本信息組成姓名+學(xué)號+性別+專業(yè)數(shù)據(jù)結(jié)構(gòu)卡片2:數(shù)據(jù)結(jié)構(gòu)名教師別名教師基本信息描述定義教師基本信息組成編號+姓名+性別+職稱+所教科目數(shù)據(jù)結(jié)構(gòu)卡片3:數(shù)據(jù)結(jié)構(gòu)名課程別名課程基本信息描述定義課程基本信息組成課程號+課程名+學(xué)分數(shù)據(jù)存儲卡片:數(shù)據(jù)存儲名考試成績別名成績表描述學(xué)生參加考試的最終結(jié)果數(shù)據(jù)流來源教師辦公室數(shù)據(jù)流去向教務(wù)處組成學(xué)號+姓名+數(shù)學(xué)+物理+化學(xué)+英語+政治+總成績+平均成績數(shù)據(jù)流卡片:數(shù)據(jù)流名學(xué)生信息別名學(xué)生基本信息描述記錄學(xué)生基本信息定義學(xué)生信
8、息=學(xué)號+姓名+性別+專業(yè)存取方式隨機存取三 概念模型設(shè)計(e-r圖)1. 實體及屬性圖學(xué)生專業(yè)性別學(xué)號姓名教師所教科目職稱性別姓名編號課程課程名學(xué)分課程號 2.實體及其聯(lián)系圖教師m 講授成績1nm主修課程學(xué)生四邏輯設(shè)計 1.e-r模型轉(zhuǎn)換為關(guān)系模式 學(xué)生(學(xué)號,姓名,性別,專業(yè)) 教師(編號,姓名,性別,職稱,所教科目) 課程(課程號,課程名,學(xué)分) 成績(學(xué)號,姓名,數(shù)學(xué),物理,化學(xué),英語,政治,總成績,平均成績)2. 范式分析 (1) 分析關(guān)系模式學(xué)生(學(xué)號,姓名,性別,專業(yè))在關(guān)系模式學(xué)生(學(xué)號,姓名,性別,專業(yè))中,每一個屬性都不能再分,故,屬于1nf. 在關(guān)系模式學(xué)生(學(xué)號,姓名,
9、性別,專業(yè))中,主鍵為學(xué)號,所以,姓名,性別,專業(yè),都是非主屬性。根據(jù)候選鍵定義可知,學(xué)號完全決定姓名,性別,專業(yè),即每一個非主屬性完全依賴于候選鍵,故,該關(guān)系模式屬于2nf。在關(guān)系模式學(xué)生(學(xué)號,姓名,性別,專業(yè))中,姓名,性別,專業(yè),都是非主屬性,且每一個非主屬性不傳遞函數(shù)依賴于候選鍵學(xué)號,即,學(xué)號決定姓名,但姓名不決定性別,不決定專業(yè)。故,該關(guān)系模式屬于3nf。 在關(guān)系模式學(xué)生(學(xué)號,姓名,性別,專業(yè))中,候選鍵為學(xué)號,函數(shù)依賴為學(xué)號姓名,學(xué)號性別,學(xué)號專業(yè),故,該關(guān)系模式屬bcnf。 由于在關(guān)系模式學(xué)生(學(xué)號,姓名,性別,專業(yè))中不存在多值依賴,故該關(guān)系模式不屬于4nf。 綜上所述,關(guān)
10、系模式學(xué)生(學(xué)號,姓名,性別,專業(yè))為bcnf。 (2)分析關(guān)系模式教師(編號,姓名,性別,職稱,所教科目)和課程(課程號,課程名,學(xué)分)在關(guān)系模式教師(編號,姓名,性別,職稱,所教科目)和課程(課程號,課程名,學(xué)分)中,每一個屬性都不能再分,故,屬于首先滿足1nf.主鍵分別為編號和課程號,每一個非主屬性完全依賴于候選鍵,故,這兩個關(guān)系模式首先屬于2nf。且每一個非主屬性不傳遞函數(shù)依賴于候選鍵學(xué)號,故屬于3nf。而且,候選鍵編號和課程號決定一切非主屬性,故,該關(guān)系模式屬于bcnf。 由于關(guān)系模式中不存在多值依賴,故,不屬于4nf。 即,關(guān)系模式教師(編號,姓名,性別,職稱,所教科目)和課程(課
11、程號,課程名,學(xué)分)屬于bcnf。 (3)分析關(guān)系模式成績(學(xué)號,姓名,數(shù)學(xué),物理,化學(xué),英語,政治,總成績,平均成績)在關(guān)系模式成績(學(xué)號,姓名,數(shù)學(xué),物理,化學(xué),英語,政治,總成績,平均成績)中每一個屬性都不能再分,故,先屬于1nf。在關(guān)系模式成績(學(xué)號,姓名,數(shù)學(xué),物理,化學(xué),英語,政治,總成績,平均成績)中,主鍵為學(xué)號,其他都是非主屬性,每一個非主屬性完全依賴于候選鍵,故,該關(guān)系模式屬于2nf。 在關(guān)系模式成績(學(xué)號,姓名,數(shù)學(xué),物理,化學(xué),英語,政治,總成績,平均成績)中,姓名,數(shù)學(xué),物理,化學(xué),英語,政治,總成績,平均成績都是非主屬性,由于存在函數(shù)依賴,即,學(xué)號平均成績,平均成績總
12、成績,故,該關(guān)系模式不屬于3nf。綜上所述,關(guān)系模式成績(學(xué)號,姓名,數(shù)學(xué),物理,化學(xué),英語,政治,總成績,平均成績)為2nf。五源代碼及查詢截圖1.程序流程圖開始 菜單界面顯示系統(tǒng)原先記錄增加記錄刪除記錄修改記錄查詢記錄班級成績信息學(xué)生基本信息教師基本信息科目基本信息學(xué)生,教師,科目基本信息 退出 2. 程序源代碼: (1)建表代碼:create table 學(xué)生成績信息( 學(xué)號 char(10) not null, 姓名 char(10) not null, 高數(shù) char(5) not null, 物理 char (5) not null, 英語char (5) not null,化學(xué)
13、char (5) not null,政治char (5) not null,總成績 char (5) not null,平均成績 char (5) not null); create table 課程基本信息( 課程號 char(5) not null,課程名 char(10) not null,學(xué)分 char (5) not null);create table 學(xué)生基本信息( 學(xué)號 char(10) not null,姓名 char (10) not null,專業(yè) char(10) not null,性別 char(4) not null);create table 教師基本信息( 編號
14、 char(10) not null,姓名 char (10) not null,職稱 char(4) not null,性別 char(4) not null,所教科目 char(10) not null, (2)數(shù)據(jù)庫連接代碼:建立一個cadodc類 class cadodc : public cwndprotected:declare_dyncreate(cadodc)public:clsid const& getclsid()static clsid const clsid= 0x67397aa3, 0x7fb1, 0x11d0, 0xb1, 0x48, 0x0, 0xa0, 0xc9
15、, 0x22, 0xe8, 0x20 ;return clsid;virtual bool create(lpctstr lpszclassname,lpctstr lpszwindowname, dword dwstyle,const rect& rect,cwnd* pparentwnd, uint nid,ccreatecontext* pcontext = null) return createcontrol(getclsid(), lpszwindowname, dwstyle, rect, pparentwnd, nid); bool create(lpctstr lpszwind
16、owname, dword dwstyle,const rect& rect, cwnd* pparentwnd, uint nid,cfile* ppersist = null, bool bstorage = false,bstr bstrlickey = null) return createcontrol(getclsid(), lpszwindowname, dwstyle, rect, pparentwnd, nid,ppersist, bstorage, bstrlickey); 實現(xiàn):#include stdafx.h#include adodc.h#include _reco
17、rdset.h#include font.hcstring cadodc:getconnectionstring()cstring result;invokehelper(0x1, dispatch_propertyget, vt_bstr, (void*)&result, null);return result;void cadodc:setconnectionstring(lpctstr lpsznewvalue)static byte parms =vts_bstr;invokehelper(0x1, dispatch_propertyput, vt_empty, null, parms
18、, lpsznewvalue);(3)功能模塊代碼: 顯示數(shù)據(jù)庫中原紀錄:void cbadialog:onstatr()m_listctrlx.deleteallitems();m_listctrlb.deleteallitems();m_listctrll.deleteallitems();if(m_set.isopen()m_set.close();if(m_bset.isopen()m_bset.close();m_cob.getlbtext(m_cob.getcursel(),m_getstring);this-select();m_tset.open();m_nrecordcoun
19、t=this-show();this-display();this-exhibit();m_bs = getdlgitem(idc_statr)-enablewindow(false);this-enable(true); 增加記錄功能實現(xiàn): void cbadialog:onadd() / todo: add your control notification handler code hereselec=true;caddialog dlg;if( dlg.domodal()=idok) if(dlg.m_nxue=200) / m_nxue為學(xué)生的學(xué)號 afxmessagebox(學(xué)號在
20、1200之間);/增加記錄時學(xué)號輸入異常,系統(tǒng)提示 return; m_set.addnew(); /實現(xiàn)對數(shù)據(jù)的插入 m_nrecordcount+=1; /記錄數(shù)量加一 m_set.m_column1=dlg.m_nxue; m_set.m_column2=dlg.m_strname; m_set.m_column3=dlg.m_fmaths; m_set.m_column4=dlg.m_fphysical; m_set.m_column5=dlg.m_fchemistry; m_set.m_column6=dlg.m_fenglish; m_set.m_column7=dlg.m_fpo
21、litic;m_set.m_column8=dlg.m_fmaths+dlg.m_fphysical+dlg.m_fchemistry+dlg.m_fenglish+dlg.m_fpolitic; /對輸入的數(shù)進行求和 m_set.m_column9=(float)(m_set.m_column8/5); /計算平均值 this-equal(); m_set.update();/update()一定放在equal()后,更新數(shù)據(jù) m_set.requery(); this-xuan(); 刪除記錄功能實現(xiàn): void cbadialog:ondelect() / todo: add your
22、control notification handler code here cdelectdialog dlg;selec=false;if(dlg.domodal()=idok)if(dlg.m_npass!=1234) /程序中的密碼均為1234afxmessagebox(密碼不正確!你沒有權(quán)限刪除記錄); /密碼不正確刪除不能執(zhí)行 elsethis-select(); /實現(xiàn)對數(shù)據(jù)的刪除 m_set.movefirst();bool sel=false;do if(m_set.m_column1!=dlg.m_nxue) m_set.movenext(); else m_nrecord
23、count-=1; sel=true; m_bset.movefirst(); this-equal(); m_set.delete(); m_set.requery(); break; while(!m_set.iseof(); if(sel=false) /數(shù)據(jù)庫中沒有要符合要求的記錄afxmessagebox(沒有此記錄);return;elsethis-xuan();修改記錄功能實現(xiàn): oid cbadialog:onedit() / todo: add your control notification handler code here ceditdialog dlg;if(dlg
24、.domodal()=idok) if(strcmp(dlg.m_pass,1234)!=0)afxmessagebox(你沒有權(quán)限更改記錄!請重輸入密碼:); else this-select(); m_set.m_strfilter.format(學(xué)號=%d,dlg.m_xue); m_set.requery(); if(m_set.iseof() afxmessagebox(沒有此記錄); else /實現(xiàn)修改功能 for(int i=0;i=60 & q60)m_bset.m_column4+=1;if(p=60)m_bset.m_column4-=1;if(p=80 & q80)m_
25、bset.m_column5+=1;if(p=80)m_bset.m_column5-=1; m_bset.update(); if(!m_bset.iseof() m_bset.movenext(); else break; m_set.edit(); /更新數(shù)據(jù) m_set.m_column2=dlg.m_strname; /更新姓名 m_set.m_column3=dlg.m_fmaths; /更新數(shù)學(xué)成績 m_set.m_column4=dlg.m_fphysical; /更新物理成績 m_set.m_column5=dlg.m_fchemistry; /更新化學(xué)成績 m_set.m_
26、column6=dlg.m_fenglish; /更新英語成績 m_set.m_column7=dlg.m_fpolitic; /更新政治成績 m_set.m_column8=dlg.m_fmaths+dlg.m_fphysical+dlg.m_fchemistry+dlg.m_fenglish+dlg.m_fpolitic; /更新總成績 m_set.m_column9=(float)(m_set.m_column8/5); /更新平均成績 m_set.update(); m_set.m_strfilter.empty(); m_bset.close(); m_set.close(); m_
27、listctrlx.deleteallitems(); m_listctrlb.deleteallitems(); this-select(); this-show(); this-display(); 查詢記錄功能實現(xiàn):void cbadialog:onfind() / todo: add your control notification handler code herecfindialog dlg;if( dlg.domodal()=idok) this-select();m_bset.close();if(dlg.m_getstring2=)/實現(xiàn)“=”的查詢m_set.m_strfilter.format(%s=%.2f,dlg.m_getstring1,dlg.m_find);if(dlg.m_getstring2=)/實現(xiàn)“=”的查詢m_set.m_strfilter.format(%s=%.2f,dlg.m_getstring1,dlg.m_find);if(dlg.m_getstring2=)/實現(xiàn)“=”的查詢m_set.m_strfilter.format(%ssh
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 探討動量空間中電子激光相互作用量子態(tài)傳播途徑
- 中微子能譜研究:江門地下實驗的新發(fā)現(xiàn)
- 顯控軟件設(shè)計中的形態(tài)學(xué)時間歷程圖處理策略
- 布里淵激光器關(guān)鍵參數(shù)調(diào)控與應(yīng)用探討
- 形態(tài)學(xué)時間方位圖處理與顯控軟件設(shè)計研究
- 二茂鐵聚合物光子晶體應(yīng)用探討
- 新型白光干涉面校準技術(shù)研究進展
- 耀變體偏振光變研究進展
- 光自旋霍爾效應(yīng)在非線性介質(zhì)中的應(yīng)用研究
- 南海暗沙海域環(huán)境噪聲演變規(guī)律解析
- 初中物理寶典
- 工業(yè)園區(qū)臨時管理公約
- GB/T 26527-2024有機硅消泡劑
- 形象與禮儀智慧樹知到期末考試答案2024年
- 化工建設(shè)綜合項目審批作業(yè)流程圖
- TSGD-(壓力管道安裝許可規(guī)則)
- 頸椎病的分型和治課件
- 綠化養(yǎng)護工作日記錄表
- 國家開放大學(xué)Matlab語言及其應(yīng)用期末考試復(fù)習資料匯編
- 中醫(yī)五臟課件
- 安谷鐵龍煤礦整合技改施工組織設(shè)計樣本
評論
0/150
提交評論