2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告</b></p><p><b>  1.功能需求</b></p><p>  本報(bào)告主要介紹學(xué)生成績(jī)管理系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì),從需求分析到數(shù)據(jù)庫的運(yùn)行與維護(hù)都進(jìn)行詳細(xì)的敘述。該系統(tǒng)是利用SQL開發(fā)出來的。通過SQL建立學(xué)生成績(jī)管理系統(tǒng),大大方便和簡(jiǎn)化了數(shù)據(jù)的查詢和處理,管理員可以通過SQL語言對(duì)表內(nèi)數(shù)

2、據(jù)進(jìn)行添加,刪除,修改,查詢等操作,還可以建立多用戶,對(duì)其使用權(quán)限進(jìn)行分配和回收。</p><p>  報(bào)告分為4部分,第一部分是課題簡(jiǎn)介及設(shè)計(jì)的內(nèi)容與目的,需求分析,此階段是數(shù)據(jù)庫設(shè)計(jì)的起點(diǎn)。第二部分是概念設(shè)計(jì),邏輯結(jié)構(gòu)設(shè)計(jì),它是將需求分析的用戶需求抽象為信息結(jié)構(gòu),并將概念模型轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型。第三部分是數(shù)據(jù)庫的實(shí)施與運(yùn)行,它包括數(shù)據(jù)的載入及數(shù)據(jù)困的運(yùn)行和數(shù)據(jù)庫和數(shù)據(jù)表的創(chuàng)建(代碼)。第四部分

3、是課程設(shè)計(jì)的總結(jié)。</p><p>  1.1開發(fā)環(huán)境及開發(fā)語言</p><p>  本次課程設(shè)計(jì)是以學(xué)生信息管理系統(tǒng)為模擬模型,運(yùn)用C++編程語言結(jié)合SQL數(shù)據(jù)庫所開發(fā)系統(tǒng)。開發(fā)平臺(tái)為VC6.0和SQL2008。</p><p><b>  1.2 設(shè)計(jì)目的</b></p><p>  隨著學(xué)生數(shù)量的日益增多,學(xué)校對(duì)學(xué)

4、生的管理要求也越來越高,為了使學(xué)生成績(jī)的管理更加系統(tǒng)化,數(shù)字化,因此我們?cè)O(shè)計(jì)了該學(xué)生信息管理系統(tǒng)。</p><p><b>  1.3 設(shè)計(jì)內(nèi)容</b></p><p>  運(yùn)用基于E-R模型的數(shù)據(jù)庫設(shè)計(jì)方法和關(guān)系規(guī)范化理論做指導(dǎo)完成從系統(tǒng)的分析到設(shè)計(jì)直至系統(tǒng)的最終實(shí)現(xiàn),開發(fā)學(xué)生成績(jī)管理系統(tǒng),完成學(xué)生成績(jī)管理系統(tǒng)的全部功能。首先做好需求分析,并完成數(shù)據(jù)流圖,其次做概念

5、分析,利用實(shí)體聯(lián)系的方法將需求分析的用戶需求抽象為信息結(jié)構(gòu),得到E-R圖,然后就是邏輯結(jié)構(gòu)設(shè)計(jì),將E-R圖轉(zhuǎn)換為計(jì)算機(jī)系統(tǒng)所支持的邏輯模型。最后利用SQL完成具體的實(shí)例。</p><p><b>  1.4.需求分析</b></p><p>  1、    問題的提出:為了高效率的完成學(xué)生成績(jī)的管理,決定開發(fā)學(xué)生成績(jī)管理系統(tǒng)。&

6、lt;/p><p>  2、 需完成的功能:</p><p>  (1)    能提供管理員及普通用戶(除刪除和修改)錄入、注銷、顯示當(dāng)前用戶、修改、刪除、查詢、輸出,學(xué)生的檔案信息,這些信息包括學(xué)生的成績(jī)、課程、個(gè)人信息等。</p><p>  觸發(fā)器,索引,存儲(chǔ)過程的建立及使用。</p><p>&l

7、t;b>  2. 概念設(shè)計(jì)</b></p><p><b>  (1)(E-R圖)</b></p><p><b>  (2)物理結(jié)構(gòu)設(shè)計(jì)</b></p><p><b>  Student</b></p><p><b>  Cource <

