sql+vs課程設(shè)計報告_第1頁
sql+vs課程設(shè)計報告_第2頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 10/10sql+vs課程設(shè)計報告 洛陽理工學(xué)院 課程設(shè)計報告 課程名稱數(shù)據(jù)庫課程設(shè)計 設(shè)計題目學(xué)生成績管理系統(tǒng) 專業(yè)計算機(jī)科學(xué)與信息工程系班級B110505 學(xué)號B11050522 姓名 完成日期2013年12月27日 課程設(shè)計任務(wù)書 設(shè)計題目:學(xué)生成績管理系統(tǒng) 設(shè)計內(nèi)容與要求: 1學(xué)生信息按照行政班級組織; 2提供學(xué)生成績的查詢功能,輸入學(xué)生的學(xué)號或姓名,能查找出該生各學(xué)期各門課程的成績。 3能對成績數(shù)據(jù)進(jìn)行添加、刪除、修改等基本操作。 4用戶權(quán)限控制,一般用戶只能查詢,管理員用戶可以修改數(shù)據(jù)庫的內(nèi)容。 5根據(jù)以上功能,設(shè)計數(shù)據(jù)結(jié)構(gòu)和Windows UI界面,完成程序設(shè)計。 指導(dǎo)教師:姬

2、曉輝 2013年12 月27 日 課程設(shè)計評語 成績: 指導(dǎo)教師:_ 年月日 目錄 1概述 (2) 1.1設(shè)計要求 (2) 1.2技術(shù)要求 (2) 1.3開發(fā)環(huán)境及工具 (2) 1.4安全性 (2) 2 需求分析 (3) 1.1 系統(tǒng)背景分析 (3) 1.2系統(tǒng)目標(biāo) (3) 1.3性能需求分析 (3) 3總體設(shè)計 (4) 3.1設(shè)計概述 (4) 3.2系統(tǒng)功能流程圖 (4) 3.3系統(tǒng)數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計 (4) 3.3.1系統(tǒng)E-R圖 (5) 3.3.2系統(tǒng)數(shù)據(jù)庫的設(shè)計 (5) 3.4系統(tǒng)安全保密設(shè)計 (6) 4詳細(xì)設(shè)計 (7) 4.1系統(tǒng)程序流程圖 (7) 4.2系統(tǒng)主要功能模塊簡介 (7)

3、 4.2.1登陸界面 (7) 4.2.2學(xué)生操作 (8) 4.2.3教師操作 (9) 4.2.4修改密碼 (10) 5主要功能模塊代碼 (11) 5.1數(shù)據(jù)庫創(chuàng)建代碼 (11) 5.2 C#主要代碼 (12) 5.2.1登錄 (12) 5.2.2成績查詢 (13) 5.2.3成績錄入或修改 (13) 5.2.4選課 (14) 5.2.5修改密碼 (15) 6設(shè)計總結(jié) (16) 7體會與收獲 (17) 1概述 1.1設(shè)計要求 系統(tǒng)名稱:學(xué)生成績管理系統(tǒng) 使用語言:C#程序設(shè)計語言 使用軟件:Microsoft SQL Server 2005、Microsoft Visual Studio 200

4、5 針對給定的數(shù)據(jù)庫應(yīng)用問題-學(xué)生成績管理系統(tǒng),全面運(yùn)用數(shù)據(jù)庫原理課程所學(xué)知識,從系統(tǒng)需求分析著手,進(jìn)行數(shù)據(jù)庫的概念設(shè)計、邏輯設(shè)計、物理設(shè)計、系統(tǒng)的總體設(shè)計和模塊設(shè)計、編程、調(diào)試,并在各個環(huán)節(jié)中提供相關(guān)的文檔。 1.2技術(shù)要求 本系統(tǒng)主要用于學(xué)校學(xué)生信息管理,總體任務(wù)是實(shí)現(xiàn)學(xué)生信息關(guān)系的系統(tǒng)化、規(guī)范化和自動化,其主要任務(wù)是用計算機(jī)對學(xué)生信息進(jìn)行日常管理,如查詢、修改、增加、刪除,另外還考慮到用戶登錄的權(quán)限,針對學(xué)生信息和權(quán)限登錄的學(xué)生成績管理系統(tǒng)。 本系統(tǒng)主要包括教師管理、學(xué)生信息查詢、添加、修改、刪除等部分。其功能主要有: 學(xué)生信息按照行政班級組織; 提供學(xué)生成績的查詢功能,輸入學(xué)生的學(xué)號或

