版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 數(shù)據(jù)庫應(yīng)用課程設(shè)計說明書</p><p><b> 目 錄</b></p><p> 華北科技學院學生成績管理系統(tǒng)1</p><p><b> 設(shè)計總說明1</b></p><p><b> 關(guān)鍵詞1</b></p><p
2、><b> 前 言2</b></p><p> 第1章 總體設(shè)計3</p><p> 1.1 系統(tǒng)結(jié)構(gòu)設(shè)計3</p><p> 第2章 數(shù)據(jù)庫設(shè)計與實施4</p><p> 2.1數(shù)據(jù)庫設(shè)計4</p><p> 2.1.1概念分析:4</p><p
3、> 2.1.2邏輯設(shè)計:5</p><p> 2.1.3物理設(shè)計:6</p><p> 2.2數(shù)據(jù)庫的實施8</p><p> 2.2.1創(chuàng)建數(shù)據(jù)庫8</p><p> 2.2.2創(chuàng)建表8</p><p> 第3章 前臺設(shè)計與實現(xiàn)11</p><p> 3.1登錄
4、模塊11</p><p> 3.1.1登錄11</p><p> 3.1.2注冊新用戶13</p><p> 3.2系統(tǒng)的詳細設(shè)計14</p><p> 3.2.1主界面設(shè)計14</p><p> 3.2.2菜單欄設(shè)計15</p><p> 3.2.3管理模塊設(shè)計22&
5、lt;/p><p><b> 總 結(jié)26</b></p><p> 參 考 文 獻27</p><p><b> 附 錄28</b></p><p><b> 學生成績管理系統(tǒng)</b></p><p><b> 設(shè)計總說明</
6、b></p><p> 高校學生的成績管理工作量大、繁雜,人工處理非常困難。學生成績管理系統(tǒng)借助于計算機強大的處理能力,大大減輕了管理人員的工作量,并提高了處理的準確性。學生成績管理系統(tǒng)的開發(fā)運用,實現(xiàn)了學生成績管理的自動化,不僅把廣大教師從繁重的成績管理工作中解脫出來、把學校從傳統(tǒng)的成績管理模式中解放出來,而且對學生成績的判斷和整理也更合理、更公正,同時也給教師提供了一個準確、清晰、輕松的成績管理環(huán)境。
7、</p><p> 本系統(tǒng)根據(jù)我校的實際情況開發(fā),用于對學校教師、學生、課程信息的管理,主要用于管理學生成績。登錄系統(tǒng)時需要訪問數(shù)據(jù)庫中的用戶信息,從而正確確定登錄身份。系統(tǒng)完成了日常的教育工作中對學生成績檔案的數(shù)字化管理。較為系統(tǒng)地對學生信息、成績信息和課程信息進行管理。查詢、增添、修改、刪除都變的非常簡便,減少了管理的工作量。</p><p> 基于學校學生眾多,為了數(shù)據(jù)的安全性,
8、系統(tǒng)將學生數(shù)據(jù)保存在數(shù)據(jù)庫中,以Visual C++設(shè)計前臺對系統(tǒng)進行設(shè)計。因為成績管理系統(tǒng)是一項很實用的系統(tǒng),所面對的數(shù)據(jù)量很大,所以我們要求系統(tǒng)能夠高效快速的處理這些數(shù)據(jù),并且要保證數(shù)據(jù)的正確性、相容性和安全性。C++作為前臺是將數(shù)據(jù)庫中的數(shù)據(jù)讀取出來,有助于用戶對這些數(shù)據(jù)進行相應(yīng)的操作,使操作更方便,更符合用戶的要求。所以該系統(tǒng)應(yīng)該要有一個良好的界面,使用戶感覺很直觀,使用快捷,這就是用C++所要實現(xiàn)的功能。</p>
9、<p><b> 關(guān)鍵詞</b></p><p> Visual C++ 6.0;SQL Server;MFC;學生成績管理</p><p><b> 前 言</b></p><p> 本課程設(shè)計是在學習了數(shù)據(jù)庫系統(tǒng)和C語言等有關(guān)課程后,通過實際的操作來熟悉數(shù)據(jù)庫和相關(guān)軟件的應(yīng)用,培養(yǎng)獨立的完成對相關(guān)課
10、題或者項目的分析能力、設(shè)計能力和調(diào)試能力。成績管理系統(tǒng)登錄須有數(shù)據(jù)庫中的賬號信息,如無用戶可及時注冊。系統(tǒng)可以對不同的項目進行查詢、添加、修改、刪除等操作,方便學校的成績管理。</p><p> 課程設(shè)計,著重培養(yǎng)的是學生的自學能力,以及獨立分析互聯(lián)網(wǎng)上和圖書館里的各種資料,用來豐富自己的知識并且提高對SQL、VC++等軟件的實際操作能力。通過這次的課程設(shè)計,使我們對已經(jīng)學習過的數(shù)據(jù)庫課程的進一步的掌握,對知識
11、進行最大程度的消化融匯。因此這次的課程設(shè)計對我們來說具有非常重要的作用:為以后學習工作做必要的準備和實踐,提高自身對數(shù)據(jù)庫開發(fā)的能力。</p><p><b> 第1章 總體設(shè)計</b></p><p><b> 系統(tǒng)結(jié)構(gòu)設(shè)計</b></p><p> 系統(tǒng)登錄后進入主界面,主界面菜單欄進行各種查詢,而主界面按鈕直接
12、進行相關(guān)管理。有添加、刪除和修改信息功能。功能設(shè)計圖如圖1.1.1.所示。</p><p> 圖1.1.1 系統(tǒng)功能結(jié)構(gòu)圖</p><p> 第2章 數(shù)據(jù)庫設(shè)計與實施</p><p><b> 2.1數(shù)據(jù)庫設(shè)計</b></p><p> 2.1.1概念分析:</p><p> 概念結(jié)構(gòu)設(shè)
13、計階段是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,它通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型</p><p> 設(shè)計成績管理數(shù)據(jù)庫包括系別、教研室、班級、教師、學生、課程、成績七個關(guān)系。</p><p> E-R圖2.1.1和圖2.1.2所示。</p><p> 圖2.1.1 實體及其屬性圖</p><p> 圖2.1.2
14、完整的實體-聯(lián)系圖</p><p> 2.1.2邏輯設(shè)計:</p><p> 邏輯結(jié)構(gòu)是獨立于任何一種數(shù)據(jù)模型的信息結(jié)構(gòu)。邏輯結(jié)構(gòu)的任務(wù)是把概念結(jié)構(gòu)設(shè)計階段設(shè)計好的基本E-R圖轉(zhuǎn)化為宜選用的DBMS所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu),并對其進行優(yōu)化。</p><p> 設(shè)計學生成績管理數(shù)據(jù)庫,包括系別、教研室、班級、教師、學生、課程、成績七個關(guān)系,考慮到數(shù)據(jù)庫完
15、整性,其關(guān)系模式中對每個實體定義的屬性如下:</p><p><b> 系別表</b></p><p> 系別:(系號,系名)</p><p><b> 教研室表</b></p><p> 教研室:(教研室號,教研室名)</p><p><b> 班級表&
16、lt;/b></p><p> 班級:(班號,班名,系號)</p><p><b> 教師表</b></p><p> 教師:(教師號,姓名,教研室號)</p><p><b> 學生表</b></p><p> 學生:(學號,姓名,性別,班號)</p&
17、gt;<p><b> 課程表</b></p><p> 課程:(課程號,課程名,教師號,學時,學分)</p><p><b> 成績表</b></p><p> 成績:(學號,課程號,成績)</p><p> 為了存放前臺用戶信息再添加一用戶表</p><
18、;p><b> 用戶表</b></p><p> 用戶:(用戶名,密碼)</p><p> 2.1.3物理設(shè)計:</p><p> 定義每個表的數(shù)據(jù)類型以及字段限制,使數(shù)據(jù)庫達到一定的完整性。每個表的物理設(shè)計如下:</p><p> 表2.1.1 系別表</p><p> 表2.
19、1.1 教研室表</p><p> 表2.1.3 班級表</p><p><b> 表2.1.4教師表</b></p><p> 表2.1.5學生信息表</p><p><b> 表2.1.6課程表</b></p><p><b> 表2.1.7成績表&l
20、t;/b></p><p><b> 表2.1.8用戶表</b></p><p><b> 2.2數(shù)據(jù)庫的實施</b></p><p> 2.2.1創(chuàng)建數(shù)據(jù)庫</p><p> 在D盤建立文件夾“學生成績”,在SQL Server查詢分析器中鍵入以下代碼完成數(shù)據(jù)庫的建立。</p&
21、gt;<p> CREATE DATABASE 學生成績數(shù)據(jù)庫</p><p> ON PRIMARY</p><p> ( NAME= '學生成績_data',</p><p> FILENAME='D:\學生成績\學生成績dat.mdf',</p><p> SIZE=5 , MA
22、XSIZE=100 , FILEGROWTH=10%)</p><p><b> LOG ON</b></p><p> (NAME= '學生成績_log',</p><p> FILENAME='D:\學生成績\學生成績log.ldf',</p><p> SIZE=5 , MA
23、XSIZE=20 , FILEGROWTH=20%)</p><p><b> 2.2.2創(chuàng)建表</b></p><p> 同樣在查詢分析器中鍵入如下代碼完成表的創(chuàng)建。</p><p> use 學生成績數(shù)據(jù)庫</p><p><b> go</b></p><p>
24、 create table 系別(</p><p> 系號 char(2) not null primary key,</p><p> 系名 char(20)not null)</p><p> create table 班級(</p><p> 班號 char(10) not null primary key,</p>
25、;<p> 班名 char(14)not null,</p><p> 系號 char(10)not null)</p><p> create table 教研室(</p><p> 教研室號 char(10) not null primary key,</p><p> 教研室名 char(20)not null,
26、</p><p> 系號 char(10)not null)</p><p> create table 學生(</p><p> 學號 char(14) not null primary key,</p><p> 姓名 char(6)not null,</p><p> 性別 char(2)not nul
27、l,</p><p> 班號 char(10)not null)</p><p> create table 教師(</p><p> 教師號 char(5) not null primary key,</p><p> 姓名 char(6)not null,</p><p> 教研室號 char(4)not
28、 null)</p><p> create table 課程(</p><p> 課程號 char(5) not null primary key,</p><p> 課程名 char(20)not null,</p><p> 教師號 char(5)not null,</p><p> 學時 int no
29、t null,</p><p> 學分 char(3)not null)</p><p> create table 成績(</p><p> 學號 char(14) not null,</p><p> 課程號 char(5)not null,</p><p> 成績 char(3)not null<
30、/p><p> primary key(學號,課程號))</p><p> create table 用戶(</p><p> 用戶名 char(20) not null primary key,</p><p> 密碼 char(20) not null)</p><p> 第3章 前臺設(shè)計與實現(xiàn)</p&
31、gt;<p><b> 3.1登錄模塊</b></p><p><b> 3.1.1登錄</b></p><p> 運行程序首先要通過登錄,登錄的用戶名和密碼存于數(shù)據(jù)庫中用戶表中。如無用戶可注冊新用戶,從而進入程序。當用戶名與密碼不匹配時提示錯誤。</p><p> 為了使系統(tǒng)美觀,可通過設(shè)置背景圖片
32、來改變系統(tǒng)樣式。</p><p> 實現(xiàn)方法如下:引入一張要加入的圖片,在要添加圖片的對話框類向?qū)е蠱essages中選擇WM_PAINT對其編輯,在OnPaint()函數(shù)中加入如下代碼:</p><p> CRect rect;</p><p> GetClientRect(&rect);</p><p> CDC dc
33、Mem;</p><p> dcMem.CreateCompatibleDC(&dc);</p><p> CBitmap bmpBackground;</p><p> bmpBackground.LoadBitmap(IDB_BITMAP1); </p><p> //IDB_BITMAP1是對應(yīng)圖的ID</p&
34、gt;<p> BITMAP bitmap;</p><p> bmpBackground.GetBitmap(&bitmap);</p><p> CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground); </p><p> dc.StretchBlt(0,0,rect.Wi
35、dth(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);</p><p> 這樣設(shè)置后靜態(tài)文本框就顯得難看了,于是再在要添加圖片的對話框類向?qū)е蠱essages中選擇WM_CTRCOLOR對其編輯,在OnCtlColor()函數(shù)中加入如下代碼:</p><p> if(nCtlColor==C
36、TLCOLOR_STATIC)</p><p> //對所有的STATIC控件的屬性進行設(shè)定</p><p><b> {</b></p><p> pDC->SetBkMode(TRANSPARENT);</p><p> return (HBRUSH)::GetStockObject(NULL_BRUS
37、H); </p><p><b> }</b></p><p> 如果要使編輯框透明,則添加如下代碼,這樣編輯框內(nèi)容會重疊,可以選擇性的設(shè)置。</p><p> if(nCtlColor==CTLCOLOR_EDIT)</p><p> //對所有的Edit控件的屬性進行設(shè)定</p><p&g
38、t;<b> {</b></p><p> pDC->SetBkMode(TRANSPARENT);</p><p> return (HBRUSH)::GetStockObject(NULL_BRUSH); </p><p><b> }</b></p><p> 圖3.1.1 登
39、錄界面</p><p> 登錄界面的用戶名通過數(shù)據(jù)庫訪問代碼如下:</p><p> CDatabase database;</p><p> database.Open("華北科技學院成績管理",FALSE,FALSE,"ODBC;",FALSE);</p><p> CRecordset r
40、s(&database); </p><p> UpdateData(TRUE);</p><p> CString str;</p><p> str.Format("select * from 用戶 where 用戶名='%s'",m_name);</p><p> CRecordset
41、 rs1(&database);</p><p> rs1.Open(AFX_DB_USE_DEFAULT_TYPE,str);</p><p> if(rs1.IsEOF())</p><p><b> {</b></p><p> MessageBox("用戶名輸入錯誤!");&l
42、t;/p><p><b> return;</b></p><p><b> }</b></p><p> str.Format("select * from 用戶 where 用戶名='%s'and 密碼='%s'",m_name,m_password);</p
43、><p> rs.Open(AFX_DB_USE_DEFAULT_TYPE,str);</p><p> if(rs.GetRecordCount()==0)</p><p><b> {</b></p><p> MessageBox("密碼輸入錯誤!");</p><p&
44、gt;<b> }</b></p><p><b> else</b></p><p><b> { </b></p><p> CMainDlg dlg;</p><p> dlg.DoModal();//進入主界面</p><p>
45、 CNcistSSMDlg::OnCancel();</p><p><b> }</b></p><p> database.Close();</p><p> 3.1.2注冊新用戶</p><p> 注冊用戶界面如圖所示,新注冊的賬戶存于數(shù)據(jù)庫中的用戶表中。通過相關(guān)代碼設(shè)置用戶名和密碼都不為空,并且彈出提示
46、框。詳細代碼見附錄。</p><p> 圖3.1.2 注冊新用戶</p><p> 圖3.1.3 注冊錯誤提示</p><p> 3.2系統(tǒng)的詳細設(shè)計</p><p> 3.2.1主界面設(shè)計</p><p> 主界面添加了菜單欄,用于各種信息查詢操作和軟件幫助信息。通過引入圖片設(shè)置對話框背景圖片。還可以設(shè)置靜
47、態(tài)文本組件讓其顯示時間。主界面如圖3.2.1所示。</p><p> 圖3.2.1 系統(tǒng)主界面</p><p> 顯示時間方法:添加兩個靜態(tài)文本組件,設(shè)置它們大小相同并放置在同一水平位置,第一個文本標題為“時間:”,第二個不設(shè)置標題,改變其ID為:IDC_STATIC_TIME,然后添加OnTimer()函數(shù),代碼設(shè)置如下:</p><p> void CMa
48、inDlg::OnTimer(UINT nIDEvent) </p><p><b> {</b></p><p> CDialog::OnTimer(nIDEvent);</p><p> CString str;</p><p> CTime theTime = CTime::GetCurrentTime()
49、; str.Format("%02d:%02d:%02d",theTime.GetHour(),theTime.GetMinute(),theTime.GetSecond());</p><p> SetDlgItemText(IDC_STATIC_TIME,str);</p><p> CDialog::OnTimer(nIDEvent);</p>
50、<p><b> }</b></p><p> 適當設(shè)置文本框字體顏色、文本顏色和組件背景色就可以做到美觀的顯示時間了。</p><p> HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);</p><p> if(nCtlColor==CTLCOLOR_STATIC
51、)</p><p><b> {</b></p><p> pDC->SetTextColor(RGB(0,0,0));</p><p> pDC->SetBkColor(RGB(7,255,246));//文字背景色</p><p> HBRUSH b=CreateSolidBrush(RGB(7,
52、255,246));//控件背景色</p><p><b> return b;</b></p><p><b> }</b></p><p> return hbr;</p><p> 3.2.2菜單欄設(shè)計</p><p> 菜單欄前三個菜單都為查詢菜單,通過SQ
53、L查詢語句顯示查詢結(jié)果。初始化狀態(tài)為顯示全部結(jié)果,若記錄太多可按主碼值查詢,若要返回初始狀態(tài),點擊刷新按鈕即可??梢詾槊總€窗口設(shè)置適當?shù)膱D片背景。</p><p><b> (1) 院系查詢</b></p><p> 院系查詢菜單提供系別、教研室和班級的詳細信息。單擊相應(yīng)菜單實現(xiàn)對應(yīng)的查詢功能。</p><p> 圖3.2.2院系查詢菜單
54、</p><p> 圖3.2.3系別信息查詢界面</p><p> 圖3.2.4教研室信息查詢界面</p><p> 圖3.2.5班級信息查詢界面</p><p><b> (2)信息查詢</b></p><p> 信息查詢菜單提供教師信息、學生信息和課程信息的詳細查詢。單擊相應(yīng)菜單實現(xiàn)
55、對應(yīng)的查詢功能。</p><p> 圖3.2.6信息查詢菜單界面</p><p> 圖3.2.7教師信息查詢界面</p><p> 圖3.2.7學生信息查詢界面</p><p> 圖3.2.8課程信息查詢界面</p><p><b> (3)成績查詢</b></p><
56、;p> 成績查詢菜單提供按不同方式對學生成績的詳細查詢。單擊相應(yīng)菜單實現(xiàn)對應(yīng)的查詢功能。</p><p> 圖3.2.9成績查詢菜單</p><p> 圖3.2.10按班級查詢成績界面</p><p> 圖3.2.11按學號查詢成績界面</p><p> 圖3.2.12 按課程查詢成績界面</p><p&g
57、t; 3.2.3管理模塊設(shè)計</p><p> 管理模塊在主界面主面板上,用于對各個數(shù)據(jù)表的更新操作。數(shù)據(jù)操作部允許控制操作,若有空值則提示錯誤。</p><p><b> 系別管理</b></p><p> 系別管理可以通過系號來確定系別,從而對系別信息進行操作。不允許有空值操作。</p><p> 圖3.2
58、.13 系別管理界面</p><p><b> 教研室管理</b></p><p> 教研室管理通過教研室號來確定教研室,從而對教研室信息進行操作。不允許有空值操作。</p><p> 圖3.2.15 教研室管理界面</p><p><b> 班級管理</b></p><
59、p> 班級管理可以通過班號來確定班級,從而對班級信息進行操作。不允許有空值操作。</p><p> 圖3.2.16 班級管理界面</p><p><b> 教師管理</b></p><p> 教師管理通過教師號來確定教師,從而對教師信息進行操作。</p><p> 圖3.2.17 教師管理界面</p
60、><p><b> 學生管理</b></p><p> 學生管理可根據(jù)學號唯一確定學生,從而對信息進行添加、刪除、修改操作。</p><p> 圖3.2.18 學生管理界面</p><p><b> 課程管理</b></p><p> 課程管理通過課程號來確定課程信息,
61、從而對課程信息進行添加、刪除、修改操作。</p><p> 圖3.2.18課程管理界面</p><p><b> 成績管理</b></p><p> 成績管理通過學號與課程確定某學生的某門課成績并可按照學號、課程號來修改成績。</p><p> 圖3.2.19成績管理</p><p>&l
62、t;b> 總 結(jié)</b></p><p> 通過一周的時間終于完成了華北科技學院學生成績管理系統(tǒng)的設(shè)計開發(fā),系統(tǒng)的基本的功能已經(jīng)實現(xiàn)。個人覺得數(shù)據(jù)庫設(shè)計比較完美,查詢、修改都很方便。系統(tǒng)本身也不僅僅局限于成績的管理,更有教師、課程等的管理。比較完善的實現(xiàn)了學生成績的數(shù)字化管理。</p><p> 課程設(shè)計之前擔心自己想象的系統(tǒng)無法實現(xiàn)預(yù)期效果,但是在不斷的努力和勇敢
63、的嘗試下終于如期待中的那樣完成了任務(wù)??偨Y(jié)經(jīng)驗就是要明白自己做的是什么,要對自己的系統(tǒng)有一個清晰的概念,這樣設(shè)計起來才會比較方便。由于時間緊迫,系統(tǒng)功能尚有欠缺,但我已經(jīng)覺得挺滿意了。有些功能不是不能實現(xiàn),而是限于時間緊迫。我想課程設(shè)計雖然結(jié)束了,但是我的系統(tǒng)沒有結(jié)束。我會在以后的生活中繼續(xù)完善它。以前C++課程設(shè)計做的很不好,功能單一。當然那時候?qū)++語言本身不是很精通。能力是一個不斷提高的過程,不能急于求成。</p>
64、<p> 在這一周做課程設(shè)計中,收獲了很多。因為這次課程設(shè)計設(shè)計的知識面非常廣。從數(shù)據(jù)庫方面來說,涉及到數(shù)據(jù)庫設(shè)計的五個步驟:需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計和運行調(diào)試。數(shù)據(jù)庫的設(shè)計嚴重影響著系統(tǒng)的功能,如果數(shù)據(jù)庫設(shè)計不夠合理,前臺操作就不能正常運行。在運行過程中我發(fā)現(xiàn)數(shù)據(jù)庫的設(shè)計比較合理,查詢時特別方便。這為以后的開發(fā)積累了很寶貴的經(jīng)驗。從MFC編程方面來說又對MFC編程有了進一步的提高,讓系統(tǒng)不再單調(diào)
65、,通過有關(guān)設(shè)置使系統(tǒng)更為個性化。通過 MFC 程序來訪問并修改數(shù)據(jù)庫,從中體會到了編程的樂趣??吹阶约洪_發(fā)的系統(tǒng)實現(xiàn)了一個又一個功能,會有一種特別快樂的感覺。學以致用,這才是學習的目的。</p><p> 當然,系統(tǒng)的開發(fā)離不開好的資料和同學的交流。在這次課程設(shè)計中深深感受到了同學之間交流合作的重要性。交流不但可以發(fā)現(xiàn)新的問題,提高解決問題的效率,而且可以快速的學習到新的知識。</p><p
66、> 最后感謝這次課程設(shè)計中給予我?guī)椭睦蠋熀屯瑢W,是你們的幫助才使我的系統(tǒng)有了突破性的進展。</p><p><b> 參 考 文 獻</b></p><p> [1] 王瑞,于速. Visual C++數(shù)據(jù)庫系統(tǒng)開發(fā)完全手冊 [M]. 北京:人民郵電出版社, 2006.</p><p> [2] 朱景德,陳品華.SQL Serv
67、er數(shù)據(jù)庫系統(tǒng)技術(shù) [M]. 陜西:西安電子科技大學出版社, 2008.</p><p><b> 附 錄</b></p><p><b> 源程序清單</b></p><p><b> 1.登錄控制:</b></p><p> void CNcistSSMDlg::O
68、nEnter() </p><p><b> {</b></p><p> CDatabase database;</p><p> database.Open("華北科技學院成績管理",FALSE,FALSE,"ODBC;",FALSE);</p><p> CRecor
69、dset rs(&database); </p><p> UpdateData(TRUE);</p><p> CString str;</p><p> str.Format("select * from 用戶 where 用戶名='%s'",m_name);</p><p> CRec
70、ordset rs1(&database);</p><p> rs1.Open(AFX_DB_USE_DEFAULT_TYPE,str);</p><p> if(rs1.IsEOF())</p><p><b> {</b></p><p> MessageBox("用戶名輸入錯誤!&quo
71、t;);</p><p><b> return;</b></p><p><b> }</b></p><p> str.Format("select * from 用戶 where 用戶名='%s'and 密碼='%s'",m_name,m_password);
72、</p><p> rs.Open(AFX_DB_USE_DEFAULT_TYPE,str);</p><p> if(rs.GetRecordCount()==0)</p><p><b> {</b></p><p> MessageBox("密碼輸入錯誤!");</p>
73、<p><b> }</b></p><p><b> else</b></p><p><b> { </b></p><p> CMainDlg dlg;</p><p> dlg.DoModal();//進入主界面</p><
74、;p> CNcistSSMDlg::OnCancel();</p><p><b> }</b></p><p> database.Close();</p><p><b> }</b></p><p> 2.列表框內(nèi)容顯示(以課程管理為例):</p><p&
75、gt; BOOL CCouMangDlg::OnInitDialog() </p><p><b> {</b></p><p> CDialog::OnInitDialog();</p><p> // TODO: Add extra initialization here</p><p> CDatabas
76、e database;</p><p> database.Open("華北科技學院成績管理",FALSE,FALSE,"ODBC;",FALSE);</p><p> m_ListCouMang.SetExtendedStyle(LVS_EX_FLATSB</p><p> |LVS_EX_FULLROWSELECT&
77、lt;/p><p> |LVS_EX_HEADERDRAGDROP</p><p> |LVS_EX_ONECLICKACTIVATE</p><p> |LVS_EX_GRIDLINES);</p><p> m_ListCouMang.InsertColumn(0,"課程號", LVCFMT_LEFT, 60);&
78、lt;/p><p> m_ListCouMang.InsertColumn(1,"課程名", LVCFMT_LEFT, 160);</p><p> m_ListCouMang.InsertColumn(2,"教師號", LVCFMT_LEFT, 80);</p><p> m_ListCouMang.InsertColum
79、n(3,"學時", LVCFMT_LEFT, 40);</p><p> m_ListCouMang.InsertColumn(4,"學分", LVCFMT_LEFT, 40);</p><p><b> show();</b></p><p> database.Close();</p>
80、;<p> return TRUE; // return TRUE unless you set the focus to a control</p><p> // EXCEPTION: OCX Property Pages should return FALSE</p><p><b> }</b></p><p>
81、 void CCouMangDlg::show() </p><p><b> {</b></p><p> m_ListCouMang.DeleteAllItems();</p><p> CDatabase database;</p><p> database.Open("華北科技學院成績管理&q
82、uot;,FALSE,FALSE,"ODBC;",FALSE);</p><p> CRecordset set(&database);</p><p> set.Open(CRecordset::dynaset,_T("select * from 課程"));</p><p><b> int i=0
83、;</b></p><p> while(!set.IsEOF())</p><p><b> {</b></p><p> m_ListCouMang.InsertItem(i,"");</p><p> CString str1,str2,str3,str4,str5;<
84、/p><p> set.GetFieldValue("課程號",str1);</p><p> m_ListCouMang.SetItemText(i,0,str1);</p><p> set.GetFieldValue("課程名",str2);</p><p> m_ListCouMang.Se
85、tItemText(i,1,str2);</p><p> set.GetFieldValue("教師號",str3);</p><p> m_ListCouMang.SetItemText(i,2,str3);</p><p> set.GetFieldValue("學時",str4);</p><
86、p> m_ListCouMang.SetItemText(i,3,str4);</p><p> set.GetFieldValue("學分",str5);</p><p> m_ListCouMang.SetItemText(i,4,str5);</p><p> set.MoveNext();</p><p&
87、gt;<b> i++;</b></p><p><b> }</b></p><p> set.Close();</p><p><b> }</b></p><p><b> 3.添加記錄:</b></p><p>
88、 UpdateData(true);</p><p> // 確定所有輸入有效</p><p> CString sWarning="";</p><p> if ( ""==m_CouNo) sWarning=_T("課程號");</p><p> else if ( &q
89、uot;"==m_CouName) sWarning=_T("課程名");</p><p> else if ( ""==m_TeaNO) sWarning=_T("教師號");</p><p> else if ( ""==m_xueshi) sWarning=_T("學時"
90、);</p><p> else if ( ""==m_xuefen) sWarning=_T("學分");</p><p> if ( ""!=sWarning ) </p><p><b> {</b></p><p> sWarning += _T
91、("不能為空");</p><p> AfxMessageBox(sWarning, MB_ICONEXCLAMATION);</p><p><b> return;</b></p><p><b> }</b></p><p> CDatabase database;
92、 </p><p> database.Open("華北科技學院成績管理");</p><p> CString sql;</p><p> CString item;</p><p> sql.Format(</p><p> "insert into 課程(課程號,課程名,教
93、師號,學時,學分) \</p><p> values('"+m_CouNo+"','"+m_CouName+"','"+m_TeaNO+"','"+m_xueshi+"','"+m_xuefen+"')");</p&
94、gt;<p><b> try{</b></p><p> database.ExecuteSQL(sql);//執(zhí)行sql語句</p><p> MessageBox("添加成功!");</p><p><b> }</b></p><p> catch
95、(CDBException e)</p><p><b> {</b></p><p> MessageBox("添加失?。?quot;);</p><p><b> return;</b></p><p><b> }</b></p><
96、p> database.Close();</p><p><b> show();</b></p><p> UpdateData(true);</p><p><b> 4.修改記錄:</b></p><p> UpdateData(true);</p><p&
97、gt; CString str,sWarning="";</p><p> CDatabase database;</p><p> //CString sWarning="";</p><p> if ( ""==m_CouNo) sWarning=_T("課程號");<
98、/p><p> else if ( ""==m_CouName) sWarning=_T("課程名");</p><p> else if ( ""==m_TeaNO) sWarning=_T("教師號");</p><p> else if ( ""==m_xue
99、shi) sWarning=_T("學時");</p><p> else if ( ""==m_xuefen) sWarning=_T("學分");</p><p> if ( ""!=sWarning ) </p><p><b> {</b></p
100、><p> sWarning += _T("不能為空");</p><p> AfxMessageBox(sWarning, MB_ICONEXCLAMATION);</p><p><b> return;</b></p><p><b> }</b></p>
101、<p> database.Open("華北科技學院成績管理");</p><p><b> try{</b></p><p> str.Format("update 課程 set 課程名='"+m_CouName+"' where (課程號='"+m_CouNo+&
102、quot;')");</p><p> database.ExecuteSQL(str);</p><p> str.Format("update 課程 set 教師號='"+m_TeaNO+"' where (課程號='"+m_CouNo+"')");</p>
103、<p> database.ExecuteSQL(str);</p><p> str.Format("update 課程 set 學時='"+m_xueshi+"' where (課程號='"+m_CouNo+"')");</p><p> database.ExecuteSQL(
104、str);</p><p> str.Format("update 課程 set 學分='"+m_xuefen+"' where (課程號='"+m_CouNo+"')");</p><p> database.ExecuteSQL(str);</p><p> Afx
105、MessageBox("修改成功!");</p><p><b> }</b></p><p> catch(CDBException e1)</p><p><b> {</b></p><p> AfxMessageBox("修改失??!");<
106、;/p><p><b> }</b></p><p> database.Close();</p><p><b> show();</b></p><p><b> 5.刪除記錄:</b></p><p> UpdateData(true)
107、;</p><p> CString str,sWarning="";</p><p> CDatabase database;</p><p> //CString sWarning="";</p><p> if ( ""==m_CouNo) sWarning=_T(&q
108、uot;課程號");</p><p> if ( ""!=sWarning ) </p><p><b> {</b></p><p> sWarning += _T("不能為空");</p><p> AfxMessageBox(sWarning, MB_ICO
109、NEXCLAMATION);</p><p><b> return;</b></p><p><b> }</b></p><p> database.Open("華北科技學院成績管理");</p><p><b> try{</b></p&
110、gt;<p> str.Format("delete from 課程 where (課程號='"+m_CouNo+"')");</p><p> database.ExecuteSQL(str);</p><p> AfxMessageBox("刪除成功!");</p><p
111、><b> }</b></p><p> catch(CDBException e1)</p><p><b> {</b></p><p> AfxMessageBox("刪除失?。?quot;);</p><p><b> }</b><
112、/p><p> database.Close();</p><p><b> show();</b></p><p><b> 5.查詢記錄:</b></p><p> UpdateData(TRUE);</p><p> // TODO: Add your contr
113、ol notification handler code here</p><p> CDatabase database;</p><p> database.Open("華北科技學院成績管理",FALSE,FALSE,"ODBC;",FALSE);</p><p><b> {</b></
114、p><p> CString str;</p><p> CRecordset set(&database);</p><p> if(m_CKCouNo.IsEmpty())</p><p><b> {</b></p><p> MessageBox("請輸入課程號&q
115、uot;);</p><p><b> return;</b></p><p><b> }</b></p><p> m_ListCouMes.DeleteAllItems();</p><p> set.Open(CRecordset::dynaset,_T(</p>&l
116、t;p> "select 課程.課程號,課程.課程名,教師.教師姓名,課程.學時,課程.學分\</p><p> from 課程,教師 where 課程.教師號=教師.教師號 \</p><p> and 課程.課程號='"+m_CKCouNo+"'"));</p><p><b> i
117、nt i=0;</b></p><p> while(!set.IsEOF())</p><p><b> {</b></p><p> m_ListCouMes.InsertItem(i,"");</p><p> CString str1,str2,str3,str4,str5
118、;</p><p> set.GetFieldValue("課程號",str1);</p><p> m_ListCouMes.SetItemText(i,0,str1);</p><p> set.GetFieldValue("課程名",str2);</p><p> m_ListCouMes
119、.SetItemText(i,1,str2);</p><p> set.GetFieldValue("教師姓名",str3);</p><p> m_ListCouMes.SetItemText(i,2,str3);</p><p> set.GetFieldValue("學時",str4);</p>&
120、lt;p> m_ListCouMes.SetItemText(i,3,str4);</p><p> set.GetFieldValue("學分",str5);</p><p> m_ListCouMes.SetItemText(i,4,str5);</p><p> set.MoveNext();</p><p
121、><b> i++;</b></p><p><b> }</b></p><p> set.Close();</p><p><b> }</b></p><p> UpdateData(TRUE);</p><p> databas
122、e.Close();</p><p><b> 6.添加背景:</b></p><p> void CNcistSSMDlg::OnPaint() </p><p><b> {</b></p><p> CPaintDC dc(this); // device context for pa
123、inting</p><p> CRect rect;</p><p> GetClientRect(&rect);</p><p> CDC dcMem;</p><p> dcMem.CreateCompatibleDC(&dc);</p><p> CBitmap bmpBackg
124、round;</p><p> bmpBackground.LoadBitmap(IDB_denglu); </p><p> BITMAP bitmap;</p><p> bmpBackground.GetBitmap(&bitmap);</p><p> CBitmap *pbmpOld=dcMem.SelectO
125、bject(&bmpBackground); </p><p> dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);</p><p><b> }</b></p><p> 7.靜態(tài)
126、文本和編輯框透明:</p><p> HBRUSH CNcistSSMDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) </p><p><b> {</b></p><p> HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColo
127、r);</p><p> // TODO: Change any attributes of the DC here</p><p> if(nCtlColor==CTLCOLOR_STATIC)</p><p> //對所有的STATIC控件的屬性進行設(shè)定</p><p><b> {</b></p>
128、;<p> pDC->SetBkMode(TRANSPARENT);</p><p> return (HBRUSH)::GetStockObject(NULL_BRUSH); </p><p><b> }</b></p><p> if(nCtlColor==CTLCOLOR_EDIT)</p>&
129、lt;p> //對所有的Edit控件的屬性進行設(shè)定</p><p><b> {</b></p><p> pDC->SetBkMode(TRANSPARENT);</p><p> return (HBRUSH)::GetStockObject(NULL_BRUSH); </p><p><b
130、> }</b></p><p> // TODO: Return a different brush if the default is not desired</p><p> return hbr;</p><p><b> }</b></p><p> 8.數(shù)據(jù)庫連接的類NcistDBs
131、et.cpp:</p><p> #include "stdafx.h"</p><p> #include "NcistSSM.h"</p><p> #include "NcistDBset.h"</p><p> #ifdef _DEBUG</p><
132、;p> #define new DEBUG_NEW</p><p> #undef THIS_FILE</p><p> static char THIS_FILE[] = __FILE__;</p><p><b> #endif</b></p><p> ///////////////////////
133、//////////////////////////////////////////////////////</p><p> // NcistDBset</p><p> IMPLEMENT_DYNAMIC(NcistDBset, CRecordset)</p><p> NcistDBset::NcistDBset(CDatabase* pdb)</
134、p><p> : CRecordset(pdb)</p><p><b> {</b></p><p> //{{AFX_FIELD_INIT(NcistDBset)</p><p> m_column1 = _T("");</p><p> m_column2 = _T
135、("");</p><p> m_column3 = _T("");</p><p> m_column4 = _T("");</p><p> m_column5 = _T("");</p><p> m_column6 = _T(""
136、;);</p><p> m_column7 = _T("");</p><p> m_column8 = _T("");</p><p> m_column9 = _T("");</p><p> m_column10 = _T("");</p&g
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫應(yīng)用課程設(shè)計說明書---學生成績管理系統(tǒng)
- 數(shù)據(jù)庫應(yīng)用課程設(shè)計說明書---學生成績管理系統(tǒng)
- 數(shù)據(jù)庫應(yīng)用課程設(shè)計說明書---學生成績管理系統(tǒng).doc
- sql數(shù)據(jù)庫課程設(shè)計---學生成績管理系統(tǒng)設(shè)計說明
- 數(shù)據(jù)庫課程設(shè)計--學生成績管理系統(tǒng) (2)
- 學生成績管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計---學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(學生成績管理系統(tǒng))
- 數(shù)據(jù)庫課程設(shè)計---學生成績管理系統(tǒng)數(shù)據(jù)庫設(shè)計
- 數(shù)據(jù)庫課程設(shè)計--學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)-數(shù)據(jù)庫課程設(shè)計
- 學生成績管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 數(shù)據(jù)庫學生成績管理系統(tǒng)課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計——學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計----學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--- 學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計----學生成績管理系統(tǒng)
評論
0/150
提交評論