版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 1 問(wèn)題描述1</b></p><p> 1.1 設(shè)計(jì)背景1</p><p> 1.2 應(yīng)用目標(biāo)2</p><p> 1.3 問(wèn)題定義2</p><p> 2 成績(jī)管理系統(tǒng)分析2&l
2、t;/p><p> 2.1 問(wèn)題提出:2</p><p> 2.2 可行性研究:2</p><p> 2.3 需求分析:2</p><p> 2.4 數(shù)據(jù)庫(kù)功能:2</p><p> 2.5 數(shù)據(jù)庫(kù)的事物處理:3</p><p> 3 成績(jī)管理系統(tǒng)的概要設(shè)計(jì)3</p&g
3、t;<p> 3.1 總體設(shè)計(jì)3</p><p> 3.11 成績(jī)管理模塊3</p><p> 3.12 學(xué)生信息管理模塊3</p><p> 3.13 系統(tǒng)設(shè)置模塊4</p><p> 3.14 實(shí)體(分類)定義:4</p><p> 3.15 基本E-R圖:5</p>
4、;<p> 3.16 轉(zhuǎn)換成數(shù)據(jù)模型:5</p><p> 3.2 開(kāi)發(fā)運(yùn)行環(huán)境和工具分析6</p><p> 3.3 數(shù)據(jù)庫(kù)的選擇6</p><p> 4 成績(jī)管理系統(tǒng)的詳細(xì)設(shè)計(jì)6</p><p> 4.1主控模塊的設(shè)計(jì)與實(shí)現(xiàn)6</p><p> 4.11成績(jī)管理模塊的設(shè)計(jì)與實(shí)現(xiàn)
5、6</p><p> 4.12 學(xué)生信息模塊的設(shè)計(jì)與實(shí)現(xiàn)9</p><p> 4.2 系統(tǒng)設(shè)置模塊的設(shè)計(jì)與實(shí)現(xiàn)10</p><p> 4.3 成績(jī)管理系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)10</p><p> 4.4 輸出打印模塊的設(shè)計(jì)與實(shí)現(xiàn)11</p><p> 4.5 系統(tǒng)安全設(shè)置11</p><
6、;p> 5 貼心小功能11</p><p> 6 主要功能SQL語(yǔ)句11</p><p> 6.1 成績(jī)總評(píng):11</p><p> 6.2 補(bǔ)考處理:12</p><p> 6.3重修處理:12</p><p> 6.4 統(tǒng)計(jì)學(xué)分:13</p><p> 6.5
7、 評(píng)優(yōu)秀:14</p><p><b> 7 總結(jié)14</b></p><p> 參 考 文 獻(xiàn)14</p><p><b> 附 錄15</b></p><p><b> 致 謝24</b></p><p><b>
8、1 問(wèn)題描述</b></p><p><b> 1.1 設(shè)計(jì)背景</b></p><p> 現(xiàn)今學(xué)生檔案管理的繁瑣給具有強(qiáng)烈時(shí)間觀念的行政人員帶來(lái)了諸多不便,教學(xué)辦公室缺少一種完善的學(xué)生成績(jī)管理軟件,為了對(duì)學(xué)生成績(jī)的管理方便,開(kāi)發(fā)此學(xué)生成績(jī)管理系統(tǒng)軟件。以供教學(xué)人員及操作者進(jìn)行學(xué)生成績(jī)管理,方便操作者隨時(shí)添加、查詢、修改等......為保正學(xué)生資料的統(tǒng)
9、一和更便于管理,本系統(tǒng)軟件增加了學(xué)生信息部分。</p><p><b> 1.2 應(yīng)用目標(biāo)</b></p><p> 通過(guò)本系統(tǒng)軟件,能幫助教研人員利用計(jì)算機(jī),快速方便的對(duì)學(xué)生檔案和成績(jī)管理進(jìn)行管理、輸入、輸出、查找的所需操作,使散亂的人事檔案能夠具體化,直觀化、合理化。</p><p><b> 1.3 問(wèn)題定義</b&
10、gt;</p><p> 本軟件采用可視化數(shù)據(jù)庫(kù)編程工具Visual C++ 開(kāi)發(fā)而成,運(yùn)行于Windows環(huán)境。操作方便、直觀、快捷、高效。是學(xué)校理想的辦公自動(dòng)化軟件。該軟件的主要功能有:具有自主創(chuàng)建各系單位,系下級(jí)的多個(gè)專業(yè),包括各專業(yè)的班級(jí)數(shù);能夠自由增加和刪除學(xué)生記錄,同時(shí)自動(dòng)刷新數(shù)據(jù)庫(kù)中該生的個(gè)人資料;提供標(biāo)準(zhǔn)的學(xué)生檔案資料模板;成績(jī)方面,隨意創(chuàng)立各學(xué)期的課程數(shù),當(dāng)班級(jí)學(xué)生的平時(shí)成績(jī)和考試成績(jī)輸入后,
11、能自動(dòng)進(jìn)行統(tǒng)計(jì)并計(jì)算該生的總評(píng)分和平均分,并能手動(dòng)設(shè)置(或默認(rèn))補(bǔ)考分?jǐn)?shù)線和重修分?jǐn)?shù)線;本系統(tǒng)還具有多項(xiàng)打印功能,包括學(xué)生成績(jī)表,補(bǔ)考成績(jī)表,重修成績(jī)表和補(bǔ)考通知單,重修通知單;能根據(jù)成績(jī)?cè)u(píng)選優(yōu)秀學(xué)生。</p><p> 2 成績(jī)管理系統(tǒng)分析</p><p><b> 2.1 問(wèn)題提出:</b></p><p> 由于計(jì)算機(jī)的普及,越來(lái)越
12、多本來(lái)人手的工作都轉(zhuǎn)交由計(jì)算機(jī)完成,既然這樣,可否設(shè)計(jì)一個(gè)學(xué)生成績(jī)管理系統(tǒng),減輕教師對(duì)學(xué)生成績(jī)的管理負(fù)擔(dān),節(jié)省人力資源。</p><p> 2.2 可行性研究:</p><p> 對(duì)以上提出的問(wèn)題:能否設(shè)計(jì)一個(gè)學(xué)生成績(jī)管理系統(tǒng),進(jìn)行研究,提出一些可行方案,如何實(shí)現(xiàn)這個(gè)系統(tǒng),如何設(shè)計(jì)。</p><p><b> 2.3 需求分析:</b>&
13、lt;/p><p> 按照用戶的要求,該數(shù)據(jù)庫(kù)管理系統(tǒng)目標(biāo)要實(shí)現(xiàn)對(duì)學(xué)生各科成績(jī)(平時(shí)成績(jī)、考試成績(jī)、總評(píng)成績(jī))、學(xué)分進(jìn)行登記,統(tǒng)計(jì)成績(jī)和學(xué)分,并對(duì)成績(jī)進(jìn)行管理,如總評(píng)成績(jī)不及格的要補(bǔ)考,補(bǔ)考不及格的要重修。打印成績(jī)各類成績(jī)單和補(bǔ)考、重修通知書(shū)。并要求根據(jù)成績(jī)?cè)u(píng)選出優(yōu)秀學(xué)生。管理系統(tǒng)中除了要包括以上的功能外,還要實(shí)現(xiàn)基本的管理工作,例如添加學(xué)生成績(jī)、修改學(xué)生成績(jī)、刪除成績(jī),由平時(shí)成績(jī)和考試成績(jī),算出學(xué)生的總評(píng)成績(jī)&l
14、t;/p><p> 2.4 數(shù)據(jù)庫(kù)功能:</p><p> 根據(jù)已有的學(xué)生選課信息登記平時(shí)成績(jī)和考試成績(jī),然后對(duì)所有成績(jī)信息進(jìn)行相關(guān)的處理;</p><p> 2.5 數(shù)據(jù)庫(kù)的事物處理:</p><p> 1、打印成績(jī)表和補(bǔ)考、重修成績(jī)表;</p><p> 2、考試和平時(shí)成績(jī)登記,然后生成總評(píng)成績(jī);</p
15、><p> 3、判斷是否修得學(xué)分并登記學(xué)分;</p><p> 4、打印補(bǔ)考通知單,補(bǔ)考成績(jī)單,重修成績(jī)單,重修通知單及補(bǔ)考重修登記; 評(píng)選優(yōu)秀學(xué)生(緊根據(jù)成績(jī));</p><p> 3 成績(jī)管理系統(tǒng)的概要設(shè)計(jì)</p><p> 本成績(jī)管理系統(tǒng)主要分三大功能模塊。</p><p><b>
16、 3.1 總體設(shè)計(jì)</b></p><p> 3.11 成績(jī)管理模塊</p><p> 3.12 學(xué)生信息管理模塊</p><p> 3.13 系統(tǒng)設(shè)置模塊</p><p> 3.14 實(shí)體(分類)定義:</p><p> 學(xué)生基本信息(學(xué)號(hào)、姓名、性別、年齡);</p><p
17、> 成績(jī)表(學(xué)號(hào)、課程代碼、考試代碼、成績(jī));</p><p> 考試類型代碼(考試代碼、考試名稱、備注);</p><p> 課程信息(課程代碼、課程名稱、學(xué)分);</p><p> 班級(jí)信息(班級(jí)代碼、班級(jí)名稱、班輔導(dǎo)員);</p><p> 專業(yè)信息(專業(yè)代碼、專業(yè)名稱、專業(yè)負(fù)責(zé)人);</p><p&
18、gt; 系別信息(系別代碼、系名、系負(fù)責(zé)人);</p><p> 3.15 基本E-R圖:</p><p> 3.16 轉(zhuǎn)換成數(shù)據(jù)模型:</p><p> 學(xué)生基本信息(學(xué)號(hào)、姓名、性別、年齡、班級(jí)號(hào));</p><p> 成績(jī)表(學(xué)號(hào)、課程代碼、考試代碼、成績(jī));</p><p> 考試類型代碼(考試代碼
19、、考試名稱、備注);</p><p> 課程信息(課程代碼、課程名稱、學(xué)分);</p><p> 班級(jí)信息(班級(jí)代碼、班級(jí)名稱、所屬專業(yè)、班輔導(dǎo)員);</p><p> 專業(yè)信息(專業(yè)代碼、專業(yè)名稱、所屬系別、專業(yè)負(fù)責(zé)人);</p><p> 系別信息(系別代碼、系名、系負(fù)責(zé)人);</p><p> 學(xué)生—成
20、績(jī)表(學(xué)號(hào)、成績(jī));</p><p> 課程—成績(jī)表(課程代碼、成績(jī));</p><p> 考試類型—成績(jī)表(考試代碼、成績(jī));</p><p> 3.2 開(kāi)發(fā)運(yùn)行環(huán)境和工具分析</p><p> 本軟件采用可視化數(shù)據(jù)庫(kù)編程工具Visual C++ 結(jié)合SQL server數(shù)據(jù)庫(kù)開(kāi)發(fā)而成,運(yùn)行于Windows環(huán)境。操作方便、直觀、快捷
21、、高效。</p><p> Visual C++開(kāi)發(fā)數(shù)據(jù)庫(kù)技術(shù)的特點(diǎn):Visual C++提供了多種多樣的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)——ODBC API、MFC ODBC、DAO、OLE DB、ADO等。這些技術(shù)各有自己的特點(diǎn),它們提供了簡(jiǎn)單、靈活、訪問(wèn)速度快、可擴(kuò)展性好的開(kāi)發(fā)技術(shù)。本系統(tǒng)采用ADO。</p><p> 3.3 數(shù)據(jù)庫(kù)的選擇</p><p> 本軟件選用S
22、QL server 數(shù)據(jù)庫(kù)。</p><p> SQL全稱是“結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)”, SQL語(yǔ)言結(jié)構(gòu)簡(jiǎn)潔,功能強(qiáng)大,簡(jiǎn)單易學(xué),推出以來(lái),得到了廣泛的應(yīng)用。如今許多數(shù)據(jù)庫(kù)管理系統(tǒng)和微機(jī)上常用的數(shù)據(jù)庫(kù)開(kāi)發(fā)系統(tǒng),都支持SQL語(yǔ)言作為查詢語(yǔ)言。</p><p> 4 成績(jī)管理系統(tǒng)的詳細(xì)設(shè)計(jì)</p><p> 4.1主
23、控模塊的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 4.11成績(jī)管理模塊的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 在成績(jī)管理模塊面板上點(diǎn)擊相應(yīng)的按鈕或菜單項(xiàng),便進(jìn)入以下相應(yīng)項(xiàng)。</p><p><b> 1、成績(jī)錄入</b></p><p><b> 2、修改成績(jī)</b></p><p>
24、 修改成績(jī)與成績(jī)錄入同用一界面模塊。當(dāng)數(shù)據(jù)庫(kù)里已經(jīng)存在該生的成績(jī)時(shí),系統(tǒng)會(huì)提示已有記錄,并提示是否要修改。</p><p><b> 3、刪除成績(jī)</b></p><p> 在刪除時(shí)會(huì)給出提示,確保用戶不是誤操作。</p><p><b> 4、成績(jī)查詢</b></p><p> 成績(jī)查詢操
25、作界面如下:本系統(tǒng)提供四個(gè)組合條件輸入框供用戶選擇使用。如下圖,查詢條件可以是(班級(jí)名稱、學(xué)號(hào)、姓名、課程名稱、考試名稱、專業(yè)名稱、系名)中的一種或多種組合,條件組合方式有(與、或、非),還可以進(jìn)行模糊查詢,如學(xué)號(hào)的前幾位吻合或姓氏相同等。</p><p><b> 5、成績(jī)總評(píng)</b></p><p> 如上圖,可調(diào)整總評(píng)成績(jī)的構(gòu)成比例,確定后,系統(tǒng)將生成總評(píng)成
26、績(jī)并顯示所有學(xué)生的總評(píng)成績(jī)。</p><p><b> 6、補(bǔ)考處理</b></p><p><b> 7、重修處理</b></p><p><b> 8、統(tǒng)計(jì)學(xué)分</b></p><p> 統(tǒng)計(jì)學(xué)分是根據(jù)該生該科的總評(píng)成績(jī)是還及格來(lái)決定該生該科是否獲得學(xué)分。并顯示所有
27、學(xué)生的學(xué)分情況。</p><p><b> 9、評(píng)選優(yōu)秀</b></p><p> 4.12 學(xué)生信息模塊的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b> 1、新增學(xué)生</b></p><p> 新增學(xué)生以學(xué)號(hào)不與數(shù)據(jù)庫(kù)中的記錄學(xué)號(hào)相同為準(zhǔn),若已存在該學(xué)號(hào),則給出提示,也可在本模塊修改該生信息。操作界
28、面如下:</p><p><b> 2、修改學(xué)生</b></p><p> 修改學(xué)生與新增學(xué)生共用一界面模塊,不同的是修改學(xué)生要先選定一學(xué)生記錄。</p><p><b> 3、刪除學(xué)生</b></p><p> 刪除學(xué)生會(huì)連帶學(xué)生信息、選修情況與成績(jī)一起刪除。所以在刪除時(shí)會(huì)給出提示,確保用
29、戶不是誤操作。</p><p><b> 4、信息查詢</b></p><p> 操作界面如上,本功能既能以精確條件查詢,也可以模糊查詢。</p><p><b> 5、導(dǎo)出Excel</b></p><p> 導(dǎo)出Excel是根據(jù)當(dāng)前操作的界面表格的數(shù)據(jù)(所有的學(xué)生信息或經(jīng)某個(gè)條件查詢出來(lái)
30、的學(xué)生信息)用Excel顯示出來(lái)。</p><p> 4.2 系統(tǒng)設(shè)置模塊的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 系統(tǒng)設(shè)置主要涉及用戶添加、密碼修改、用戶登錄與注銷,還可以還原數(shù)據(jù)庫(kù)和備份數(shù)據(jù)庫(kù)。而不涉及具體的數(shù)據(jù)操作。</p><p> 4.3 成績(jī)管理系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p> 4.4 輸出打印模塊的設(shè)計(jì)與實(shí)現(xiàn)</p>
31、<p> 由于本系統(tǒng)涉及到的數(shù)據(jù)處理和存儲(chǔ)都是以表格形式進(jìn)行的,為方便與統(tǒng)一,輸出打印也都采用表格形式,即以Excel 表格形式打印。當(dāng)用戶操作進(jìn)入某個(gè)表格時(shí)(學(xué)生信息、各類成績(jī)、某個(gè)查詢等),都可以選擇打印功能。系統(tǒng)將以Excel表格形式導(dǎo)出當(dāng)前數(shù)據(jù)進(jìn)行打印。</p><p> 4.5 系統(tǒng)安全設(shè)置</p><p> 為保正數(shù)據(jù)安全性,本系統(tǒng)設(shè)有用戶登錄和密碼驗(yàn)證。還
32、可以注銷用戶,以供不同用戶使用,由于時(shí)間關(guān)系,本系統(tǒng)的權(quán)限管理還沒(méi)有完成。</p><p><b> 5 貼心小功能</b></p><p> 如圖,為方便用戶的查看閱讀和操作,本系統(tǒng)提供了多種數(shù)據(jù)排列方式,點(diǎn)擊數(shù)據(jù)列的名稱,系統(tǒng)就會(huì)自動(dòng)按該列將數(shù)據(jù)分組,再按升序或降序排列。如:點(diǎn)擊學(xué)號(hào),按學(xué)號(hào)降序排列,再點(diǎn)一下學(xué)號(hào),便按學(xué)號(hào)升序排列;點(diǎn)考試類型,就會(huì)按平時(shí)成績(jī)、
33、期末考試、總評(píng)成績(jī)分組排列,再點(diǎn)又以原序排列。</p><p> 6 主要功能SQL語(yǔ)句</p><p><b> 6.1 成績(jī)總評(píng):</b></p><p> //先刪除原有的總評(píng)成績(jī)</p><p> CString szSQL="DELETE FROM 成績(jī)表 WHERE (考試代碼 = '
34、;05')";</p><p> //按組分//把所有學(xué)生和它選課 一個(gè)個(gè)選出來(lái)</p><p> szSQL="SELECT 學(xué)號(hào), 課程代碼 FROM 成績(jī)表 WHERE (考試代碼 = '01') OR (考試代碼 = '02') GROUP BY 學(xué)號(hào), 課程代碼";</p><p>
35、; while循環(huán)取一個(gè)個(gè)計(jì)算 </p><p> SQL1.Format("SELECT 成績(jī) FROM 成績(jī)表 WHERE (考試代碼 = '01') AND (學(xué)號(hào) = '%s') AND (課程代碼 = '%s')",szSno,szCno);</p><p> SQL2.Format("SELEC
36、T 成績(jī) FROM 成績(jī)表 WHERE (考試代碼 = '02') AND (學(xué)號(hào) = '%s') AND (課程代碼 = '%s')",szSno,szCno);</p><p> //最后插入總評(píng)成績(jī)</p><p> szSQLtotal.Format("INSERT INTO 成績(jī)表 VALUES ('
37、%s','%s','05',%s)",szSno,szCno,CtotalG);</p><p><b> 6.2 補(bǔ)考處理:</b></p><p> szSQL="SELECT 班級(jí)名稱,學(xué)生基本信息.學(xué)號(hào),姓名,課程名稱,考試名稱,成績(jī),專業(yè)名稱,系名 FROM 成績(jī)表,學(xué)生基本信息,考試類型代碼,
38、班級(jí)信息,課程信息,專業(yè)信息,系別信息 WHERE 系別信息.系別代碼 = 專業(yè)信息.所屬系別 AND 專業(yè)信息.專業(yè)代碼 = 班級(jí)信息.所屬專業(yè) AND 成績(jī)表.學(xué)號(hào) = 學(xué)生基本信息.學(xué)號(hào) AND 成績(jī)表.考試代碼 = 考試類型代碼.考試代碼 AND 學(xué)生基本信息.所屬班級(jí) = 班級(jí)信息.班級(jí)代碼 AND 成績(jī)表.課程代碼 = 課程信息.課程代碼 ";</p><p> //再在后面加上條件,還有
39、處理范圍where條件語(yǔ)句省略。</p><p> szSQLlast.Format(" AND 成績(jī)>= %s AND 成績(jī)<%s",b_MinScore,b_Score); </p><p> szSQL += szSQLlast;</p><p><b> 6.3重修處理:</b></p&g
40、t;<p> szSQL="SELECT 班級(jí)名稱,學(xué)生基本信息.學(xué)號(hào),姓名,課程名稱,考試名稱,成績(jī),專業(yè)名稱,系名 FROM 成績(jī)表,學(xué)生基本信息,考試類型代碼,班級(jí)信息,課程信息,專業(yè)信息,系別信息 WHERE 系別信息.系別代碼 = 專業(yè)信息.所屬系別 AND 專業(yè)信息.專業(yè)代碼 = 班級(jí)信息.所屬專業(yè) AND 成績(jī)表.學(xué)號(hào) = 學(xué)生基本信息.學(xué)號(hào) AND 成績(jī)表.考試代碼 = 考試類型代碼.考試代碼
41、AND 學(xué)生基本信息.所屬班級(jí) = 班級(jí)信息.班級(jí)代碼 AND 成績(jī)表.課程代碼 = 課程信息.課程代碼 ";</p><p> //再在后面加上條件,還有處理范圍等等where條件語(yǔ)句生成方法省略。</p><p> //AND ((考試類型代碼.考試名稱 = '補(bǔ)考成績(jī)' AND 成績(jī)<60) or (考試類型代碼.考試名稱 = '總評(píng)成績(jī)&
42、#39; AND 成績(jī)<40))</p><p> szSQL1.Empty();</p><p> szSQLlast.Format("考試名稱 = '%s'",b_Ename);</p><p> szSQL1 += szSQLlast;</p><p> szSQLlast.Format
43、(" AND 成績(jī)<%s",b_Score);</p><p> szSQL1 += szSQLlast; szSQL2.Empty();</p><p> szSQL2="考試類型代碼.考試名稱 = '總評(píng)成績(jī)'";</p><p> szSQLlast.Format("
44、AND 成績(jī)<%s",b_MiniScore);</p><p> szSQL2 += szSQLlast;</p><p> szSQLlast.Format(" AND ((%s) or (%s))",szSQL1,szSQL2);</p><p> szSQL += szSQLlast;</p><
45、;p><b> 6.4 統(tǒng)計(jì)學(xué)分:</b></p><p><b> //先刪除臨時(shí)表</b></p><p> CString szSQLdel="DELETE FROM T_分科學(xué)分";</p><p> CStringszSQLdelstu="UPDATE 學(xué)生基本信息
46、SET 總得學(xué)分 = NULL ";</p><p> //把所有學(xué)生和它選課 一個(gè)個(gè)選出來(lái)</p><p> CString szSQL="SELECT 學(xué)號(hào), 課程代碼 FROM 成績(jī)表 GROUP BY 學(xué)號(hào),課程代碼"; </p><p><b> //一個(gè)個(gè)計(jì)算</b></p>&l
47、t;p> SQL1.Format("SELECT 成績(jī) FROM 成績(jī)表,考試類型代碼 WHERE 成績(jī)表.考試代碼 = 考試類型代碼.考試代碼 AND 考試類型代碼.考試名稱 = '總評(píng)成績(jī)' AND (學(xué)號(hào)='%s') AND (課程代碼 = '%s')",szSno,szCno); </p><p> //看補(bǔ)考過(guò)了沒(méi)有
48、 </p><p> SQL1.Format("SELECT 成績(jī) FROM 成績(jī)表,考試類型代碼 WHERE 成績(jī)表.考試代碼 = 考試類型代碼.考試代碼 AND 考試類型代碼.考試名稱 = '補(bǔ)考成績(jī)' AND (學(xué)號(hào)='%s') AND (課程代碼 = '%s')",szSno,szCno);</p><
49、p><b> //看重修過(guò)了沒(méi)有</b></p><p> SQL1.Format("SELECT 成績(jī) FROM 成績(jī)表,考試類型代碼 WHERE 成績(jī)表.考試代碼 = 考試類型代碼.考試代碼 AND 考試類型代碼.考試名稱 = '重修成績(jī)' AND (學(xué)號(hào)='%s') AND (課程代碼 = '%s')",sz
50、Sno,szCno);</p><p> //最后更新學(xué)生信息表</p><p> UpSQL.Format("UPDATE 學(xué)生基本信息 SET 總得學(xué)分 = %s WHERE (學(xué)號(hào) = '%s')",totalCent,Stu[k].Sno);</p><p><b> 6.5 評(píng)優(yōu)秀:</b>&
51、lt;/p><p> szSQL="SELECT 班級(jí)名稱,學(xué)生基本信息.學(xué)號(hào),姓名,課程名稱,考試名稱,成績(jī),專業(yè)名稱,系名 FROM 成績(jī)表,學(xué)生基本信息,考試類型代碼,班級(jí)信息,課程信息,專業(yè)信息,系別信息 WHERE 系別信息.系別代碼 = 專業(yè)信息.所屬系別 AND 專業(yè)信息.專業(yè)代碼 = 班級(jí)信息.所屬專業(yè) AND 成績(jī)表.學(xué)號(hào) = 學(xué)生基本信息.學(xué)號(hào) AND 成績(jī)表.考試代碼 = 考試類型代
52、碼.考試代碼 AND 學(xué)生基本信息.所屬班級(jí) = 班級(jí)信息.班級(jí)代碼 AND 成績(jī)表.課程代碼 = 課程信息.課程代碼 ";</p><p> szSQLlast.Format(" AND 成績(jī)>=%s",b_Score); </p><p> szSQL += szSQLlast;</p><p> szSQLlast
53、.Format(" AND 考試名稱 = '%s'",b_Ename);</p><p> szSQL += szSQLlast;</p><p><b> 7 總結(jié)</b></p><p> 在做這個(gè)系統(tǒng)的過(guò)程中我深深體會(huì)數(shù)據(jù)庫(kù)需求設(shè)計(jì)分析的重要性。以前總是覺(jué)得沒(méi)有什么,但認(rèn)真做起來(lái),才發(fā)覺(jué)從書(shū)本學(xué)到
54、和自己動(dòng)手的的確有很大區(qū)別。從整個(gè)程序框架,設(shè)計(jì)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)建立,程序數(shù)據(jù)庫(kù)登錄,數(shù)據(jù)備份還原模塊到成績(jī)模塊編寫(xiě),學(xué)生模塊部分都花了不少的心思,好的數(shù)據(jù)庫(kù)關(guān)系模式可以防止數(shù)據(jù)插入異常、刪除異常和數(shù)據(jù)冗余等等,受益良多。不過(guò)我們不僅要有扎實(shí)的理論基礎(chǔ),還需要多與別人交流,同時(shí)還要養(yǎng)成良好的編程風(fēng)格。</p><p> 本軟件系統(tǒng)操作方便、直觀、快捷、高效。除了可以點(diǎn)擊按鈕和圖標(biāo)進(jìn)行操作外,本系統(tǒng)還設(shè)有相應(yīng)的菜單
55、項(xiàng)可供選擇操作。為防止用戶的誤操作,保正數(shù)據(jù)的完整性和安全性。對(duì)數(shù)據(jù)修改、刪除等系統(tǒng)會(huì)給出相應(yīng)的提示和警告。本系統(tǒng)面向初級(jí)用戶,即使用戶不懂計(jì)算機(jī)專門知識(shí),只要按照提示操作,都能方便順利完成。</p><p><b> 參 考 文 獻(xiàn)</b></p><p> [1] 薩師煊,王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論(第三版)[M]. 北京:高等教育出版社,2000</p>
56、;<p> [2] 王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論(第四版)學(xué)習(xí)指導(dǎo)與習(xí)題解析[M]. 北京:高等教育出版社,2008</p><p> [3] 邵順增,李琳.C#程序設(shè)計(jì)—Windows項(xiàng)目開(kāi)發(fā)[M].北京:清華大學(xué)出版社,2008</p><p><b> 附 錄</b></p><p><b> 關(guān)鍵技術(shù)(源碼)&
57、lt;/b></p><p> 1、Tree Control:</p><p> (1)初始化動(dòng)態(tài)查找數(shù)據(jù)庫(kù)更新Tree</p><p> //初始化樹(shù)形-系(學(xué)院)-專業(yè)-班 </p><p> _RecordsetPtr pT_set1,pT_set2,pT_set3;</p><p> //
58、TV_INSERTSTRUCT TreeCtrl; //定義存放樹(shù)的結(jié)構(gòu) 這里想用作存第幾層</p><p> CTreeCtrl *ptree = (CTreeCtrl*)GetDlgItem(IDC_TREE_class);</p><p> ptree->SetImageList(&pFrame->m_ImageList,LVSIL_NORMAL);<
59、/p><p> HTREEITEM hroot1 = ptree->InsertItem("廣工全部學(xué)院",0,1); //設(shè)0為層數(shù)ID </p><p> //HTREEITEM hroot1 = ptree->InsertItem(TVIF_TEXT,_T("廣工全部學(xué)院"), 1, 2, 3, 4, 5, NULL, NULL
60、);</p><p> HTREEITEM hroot2,hroot3; </p><p> CString Nostr,str;</p><p> CString szSQL = "SELECT * FROM 系別信息"; </p><p> _variant_t vDno,vDname,vSno,vSn
61、ame,vCno,vCname;</p><p> pT_set1.CreateInstance(__uuidof( Recordset ));</p><p> pT_set2.CreateInstance(__uuidof( Recordset ));</p><p> pT_set3.CreateInstance(__uuidof( Recordset
62、));</p><p> pT_set1->Open((LPCSTR)szSQL,RS_PARAM); </p><p> while(!pT_set1->adoEOF)</p><p><b> { </b></p><p> vDno=pT_set1->GetCollect(&quo
63、t;系別代碼"); //第一列的值,也可寫(xiě)成vSno=p_set->GetCollect("學(xué)號(hào)");</p><p> vDname=pT_set1->GetCollect("系名");</p><p> Nostr=(BSTR)vDno.pbstrVal;</p><p> str=(BSTR
64、)vDname.pbstrVal; //AfxMessageBox(aa);</p><p> hroot2=ptree->InsertItem(str,0,1,hroot1); //插入學(xué)院</p><p> ///----------->> 專業(yè)</p><p> szSQL="SELECT * FROM 專業(yè)信息,
65、系別信息 where 專業(yè)信息.所屬系別 = 系別信息.系別代碼 AND 系別代碼 = '" + Nostr + "'";</p><p> pT_set2->Open((LPCSTR)szSQL,RS_PARAM); </p><p> while(!pT_set2->adoEOF)</p><p>&
66、lt;b> { </b></p><p> vSno=pT_set2->GetCollect("專業(yè)代碼"); </p><p> vSname=pT_set2->GetCollect("專業(yè)名稱");</p><p> Nostr=(BSTR)vSno.pbstrVal;</
67、p><p> str=(BSTR)vSname.pbstrVal; //AfxMessageBox(aa);</p><p> hroot3=ptree->InsertItem(str,0,1,hroot2); //插入專業(yè)</p><p> //---->>>> 班</p><p> szSQL=&q
68、uot;SELECT * FROM 班級(jí)信息,專業(yè)信息 where 班級(jí)信息.所屬專業(yè) = 專業(yè)信息.專業(yè)代碼 AND 專業(yè)代碼 = '" + Nostr + "'";</p><p> pT_set3->Open((LPCSTR)szSQL,RS_PARAM); </p><p> while(!pT_set3->adoEOF
69、)</p><p><b> { </b></p><p> vCno=pT_set3->GetCollect("班級(jí)代碼"); </p><p> vCname=pT_set3->GetCollect("班級(jí)名稱");</p><p> Nostr=(B
70、STR)vCno.pbstrVal;</p><p> str=(BSTR)vCname.pbstrVal; //AfxMessageBox(aa);</p><p> ptree->InsertItem(str,0,1,hroot3); //插入班級(jí) </p><p> pT_set3->MoveNext();</p>
71、<p><b> }</b></p><p> pT_set3->Close();</p><p> pT_set2->MoveNext();</p><p><b> }</b></p><p> pT_set2->Close();</p>&l
72、t;p> pT_set1->MoveNext();</p><p><b> }</b></p><p> pT_set1->Close(); </p><p> ?。?)點(diǎn)擊樹(shù)動(dòng)態(tài)更新ComobList控件</p><p> (太長(zhǎng)了,這里只列出一部分代碼)</p><p
73、> szSQL = "SELECT * FROM 學(xué)生基本信息";</p><p> CTreeCtrl *ptree = (CTreeCtrl*)GetDlgItem(IDC_TREE_class);</p><p> HTREEITEM hitem = ptree->GetSelectedItem();</p><p>&l
74、t;b> //取第幾層</b></p><p> HTREEITEM hN=hitem; int n=0;</p><p> while(hN && hN!=ptree->GetRootItem())</p><p><b> { </b></p><p><b&g
75、t; n++;</b></p><p> hN=ptree->GetParentItem(hN);</p><p><b> }</b></p><p> if ((m_nFlag==2) || (m_nFlag==3) || (m_nFlag==4)) *b_Np=n;//返回給補(bǔ)考重修用</p>&l
76、t;p> if( hitem && hitem != ptree->GetRootItem())</p><p><b> {</b></p><p> CString szPar,szGra;HTREEITEM hpar,hGra;</p><p> szSQL="SELECT 學(xué)生基本信息.*
77、FROM 學(xué)生基本信息,系別信息,專業(yè)信息,班級(jí)信息 where 系別信息.系別代碼 = 專業(yè)信息.所屬系別 </p><p> and 專業(yè)信息.專業(yè)代碼 = 班級(jí)信息.所屬專業(yè) and 班級(jí)信息.班級(jí)代碼 = 學(xué)生基本信息.所屬班級(jí)";</p><p> CString szSDS = ptree->GetItemText(hitem);</p>
78、<p> if ((m_nFlag ==2) || (m_nFlag ==3) || (m_nFlag==4)) *b_School = szSDS;</p><p> switch (n)</p><p><b> {</b></p><p> case 1: //第一層 選中院系</p><
79、;p> szSQL+=" and 系別信息.系名='" + szSDS + "'";</p><p><b> break;</b></p><p><b> case 2:</b></p><p> hpar=ptree->GetParentIt
80、em(hitem); //取回父親結(jié)點(diǎn)值</p><p> szPar=ptree->GetItemText(hpar); //系</p><p> szSQL+=" and 系別信息.系名='" + szPar + "' and 專業(yè)信息.專業(yè)名稱='" + szSDS + "'&quo
81、t;;</p><p> break; //選中專業(yè)</p><p><b> case 3:</b></p><p> hpar=ptree->GetParentItem(hitem); //取回父親結(jié)點(diǎn)值</p><p> szPar=ptree->GetItemText(hpar); /
82、/系</p><p> hGra=ptree->GetParentItem(hpar); //取回"祖"結(jié)點(diǎn)值</p><p> szGra=ptree->GetItemText(hGra); //專業(yè)</p><p> szSQL+=" and 系別信息.系名='" + szGra +
83、 "' and 專業(yè)信息.專業(yè)名稱='" + szPar + "' and 班級(jí)信息.班級(jí)名稱 ='" + szSDS + "'";</p><p><b> break;</b></p><p><b> }</b></p>&
84、lt;p> //刷新取得學(xué)生信息</p><p> pCombo_Sno->ResetContent(); //刪除原有的</p><p> pCombo_Sname->ResetContent();</p><p> CString Nostr,str; </p><p> _variant_t vDno
85、,vDname;//vSno,vSname,vCno,vCname;</p><p> _RecordsetPtr pT_set1;</p><p> pCombo_Sno = (CComboBox*) GetDlgItem(IDC_CBO_Sno);</p><p> pCombo_Sname = (CComboBox*) GetDlgItem(IDC_CB
86、O_Sname); </p><p> pT_set1.CreateInstance(__uuidof( Recordset ));</p><p> pT_set1->Open((LPCSTR)szSQL,RS_PARAM);</p><p> 以下略。。。。。。。。。。。。。</p><p> 2、成績(jī)查詢:(關(guān)鍵是生成
87、查詢字符串)</p><p> if (m_CHECK.GetCheck()) //是否模糊查找</p><p><b> {</b></p><p> if ((Ctext1!="請(qǐng)選擇...") && (!text1.IsEmpty()))</p><p><b>
88、; { </b></p><p> sql1.Format(" %s like '%s",Ctext1,text1);</p><p> sql1+="%'";</p><p><b> }</b></p><p> if ((Ctext2!
89、="請(qǐng)選擇...") && (!text2.IsEmpty())) </p><p><b> { </b></p><p> sql2.Format(" %s %s like '%s",AR2,Ctext2,text2);</p><p> sql2+="%&
90、#39;";</p><p><b> }</b></p><p> if ((Ctext3!="請(qǐng)選擇...") && (!text3.IsEmpty())) </p><p><b> { </b></p><p> sql3.Form
91、at(" %s %s like '%s",AR3,Ctext3,text3);</p><p> sql3+="%'";</p><p><b> }</b></p><p> if ((Ctext4!="請(qǐng)選擇...") && (!text4.I
92、sEmpty())) </p><p><b> {</b></p><p> sql4.Format(" %s %s like '%s",AR4,Ctext4,text4);</p><p> sql4+="%'";</p><p><b>
93、 }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> if ((Ctext1!="請(qǐng)選擇...") && (!text1.I
94、sEmpty()))</p><p> sql1.Format(" %s = '%s'",Ctext1,text1);</p><p> if ((Ctext2!="請(qǐng)選擇...") && (!text2.IsEmpty())) </p><p> sql2.Format("
95、 %s %s = '%s'",AR2,Ctext2,text2);</p><p> if ((Ctext3!="請(qǐng)選擇...") && (!text3.IsEmpty())) </p><p> sql3.Format(" %s %s = '%s'",AR3,Ctext3,text3
96、);</p><p> if ((Ctext4!="請(qǐng)選擇...") && (!text4.IsEmpty())) </p><p> sql4.Format(" %s %s = '%s'",AR4,Ctext4,text4);</p><p><b> }</b>
97、;</p><p> szSQLlast.Format("AND (%s%s%s%s)",sql1,sql2,sql3,sql4);</p><p> if (sql1.IsEmpty() && ( sql2.IsEmpty() || sql3.IsEmpty() || sql4.IsEmpty())) </p><p>
98、//把多出來(lái)的AND OR刪除</p><p><b> {</b></p><p> int fc=szSQLlast.Find("AND",4);</p><p> if (fc!=-1) //刪除AND</p><p> szSQLlast.Delete(fc,3);</p>
99、;<p><b> else </b></p><p><b> {</b></p><p> fc=szSQLlast.Find("OR",4); </p><p> szSQLlast.Delete(fc,2);</p><p><b>
100、; }</b></p><p><b> }</b></p><p> if (sql1.IsEmpty() && sql2.IsEmpty() && sql3.IsEmpty() && sql4.IsEmpty())</p><p> szSQLlast.Empty();&l
101、t;/p><p> szSQL+=szSQLlast;</p><p> strcpy(szSQLt,(LPSTR)(LPCSTR)szSQL);</p><p> 3、排序:(主要是在Clist控件點(diǎn)列名進(jìn)行排序)</p><p> NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;<
102、/p><p> // TODO: Add your control notification handler code here</p><p> // pNMListView->iSubItem; //返回點(diǎn)中的第幾列</p><p> CString szSQL;</p><p> if( pNMListView->iS
103、ubItem == m_nSortedCol )</p><p> m_fAsc = !m_fAsc;</p><p><b> else</b></p><p><b> {</b></p><p> m_fAsc = TRUE;</p><p> m_nSort
104、edCol = pNMListView->iSubItem;</p><p><b> }</b></p><p> switch (m_nSortedCol)</p><p><b> {</b></p><p> case 0: //按班級(jí)排</p><p&g
105、t; if (m_fAsc)</p><p> szSQL = curSQL + " ORDER BY 班級(jí)信息.班級(jí)名稱";</p><p><b> else </b></p><p> szSQL = curSQL + " ORDER BY 班級(jí)信息.班級(jí)名稱 DESC";</p&g
106、t;<p><b> break;</b></p><p><b> case 1:</b></p><p> if (m_fAsc)</p><p> szSQL = curSQL + " ORDER BY 學(xué)生基本信息.學(xué)號(hào)";</p><p><
107、;b> else </b></p><p> szSQL = curSQL + " ORDER BY 學(xué)生基本信息.學(xué)號(hào) DESC";</p><p><b> break;</b></p><p><b> case 2:</b></p><p>
108、 if (m_fAsc)</p><p> szSQL = curSQL + " ORDER BY 學(xué)生基本信息.姓名";</p><p><b> else </b></p><p> szSQL = curSQL + " ORDER BY 學(xué)生基本信息.姓名 DESC";</p>
109、<p><b> break;</b></p><p><b> case 3:</b></p><p> if (m_fAsc)</p><p> szSQL = curSQL + " ORDER BY 課程信息.課程名稱";</p><p><b
110、> else </b></p><p> szSQL = curSQL + " ORDER BY 課程信息.課程名稱 DESC";</p><p><b> break;</b></p><p><b> case 4:</b></p><p> i
111、f (m_fAsc)</p><p> szSQL = curSQL + " ORDER BY 考試類型代碼.考試名稱";</p><p><b> else </b></p><p> szSQL = curSQL + " ORDER BY 考試類型代碼.考試名稱 DESC";</p&g
112、t;<p><b> break;</b></p><p><b> case 5:</b></p><p> if (m_fAsc)</p><p> szSQL = curSQL + " ORDER BY 成績(jī)表.成績(jī)";</p><p><b&
113、gt; else </b></p><p> szSQL = curSQL + " ORDER BY 成績(jī)表.成績(jī) DESC";</p><p><b> break;</b></p><p><b> case 6:</b></p><p> if (m
114、_fAsc)</p><p> szSQL = curSQL + " ORDER BY 專業(yè)信息.專業(yè)名稱";</p><p><b> else </b></p><p> szSQL = curSQL + " ORDER BY 專業(yè)信息.專業(yè)名稱 DESC";</p><
115、p><b> break;</b></p><p><b> case 7:</b></p><p> if (m_fAsc)</p><p> szSQL = curSQL + " ORDER BY 系別信息.系名";</p><p><b> el
116、se </b></p><p> szSQL = curSQL + " ORDER BY 系別信息.系名 DESC";</p><p><b> break;</b></p><p><b> default:</b></p><p> szSQL = cu
117、rSQL;</p><p><b> break;</b></p><p><b> }</b></p><p> RefreshGradeList(szSQL); //刷新List控件</p><p><b> 4、數(shù)據(jù)庫(kù)備份:</b></p><
118、;p> int fc = pFrame->ConSQL.Find(“SQL Server”,0);</p><p> if (fc!=-1) //當(dāng)前連接為SQL Server</p><p><b> {</b></p><p> Cstring szSQL;</p><p> CfileDia
119、log dlgFileOpen(FALSE);</p><p> if(dlgFileOpen.DoModal()==IDOK) </p><p> szSQL.Format(“BACKUP DATABASE %s to DISK = ‘%s’”,DatabaseName,(Cstring)dlgFileOpen.m_ofn.lpstrFile);</p><p&g
120、t;<b> else </b></p><p><b> {</b></p><p> MessageBox(“備份文件名出錯(cuò)!”,NULL,MB_ICONSTOP);</p><p><b> return;</b></p><p><b> }<
121、/b></p><p><b> try {</b></p><p> pFrame->ExecSQL(szSQL);</p><p> MessageBox(“備份成功!”,NULL,MB_ICONINFORMATION);</p><p><b> }</b></p&g
122、t;<p> catch (_com_error e)</p><p><b> {</b></p><p> MessageBox(“備份數(shù)據(jù)庫(kù)失敗!”,NULL,MB_ICONSTOP);</p><p><b> }</b></p><p><b> }&l
123、t;/b></p><p> else //當(dāng)前為access連接</p><p><b> {</b></p><p> Cstring Dpath;</p><p> CfileDialog dlgFileOpen(FALSE);</p><p> if(dlgFileOpe
124、n.DoModal()==IDOK) </p><p><b> {</b></p><p> Dpath = (Cstring)dlgFileOpen.m_ofn.lpstrFile;</p><p> Cstring D_Right = Dpath.Right(3);</p><p> D_Right.Mak
125、eLower();</p><p> if (D_Right!=”mdb”)</p><p> Dpath.Insert(Dpath.GetLength(),”.mdb”);</p><p><b> }</b></p><p><b> else </b></p>&l
126、t;p><b> {</b></p><p> MessageBox(“備份文件名出錯(cuò)!”,NULL,MB_ICONSTOP);</p><p><b> return;</b></p><p><b> }</b></p><p> //AfxMessageB
127、ox(Dpath);</p><p> Cstring ConSQL,ConAccPath;</p><p> ConSQL = pFrame->ConSQL;</p><p> int fc = ConSQL.Find(“Source=”,0);</p><p> ConAccPath = ConSQL.Mid(fc+7,Co
128、nSQL.GetLength()-fc-7);</p><p> //ConAccPath = “H:\\dos.chm”;</p><p> if (pFrame->m_pConnection->State)</p><p> pFrame->m_pConnection->Close();</p><p>
129、Cfile SF,DF;</p><p> CfileException ex;</p><p> if (!SF.Open(ConAccPath,</p><p> Cfile::modeRead | Cfile::shareDenyWrite, &ex))</p><p><b> {</b>&l
130、t;/p><p> SF.Close();</p><p> MessageBox(“打開(kāi)數(shù)據(jù)文件失敗!”);</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b><
131、;/p><p><b> {</b></p><p> if (!DF.Open(Dpath, Cfile::modeWrite |</p><p> Cfile::shareExclusive | Cfile::modeCreate, &ex))</p><p><b> {</b>&
132、lt;/p><p> MessageBox(“打開(kāi)備份文件失敗!”);</p><p> DF.Close();</p><p><b> return;</b></p><p><b> }</b></p><p> BYTE buffer[4096];</p&
133、gt;<p> DWORD dwRead;</p><p> // Read in 4096-byte blocks,</p><p> // remember how many bytes were actually read,</p><p> // and try to write that many out. This loop end
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【課程設(shè)計(jì)論文】基于vc 和ms sql server的學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 【vc++課程設(shè)計(jì)】學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- sql數(shù)據(jù)庫(kù)課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)
- 課程設(shè)計(jì)--《學(xué)生成績(jī)管理系統(tǒng)》的設(shè)計(jì)與實(shí)現(xiàn)
- 課程設(shè)計(jì)--- 學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)據(jù)庫(kù)原理課程設(shè)計(jì)--基于vc的學(xué)生成績(jī)管理系統(tǒng)
- 課程設(shè)計(jì)---基于java的學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)課程設(shè)計(jì)報(bào)告
- 基于c#、sql的學(xué)生成績(jī)管理系統(tǒng)項(xiàng)目設(shè)計(jì)與實(shí)現(xiàn)
- sql學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)數(shù)據(jù)庫(kù)
- sql數(shù)據(jù)庫(kù)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)說(shuō)明
- 課程設(shè)計(jì)--基于java的學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng)
- 課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論