8、/b></p><p><b>  User</b></p><p><b>  (3)分析關(guān)系模式</b></p><p>  對(duì)于關(guān)系模式Student(Sno|Sname|Sex|Age|Address|Grade|class|Tel|Politic|Cuture )假定姓名也具有唯一性,那么Student&l

9、t;/p><p>  就有兩個(gè)碼,這兩個(gè)碼都由單個(gè)屬性組成,彼此不相交。其它屬性不存在對(duì)碼的傳遞依賴與部分依賴,又因?yàn)镾tudent中除學(xué)號(hào)、姓名外沒有其它的因素,所以Student屬于BCNF。對(duì)于關(guān)系模式Cource(|Sno|Cno|Score|)有兩個(gè)碼,這兩個(gè)碼都由單個(gè)屬性組成,彼此不相交,其它屬性不存在對(duì)碼的傳遞依賴與部分依賴,又因?yàn)槌煽?jī)中除學(xué)號(hào)、課程號(hào)外沒有其它的決定因素,所以成績(jī)屬于BCNF。對(duì)于關(guān)系

10、模式User(|UserName|UserType|UserPswd|)中,它只有一個(gè)碼,這里沒有任何屬性對(duì)課程號(hào)部分依賴或傳遞依賴,同時(shí)用戶名是唯一的決定因素,所以課程屬于BCNF。它和學(xué)生信息和成績(jī)沒有直接的聯(lián)系,因此它是一張單獨(dú)的表。</p><p><b>  3.SQL語句</b></p><p><b>  3.1 創(chuàng)建表</b>&l

11、t;/p><p><b>  學(xué)生表</b></p><p>  create table Student</p><p><b>  ( </b></p><p>  Sno nchar(10) primary key,</p><p>  Sname nchar(10) n

12、ot null</p><p>  Sex nchar(10) not null</p><p>  Age numeric(10)</p><p>  Address nchar(10)</p><p>  Class nchar(10) not null</p><p>  Grade nchar(10)

13、not null</p><p>  Tel nchar(10) not null</p><p>  Politicnchar(10)not null</p><p>  Cuturenchar(10) not null</p><p><b>  )</b></p><p><

