數(shù)據(jù)庫課程設(shè)計報告_第1頁
數(shù)據(jù)庫課程設(shè)計報告_第2頁
數(shù)據(jù)庫課程設(shè)計報告_第3頁
數(shù)據(jù)庫課程設(shè)計報告_第4頁
數(shù)據(jù)庫課程設(shè)計報告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課 程 設(shè) 計 報 告課程名稱 數(shù)據(jù)庫原理課程設(shè)計 課題名稱 學(xué)生信息管理系統(tǒng) 專 業(yè) 信息管理與信息系統(tǒng) 班 級 1302 學(xué) 號 7 姓 名 陳靜 指導(dǎo)教師 曾賽峰、張益星、李峰 2015年 12 月 28 日湖南工程學(xué)院課 程 設(shè) 計 任 務(wù) 書課程名稱 數(shù)據(jù)庫原理課程設(shè)計 課 題 學(xué)生信息管理系統(tǒng) 專業(yè)班級 信息管理與信息系統(tǒng) 學(xué)生姓名 陳靜 學(xué) 號 7 指導(dǎo)老師 曾賽峰、張益星、李峰 審 批 任務(wù)書下達(dá)日期 2015年 12月 28 日任務(wù)完成日期 2015年 1 月 8 日目 錄1 引言12 需求分析12.1設(shè)計內(nèi)容12.2 系統(tǒng)綜合需求12.3 功能需求及模塊分析22.3 數(shù)據(jù)字

2、典33 系統(tǒng)設(shè)計43.1 概念結(jié)構(gòu)設(shè)計43.2 邏輯結(jié)構(gòu)設(shè)計54 詳細(xì)設(shè)計64.1 設(shè)計環(huán)境64.2存儲過程及觸發(fā)器64.3 數(shù)據(jù)庫的維護(hù)74.4 實現(xiàn)的主要技術(shù)手段和方法75 心得體會176 參考文獻(xiàn)187 附錄18一、引言數(shù)據(jù)庫技術(shù)是計算機(jī)科學(xué)技術(shù)發(fā)展最快,應(yīng)用最為廣泛的技術(shù)之一。其在計算機(jī)設(shè)計,人工智能,電子商務(wù),企業(yè)管理,科學(xué)計算等諸多領(lǐng)域均得到了廣泛的應(yīng)用,已經(jīng)成為計算機(jī)信息系統(tǒng)和應(yīng)用的核心技術(shù)和重要基礎(chǔ)。在21世紀(jì)的科技時代,科學(xué)技術(shù)突飛猛進(jìn),信息社會的高科技時代,商品經(jīng)濟(jì)化的高效益,計算機(jī)的應(yīng)用已普及到經(jīng)濟(jì)和社會生活的各個領(lǐng)域。計算機(jī)雖然與人類的關(guān)系愈來愈密切,還有人由于計算機(jī)操

3、作不方便繼續(xù)用手工勞動。為了適應(yīng)現(xiàn)代社會人們高度強(qiáng)烈的時間觀念,學(xué)生成績管理系統(tǒng)為教學(xué)辦公帶來了極大的方便。二、需求分析2.1設(shè)計內(nèi)容 數(shù)據(jù)庫系統(tǒng)原理的課程設(shè)計要求學(xué)生綜合利用本課程的有關(guān)知識,在教師的指導(dǎo)下,利用特定的數(shù)據(jù)庫設(shè)計環(huán)境,針對具體的問題,完成從系統(tǒng)的需求分析、數(shù)據(jù)庫的概念設(shè)計、數(shù)據(jù)庫的邏輯設(shè)計,到數(shù)據(jù)庫實現(xiàn)等設(shè)計過程,最終實現(xiàn)一個較為完整的反映應(yīng)用需求的數(shù)據(jù)庫系統(tǒng)。因此,在設(shè)計中,要求學(xué)生應(yīng)該全面考慮各個設(shè)計環(huán)節(jié)以及它們之間的相互聯(lián)系。2.2系統(tǒng)綜合需求高校學(xué)生的成績管理工作量大、繁雜,人工處理非常困難。學(xué)生成績管理系統(tǒng)借助于計算機(jī)強(qiáng)大的處理能力,大大減輕了管理人員的工作量,并提

