學(xué)生信息管理課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  一、設(shè)計(jì)目的</b></p><p>  《數(shù)據(jù)庫(kù)原理及應(yīng)用》是一門(mén)實(shí)踐性很強(qiáng)的課程,為了學(xué)好這門(mén)課程,必 須在掌握理論知識(shí)的同時(shí),加強(qiáng)上機(jī)實(shí)踐。</p><p>  本課程設(shè)計(jì)的主要目的在于:</p><p>  1、加深對(duì)數(shù)據(jù)庫(kù)基礎(chǔ)理論和基本知識(shí)的理解,培養(yǎng)學(xué)生運(yùn)用所學(xué)理論知 識(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行組織、管理和使用的能

2、力。 </p><p>  2、掌握數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的整個(gè)設(shè)計(jì)過(guò)程(包括需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)與物理設(shè)計(jì)與實(shí)施),提高運(yùn)用數(shù)據(jù)庫(kù)解決實(shí)際問(wèn)題的能力。</p><p><b>  二、編程環(huán)境</b></p><p>  數(shù)據(jù)庫(kù):Oracle</p><p><b>  語(yǔ)言:c#</b>

3、</p><p><b>  需求分析</b></p><p>  該系統(tǒng)至少應(yīng)包含如下功能:</p><p><b>  1、身份驗(yàn)證模塊</b></p><p>  進(jìn)入系統(tǒng)時(shí)首先進(jìn)行身份驗(yàn)證。只有用戶名和密碼正確才能進(jìn)入系統(tǒng)。</p><p><b>  2、

4、用戶管理</b></p><p>  對(duì)使用本系統(tǒng)的用戶進(jìn)行添加、查詢、修改密碼、刪除等操作。</p><p><b>  3、學(xué)生信息錄入</b></p><p>  本系統(tǒng)能夠錄入學(xué)生的學(xué)號(hào)、姓名、性別、班級(jí)等信息。</p><p><b>  4、學(xué)生成績(jī)查詢</b></p&

5、gt;<p>  可以根據(jù)學(xué)號(hào)、姓名、班級(jí)、學(xué)期等信息項(xiàng)中的一項(xiàng)或多項(xiàng)的組合,進(jìn)行模 糊查詢和精確查詢,從而高效地找到您想要的信息。</p><p><b>  5、學(xué)生成績(jī)更新</b></p><p>  可以根據(jù)學(xué)號(hào)、姓名等信息項(xiàng)中的一項(xiàng)進(jìn)行更新</p><p><b>  6、學(xué)生成績(jī)排序</b><

6、;/p><p>  可以按照學(xué)號(hào)、姓名、性別、班級(jí)、成績(jī)的升序/降序</p><p><b>  7、統(tǒng)計(jì)  </b></p><p>  可以按照課程、班級(jí)、專(zhuān)業(yè)等進(jìn)行統(tǒng)計(jì)。</p><p><b>  總體設(shè)計(jì)</b></p><p><b>  系統(tǒng)總體

7、結(jié)構(gòu)如下:</b></p><p><b>  五、數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p><b>  1、概念設(shè)計(jì)</b></p><p>  由需求分析的結(jié)果可知,本系統(tǒng)設(shè)計(jì)的實(shí)體包括:</p><p>  (1)學(xué)生基本信息:學(xué)號(hào),姓名,性別,班級(jí),學(xué)院。</p><

8、;p>  (2)課程基本信息: 課程名,課程號(hào)。 </p><p><b>  E—R圖:</b></p><p><b>  2.邏輯</b></p><p><b>  2.物理結(jié)構(gòu)設(shè)計(jì)</b></p><p>  2.1由系統(tǒng)E—R圖轉(zhuǎn)化而得到的關(guān)系模式如下:<

9、;/p><p> ?。?)學(xué)生(學(xué)號(hào),姓名,性別,班級(jí),學(xué)院),其主關(guān)鍵字為學(xué)號(hào);</p><p>  (2)課程(課程名,課程號(hào)),其中主關(guān)鍵字為課程號(hào);</p><p> ?。?)成績(jī)(課程號(hào),學(xué)號(hào),分?jǐn)?shù),學(xué)期)其中主關(guān)鍵字為學(xué)號(hào)和課程號(hào),可以與學(xué)生關(guān)系模式合并為:學(xué)生(學(xué)號(hào),姓名,性別,年齡,班級(jí),學(xué)院,成績(jī),學(xué)期,課程號(hào))。</p><p&g