14、;b>  成績(jī)表</b></p><p>  create table Exam</p><p><b>  ( </b></p><p>  Sno nchar(10) primary key //主鍵約束</p><p>  Cno nchar(10) Not null</p>&

15、lt;p>  Score nchar(10)</p><p>  foreign key (Cno) references Course //外鍵約束</p><p>  check(Score>=0) //完整性約束</p><p><b>  )</b></p><p><b>  用戶表&

16、lt;/b></p><p>  create table Teacher</p><p><b>  ( </b></p><p>  Username nchar(10) not null</p><p>  UserPswd nchar(10) not null</p><p>

17、;  UserType nchar(10) not null</p><p><b>  )</b></p><p><b>  3.2數(shù)據(jù)初始化</b></p><p>  將學(xué)生類別加入表Student中</p><p>  insert into Student</p>&l

18、t;p>  values ('000’,’張明’,’M’,’’,’哈爾濱’,’軟件一班’,’大一’,’15880000’,</p><p>  ’無’,’群眾’) </p><p>  insert into Student</p><p>  values('001’,’李三’,’M’,’’,’長(zhǎng)春’,’軟件二班’,’大三’ ’1523300

19、0’.’無’,</p><p><b>  ’群眾’) </b></p><p>  insert into Student</p><p>  values('002’,’王強(qiáng)’,’M’,’’,’哈爾濱’,’軟件二班’,’大二’ ’15850040’.’無’,</p><p><b>  ’群眾’)

20、</b></p><p>  insert into Student</p><p>  values('003’,’張雪’,’F’,’’,’哈爾濱’,’軟件一班’,’大一’ ’156809802’.’無’,</p><p><b>  ’群眾’) </b></p><p>  insert into

21、 Student</p><p>  values('004’,’李力’,’M’,’’,’大連’,’軟件一班’,’大三’ ’15980000’.’無’,</p><p><b>  ’群眾’) </b></p><p>  insert into Student</p><p>  values('005

22、’,’張小’,’M’,’’,’哈爾濱’,’軟件三班’,’大一’ ’15884444’.’無’,</p><p><b>  ’群眾’) </b></p><p>  將考試類別加入Cource表中 </p><p>  insert into Cource </p><p>  values ('000'

23、;,'A-123','85' )</p><p>  insert into Cource </p><p>  values('001','B-123','77' )</p><p>  insert into Cource </p><p>  valu

24、es('002','C-123','91' )</p><p>  insert into Cource </p><p>  values('003','A-123','80' )</p><p>  insert into Cource</p><

25、p>  values('004','B-123','75' )</p><p>  insert into Cource </p><p>  values('005','A-123','89' )</p><p>  將課程加入U(xiǎn)ser表中</p>

26、<p>  insert into User </p><p>  values('阿生','921','0')</p><p>  insert into User</p><p>  values('光光','111','1')</p>&l

27、t;p>  insert into User</p><p>  values(' 甜甜','111','1')</p><p><b>  索引的使用</b></p><p>  use student</p><p>  create unique nonclus

28、tered index index_sno on Student</p><p><b>  (sno )</b></p><p><b>  觸發(fā)器</b></p><p>  create trigger reminder</p><p>  on student</p><

29、p>  after insert,update</p><p>  as raiserror('你在插入或修改學(xué)生的數(shù)據(jù)',16,10)</p><p>  drop trigger ‘reminder’</p><p>  select * </p><p>

30、  from Student</p><p>  where sno=002</p><p><b>  存儲(chǔ)過程</b></p><p>  create procedure usp_getStudent</p><p>  @name nchar(40)</p><p><b>  

31、as </b></p><p>  select * from Student where Sname=@name</p><p><b>  執(zhí)行存儲(chǔ)過程</b></p><p>  execute usp_getStudent '張明'</p><p>  4、SQL與C++結(jié)合(可視化

32、的界面管理)</p><p>  1、準(zhǔn)備創(chuàng)建好的數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)源</p><p>  在創(chuàng)建數(shù)據(jù)庫的應(yīng)用程序之前,必須有一個(gè)可供應(yīng)用程序使用的數(shù)據(jù)庫。</p><p>  2、(1)建立了數(shù)據(jù)庫之后,必須配備 ODBC 數(shù)據(jù)源,使其指向剛剛建立的數(shù)據(jù)庫。選擇“控制面板”中“管理工具”下的“數(shù)據(jù)源(ODBC)”項(xiàng)。雙擊 ODBC 圖標(biāo),彈出“ODBC 數(shù)據(jù)源管理器

33、”對(duì)話框。在這里用戶可以設(shè)置 ODBC數(shù)據(jù)源的一些信息,其中的“用戶 DSN”選項(xiàng)卡是用戶定義的在本地計(jì)算機(jī)上使用的數(shù)據(jù)源名(DSN),</p><p>  (2) 為新的數(shù)據(jù)源選擇數(shù)據(jù)庫驅(qū)動(dòng)程序。由于使用的是 Access 數(shù)據(jù)庫,所以選擇 Driver </p><p>  do Microsoft Access(*.mdb)選項(xiàng),并單擊“完成”按鈕。 </p><

34、;p>  “ODBC Microsoft Access 安裝”對(duì)話框中,為該數(shù)據(jù)源起一</p><p>  個(gè)簡(jiǎn)短的名稱。本例為 TeacherDB,可以在下一個(gè)編輯框中輸入對(duì)該數(shù)據(jù)庫的說明。</p><p>  (4) 指定數(shù)據(jù)庫的位置。單擊“選擇”按鈕,然后指定所創(chuàng)建的 Access 數(shù)據(jù)庫。 </p><p>  (5) 單擊“確定”按鈕,剛才創(chuàng)

35、建的用戶數(shù)據(jù)源被添加在“用戶 DSN”選項(xiàng)卡的“用</p><p>  戶數(shù)據(jù)源”列表框中。</p><p>  3. 創(chuàng)建 MFC AppWizard 應(yīng)用程序 </p><p>  用 MFC AppWizard(exe)創(chuàng)建一個(gè)對(duì)話框應(yīng)用程序 TeacherMIS。為了使程序能支持?jǐn)?shù)據(jù)庫對(duì)象,在頭文件 stdafx.h 中加入#include<afxd