4、高了處理的準(zhǔn)確性。學(xué)生成績管理系統(tǒng)的開發(fā)運(yùn)用,實現(xiàn)了學(xué)生成績管理的自動化,不僅把廣大教師從繁重的成績管理工作中解脫出來、把學(xué)校從傳統(tǒng)的成績管理模式中解放出來,而且對學(xué)生成績的判斷和整理更合理、更公正,同時也給教師提供了一個準(zhǔn)確、清晰、輕松的成績管理環(huán)境。2.3功能需求及模塊分析 功能需求:能夠進(jìn)行數(shù)據(jù)庫的數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制等處理功能,進(jìn)行聯(lián)機(jī)處理的相應(yīng)時間要短。系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務(wù)的基礎(chǔ)上完成的。本設(shè)計中學(xué)生成績管理系統(tǒng)需要完成的功能主要有:(1) 有關(guān)學(xué)生信息的基本操作,包括查詢所在班級進(jìn)行學(xué)生基本信息操作(查詢、修改、刪除)、查詢某個學(xué)生的學(xué)生基本信息操作等。 (2

5、)有關(guān)學(xué)生課程信息的基本操作,包括查詢所在班級進(jìn)行學(xué)生所選課程信息操作(查詢、修改、刪除)、查詢某個學(xué)生所學(xué)課程的基本操作等。 (3)有關(guān)學(xué)生成績信息的基本操作,包括查詢所在班級進(jìn)行學(xué)生所選課程成績操作(查詢、修改、刪除)、查詢某個學(xué)生所學(xué)課程成績的基本操作等。對各項功能進(jìn)行集中、分塊,按照結(jié)構(gòu)化程序設(shè)計的要求,系統(tǒng)功能模塊圖如下:學(xué)生信息管理系統(tǒng)獎學(xué)金管理學(xué)生成績管理學(xué)生課程管理學(xué)生信息管理獎學(xué)金刪除獎學(xué)金更改獎學(xué)金添加學(xué)生成績刪除學(xué)生成績添加學(xué)生成績更改學(xué)生成績查詢學(xué)生課程查詢學(xué)生課程刪除學(xué)生課程修改學(xué)生課程添加學(xué)生信息刪除學(xué)生信息修改學(xué)生信息添加學(xué)生信息查詢2.4數(shù)據(jù)字典用戶的需求具體體

6、現(xiàn)在各種信息的查詢、修改、刪除,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸出和輸入。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計打下基礎(chǔ)。針對一般學(xué)生信息管理系統(tǒng)的需求,能過對學(xué)生學(xué)習(xí)過程的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計如下所示的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu):(1)學(xué)生信息管理:通過這一模塊,可以實現(xiàn)學(xué)生基本情況的添加、修改、刪除,數(shù)據(jù)項包括學(xué)生學(xué)號、學(xué)生姓名、性別、年齡、所在系。(2)學(xué)生信息查詢:通過這一模塊,使用查詢條件學(xué)號,姓名,性別可以查詢各個學(xué)生的情況,數(shù)據(jù)項包括學(xué)生學(xué)號、學(xué)生姓名、性別、年齡、所在系。(3)學(xué)生成績管理:通過這一模塊,可以實現(xiàn)學(xué)生成績情況的添加、修

7、改、刪除,數(shù)據(jù)項包括學(xué)號、課程號、成績 。(4)學(xué)生信息查詢:通過這一模塊,使用學(xué)號查詢條件,可以實現(xiàn)學(xué)生成績情況的查詢,數(shù)據(jù)項包括學(xué)號、課程號、成績 。(5)學(xué)生課程管理:通過這一模塊,可以實現(xiàn)學(xué)生課程的添加、修改、刪除,數(shù)據(jù)項包括課程號、課程名、先行課、學(xué)分。(6)學(xué)生獎學(xué)金管理:通過這一模塊,可以實現(xiàn)已獲獎學(xué)金信息的添加、修改、刪除,數(shù)據(jù)項包括學(xué)號、姓名、已獲獎學(xué)金。(7)管理員選項:通過這一模塊,可以實現(xiàn)對學(xué)生信息管理系統(tǒng)管理人員的添加,數(shù)據(jù)項包括用戶名和密碼。數(shù)據(jù)庫表名關(guān)系模式名備注student學(xué)生學(xué)生信息表course課程課程信息表score成績學(xué)生成績表stu_user用戶管理