10、t;  2.2 確定關(guān)系模型的存取方法</p><p>  在將概念模型轉(zhuǎn)換成物理模型之后,我們可以對(duì)物理模型進(jìn)行設(shè)計(jì),雙擊物理模型的 關(guān)系,可以對(duì)該關(guān)系的名稱、注釋等信息進(jìn)行查詢??蓪?duì)該關(guān)系的屬性列進(jìn)行設(shè)計(jì),可分別設(shè)置其名稱、碼、數(shù)據(jù)類(lèi)型以及主碼、是否為空等。在實(shí)際設(shè)計(jì)中最常用的存取方法是索引發(fā),使用索引可以大大減少數(shù)據(jù)的查詢時(shí)間,在建立索引時(shí)應(yīng)遵循:在 經(jīng)常需要搜索的列上建立索引;  在主關(guān)鍵字上建

11、立索引;在經(jīng)常用于連接的列上建 立索引,即在外鍵上建立索引;在經(jīng)常需要根據(jù)范圍進(jìn)行搜索的列上創(chuàng)建索引,因?yàn)?索引已經(jīng)排序,其指定的范圍是連續(xù)的等規(guī)則。才能充分利用索引的作用避免因索引引起的負(fù)面作用。</p><p>  2.3確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)</p><p>  確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)主要指確定數(shù)據(jù)的存放位置和存儲(chǔ)結(jié)構(gòu),包括確定關(guān)系、索引、日志、備份等的存儲(chǔ)安排及存儲(chǔ)結(jié)構(gòu),以及確定系統(tǒng)存

12、儲(chǔ)參數(shù)的配置。因?yàn)樵摮煽?jī)管理系統(tǒng)的數(shù)據(jù)量小,,所以我們只用把數(shù)據(jù)存儲(chǔ)在使用的電腦硬盤(pán)上,不用作更多的安排。</p><p><b>  2.4建表</b></p><p><b>  以DBA登錄數(shù)據(jù)庫(kù)</b></p><p>  SQL>CONNECT SYSTEM/123456:1521@demo</p&g

13、t;<p><b>  創(chuàng)建永久表空間</b></p><p>  CREATE TABLESPACE ts_perm</p><p>  DATAFILE 'C:\app\Administrator\oradata\demo\ts_perm_data.dbf' SIZE 10M </p><p>  AUTOE

14、XTEND ON</p><p>  EXTENT MANAGEMENT LOCAL AUTOALLOCATE;</p><p>  --默認(rèn)路徑在D:\app\Administrator\product\11.1.0\db_1\database下</p><p>  查看結(jié)果desc dba_tablespaces; </p><p> 

15、 select tablespace_name from dba_tablespaces</p><p>  創(chuàng)建臨時(shí)表空間ts_temp(也可以使用系統(tǒng)臨時(shí)表空間temp)</p><p>  CREATE TEMPORARY TABLESPACE ts_temp</p><p>  TEMPFILE 'c:\app\Administrator\orada

16、ta\demo\ts_temp_data.dbf' SIZE 50M AUTOEXTEND ON</p><p>  EXTENT MANAGEMENT LOCAL; </p><p>  --默認(rèn)路徑在D:\app\Administrator\product\11.1.0\db_1\database下</p><p>  得到.dbf、.ctl和

17、redo log文件.log</p><p>  select file_name from dba_data_files;</p><p>  select name from v$ControlFile;</p><p>  select member from v$logfile;</p><p>  創(chuàng)建用戶Turing</p&

18、gt;<p>  create user Turing </p><p>  identified by 123456</p><p>  profile default</p><p>  default tablespace ts_perm</p><p>  temporary tablespace

19、 ts_temp</p><p>  account unlock;</p><p>  查看結(jié)果:desc dba_users; </p><p>  select username from dba_users;</p><p>  給用戶Turing授權(quán)</p><p><b>  GRANT<

20、/b></p><p>  CONNECT, RESOURCE,</p><p>  CREATE SESSION, </p><p>  CREATE TABLE, </p><p>  CREATE PROCEDURE, </p><p>  CREATE SEQUENCE,</p><

