




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、本科生課程設(shè)計課程名稱數(shù)據(jù)庫原理及應(yīng)用課程設(shè)計課程編號J1670101學(xué)號學(xué)生姓名所在專業(yè)計算機科學(xué)與技術(shù)所在班級指導(dǎo)教師成績教師簽字年 月 日課程設(shè)計時間: 年 月 日 至 年 月 日目 錄一、設(shè)計總說明IV1.1概況IV1.2系統(tǒng)開發(fā)目的IV1.3開發(fā)內(nèi)容IV1.4開發(fā)要求IV1.5開發(fā)環(huán)境及工具V二、需求分析V2.1系統(tǒng)背景分析V2.2需求介紹V三、概念結(jié)構(gòu)設(shè)計V3.1系統(tǒng)功能模塊設(shè)計圖VI3.2系統(tǒng)E-R圖VI四、邏輯結(jié)構(gòu)設(shè)計VII五、物理結(jié)構(gòu)設(shè)計VII5.1數(shù)據(jù)庫創(chuàng)建VIII六、系統(tǒng)實現(xiàn)XII6.1登陸界面XII6.2管理員主界面XIII六、 優(yōu)缺點及自我評價XVII八、參考文獻(xiàn)XV
2、III九、代碼(附錄)XXI一、設(shè)計總說明1.1概況 名稱:學(xué)生成績管理系統(tǒng) 用途:學(xué)校等機構(gòu) 功能:實現(xiàn)對學(xué)生信息、成績的管理1.2系統(tǒng)開發(fā)目的1) 掌握利用C# 開發(fā)工具進(jìn)行可視化程序設(shè)計的基本過程。2) 理解C#應(yīng)用程序的事件驅(qū)動機制,掌握利用C#開發(fā)工具編寫程序代碼的方法,能熟練利用C#語法規(guī)則進(jìn)行算法設(shè)計和代碼編寫。3) 掌握利用ADO.NET對象進(jìn)行數(shù)據(jù)庫應(yīng)用程序設(shè)計的基本方法。4) 掌握SQL數(shù)據(jù)庫數(shù)據(jù)表設(shè)計以及SQL語句的書寫和c#中的調(diào)用方法。通過掌握以上的知識同時提高自己的實踐動手能力。1.3開發(fā)內(nèi)容通過調(diào)查分析得到學(xué)生成績管理系統(tǒng)的系統(tǒng)需求,從而設(shè)計出系統(tǒng)的概念模型、邏輯
3、模型、物理模型,通過SQL2005和vs2010的操作平臺完成和實現(xiàn)相應(yīng)的要求,再而進(jìn)行不斷的調(diào)試和測試完善系統(tǒng)的漏洞。1.4開發(fā)要求 學(xué)生各種信息的輸入,包括學(xué)生的基本信息、成績信息、課程信息等。 學(xué)生各種信息的修改; 實現(xiàn)基本信息、成績信息、課程信息的刪除; 按照一定的條件,查詢、統(tǒng)計符合條件的學(xué)生信息;能夠?qū)崿F(xiàn)多種查詢方式,并且可以進(jìn)行簡單的學(xué)生信息統(tǒng)計; 實現(xiàn)基本信息、成績信息、課程信息的導(dǎo)入導(dǎo)出等等;1.5開發(fā)環(huán)境及工具系統(tǒng)前臺開發(fā)軟件:Microsoft公司的Visual Studio 2008系統(tǒng)后臺管理軟件:SQL Server Management Studio 2005系統(tǒng)
4、開發(fā)語言:C#二、需求分析2.1系統(tǒng)背景分析隨著電腦的普及,信息量的增大,現(xiàn)在幾乎每個學(xué)校乃至每個教育機構(gòu)也順應(yīng)時代的發(fā)展,紛紛拋棄繁瑣的人工管理學(xué)生的成績以及學(xué)生的信息的方式,而是采用各種管理軟件進(jìn)行管理。采用軟件系統(tǒng)進(jìn)行管理具有處理數(shù)據(jù)速度更快、信息量更多、更加準(zhǔn)確、更加簡便等特點。所以學(xué)生成績管理系統(tǒng)成為學(xué)校和其他教育機構(gòu)不可或缺的管理軟件。2.2需求介紹通過調(diào)查分析以及結(jié)合案例,系統(tǒng)應(yīng)該達(dá)到以下的要求:(1) 系統(tǒng)用戶應(yīng)包括兩個層次:管理員和學(xué)生,管理員進(jìn)行所有的操作,而學(xué)生只能夠進(jìn)行查詢個人成績信息、查詢個人信息和修改密碼。(2) 能夠?qū)崿F(xiàn)學(xué)生基本信息的錄入、修改、刪除。(3) 能夠
5、實現(xiàn)課程信息的錄入、修改、刪除。(4) 能夠?qū)崿F(xiàn)成績信息的錄入、修改、刪除。(5) 具有豐富的查詢功能,能對學(xué)生信息、課程信息、成績信息等進(jìn)行查詢(6) 系統(tǒng)運行穩(wěn)定,安全可靠。(7) 用戶界面設(shè)計美觀、友好,使用操作便捷。三、概念結(jié)構(gòu)設(shè)計3.1系統(tǒng)功能模塊設(shè)計圖學(xué)生成績管理系統(tǒng)學(xué)生管理員 個人信息查詢密碼修改個人成績查詢課程信息管理學(xué)生信息查詢學(xué)生信息管理用戶管理成績查詢統(tǒng)計成績信息管理3.2系統(tǒng)E-R圖根據(jù)對數(shù)據(jù)項與數(shù)據(jù)結(jié)構(gòu)的分析,設(shè)計出能夠滿足系統(tǒng)需求的各種實體,及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計打下基礎(chǔ)。系統(tǒng)E-R圖可以將各個實體之間的關(guān)系顯示出來,將各個實體間的屬性依賴表示明白。
6、用戶產(chǎn)生姓名學(xué)號民族出生年月性別地址權(quán)限密碼用戶名課程教師課程名課程號考核學(xué)生選課身份證政治面貌電話班級院系成績成績學(xué)號課程號四、邏輯結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)設(shè)計的任務(wù)就是把概念模型設(shè)計階段設(shè)計好的基本E-R圖轉(zhuǎn)換為與選用的具體機器上的DBMS產(chǎn)品所支持的數(shù)據(jù)庫模型相符合的邏輯結(jié)構(gòu),現(xiàn)在選用關(guān)系模型,E-R圖轉(zhuǎn)換如下:用戶(用戶名,用戶密碼,權(quán)限)學(xué)生信息(學(xué)號,姓名,性別,生日,民族,政治面貌,身份證,電話,班級,所在系,家庭地址)課程信息(課程號,課程名,教師)成績信息(學(xué)號,課程名,成績)五、物理結(jié)構(gòu)設(shè)計 數(shù)據(jù)庫物理設(shè)計階段的任務(wù)是根據(jù)具體計算機系統(tǒng)的特點,給給定的數(shù)據(jù)庫系統(tǒng)確定合理的存儲結(jié)構(gòu)和
7、存取方法。我通過創(chuàng)建索引、存儲過程、觸發(fā)器、建立事務(wù)等來實現(xiàn)物理結(jié)構(gòu)的優(yōu)化。5.1數(shù)據(jù)庫創(chuàng)建用戶表:學(xué)生表:課程表:成績表:1) 創(chuàng)建各種約束條件,來保證數(shù)據(jù)庫的完整性操作,下面是添加外鍵參照的語句-外鍵參照,防止數(shù)據(jù)的非法操作alter table SCadd constraint SC_Snoforeign key (Sno) references Student(Sno),constraint SC_Snameforeign key (Cno) references Course(Cno)2) 創(chuàng)建索引,加快查詢的速度create unique index Student_Sno on
8、Sudent(Sno);create unique index Course_Course on Student(Cno);3) 創(chuàng)建觸發(fā)器,通過觸發(fā)器來實現(xiàn)相關(guān)的自動工作-創(chuàng)建觸發(fā)器,自動生成用戶,生成默認(rèn)密碼和用戶類型-create trigger insert_user on Studentfor insertasbegindeclare username char (20)select username=inserted.Sname from insertedinsert into UserInfo values(username,888,1)end-創(chuàng)建級聯(lián)刪除,刪除學(xué)生信息,自定刪
9、除他的用戶信息create trigger delete_studenton Studentfor deleteasbegindelete UserInfofrom UserInfo,deletedwhere UserInfo.UserName=deleted.Snameenddrop trigger ppdrop trigger delete_student1-創(chuàng)建級聯(lián)刪除,刪除學(xué)生信息,自定刪除他的成績信息create trigger delete_student1on Studentfor deleteasbegindelete SCfrom SC,deletedwhere SC.Sno
10、=deleted.Snoendgo-創(chuàng)建級聯(lián)修改,修改學(xué)生學(xué)號和課程號時自動修改SC表中的學(xué)號和課程號create trigger Student_SC_updateon Studentfor updateasif update(Sno)beginupdate SCset Sno=(select Sno from inserted)from SC,deletedwhere SC.Sno=deleted.Snoendgocreate trigger Course_SC_updateon Coursefor updateasif update(Cno)beginupdate SCset Sno=(
11、select Cno from inserted)from SC,deletedwhere SC.Cno=deleted.Cnoendgo-4) 創(chuàng)建視圖,通過視圖進(jìn)行查找,提高數(shù)據(jù)庫的安全性-創(chuàng)建視圖create view Student_Sno_Query(Sno,Sname,Cname,Teacher,Grade,Gpa)asselect Student.Sno,Student.Sname,Cname,Teacher,Grade,(Grade-50.0)/10from SC,Student,Coursewhere SC.Sno=Student.Sno and SC.Cno=Course.
12、Cno order by grade desc5) 使用事務(wù),提高數(shù)據(jù)的準(zhǔn)確性,在實現(xiàn)增刪查改時,如果產(chǎn)生異常將會回滾 SqlTransaction trans = con.BeginTransaction(); try trans.Commit(); catch (Exception) trans.Rollback(); finally trans.Dispose(); 在c#編寫的過程中,把上面的代碼嵌入進(jìn)去就可以完成事務(wù)的檢測。六、系統(tǒng)實現(xiàn)6.1登陸界面 本窗口為登錄窗口,對用戶身份和權(quán)限進(jìn)行判斷,如果輸入匹配登錄成功后進(jìn)入主界面,如果無法匹配會提示用戶名或密碼或權(quán)限輸入錯誤,并且可以重
13、置重新輸入。6.2管理員主界面主界面上的菜單欄顯示了用戶可以進(jìn)行的操作。點擊后分別可以進(jìn)入以下界面用戶管理用戶管理窗口可以進(jìn)行用戶信息的增加、刪除、查詢和修改學(xué)生信息管理:學(xué)生信息管理窗口可以對學(xué)生的信息進(jìn)行增加、刪除、查詢、修改以及學(xué)生信息的導(dǎo)入與導(dǎo)出導(dǎo)入:課程信息管理:課程信息管理對課程進(jìn)行增加、刪除、查詢、修改、導(dǎo)入和導(dǎo)出成績管理:成績管理對成績的增加、刪除、修改、查詢和導(dǎo)入導(dǎo)出成績查詢統(tǒng)計:可以根據(jù)學(xué)號、姓名進(jìn)行查詢學(xué)生的成績等信息,然后進(jìn)行簡單的統(tǒng)計學(xué)生信息查詢:可以根據(jù)學(xué)號、姓名進(jìn)行查詢學(xué)生信息的查詢6.3學(xué)生用戶主界面此界面的功能同管理員界面的功能大同小異,只是執(zhí)行的只有查詢功能
14、和密碼修改功能。下面是密碼修改界面:七、優(yōu)缺點及自我評價 經(jīng)過好幾個星期的學(xué)習(xí),我完成了基于C#.net的學(xué)生成績管理系統(tǒng)的課程設(shè)計。從開始的系統(tǒng)分析,到系統(tǒng)功能的逐一具體化和實現(xiàn)。最后整體完成了一個可以將就使用的學(xué)生成績管理系統(tǒng)。在這段學(xué)習(xí)過程中,從開始的一無所知,到逐漸的掌握vs2010的使用,進(jìn)而實現(xiàn)對頁面的設(shè)計、數(shù)據(jù)庫的連接等知識的掌握。通過自己上網(wǎng)查資料和咨詢有經(jīng)驗的同學(xué),提高了自己的獨立實踐能力。我不但從這次課程設(shè)計中學(xué)到了技能上的能力,而且我也更加堅信自己的能力,只要敢于去嘗試,付出了,就一定會有收獲。下面對本次課程設(shè)計的優(yōu)缺點進(jìn)行總結(jié)。優(yōu)點:使用了數(shù)據(jù)庫的觸發(fā)器簡化了用戶添加的
15、步驟、產(chǎn)生級聯(lián)刪除等;使用事務(wù)以及視圖,提高了系統(tǒng)的完整性和安全性。系統(tǒng)采用父子窗體,整體使用比較的方便,界面較為美觀。缺點:時間比較緊,沒有考慮太多的細(xì)節(jié)的方面,比如:身份證輸入驗證限制等等。對學(xué)生成績的統(tǒng)計只是實現(xiàn)了簡單的統(tǒng)計,沒有加入排名等功能。八、參考文獻(xiàn)1.精通C#與.NET 4.02.數(shù)據(jù)庫系統(tǒng)概論第四版-王珊編視頻教程-Winform基礎(chǔ) 蘇坤-傳智播客4.C_#.4.0權(quán)威指南.姜曉東.掃描版 九、(附錄)部分主要代碼9.1連接數(shù)據(jù)庫適配文件 連接語句:string constr = ConfigurationManager.ConnectionStringsconStr.Co
16、nnectionString; SqlConnection con = new SqlConnection(constr);/連接數(shù)據(jù)庫9.2登錄界面代碼using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using 學(xué)生成績管理系統(tǒng).basiclass;using System.Data.SqlC
17、lient;using System.Configuration;namespace 學(xué)生成績管理系統(tǒng) public partial class Frm_Login : Form public Frm_Login() InitializeComponent(); private void button1_Click(object sender, EventArgs e) loginpass();/調(diào)用登錄驗證的函數(shù) public void loginpass()/登錄驗證的函數(shù) if (txt_Username.Text.Trim() = | string.IsNullOrEmpty(txt_
18、Username.Text) MessageBox.Show(用戶名不能為空!, 登錄提示); txt_Username.Focus(); else if (txt_Userpass.Text.Trim() = | string.IsNullOrEmpty(txt_Userpass.Text) MessageBox.Show(密碼不能為空!, 登陸提示); txt_Userpass.Focus(); else if (cbo_Type.Text.Trim() = | string.IsNullOrEmpty(cbo_Type.Text) MessageBox.Show(請選擇登錄類型!, 登陸
19、提示); else UserInfo u = null; /此前創(chuàng)建UserInfo.cs string constr = ConfigurationManager.ConnectionStringsconStr.ConnectionString; SqlConnection con = new SqlConnection(constr); try /使用try finally來釋放資源 con.Open();/打開數(shù)據(jù)庫 int userRole = cbo_Type.SelectedIndex; string sql = string.Format(select * from userIn
20、fo where UserName=0 and UserPass=1 and UserRole=2, txt_Username.Text, txt_Userpass.Text, userRole);/string.Format()用于格式化字符串 SqlCommand cmd = new SqlCommand(sql, con);/獲取命令執(zhí)行對象 SqlDataReader dr = cmd.ExecuteReader();/獲取數(shù)據(jù)讀取對象 if (dr.Read() u = new UserInfo(); /創(chuàng)建一個新的對象 u.UserId = Convert.ToInt32(drUs
21、erId); u.UserName = drUserName.ToString(); u.UserPass = drUserPass.ToString(); u.UserRole = drUserRole.ToString(); dr.Close(); if (u != null) LoginInfo.LoginUserInfo = u;/保存登錄用戶信息 this.Visible = false; Frm_main fm = new Frm_main(); Frm_main1 fm1 = new Frm_main1(); if (LoginInfo.LoginUserInfo.UserRol
22、e = 0) fm.Show(); /顯示管理員主窗體 else fm1.Show(); /顯示學(xué)生主窗體 else MessageBox.Show(用戶名或密碼錯誤!, 登錄提示); catch (Exception) MessageBox.Show(請注意App.config數(shù)據(jù)庫連接字符串!或查找try中的錯誤, 登錄提示); finally con.Close(); private void btn_login_Click_KeyDown(object sender, KeyEventArgs e)/使用鍵盤事件 if (e.KeyCode = Keys.Enter) if (txt_
23、Username.Text != & txt_Userpass.Text != ) loginpass(); else SendKeys.Send(TAB); private void btn_reset_Click_Click(object sender, EventArgs e)/重置 txt_Username.Text = ; txt_Userpass.Text = ; txt_Username.Focus(); 9.3管理員主界面using System;using System.Collections.Generic;using System.ComponentModel;using
24、 System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using 學(xué)生成績管理系統(tǒng).basiclass;using 學(xué)生成績管理系統(tǒng).Student;using 學(xué)生成績管理系統(tǒng).Course;using 學(xué)生成績管理系統(tǒng).SC;using 學(xué)生成績管理系統(tǒng).Student_search;namespace 學(xué)生成績管理系統(tǒng) public partial class Frm_main : Form public Frm_main() InitializeC
25、omponent(); private void timer1_Tick(object sender, EventArgs e) tslb_time.Text = DateTime.Now.ToString(yyyy年MM月?dd日? HH時骸?mm分?:ss秒?); private void Frm_main_Load(object sender, EventArgs e) tslb_name.Text = 登錄信息歡迎您 + LoginInfo.LoginUserInfo.UserName + !當(dāng)前時間:; tslb_time.Text = DateTime.Now.ToString(y
26、yyy年MM月dd日HH時mm分:ss秒); private void Frm_Main_FormClosing(object sender, FormClosingEventArgs e) DialogResult dr = MessageBox.Show(確認(rèn)關(guān)閉系統(tǒng), 警告, MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (dr = DialogResult.Yes) this.Dispose(); Application.Exit(); else e.Cancel = true; Frm_UserInfo yh = new F
27、rm_UserInfo(); private void tsmi_User_Click(object sender, EventArgs e) yh.MdiParent = this;/設(shè)置父窗體 if (yh.Visible) yh.Focus(); return; else yh = new Frm_UserInfo(); yh.MdiParent = this; yh.Show(); return; Frm_Student xs = new Frm_Student(); private void tsmi_Student_Click(object sender, EventArgs e)
28、 xs.MdiParent = this;/設(shè)置父窗體 if (xs.Visible) xs.Focus(); return; else xs = new Frm_Student(); xs.MdiParent = this; xs.Show(); return; Frm_Course kc = new Frm_Course(); /顯示學(xué)生息管理窗口 private void tsmi_Course_Click(object sender, EventArgs e) kc.MdiParent = this;/設(shè)置父窗體 if (kc.Visible) kc.Focus(); return; else kc = new Frm_Course(); kc.MdiParent = this; kc.Show(
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際結(jié)算流動資金貸款合同樣本
- 鞋類定制加工合同范本
- 農(nóng)村集體土地承包合同版
- 試驗檢測技術(shù)服務(wù)合同模板
- 電力調(diào)度合同協(xié)議
- 化工原料采購合同格式范本
- 新建住房分期付款合同
- 甲乙丙三方租賃合同補充協(xié)議
- 搬家行業(yè)安全生產(chǎn)與事故預(yù)防考核試卷
- 危險品倉儲安全操作規(guī)程優(yōu)化考核試卷
- 2024中考英語1500詞匯默寫匯總表練習(xí)(含答案)
- 2024屆高三英語作文復(fù)習(xí)寫作專項讀后續(xù)寫:幫我修車的墨西哥一家人(人性之光)任務(wù)單學(xué)案
- 2022年四川省綿陽市中考語文真題
- 麥琪的禮物全面英文詳細(xì)介紹
- 使用智能手機教程文檔
- 數(shù)字資產(chǎn)培訓(xùn)課件
- (醫(yī)院安全生產(chǎn)培訓(xùn))課件
- 幼兒園優(yōu)質(zhì)公開課:中班數(shù)學(xué)《到艾比家做客》課件
- 部編人教版歷史八年級下冊《三大改造》省優(yōu)質(zhì)課一等獎教案
- 水輪機調(diào)速器現(xiàn)場調(diào)試
評論
0/150
提交評論