8、員信息表stujc獎學(xué)金學(xué)生獎學(xué)金信息表三、系統(tǒng)設(shè)計3.1概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計階段是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,它通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個獨(dú)立于具體DBMS的概念模型。首先設(shè)計出能夠滿足用戶需求的各種實體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計打下基礎(chǔ)。這些實體包含各種具體信息,通過相互之間的作用形成數(shù)據(jù)的流動。該設(shè)計規(guī)劃出的實體有:學(xué)生實體、課程實體。全局概念模式(E-R圖):學(xué)生 學(xué) 號 姓 名 性 別 年 齡選課課程 成 績 課程名 課程號 先行課課程學(xué)分 系別3.2邏輯結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)是獨(dú)立于任何一種數(shù)據(jù)模型的信息結(jié)構(gòu)。邏輯結(jié)構(gòu)的任務(wù)是把概念結(jié)構(gòu)設(shè)計階段設(shè)計好的基本

9、E-R圖轉(zhuǎn)化為宜選用的DBMS所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu),并對其進(jìn)行優(yōu)化。E-R圖向關(guān)系模型轉(zhuǎn)化要解決的問題是如何將實體型和實體間的聯(lián)系轉(zhuǎn)化為關(guān)系模式,如何確定這些關(guān)系模式的屬性和碼。設(shè)計學(xué)生成績管理數(shù)據(jù)庫,包括課程、學(xué)生、教師、成績四個關(guān)系,其關(guān)系模式中對每個實體定義的屬性如下:學(xué)生信息表(學(xué)號,姓名,性別,年齡,系別);課程信息表(課程號,課程名,先選課號,學(xué)分);學(xué)生成績表(學(xué)號,課程號,成績);用戶權(quán)限表(UserName,Password);學(xué)生獎學(xué)金信息表。1. 學(xué)生信息表student 學(xué)生信息表student列名數(shù)據(jù)類型可否為空說明snoVARCHAR(50)NOT NU

10、LL學(xué)號(主鍵)snameVARCHAR(50)NULL姓名ssexVARCHAR(50)NULL性別sageVARCHAR(50)NULL年齡sdeptVARCHAR(50)NULL系別2.課程信息表course課程信息表course列名數(shù)據(jù)類型可否為空說明cnoVARCHAR(50)NOT NULL課程號(主鍵)cnameVARCHAR(50)NULL課程名cpnoVARCHAR(50)NULL先選課號ccreditVARCHAR(50)NULL學(xué)分3學(xué)生成績表score學(xué)生成績表score列名數(shù)據(jù)類型可否為空說明snoVARCHAR(50)NOT NULL學(xué)號(主鍵)cnoVARCHAR

11、(50)NOT NULL課程號(主鍵)gradeVARCHAR(50)NULL成績4管理員信息表stu_user管理員信息表stu_user列名數(shù)據(jù)類型可否為空說明usernameVARCHAR(50)NOT NULL用戶名(主鍵)passwdVARCHAR(50)NOT NULL密碼5學(xué)生獎學(xué)金信息表stujc管理員信息表stujc列名數(shù)據(jù)類型可否為空說明snoVARCHAR(50)NOT NULL學(xué)號(主鍵)snameVARCHAR(50) NULL姓名sjcVARCHAR(50)NULL獎學(xué)金4、 詳細(xì)設(shè)計4.1設(shè)計環(huán)境:VMware WorkstationMicrosoft Visua