21、;p>  CREATE TRIGGER, </p><p>  CREATE VIEW, </p><p>  CREATE SYNONYM, </p><p>  ALTER SESSION, </p><p>  CREATE MATERIALIZED VIEW,</p><p>  CREATE

22、DATABASE LINK</p><p>  TO Turing;</p><p>  建立“學(xué)生”表Student,學(xué)號(hào)是主碼,姓名取值唯一。</p><p>  CREATE TABLE Turing.student(</p><p>  Sno VARCHAR2(12),</p><p>  Snam

23、e VARCHAR2(10) not null,</p><p>  SSex VARCHAR2(4) ,</p><p>  SAge NUMBER ,</p><p>  SDEPT VARCHAR2(20),</p><p>  unique ("SNAME"),</p

24、><p>  primary key ("SNO") validate,</p><p>  check (SSex in('男','女'))</p><p><b>  ) </b></p><p>  TableSpace ts_perm</p>&l

25、t;p>  PCTFree 10</p><p>  PCTUsed 40 </p><p>  IniTrans 1 MAXTrans 255 </p><p>  storage ( initial 64K freelists 1 freelist groups 1 buffer_pool default) </p><p>  

26、logging NoCompress ; </p><p>  建立一個(gè)“課程”表Course</p><p>  CREATE TABLE Turing.course(</p><p>  Cno VARCHAR2(8),</p><p>  Cname VARCHAR2(40) not null unique,</p

27、><p>  CPNO VARCHAR2(8) ,</p><p>  CCredit NUMBER ,</p><p>  primary key ("CNO") VALIDATE,</p><p>  foreign key ("CPNO") references Turing.co

28、urse("CNO")</p><p><b>  ) </b></p><p>  TableSpace ts_perm</p><p>  PCTFree 10</p><p>  PCTUsed 40 </p><p>  IniTrans 1 MAXTrans 255

29、 </p><p>  storage ( initial 64K freelists 1 freelist groups 1 buffer_pool default) </p><p>  logging NoCompress ;</p><p><b>  建立一個(gè)sc表</b></p><p>  CREATE T

30、ABLE turing.sc(</p><p>  Sno VARCHAR2(12),</p><p>  Cno VARCHAR2(8) ,</p><p>  Grade NUMBER ,</p><p>  primary key ("SNO","CNO") v

31、alidate,</p><p>  foreign key("SNO") references turing.student("SNO") validate,</p><p>  foreign key("CNO") references turing.course("CNO") validate</

32、p><p><b>  ) </b></p><p>  TableSpace ts_perm</p><p>  PCTFree 10</p><p>  PCTUsed 40 </p><p>  IniTrans 1 MAXTrans 255 </p><p>  st

33、orage ( initial 64K freelists 1 freelist groups 1 buffer_pool default) </p><p>  logging NoCompress ;</p><p><b>  功能模塊</b></p><p><b>  用戶登錄</b></p>&l

34、t;p><b>  主界面</b></p><p><b>  錄入信息</b></p><p><b>  成績(jī)查詢</b></p><p><b>  成績(jī)錄入</b></p><p><b>  成績(jī)修改</b></

35、p><p><b>  成績(jī)刪除</b></p><p><b>  排序</b></p><p><b>  統(tǒng)計(jì)</b></p><p><b>  用戶修改密碼</b></p><p><b>  七、總結(jié)</b&

36、gt;</p><p>  通過(guò)本次實(shí)驗(yàn),我掌握了c#和oracal的很多知識(shí),在課設(shè)期間遇到很多問(wèn)題,在同學(xué)的幫助下,一一解決,使我更加體會(huì)到團(tuán)結(jié)就是力量。在驗(yàn)收的過(guò)程中,我明白了做程序一定要規(guī)范,類(lèi)名、窗體名不能亂起,明白了今后還需要更加努力!</p><p><b>  附錄</b></p><p>  數(shù)據(jù)庫(kù)連接及用戶登陸的主要代碼&l

37、t;/p><p>  private string computerName = Environment.MachineName.ToString(); </p><p>  public OracleConnection myOrclConnection ;</p><p>  public void connection()</p><p>