5、姓名,能查找出該生各學(xué)期各門課程的成績。 能對成績數(shù)據(jù)進(jìn)行添加、刪除、修改等基本操作,并能進(jìn)行一般的統(tǒng)計計算(如計算學(xué)生的總分和平均分,課程的平均分等) 其它輔助管理功能,如統(tǒng)計具有各等級獎學(xué)金資格的人數(shù)。 用戶權(quán)限控制,一般用戶只能查詢,管理員用戶可以修改數(shù)據(jù)庫的內(nèi)容。 根據(jù)以上功能,設(shè)計數(shù)據(jù)結(jié)構(gòu)和Windows UI界面,完成程序設(shè)計。 1.3開發(fā)環(huán)境及工具 本系統(tǒng)后臺數(shù)據(jù)庫采用Microsoft SQL Server 數(shù)據(jù)庫,該數(shù)據(jù)庫系統(tǒng)在安全性、準(zhǔn)確性和運(yùn)行速度方面有絕對的優(yōu)勢,并且處理數(shù)據(jù)量大,效率高;前臺采用Microsoft 公司的Visual Studio 2012作為主要開發(fā)

6、工具,可與SQL Server 2005數(shù)據(jù)庫無縫鏈接。系統(tǒng)開發(fā)語言選擇C#. 1.4安全性 具有較高的安全性。系統(tǒng)對不同的用戶提供不同的功能模塊,只有具有高級權(quán)限的部門管理者或維護(hù)人員用戶才能對用戶和圖書信息進(jìn)行增加、修改和刪除等管理,一般的讀者用戶只能查看圖書信息和借閱情況。 還應(yīng)具有一定的保護(hù)機(jī)制,防止系統(tǒng)被惡意攻擊,信息被惡意修改和竊取。有完善的備份機(jī)制,如果系統(tǒng)被破壞應(yīng)該能快速恢復(fù)。 2 需求分析 1.1 系統(tǒng)背景分析 隨著電腦的普及,信息量的增大,現(xiàn)在幾乎每個學(xué)校乃至每個教育機(jī)構(gòu)也順應(yīng)時代的發(fā)展,紛紛拋棄繁瑣的人工管理學(xué)生的成績以及學(xué)生的信息的方式,而是采用各種管理軟件進(jìn)行管理。采

7、用軟件系統(tǒng)進(jìn)行管理具有處理數(shù)據(jù)速度更快、信息量更多、更加準(zhǔn)確、更加簡便等特點(diǎn)。所以學(xué)生成績管理系統(tǒng)成為學(xué)校和其他教育機(jī)構(gòu)不可或缺的管理軟件。 1.2系統(tǒng)目標(biāo) 建立學(xué)生成績數(shù)管理系統(tǒng),數(shù)據(jù)信息文本文件存儲,也可以采用數(shù)據(jù)庫存儲。 (1)學(xué)生信息按照行政班級組織; (2)提供學(xué)生成績的查詢功能,輸入學(xué)生的學(xué)號或姓名,能查找出該生各學(xué)期 各門課程的成績。 (3)能對成績數(shù)據(jù)進(jìn)行添加、刪除、修改等基本操作,并能進(jìn)行一般的統(tǒng)計計 算(如計算學(xué)生的總分和平均分,課程的平均分等) (4)其它輔助管理功能,如統(tǒng)計具有各等級獎學(xué)金資格的人數(shù)。 (5)用戶權(quán)限控制,一般用戶只能查詢,管理員用戶可以修改數(shù)據(jù)庫的內(nèi)容