36、b.h>。 </p><p>  4. 用 ClassWizard 為數(shù)據(jù)庫中的每一個(gè)表映射一個(gè)記錄集類 </p><p>  首先為表 Users 映射記錄集類 CUserSet。打開項(xiàng)目工作區(qū)的 ClassView 選項(xiàng)卡,</p><p>  選擇項(xiàng)目名稱,右擊,彈出快捷菜單,選擇 New Class 命令彈出的 New Class對(duì)話框,輸入記錄集類

37、名稱 CUserSet,并為其選擇基類 CRecordset,單擊 OK 按鈕,彈出的Database Options 對(duì)話框,為記錄集類選擇 ODBC 數(shù)據(jù)源 TeacherDB,單擊 OK 按鈕,彈出Select Database Tables 對(duì)話框,為記錄集類選擇數(shù)據(jù)庫表 Users,單擊OK 按鈕,即完成記錄集類 CUserSet 的定義。</p><p>  5、根據(jù)類屬性之間的關(guān)系添加如下類:<

38、;/p><p>  6、C++中實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的管理(及增加、刪除、修改、查找、退出)</p><p> ?。?)增加:void CScore::OnBUTTONAdd()</p><p>  strSQL.Format("insert into Score VALUES('%s','%s','%s')&q

39、uot;,m_sno, m_cno,m_score);</p><p>  DoExecuteSQL(strSQL);</p><p> ?。?)刪除:CScore::OnBUTTONDel()</p><p>  strSQL.Format("delete from Score where SNO='%s'and CNO=

40、9;%s' ",m_sno,m_cno); </p><p>  DoExecuteSQL(strSQL);</p><p> ?。?)修改:void CScore::OnBUTTONEdit()</p><p>  strSQL.Format("Update Score SET CNO='%s',SCORE='%

41、s' where sno='%s'and cno='%s' and score='%s' ", m_cno,m_score,save_sno,save_cno,save_score ); </p><p>  DoExecuteSQL(strSQL);</p><p> ?。?)查找:void CSore::OnBUTTON

42、Find()</p><p>  strSQL.Format("select * from teachers where %s ='%s'",strField, </p><p>  m_FieldValue);</p><p>  (5)退出:void CSore::OnCancel()</p><

43、;p>  CDialog::OnCancel();</p><p>  (6)顯示當(dāng)前用戶:</p><p>  m_corr_user=login.GetUserNm();</p><p> ?。?)注銷:void CTeacherMISDlg::OnLogout()</p><p>  m_score.Close();</p&

44、gt;<p>  CDialog::OnCancel();</p><p>  CLoginDlg login;</p><p>  login.SetUser();</p><p>  login.DoModal();</p><p><b>  7、運(yùn)行截圖</b></p><p&g

45、t;<b> ?。?)用戶登錄:</b></p><p> ?。?)學(xué)生信息管理系統(tǒng):</p><p><b>  3、成績(jī)管理系統(tǒng):</b></p><p>  5、設(shè)計(jì)中遇到的問題及心得</p><p>  在設(shè)計(jì)中遇到的幾個(gè)問題:</p><p>  關(guān)系圖的連接:當(dāng)數(shù)

46、據(jù)庫創(chuàng)建的時(shí)候沒把他們的關(guān)系圖連接起來,導(dǎo)致在投影時(shí)出問題,查詢的時(shí)候也出現(xiàn)了錯(cuò)誤</p><p>  刪除時(shí)錯(cuò)誤:在刪除操作的時(shí)候,由于沒考慮表之間的關(guān)系,和刪除次序。導(dǎo)致了一張表的數(shù)據(jù)元素刪除了,而另外一張的任然存在。</p><p>  對(duì)同一學(xué)生插入同一課程號(hào):剛開始的思想是使用not in進(jìn)行判斷該記錄是否存在,再插入我用的下面的這句語句strSQL.Format("i

47、nsert into SC VALUES('%s','%s','%s') where '%s' not in(select cno from SC where '%s'=SNO)" , m_sno, m_cno,m_score, m_cno,m_sno);結(jié)果未能實(shí)現(xiàn)禁止對(duì)對(duì)統(tǒng)一學(xué)生插入統(tǒng)一課程號(hào)。幾番周折后還是沒能看出問題的所在。一是我便

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論