38、<b>  {</b></p><p>  myOrclConnection = new OracleConnection(@"user id=system;password=123456;</p><p>  data source= ( DESCRIPTION=( ADDRESS=(PROTOCOL=tcp)</p><p> 

39、 (HOST=" + computerName + @")</p><p>  (PORT=1521)</p><p><b>  )</b></p><p>  (CONNECT_DATA=(SID=ZDB))</p><p><b>  (HS=OK)</b></p&g

40、t;<p><b>  ) ");</b></p><p><b>  }</b></p><p>  public void login(TextBox textBox_UserName, TextBox textBox_UserPwd)</p><p><b>  {</b>

41、;</p><p>  connection();</p><p><b>  try</b></p><p><b>  {</b></p><p>  myOrclConnection.Open();</p><p><b>  }</b></

42、p><p>  catch (Exception ex)</p><p><b>  {</b></p><p>  MessageBox.Show("數(shù)據(jù)庫(kù)連接失?。涸?!" + ex.Message);</p><p><b>  }</b></p><p&g

43、t;  string sql = "select usid,pwd from turing.login where usid='" + textBox_UserName.Text.Trim() + "' and pwd='" + textBox_UserPwd.Text.Trim() + "'";</p><p>  Or

44、acleCommand com1 = new OracleCommand();</p><p>  com1.CommandText = sql;</p><p>  com1.Connection = myOrclConnection;</p><p>  OracleDataReader sdr = com1.ExecuteReader();</p>

45、;<p>  if (sdr.Read())</p><p><b>  {</b></p><p>  Main longs = new Main();</p><p>  longs.Show();</p><p>  myOrclConnection.Close();</p><p

46、><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  MessageBox.Show("請(qǐng)輸入正確用戶和密碼");</p><p><b>  }</b>

47、;</p><p><b>  信息錄入</b></p><p>  bc.myOrclConnection.Open();</p><p>  DataSet sd = new DataSet();</p><p>  string sqlsno = "select sno from turing.stude

48、nt where sno='" + textBox1.Text + "'";</p><p>  OracleDataAdapter sda = new OracleDataAdapter(sqlsno, bc.myOrclConnection);</p><p>  sd.Clear();</p><p>  sda.

49、Fill(sd);</p><p>  if (sd.Tables[0].Rows.Count != 0)</p><p><b>  {</b></p><p>  MessageBox.Show("你輸入的學(xué)號(hào)已存在");</p><p><b>  }</b></p&

50、gt;<p><b>  else</b></p><p><b>  {</b></p><p>  string sqlc;</p><p>  if (radioButton1.Checked)</p><p><b>  {</b></p>

51、<p>  sqlc = "男";</p><p><b>  }</b></p><p>  else sqlc = "女";</p><p>  string sql = "insert into turing.student values('" + textBo

52、x1.Text + "','"</p><p>  + textBox2.Text + "','" + sqlc + "','" + textBox3.Text + "','" + comboBox1.Text + "')";</p>

53、;<p>  OracleCommand com = new OracleCommand(sql, bc.myOrclConnection);</p><p>  com.ExecuteNonQuery();</p><p>  bc.myOrclConnection.Close();</p><p>  MessageBox.Show("恭

54、喜你!輸入成功!");</p><p>  排序及統(tǒng)計(jì)的類(lèi)的主要代碼</p><p>  bc.myOrclConnection.Open();</p><p>  DataSet myDS = new DataSet();</p><p>  OracleDataAdapter myAdapter = new OracleData

55、Adapter(str,bc.myOrclConnection);</p><p>  myDS.Clear();</p><p>  myAdapter.Fill(myDS);</p><p>  sd.DataSource = myDS;</p><p>  sd.DataSource = myDS.Tables[0].DefaultVi

56、ew;</p><p>  myDS = null;</p><p>  myAdapter = null;</p><p>  成績(jī)更新、成績(jī)錄入及刪除的類(lèi)的代碼</p><p>  DataSet sd = new DataSet();</p><p>  string sqlsno = "select

57、sno from turing.student where sno='" + tBox.Text + "'";</p><p>  OracleDataAdapter sda = new OracleDataAdapter(sqlsno, bc.myOrclConnection);</p><p>  sd.Clear();</p>

58、<p>  sda.Fill(sd);</p><p>  if (sd.Tables[0].Rows.Count == 0)</p><p><b>  {</b></p><p>  MessageBox.Show("你輸入的學(xué)號(hào)不存在");</p><p><b>  }

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論