12、l C+ 6.04.2存儲過程及觸發(fā)器作為數(shù)據(jù)庫應(yīng)用系統(tǒng),數(shù)據(jù)的一致性需要得到保證,通過單純的手工編碼方式,工作煩瑣,容易出錯,而且不易于擴(kuò)展。采用DBMS的外碼約束,Unique約束,觸發(fā)器的使用來解決這一問題。 (1)建立數(shù)據(jù)庫(2)創(chuàng)建表創(chuàng)建學(xué)生信息表:create table student (sno char(5) not null unique, sname char(20), ssex char(2), sage int, sdept char(12);(3)向數(shù)據(jù)庫中添加信息4.3數(shù)據(jù)庫的維護(hù)當(dāng)試運(yùn)行數(shù)據(jù)庫合格后,數(shù)據(jù)庫開發(fā)工作基本完成,即可投入運(yùn)行了。但是由于應(yīng)用環(huán)境在不斷變

13、化,數(shù)據(jù)庫運(yùn)行但是,由于應(yīng)用環(huán)境在不斷變化,數(shù)據(jù)庫運(yùn)行過程中物理存儲也會不斷變化,對數(shù)據(jù)庫設(shè)計進(jìn)行評價、調(diào)整、修改等維護(hù)工作是一個長期的任務(wù),也是設(shè)計工作的繼續(xù)和提高,因為這個數(shù)據(jù)庫系統(tǒng)比較簡單,數(shù)據(jù)量也小,數(shù)據(jù)庫中基本不會發(fā)生什么較大的變化,但是還是需要做好數(shù)據(jù)的備份和維護(hù)工作,我們可以利用備份功能對數(shù)據(jù)進(jìn)行備份,如果數(shù)據(jù)庫受到破壞或者系統(tǒng)故障,我們就可以利用備份文件恢復(fù)數(shù)據(jù)庫的數(shù)據(jù),當(dāng)然也可以利用其他各種方法進(jìn)行數(shù)據(jù)維護(hù)。4.4實現(xiàn)的主要技術(shù)手段和方法一、 創(chuàng)建數(shù)據(jù)庫文件.mdf 1、開始菜單打開Microsoft Visual Stdio2010新建項目選擇windows窗體應(yīng)用程序右鍵

14、項目名添加新建項選擇數(shù)據(jù)基于服務(wù)的數(shù)據(jù)庫2、數(shù)據(jù)庫連接方法SqlConnection myConnection = new SqlConnection(Data Source=.SQLEXPRESS;AttachDBFilename=|DataDirectory|stu_managesystem.mdf;Integrated Security=True;User Instance=True);二、學(xué)生信息處理1學(xué)生信息的管理功能,此部分實現(xiàn)了對學(xué)生基本信息添加修改刪除操作。關(guān)鍵代碼如下namespace stu_managesystem public partial class stu_inf

15、 : Form public stu_inf() InitializeComponent(); SqlConnection myConnection; SqlCommand sqlCommand; private void stu_inf_Load(object sender, EventArgs e) / myConnection = new SqlConnection(); myConnection = new SqlConnection(Data Source=.SQLEXPRESS;AttachDBFilename=|DataDirectory|stu_managesystem.mdf

16、;Integrated Security=True;User Instance=True); sqlCommand = new SqlCommand(); sqlCommand.Connection = myConnection; sqlCommand.CommandType = CommandType.Text; sqlCommand.CommandText = select * from student; myConnection.Open(); SqlDataReader dreader = sqlCommand.ExecuteReader(CommandBehavior.CloseCo

17、nnection); while (dreader.Read() ListViewItem newItem = listView1.Items.Add(dreadersno.ToString().Trim(); newItem.SubItems.Add(dreadersname.ToString().Trim(); newItem.SubItems.Add(dreaderssex.ToString().Trim(); newItem.SubItems.Add(dreadersage.ToString().Trim(); newItem.SubItems.Add(dreadersdept.ToS

18、tring().Trim(); dreader.Close(); private void listView1_SelectedIndexChanged(object sender, EventArgs e) if (listView1.SelectedItems.Count 0) textBox1.Text = listView1.SelectedItems0.Text; textBox2.Text = listView1.SelectedItems0.SubItems1.Text; textBox3.Text = listView1.SelectedItems0.SubItems2.Tex

19、t; textBox4.Text = listView1.SelectedItems0.SubItems3.Text; textBox5.Text = listView1.SelectedItems0.SubItems4.Text; private void button1_Click(object sender, EventArgs e) if (button1.Text = 添加) button1.Text = 保存; textBox1.Text = ; textBox2.Text = ; textBox3.Text = ; textBox4.Text = ; textBox5.Text

20、= ; textBox1.Focus(); textBox1.ReadOnly = false; textBox2.ReadOnly = false; textBox3.ReadOnly = false; textBox4.ReadOnly = false; textBox5.ReadOnly = false; button2.Enabled = false; button3.Enabled = false; else sqlCommand.CommandText = insert into student values( + textBox1.Text + , + textBox2.Text

21、 + , + textBox3.Text + , + textBox4.Text + , + textBox5.Text + ); myConnection.Open(); int cmdresults = sqlCommand.ExecuteNonQuery(); myConnection.Close(); if (cmdresults = 1) textBox1.ReadOnly = true; textBox2.ReadOnly = true; textBox3.ReadOnly = true; textBox4.ReadOnly = true; textBox5.ReadOnly =

22、true; button2.Enabled = true; button3.Enabled = true; ListViewItem newItem = listView1.Items.Add(textBox1.Text); newItem.SubItems.Add(textBox2.Text); newItem.SubItems.Add(textBox3.Text); newItem.SubItems.Add(textBox4.Text); newItem.SubItems.Add(textBox5.Text); button1.Text = 添加; MessageBox.Show(插入數(shù)據(jù)

23、成功); else MessageBox.Show(插入數(shù)據(jù)失敗); void TextBox1TextChanged(object sender, EventArgs e) 2學(xué)生信息查詢功能,此部分實現(xiàn)了對學(xué)生信息的查詢功能。關(guān)鍵代碼如下namespace stu_managesystem public partial class stu_ser : Form public stu_ser() InitializeComponent(); private SqlDataAdapter sqlDataAdapter; private DataSet dsScore; private void

24、 stu_ser_Load(object sender, EventArgs e) / SqlConnection myConnection = new SqlConnection(); SqlConnection myConnection = new SqlConnection(Data Source=.SQLEXPRESS;AttachDBFilename=|DataDirectory|stu_managesystem.mdf;Integrated Security=True;User Instance=True); SqlCommand sqlCommand = new SqlComma

25、nd(); sqlCommand.Connection = myConnection; sqlCommand.CommandType = CommandType.Text; sqlCommand.CommandText = select * from student; sqlDataAdapter = new SqlDataAdapter(); sqlDataAdapter.SelectCommand = sqlCommand; SqlCommandBuilder builder = new SqlCommandBuilder(sqlDataAdapter); dsScore = new Da

26、taSet(); sqlDataAdapter.Fill(dsScore, student); this.BindingContextdsScore, student.PositionChanged += new EventHandler(BindingManagerBase_PositionChanged); dataGridView1.DataSource = dsScore; dataGridView1.DataMember = student; ShowPosition(); /setState(true); private void ShowPosition() int iCnt,

27、iPos; iCnt = this.BindingContextdsScore, student.Count; iPos = this.BindingContextdsScore, student.Position + 1; private void BindingManagerBase_PositionChanged(object sender, EventArgs e) ShowPosition(); private void button1_Click(object sender, EventArgs e) if (textBox1.Text = ) MessageBox.Show(學(xué)號

28、不能為空); else string a = textBox1.Text; / SqlConnection myConnection = new SqlConnection(); SqlConnection myConnection = new SqlConnection(Data Source=.SQLEXPRESS;AttachDBFilename=|DataDirectory|stu_managesystem.mdf;Integrated Security=True;User Instance=True); SqlCommand sqlCommand = new SqlCommand()

29、; sqlCommand.Connection = myConnection; sqlCommand.CommandType = CommandType.Text; sqlCommand.CommandText = select * from student where sno= + a + ; sqlDataAdapter = new SqlDataAdapter(); sqlDataAdapter.SelectCommand = sqlCommand; SqlCommandBuilder builder = new SqlCommandBuilder(sqlDataAdapter); ds

30、Score = new DataSet(); sqlDataAdapter.Fill(dsScore, student); this.BindingContextdsScore, student.PositionChanged += new EventHandler(BindingManagerBase_PositionChanged); dataGridView1.DataSource = dsScore; dataGridView1.DataMember = student; ShowPosition(); textBox1.Text = ; 3學(xué)生成績管理,此部分實現(xiàn)了對學(xué)生基本成績添加

31、、修改、刪除操作。關(guān)鍵代碼與學(xué)生信息管理相似4學(xué)生成績查詢,此部分實現(xiàn)了對學(xué)生成績的查詢操作。 關(guān)鍵代碼與學(xué)生信息查詢相似5.學(xué)生課程管理,此部分實現(xiàn)了對學(xué)生課程信息的添加、修改、刪除操作。關(guān)鍵代碼與學(xué)生信息管理相似6.學(xué)生獎學(xué)金管理,此部分實現(xiàn)了對學(xué)生已獲獎學(xué)金信息的添加、修改、刪除操作。 關(guān)鍵代碼與學(xué)生信息管理相似 7.管理員添加,此部分實現(xiàn)了對管理人員添加操作。 關(guān)鍵代碼如下namespace stu_managesystem public partial class add_user : Form public add_user() InitializeComponent(); pri

32、vate void button1_Click(object sender, EventArgs e) if (textBox1.Text = ) MessageBox.Show(用戶名不能為空); if (textBox2.Text = ) MessageBox.Show( 密碼不為空); else string a = textBox1.Text; string b = textBox2.Text; DB_CZ u = new DB_CZ(); string sql = insert into stu_user values( + a + , + b + ); u.ExcSql(sql); MessageBox.Show(添加成功); textBox1.Text = ; textBox2.Text = ; pri

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論