版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Tute數(shù)據(jù)庫(kù)課程設(shè)計(jì)題 目 報(bào)刊訂閱管理系統(tǒng) 專業(yè)班級(jí) 計(jì)算機(jī)科學(xué)與技術(shù)07級(jí)11班 學(xué) 號(hào) 3104006476 姓 名 合 作 者 隨著時(shí)代的發(fā)展,計(jì)算系軟件和系統(tǒng)的成熟,報(bào)刊如果簡(jiǎn)單方面訂閱成為一個(gè)影響多數(shù)人生活的問(wèn)題。而建立報(bào)刊訂閱系統(tǒng)是一個(gè)很好的解決辦法。經(jīng)過(guò)三年的學(xué)習(xí),我們對(duì)計(jì)算機(jī)方面的知識(shí)有了很大的提升,本著理論聯(lián)系實(shí)際的宗旨,通過(guò)學(xué)校提供的這次課程設(shè)計(jì)實(shí)踐的機(jī)會(huì),在指導(dǎo)教師的幫助下,歷經(jīng)兩周時(shí)間,我自行設(shè)計(jì)一套報(bào)刊訂閱系統(tǒng),在下面的各章中,我將以這套報(bào)刊訂閱系統(tǒng)為例,談?wù)勂溟_(kāi)發(fā)過(guò)程和所涉及到的問(wèn)題。設(shè)計(jì)目的應(yīng)用對(duì)數(shù)據(jù)庫(kù)系統(tǒng)原理的理論學(xué)習(xí),通過(guò)上機(jī)實(shí)踐的方式將理論知識(shí)與實(shí)踐更好
2、的結(jié)合起來(lái),鞏固所學(xué)知識(shí)。實(shí)踐和鞏固在課堂教學(xué)中學(xué)習(xí)的關(guān)于DB2的有關(guān)知識(shí),熟練掌握對(duì)于給定結(jié)構(gòu)的數(shù)據(jù)庫(kù)的創(chuàng)建、基本操作、程序系統(tǒng)的建立和調(diào)試以及系統(tǒng)評(píng)價(jià)。實(shí)踐和鞏固在課堂教學(xué)中學(xué)習(xí)的關(guān)于關(guān)系數(shù)據(jù)庫(kù)原理的有關(guān)知識(shí)和數(shù)據(jù)庫(kù)系統(tǒng)的建立方法,熟練掌握對(duì)于給定實(shí)際問(wèn)題,為了建立一個(gè)關(guān)系數(shù)據(jù)庫(kù)信息管理系統(tǒng),必須得經(jīng)過(guò)系統(tǒng)調(diào)研、需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)、系統(tǒng)調(diào)試、維護(hù)以及系統(tǒng)評(píng)價(jià)的一般過(guò)程,為畢業(yè)設(shè)計(jì)打下基礎(chǔ)。設(shè)計(jì)內(nèi)容選擇課題并且對(duì)課題的相關(guān)信息有一定的了解,對(duì)于我選的課題來(lái)說(shuō),我必須了解報(bào)刊訂閱系統(tǒng)的構(gòu)造以及訂閱人的信息還有報(bào)刊的相關(guān)信息。通過(guò)這些信息制成表格,輸入到數(shù)據(jù)庫(kù)中,使之能夠進(jìn)行
3、查詢、修改、刪除并且與報(bào)刊訂閱系統(tǒng)執(zhí)行相同的操作。需求分析階段就是要研究我所作的報(bào)刊訂閱系統(tǒng)的具體分類和實(shí)施過(guò)程流圖。概念設(shè)計(jì)階段要完成數(shù)據(jù)抽象與局部視圖設(shè)計(jì)還有視圖的集成。邏輯結(jié)構(gòu)設(shè)計(jì)階段要把E-R圖轉(zhuǎn)化為關(guān)系模式并且把我輸入的六張表結(jié)合在一起完成一個(gè)總關(guān)系表。最后就是要運(yùn)行和實(shí)施數(shù)據(jù)庫(kù)。要把查詢結(jié)果與過(guò)程抓幾張圖。 Tute第二章 需求分析需求分析的任務(wù)調(diào)查報(bào)刊訂閱系統(tǒng)應(yīng)用領(lǐng)域涉及的內(nèi)容,對(duì)涉及到領(lǐng)域的各個(gè)應(yīng)用的信息要求和操作要求進(jìn)行詳細(xì)分析,形成需求分析說(shuō)明書(shū)。最重要的是調(diào)查、收集信息、分析訂閱人信息和報(bào)刊訂閱流程。處理要求、數(shù)據(jù)的安全性與完整性要求。要求系統(tǒng)能有效、快速、安全、可靠和無(wú)
4、誤的完成上述操作。并要求客戶機(jī)的界面要簡(jiǎn)單明了,易于操作,服務(wù)器程序利于維護(hù)。需求分析的過(guò)程現(xiàn)在隨著網(wǎng)絡(luò)、計(jì)算機(jī)以及數(shù)據(jù)庫(kù)的快速發(fā)展,報(bào)刊的訂閱也不再是傳統(tǒng)低效的紙筆記錄了,已經(jīng)轉(zhuǎn)向網(wǎng)絡(luò)。本系統(tǒng)就是面向一個(gè)企業(yè)的報(bào)刊訂閱管理系統(tǒng)。此系統(tǒng)是一種比較智能化的管理系統(tǒng),它面向所有企業(yè)部門的職工用戶,但具有比較高的安全性能。它能夠?qū)崿F(xiàn)報(bào)刊訂閱的基本功能,包括新報(bào)刊信息的錄入、訂閱、查詢等操作以及后臺(tái)數(shù)據(jù)庫(kù)的備份和恢復(fù)。用戶合法注冊(cè)后必須輸入有效密碼才能成功進(jìn)入此系統(tǒng),可以進(jìn)行訂閱報(bào)刊,查詢信息,統(tǒng)計(jì)信息等操作。對(duì)于非法操作,系統(tǒng)有識(shí)別和防護(hù)措施本系統(tǒng)主要有以下功能模塊:l (1)登陸功能:登陸系統(tǒng)為身
5、份驗(yàn)證登錄。分為管理員登錄和一般用戶登錄。分別通過(guò)不同的用戶名和密碼進(jìn)入報(bào)刊訂閱管理界面。l (2)錄入新信息功能:對(duì)于管理員,包括新用戶信息和新報(bào)刊信息的錄入功能,信息一旦提交就存入到后臺(tái)數(shù)據(jù)庫(kù)中;普通用戶自行注冊(cè)進(jìn)行錄入個(gè)人信息。l (3)訂閱功能:用戶可以訂閱報(bào)刊,系統(tǒng)自動(dòng)計(jì)算所需金額,并顯示在界面上;管理員不可訂閱報(bào)刊,必須以用戶身份訂閱報(bào)刊。l (4)查詢功能:用戶可以查詢并顯示自己所訂閱的信息;管理員可以按人員、報(bào)刊、部門分類查詢。查詢出的信息顯示在界面上。l (5)統(tǒng)計(jì)功能:管理員可以按用戶、部門、報(bào)刊統(tǒng)計(jì)報(bào)刊的銷售情況,并對(duì)一些重要的訂閱信息進(jìn)行統(tǒng)計(jì);普通用戶可以統(tǒng)計(jì)出自己的訂
6、閱情況。l (6)系統(tǒng)維護(hù)功能:管理員可以對(duì)用戶、報(bào)刊、部門、訂閱等信息進(jìn)行添加、刪除、更改等維護(hù)工作;管理員還要經(jīng)常備份數(shù)據(jù)庫(kù),以備出現(xiàn)故障后恢復(fù)。用戶可以更改自己的注冊(cè)信息,但用戶名不能更改。系統(tǒng)框架報(bào)刊訂閱管理系統(tǒng)主要是由登錄、錄入、訂閱、信息查詢、統(tǒng)計(jì)、系統(tǒng)維護(hù)等主要模塊構(gòu)成。本系統(tǒng)的結(jié)構(gòu)功能圖:概念結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟概念結(jié)構(gòu)獨(dú)立于數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)和支持?jǐn)?shù)據(jù)庫(kù)的DBMS。概念結(jié)構(gòu)即概念模型,其主要特點(diǎn)是:(1)概念模型是反映現(xiàn)實(shí)世界的一個(gè)真實(shí)模型。概念模型應(yīng)能真實(shí),充分反映現(xiàn)實(shí)世界,能滿足用戶對(duì)數(shù)據(jù)的處理要求。(2)概念模型應(yīng)能易于理解。概念模型只有被用戶理解后,才可以與設(shè)
7、計(jì)者交換意見(jiàn),參與數(shù)據(jù)庫(kù)的設(shè)計(jì)。(3)概念模型應(yīng)當(dāng)易于更改。由于現(xiàn)實(shí)世界會(huì)發(fā)生變化,這就需要改變概念模型,易于更改的概念模型有利于修改和擴(kuò)充。(4)概念模型應(yīng)易于向數(shù)據(jù)模型轉(zhuǎn)換。概念模型最終要轉(zhuǎn)換為數(shù)據(jù)模型。設(shè)計(jì)概念模型時(shí)應(yīng)當(dāng)注意,使其有利于向特定的數(shù)據(jù)模型轉(zhuǎn)換。概念結(jié)構(gòu)設(shè)計(jì)的方法設(shè)計(jì)概念結(jié)構(gòu)通常有四類方法:(1)自頂向下:即首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化。(2)自底向上:即首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來(lái)得到全局概念模式。(3)逐漸擴(kuò)張:首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生成其他的概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)。(4)混合策略:即將自頂向下和
8、自底向上相結(jié)合,用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計(jì)的各局部概念結(jié)構(gòu)。其中最經(jīng)常采用的策略是自底向上的方法。即自頂向下地進(jìn)行需求分析,然后再自底向上地設(shè)計(jì)概念結(jié)構(gòu)。這個(gè)報(bào)刊訂閱系統(tǒng)就用這種方法。概念結(jié)構(gòu)設(shè)計(jì)的步驟第一步是進(jìn)行局部視圖的設(shè)計(jì):由于高層的數(shù)據(jù)流圖只能反映系統(tǒng)的概貌,而中層流圖能較好的反映系統(tǒng)中各局部應(yīng)用的子系統(tǒng)組成。因此我們先逐一的設(shè)計(jì)分E-R圖。第二步是進(jìn)行視圖的集成:各子系統(tǒng)的E-R圖設(shè)計(jì)好之后,下一步就是要將所有的分E-R圖合成一個(gè)系統(tǒng)的總E-R圖,一般有兩個(gè)方式,多個(gè)分E-R圖一次集成,另一種是一次集成兩個(gè)分E-R圖。我想采用一次集成
9、兩個(gè)分E-R圖的方式。3.2 數(shù)據(jù)抽象與局部視圖設(shè)計(jì)本系統(tǒng)采用E-R圖(實(shí)體-關(guān)系圖)的方法進(jìn)行數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)。系統(tǒng)E-R圖如下所示:圖3.1總體聯(lián)系各實(shí)體屬圖:部門:圖3.2部門實(shí)體屬性圖用戶:圖3.3用戶實(shí)體屬性圖管理員:圖3.4管理員實(shí)體屬性圖報(bào)刊:圖3.5報(bào)刊實(shí)體屬性圖關(guān)系表E-R圖:訂閱:圖3.6訂閱關(guān)系管理:圖3.7管理關(guān)系視圖的集成經(jīng)過(guò)逐步細(xì)化再進(jìn)行每?jī)蓚€(gè)一集成初步形成一個(gè)E-R圖,最后得到圖3.8總體概念結(jié)構(gòu)E-R圖: 圖3.8整體E-R圖Tute第四章 邏輯結(jié)構(gòu)設(shè)計(jì)E-R圖向關(guān)系模型的轉(zhuǎn)換部門(部門號(hào),部門名)用戶(用戶名,密碼,真實(shí)姓名,性別,)管理員(管理員名,密碼)
10、報(bào)刊(報(bào)刊代號(hào),報(bào)刊名,類型,出版報(bào)社價(jià))訂閱(用戶名,報(bào)刊代號(hào),訂閱年限,訂閱數(shù)量,所需金額)此段核心程序用于實(shí)現(xiàn)Book表與數(shù)據(jù)的連接及其用戶訂閱報(bào)刊的功能。void CBookDlg:FillList()CString sCmdText="Select * From paper"_RecordsetPtr m_pRecordSet;trym_pRecordSet.CreateInstance("ADODB.Recordset");m_pRecordSet->Open(_variant_t)sCmdText,(_variant_t)sConn,
11、adOpenStatic,adLockOptimistic,adCmdText);while (!m_pRecordSet->adoEOF)InsertDataToList(LPCTSTR)(_bstr_t)m_pRecordSet->GetCollect("Pname"),(LPCTSTR)(_bstr_t)m_pRecordSet->GetCollect("Ptype"),(LPCTSTR)(_bstr_t)m_pRecordSet->GetCollect("Ppublish"),(LPCTSTR)(_bs
12、tr_t)m_pRecordSet->GetCollect("Pprice");m_pRecordSet->MoveNext();m_pRecordSet->Close();catch (_com_error e)CString sTemp;sTemp.Format("%s",e.ErrorMessage(); MessageBox(sTemp);void CBookDlg:InsertDataToList(CString Pname, CString Ptype,CString Ppublish, CString Pprice)int
13、 index=m_list.GetItemCount();LV_ITEM IvItem;IvItem.mask=LVIF_TEXT;IvItem.iItem=index;IvItem.iSubItem=0;IvItem.pszText=(char*)(LPCTSTR)Pname;m_list.InsertItem(&IvItem);m_list.SetItemText(index,1,Ptype);m_list.SetItemText(index,2,Ppublish);m_list.SetItemText(index,3,Pprice);int CBookDlg:OnCreate(L
14、PCREATESTRUCT lpCreateStruct) if (CDialog:OnCreate(lpCreateStruct) = -1)return -1;/*/ TODO: Add your specialized creation code hereCRect parentRect;CRect selfRect; this->GetParent()->GetClientRect(parentRect);this->GetClientRect(selfRect);parentRect.right=parentRect.left+selfRect.right-self
15、Rect.left;parentRect.bottom=parentRect.top+selfRect.bottom-selfRect.top; this->MoveWindow(parentRect);*/ TODO: Add your specialized creation code herereturn 0;void CBookDlg:OnClickList(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification handler code herem_SelectedIndexOfList=-1
16、;LPNMITEMACTIVATE lpNMItemActivate = (LPNMITEMACTIVATE)pNMHDR;if(lpNMItemActivate != NULL)m_SelectedIndexOfList = lpNMItemActivate->iItem;/若存在被選中的行if (m_SelectedIndexOfList!=-1)m_name=m_list.GetItemText(m_SelectedIndexOfList,0);m_type =m_list.GetItemText(m_SelectedIndexOfList,1);m_publish=m_list.
17、GetItemText(m_SelectedIndexOfList,2);m_price=m_list.GetItemText(m_SelectedIndexOfList,3);UpdateData(false);*pResult = 0;/不如人意void CBookDlg:OnButtonBook() UpdateData(true);if (m_name="" |m_publish=""|m_num="")MessageBox("數(shù)據(jù)填寫不完整,無(wú)法訂閱刊物!","提醒!");return
18、;try/int num=atoi(LPCTSTR)m_num);/ _bstr_t sCmdText="Insert book (Aname,Pname,Bint) Values ("+ ConvertCsToCs(hostname)+","+ConvertCsToCs(m_name)+","+ConvertCsToCs(m_num)+")" _variant_t RecordAffected;m_oConn->Execute(sCmdText,&RecordAffected,adCmdText);
19、MessageBox("您的訂閱成功,歡迎下次再來(lái)訂閱!","提醒!");return;catch (_com_error e)CString sTip;sTip.Format("%s",e.ErrorMessage();/CString CBookDlg:ConvertIntToCString(int ID)CString sDes;sDes.Format("%d",ID);return sDes;CString CBookDlg:ConvertCsToCs(CString ch)ch+="'&
20、quot;CString ch2="'"ch2+=ch;return ch2;此段程序主要用于數(shù)據(jù)庫(kù)中的Uuser表連接,并實(shí)現(xiàn)用戶登錄及訂閱報(bào)刊的信息。void CUserDlg:OnOK() / TODO: Add extra validation hereint i=0;/ TODO: Add extra validation hereUpdateData();OpenConn();/CString sCmdText="select * From Uuser"_RecordsetPtr m_pRecordSet;trym_pRecordSe
21、t.CreateInstance("ADODB.Recordset");m_pRecordSet->Open(_variant_t)sCmdText,(_variant_t)sConn,adOpenStatic,adLockOptimistic,adCmdText);while (!m_pRecordSet->adoEOF)bool status=InsertDataToRoomList(LPCTSTR)(_bstr_t)m_pRecordSet->GetCollect("Uname"),(LPCTSTR)(_bstr_t)m_pRec
22、ordSet->GetCollect("Upass");if(status!=0) i=1;CDialog:OnOK(); CBookDlg* BDlg=new CBookDlg(this);BDlg->hostname=m_user; BDlg->DoInter();m_pRecordSet->MoveNext();m_pRecordSet->Close();catch (_com_error e)CString sTemp;sTemp.Format("%s",e.ErrorMessage();MessageBox(sTe
23、mp); if(i=0) MessageBox("輸入的用戶名和密碼錯(cuò)誤!請(qǐng)重新輸入!");void CUserDlg:OnCancel() / TODO: Add extra cleanup hereCDialog:OnCancel();bool CUserDlg:OpenConn()/ 連接到MS SQL Server/_ConnectionPtr m_oConn;HRESULT m_hr;bool IsOpen=false;try m_hr=m_oConn.CreateInstance(_uuidof(Connection); m_oConn->CursorLo
24、cation=adUseClient;if (!SUCCEEDED(m_hr)MessageBox("連接數(shù)據(jù)庫(kù)失敗");return false;m_hr=m_oConn->Open(_bstr_t(sConn),"","",-1);return true; catch(_com_error e)/捕捉異常 CString errormessage; errormessage.Format("連接數(shù)據(jù)庫(kù)失敗!rn錯(cuò)誤信息:%s",e.ErrorMessage(); AfxMessageBox(errorme
25、ssage);/顯示錯(cuò)誤信息 return false; bool CUserDlg:InsertDataToRoomList(CString Uname, CString Upass)if(m_user="")return 0;CString a = Uname.Left(strlen(m_user);CString b = Upass.Left(strlen(m_upass); int i=strcmp(m_user,a);int j=strcmp(m_upass,b);if(i=0)if(j=0) return 1;elsereturn 0;此段程序用于實(shí)現(xiàn)主界面的位圖效果顯示,首先創(chuàng)建內(nèi)存設(shè)備環(huán)境,裝入了位圖資源后, 將位圖對(duì)象選入設(shè)備環(huán)境, 讀取位圖信息將內(nèi)存中的位圖復(fù)制到屏幕上,就顯示出主界面的位圖效果。void CPubView:OnDraw(CDC* pDC)CPubDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCDC MemDC; MemDC.CreateCompatibleDC(pDC); Bitmap Bitma
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 格林童話讀后感(15篇)
- 大學(xué)認(rèn)識(shí)實(shí)習(xí)報(bào)告范文匯編10篇
- 六一兒童節(jié)主題活動(dòng)總結(jié)10篇
- 個(gè)人試用期轉(zhuǎn)正工作總結(jié)(匯編15篇)
- 幼兒園學(xué)前班新學(xué)期工作計(jì)劃
- 教師的感恩演講稿四篇
- 軍訓(xùn)個(gè)人心得體會(huì)(集錦15篇)
- 山西財(cái)經(jīng)大學(xué)計(jì)算機(jī)應(yīng)用技術(shù)814數(shù)據(jù)結(jié)構(gòu)考研題庫(kù)
- 九年級(jí)下冊(cè)數(shù)學(xué)教學(xué)計(jì)劃錦集(17篇)
- 健康檢查服務(wù)合同(2篇)
- 七年級(jí)歷史試卷上冊(cè)可打印
- 《東南亞經(jīng)濟(jì)與貿(mào)易》習(xí)題集、案例、答案、參考書(shū)目
- 燒烤店裝修合同范文模板
- 2024年中國(guó)櫻桃番茄種市場(chǎng)調(diào)查研究報(bào)告
- 數(shù)據(jù)分析基礎(chǔ)與應(yīng)用指南
- 人教版(PEP)小學(xué)六年級(jí)英語(yǔ)上冊(cè)全冊(cè)教案
- 廣東省廣州市海珠區(qū)2023-2024學(xué)年六年級(jí)上學(xué)期月考英語(yǔ)試卷
- 消防水域救援個(gè)人防護(hù)裝備試驗(yàn) 大綱
- 機(jī)電樣板施工主要技術(shù)方案
- 涉稅風(fēng)險(xiǎn)管理方案
- 青島市2022-2023學(xué)年七年級(jí)上學(xué)期期末道德與法治試題
評(píng)論
0/150
提交評(píng)論