8、。 (6)根據(jù)以上功能,設(shè)計數(shù)據(jù)結(jié)構(gòu)和Windows UI界面,完成程序設(shè)計。 1.3性能需求分析 (1)登錄、用戶界面需求:簡潔、易懂、易用、友好的用戶界面。 (2)安全保密性需求:只有憑借用戶名和密碼登陸系統(tǒng),才能進(jìn)行信息的管理 等。 3總體設(shè)計 3.1設(shè)計概述 根據(jù)需求把整個系統(tǒng)分化成不同的模塊,每個模塊完成一個特定的子功能。把這些模塊結(jié)合起來組成一個整體。逐一實(shí)現(xiàn)各個功能; 3.2系統(tǒng)功能流程圖 圖3-1 系統(tǒng)功能流程圖 3.3系統(tǒng)數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計 根據(jù)對數(shù)據(jù)項與數(shù)據(jù)結(jié)構(gòu)的分析,設(shè)計出能夠滿足系統(tǒng)需求的各種實(shí)體,及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計打下基礎(chǔ)。 圖3-2系統(tǒng)E-R圖結(jié)

9、構(gòu) 3.3.1系統(tǒng)E-R圖 系統(tǒng)E-R圖可以將各個實(shí)體之間的關(guān)系顯示出來,將各個實(shí)體間的屬性依賴表示明白。如圖3-2系統(tǒng)E-R圖結(jié)構(gòu)。 3.3.2系統(tǒng)數(shù)據(jù)庫的設(shè)計 綜合以上分析,要實(shí)現(xiàn)上面的所有功能模塊,主要設(shè)計表如下: 表3-1用戶登錄表 表3-2學(xué)生表 表3-3課程表 表3-4成績表 表3-5教師表 3.4系統(tǒng)安全保密設(shè)計 系統(tǒng)設(shè)計了登錄界面,每個合法用戶有用戶名及一個密碼,只有當(dāng)用戶輸入正確的用戶名及密碼組合后才能夠?qū)W(xué)生信息進(jìn)行操作。 4詳細(xì)設(shè)計 4.1系統(tǒng)程序流程圖 程序流程圖又稱為程序框圖,它是歷史悠久使用最廣泛的描述軟件設(shè)計的方法。它可將整個程序的總體流程清楚明白的顯示出來。如圖

10、4.2.1系統(tǒng)總流程圖結(jié)構(gòu)。 圖4-1系統(tǒng)總體流程圖 4.2系統(tǒng)主要功能模塊簡介 4.2.1登陸界面 用戶憑借用戶名及密碼登錄,老師登錄成功后可對學(xué)生信息進(jìn)行操作及修改自己的登錄密碼,學(xué)生登錄后可以查詢自己的成績、選課、修改密碼。用戶界面如圖4-2 用戶登錄界面所示。 圖4-2用戶登錄界面 4.2.2學(xué)生操作 1.學(xué)生個人成績查詢 學(xué)生登陸后,在主界面上學(xué)生可以點(diǎn)擊查詢學(xué)生個人成績,來查看自己的各個科目的成績,且只能查看不能修改如圖4-3。 圖4-3學(xué)生個人成績查詢界面 2.學(xué)生選課 學(xué)生登陸后,可以在主界面點(diǎn)擊選課,可以選擇自己想要學(xué)習(xí)的課程。在選課界面可以看到課程號、課程名、學(xué)分、學(xué)時。選

11、課成功后系統(tǒng)將課程號和課程名加入到Grade表中,如圖4-4。 圖4-4學(xué)生選課界面 4.2.3教師操作 1.查詢學(xué)生信息 教師登錄后,可以在主界面點(diǎn)擊查詢學(xué)生信息進(jìn)入到學(xué)生信息查詢界面,登錄時默認(rèn)顯示全體學(xué)生成績表。在該界面上教師可以按學(xué)號查詢學(xué)生成績,還可按班級號查詢該班級的學(xué)生信息,如圖4-5。 圖4-5學(xué)生信息查詢 2.錄入或修改學(xué)生成績 教師登錄后可以點(diǎn)擊主界面上的錄入或修改學(xué)生成績,可以進(jìn)行學(xué)生集成的錄入或著修改操作。如果成績已經(jīng)存在在界面上輸入信息時則進(jìn)行修改操作,如果成績不存在則進(jìn)行的是錄入操作,并將成績寫回數(shù)據(jù)庫中Grade表中,如圖4-6。 圖4-6學(xué)生成績錄入或修改 4.

12、2.4修改密碼 用戶登錄后可以修改自己的登錄密碼,修改成功后并將新密碼寫回到數(shù)據(jù)庫的Userinfo表中,修改界面如圖4-7。 圖4-7密碼修改界面 5主要功能模塊代碼5.1數(shù)據(jù)庫創(chuàng)建代碼 創(chuàng)建各種約束條件,來保證數(shù)據(jù)庫的完整性操作。創(chuàng)建數(shù)據(jù)庫Grademanage create database Grademanage 創(chuàng)建表Student use Grademanage create table Student ( sno smallint primary key not null, sname char(20)not null, class char(20)not null, sex c

13、har(10)not null, birth datetime, addr char(25) ) 創(chuàng)建表Course create table Course ( cno smallint primary key not null, cname char(10)not null, ccredit int, ctime int ) 創(chuàng)建表Teacher create table Teacher ( tno smallint primary key not null, tname char(10), sex char(10), birth datetime, cno char(10) ) 創(chuàng)建表Us

14、erinfo create table Userinfo ( UserName char(10)not null, UserPsw char(8)not null, UserRole char(8) ) 創(chuàng)建表Grade create table Grade (cno smallint not null, sno smallint not null, grade smallint, primary key(cno,sno), foreign key(cno)references Course(cno), foreign key(sno)references Student(Sno) ) 填充數(shù)

15、據(jù) insert into Userinfo values(李明,123456,學(xué)生) insert into Userinfo values(張軍,123456,教師) insert into Userinfo values(黃濤,1,學(xué)生) insert into Userinfo values(趙文,123,學(xué)生) insert into Userinfo values(李慶,123,教師) insert into Userinfo values(王山,abc,學(xué)生) insert into Userinfo values(孫紅,lb,學(xué)生) insert into Course val

16、ues(02001,English,3,48) insert into Course values(02002,Com,4,36) insert into Course values(02003,Japnese,2,24) insert into Course values(02004,Database,3,48) insert into Course values(02005,Web,5,48) 5.2 C#主要代碼 5.2.1登錄 private void button1_Click(object sender, EventArgs e) string str; str = CheckSe

17、lect(); SqlConnection conn=new SqlConnection(DbUtil.ConnectString); conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; http:/./doc/8722118ea1c7aa00b52acb9a.html mandText= SELECT UserRole FROM Userinfo where UserName=+ UserName.Text.ToString().Trim() + and UserPsw=+ UserPsw.Text.T

18、oString().Trim() + and UserRole= + str + ;/數(shù)據(jù)庫執(zhí)行語句 object val = cmd.ExecuteScalar(); if (val != null) Main main = new Main(); http:/./doc/8722118ea1c7aa00b52acb9a.html eRole = val.ToString().Trim(); http:/./doc/8722118ea1c7aa00b52acb9a.html eName = UserName.Text.ToString().Trim(); main.Show(); this.

19、Hide(); else MessageBox.Show(輸入的用戶名或密碼錯誤!, 登錄提示, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); UserName.Focus(); MessageBox.Show(ex.Message); if (conn.State = ConnectionState.Open) conn.Close(); 5.2.2成績查詢 private void button2_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnect

20、ion(DbUtil.ConnectString); /this.Conn = ConfigurationManager.ConnectionStringscon.ConnectionString; SqlCommand cmd = new SqlCommand();/創(chuàng)建數(shù)據(jù)庫命令對象 cmd.Connection = conn;/執(zhí)行命令需要的數(shù)據(jù)庫連接 http:/./doc/8722118ea1c7aa00b52acb9a.html mandText = SELECT * FROM Grade where sno= + textBox1.Text + ;/數(shù)據(jù)庫執(zhí)行語句 SqlData

21、Adapter da = new SqlDataAdapter(cmd);/創(chuàng)建適配器 DataSet ds = new DataSet();/填充數(shù)據(jù)集 da.Fill(ds); dataGridView1.DataSource = ds.Tables0;/綁定數(shù)據(jù) textBox1.Text = ; textBox1.Focus(); 5.2.3成績錄入或修改 private void button1_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnection(DbUtil.ConnectString);

22、 conn.Open(); SqlCommand cmd=new SqlCommand(delete from Grade where cno=+ textBox1.Text.Trim() + and sno= + textBox2.Text.Trim() + ,conn); string SQL = select * from Grade; DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(SQL, conn); da.Fill(ds, Grade); if (textBox1.Text.Trim() !=

23、| textBox2.Text.Trim() !=) if(textBox3.Text.Trim() != | textBox4.Text.Trim()!=) cmd.ExecuteNonQuery(); conn.Close(); DataTable table = ds.TablesGrade; DataRow row = table.NewRow();/增加新數(shù)據(jù)行 TextBox data= new TextBox textBox1, textBox2, textBox3, textBox4 ; int index = 0; foreach (DataColumn column in

24、table.Columns) rowcolumn = dataindex+.Text.Trim(); table.Rows.Add(row);/將新數(shù)據(jù)行添加到數(shù)據(jù)表中 dataGridView1.DataSource = table;/顯示結(jié)果 SqlCommandBuilder builder = new SqlCommandBuilder(da); da.Update(table);/將更改后的結(jié)果更新回數(shù)據(jù)源 conn.Close(); textBox1.Text = ; textBox2.Text = ; textBox3.Text = ; textBox4.Text = ; tex

25、tBox1.Focus(); /DataSet.AcceptChanges(); MessageBox.Show(成績錄入或修改成功,請點(diǎn)擊“錄入或修改”按鈕刷新并繼續(xù)); /DataSet.rej; 5.2.4選課 private void button1_Click_1(object sender, EventArgs e) for (int i = 0; i 0) MessageBox.Show(選課成功); else if (conn.State = ConnectionState.Open) conn.Close(); 5.2.5修改密碼 private void button1_C

26、lick_1(object sender, EventArgs e) if (textBox1.Text.Trim() = textBox2.Text.Trim() SqlConnection conn = new SqlConnection(DbUtil.ConnectString); /this.Conn = ConfigurationManager.ConnectionStringscon.ConnectionString; conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; http:/./doc

27、/8722118ea1c7aa00b52acb9a.html mandText= update UserInfo SET UserPsw=+ textBox1.Text.ToString().Trim() + where UserName=+psw+; int val = cmd.ExecuteNonQuery(); if (val 0) MessageBox.Show(修改密碼成功, 提示, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); else MessageBox.Show(修改密碼失敗, 提示, MessageBoxButtons

28、.OK, MessageBoxIcon.Exclamation); if (conn.State = ConnectionState.Open) conn.Close(); else if (textBox1.Text != textBox2.Text) MessageBox.Show(錯誤!兩次輸入的密碼不一致,請重新輸入, 警告, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); textBox1.Text = ; textBox2.Text = ; textBox1.Focus(); 6設(shè)計總結(jié) 一個系統(tǒng)開發(fā)的過程中編碼不是重要的,重要的是分析系統(tǒng)、建立起系統(tǒng)模型。在分析一個系統(tǒng)前,分析人員必須要對將要開發(fā)的系統(tǒng)所涉及到的各方面知識有一個認(rèn)識,然后將系統(tǒng)的模型建立起來。而且一個成功的軟件要符合用戶的需要,要以用戶為中心,開發(fā)出用戶想要的軟件,而不能自以為是、想當(dāng)然的做。 在程序編寫中,我認(rèn)識到軟件要有簡便的界面,良好的程序風(fēng)格。擁有這些條件,程序的可讀性才會好,開發(fā)的復(fù)雜度才能大大減少,修改代碼時更加容易下手。 我認(rèn)為,所謂友

溫馨提示

  • 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

提交評論