學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁
學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第2頁
學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第3頁
學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第4頁
學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、c#程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告(20 20 學(xué)年 第 學(xué)期)題 目: 學(xué)生成績(jī)信息管理系統(tǒng) 專 業(yè): 班 級(jí): 姓名學(xué)號(hào): 指導(dǎo)教師: 成 績(jī): 年月日目錄摘要1第一章 緒論21.1 設(shè)計(jì)目的21.2 開發(fā)工具選擇21.3 開發(fā)環(huán)境21.4 本報(bào)告的主要內(nèi)容2第二章 需求分析32.1系統(tǒng)需求簡(jiǎn)介32.1.1系統(tǒng)目標(biāo)32.1.2功能需求分析32.1.3性能需求分析3第三章 總體設(shè)計(jì)43.1設(shè)計(jì)概述43.2系統(tǒng)總體結(jié)構(gòu)及功能模塊劃分43.2.1學(xué)生信息查詢模塊43.2.2學(xué)生信息管理模塊53.3系統(tǒng)數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)53.3.1系統(tǒng)e-r圖53.3.2系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì)63.4安全保密設(shè)計(jì)73.4.1用戶

2、登錄安全性7第四章 詳細(xì)設(shè)計(jì)84.1概述84.2系統(tǒng)程序流程圖84.3系統(tǒng)主要功能模塊簡(jiǎn)介94.3.1系統(tǒng)登錄94.3.2學(xué)生信息查詢模塊94.3.3學(xué)生信息管理模塊10第五章 主要功能模塊代碼125.1 公共類代碼設(shè)計(jì)125.2 登錄界面代碼設(shè)計(jì)145.3 查詢模塊代碼設(shè)計(jì)155.4 添加模塊代碼設(shè)計(jì)165.5 更新模塊代碼設(shè)計(jì)175.6 刪除模塊代碼設(shè)計(jì)20第六章 課程設(shè)計(jì)心得21第七章 設(shè)計(jì)日志22c#學(xué)生成績(jī)管理系統(tǒng)摘要本文描述的是基于windows環(huán)境的學(xué)生信息管理系統(tǒng),主要功能模塊包括:學(xué)生信查詢,學(xué)生信息管理,學(xué)生成績(jī)錄入,主要工具microsoft visual studio

3、2010 設(shè)計(jì)窗體, sql server2005建立數(shù)據(jù)庫,實(shí)現(xiàn)學(xué)校信息管理的各個(gè)功能。本篇報(bào)告介紹一個(gè)學(xué)生信息管理系統(tǒng)的從分析到設(shè)計(jì)最后到開發(fā)的全過程為,給出了學(xué)生信息管理系統(tǒng)的設(shè)計(jì)和技術(shù)實(shí)現(xiàn)的過程,特別在細(xì)節(jié)上分析功能和函數(shù)的實(shí)現(xiàn)思想。涉及到學(xué)生信息管理的基本功能在本報(bào)告中都有相應(yīng)的描述。第一章 緒論1.1 設(shè)計(jì)目的本課程設(shè)計(jì)的目的是使學(xué)生能熟練掌握簡(jiǎn)單的簡(jiǎn)單windows窗體應(yīng)用程序的設(shè)計(jì)和ado.net的應(yīng)用,希望通過本次課程設(shè)計(jì)鍛煉學(xué)生使用c#語言解決實(shí)際問題的能力。1.2 開發(fā)工具選擇本系統(tǒng)后臺(tái)數(shù)據(jù)庫采用microsoft sql server 數(shù)據(jù)庫,該數(shù)據(jù)庫系統(tǒng)在安全性、準(zhǔn)確

4、性和運(yùn)行速度方面有絕對(duì)的優(yōu)勢(shì),并且處理數(shù)據(jù)量大,效率高;前臺(tái)采用microsoft 公司的visual studio 2008作為主要開發(fā)工具,可與sql server 2005數(shù)據(jù)庫無縫鏈接。1.3 開發(fā)環(huán)境系統(tǒng)開發(fā)平臺(tái):microsoft visual studio2005系統(tǒng)開發(fā)語言:c#數(shù)據(jù)庫管理軟件:sql server 20051.4 本報(bào)告的主要內(nèi)容本報(bào)告詳細(xì)的介紹了學(xué)生信息管理系統(tǒng)的開發(fā)過程,主要涉及到的工作如下:系統(tǒng)的需求分析、系統(tǒng)的總體設(shè)計(jì)、系統(tǒng)的概念設(shè)計(jì)、系統(tǒng)各模塊的詳細(xì)設(shè)計(jì)、系統(tǒng)運(yùn)行與測(cè)試。第二章 需求分析2.1系統(tǒng)需求簡(jiǎn)介2.1.1系統(tǒng)目標(biāo)(1) 根據(jù)查詢條件實(shí)現(xiàn)學(xué)生

5、信息的查詢(2) 學(xué)生選課信息查詢、成績(jī)信息的查詢(3) 學(xué)生信息、課程信息、成績(jī)信息的增加、刪除、修改(4) 對(duì)基本信息完成增加、刪除、修改時(shí),需注意表與表之間的關(guān)聯(lián)2.1.2功能需求分析本系統(tǒng)的功能需求分析如下:(1) 學(xué)生信息查詢:學(xué)生可以根據(jù)學(xué)號(hào)、姓名、專業(yè)進(jìn)行查詢.(2) 學(xué)生信息管理:主要是用于學(xué)生信息更新、插入、刪除;(3) 學(xué)生成績(jī)錄入:用于學(xué)生成績(jī)管理,錄入學(xué)生成績(jī),也可以更新;2.1.3性能需求分析(1) 登錄、用戶界面需求:簡(jiǎn)潔、易懂、易用、友好的用戶界面。(2) 安全保密性需求:只有憑借用戶名和密碼登陸系統(tǒng),才能進(jìn)行信息的管理等。第三章 總體設(shè)計(jì)3.1設(shè)計(jì)概述根據(jù)需求把

6、整個(gè)系統(tǒng)分化成不同的模塊,每個(gè)模塊完成一個(gè)特定的子功能。把這些模塊結(jié)合起來組成一個(gè)整體。逐一實(shí)現(xiàn)各個(gè)功能;3.2系統(tǒng)總體結(jié)構(gòu)及功能模塊劃分學(xué)生成績(jī)錄入學(xué)生信息管理學(xué)生信息管理系統(tǒng)學(xué)生信息查詢經(jīng)過對(duì)系統(tǒng)的需求分析,學(xué)生信息管理系統(tǒng)主要?jiǎng)澐譃槿齻€(gè)部分:學(xué)生信息查詢,學(xué)生信息管理,學(xué)生成績(jī)錄入三個(gè)功能模塊。如圖3.2.1 系統(tǒng)的總體結(jié)構(gòu)。圖3.2.1 系統(tǒng)的總體結(jié)構(gòu)3.2.1學(xué)生信息查詢模塊學(xué)生信息查詢學(xué)號(hào)查詢姓名查詢學(xué)生信息查詢:學(xué)生可以根據(jù)學(xué)號(hào)、姓名、專業(yè)進(jìn)行查詢。如圖3.2.2學(xué)生信息查詢模塊結(jié)構(gòu)。圖3.2.2 學(xué)生信息管理模塊結(jié)構(gòu)3.2.2學(xué)生信息管理模塊基本信息錄入成績(jī)錄入基本信息更新成績(jī)

7、更新學(xué)生信息刪除學(xué)生信息錄入學(xué)生信息管理學(xué)生信息更新學(xué)生信息管理:主要是用于學(xué)生信息更新、插入、刪除,如圖3.2.3學(xué)生管理模塊結(jié)構(gòu)。圖3.2.3 學(xué)生信息管理模塊結(jié)構(gòu)3.3系統(tǒng)數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)根據(jù)對(duì)數(shù)據(jù)項(xiàng)與數(shù)據(jù)結(jié)構(gòu)的分析,設(shè)計(jì)出能夠滿足系統(tǒng)需求的各種實(shí)體,及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。3.3.1系統(tǒng)e-r圖系統(tǒng)e-r圖可以將各個(gè)實(shí)體之間的關(guān)系顯示出來,將各個(gè)實(shí)體間的屬性依賴表示明白。如圖3.3.1系統(tǒng)e-r圖結(jié)構(gòu)。課程表成績(jī)學(xué)號(hào)課程號(hào)號(hào)成績(jī)表選課學(xué)生表學(xué)號(hào)姓名生日系名總成績(jī)備注性別學(xué)分學(xué)生人數(shù)開課時(shí)間課程名課程號(hào)考核圖3.3.1系統(tǒng)e-r圖結(jié)構(gòu)3.3.2系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì)綜

8、合以上分析,要實(shí)現(xiàn)上面的所有功能模塊,主要設(shè)計(jì)表如下: 表3.3.1 用戶表(usedata)表3.3.2成績(jī)表(sc)表3.3.3課程表 (c)表3.3.4學(xué)生表(s)3.4安全保密設(shè)計(jì)3.4.1用戶登錄安全性系統(tǒng)設(shè)計(jì)了登錄界面,每個(gè)合法用戶有用戶名及一個(gè)密碼,只有當(dāng)用戶輸入正確的用戶名及密碼組合后才能夠?qū)W(xué)生信息進(jìn)行操作。第四章 詳細(xì)設(shè)計(jì)4.1概述詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定應(yīng)該怎樣具體的實(shí)現(xiàn)所要求的系統(tǒng),也就是說,經(jīng)過這個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語言書寫的程序。4.2系統(tǒng)程序流程圖程序流程圖又稱為程序框圖,它是歷史悠

9、久使用最廣泛的描述軟件設(shè)計(jì)的方法。它可將整個(gè)程序的總體流程清楚明白的顯示出來。如圖4.2.1系統(tǒng)總流程圖結(jié)構(gòu)。圖4.2.1系統(tǒng)總體流程圖4.3系統(tǒng)主要功能模塊簡(jiǎn)介4.3.1系統(tǒng)登錄用戶憑借用戶名及密碼登錄,成功登錄后可對(duì)學(xué)生信息進(jìn)行操作。用戶界面如圖4.3.1 用戶登錄界面所示。圖4.3.1 用戶登錄界面4.3.2學(xué)生信息查詢模塊學(xué)生信息查詢:在程序主界面(如圖4.3.2 程序主界面)學(xué)生可以根據(jù)學(xué)號(hào)、姓名進(jìn)行查詢。學(xué)生也可以只用一種條件進(jìn)行信息查詢,也可以多個(gè)條件查詢。雙擊記錄任一單元格可顯示學(xué)生的更詳細(xì)信息(如圖4.3.3 詳細(xì)信息窗口)。圖4.3.2 程序主界面圖4.3.3 詳細(xì)信息窗口

10、4.3.3學(xué)生信息管理模塊學(xué)生信息管理:通過右擊程序主界面的相應(yīng)記錄彈出的上下文菜單(如圖4.3.4 上下文菜單)可對(duì)當(dāng)前選定學(xué)生信息進(jìn)行詳細(xì)信息查詢(如圖4.3.3 詳細(xì)信息窗口)、修改信息(如圖4.3.5 修改信息窗口)、刪除信息(如圖 4.3.6 刪除信息提示)。更新時(shí)如果輸入的學(xué)號(hào)不存在,可選擇是否添加學(xué)生信息。通過程序主界面的新建信息記錄可添加學(xué)生信息(如圖 4.3.7 添加信息窗口)。圖4.3.4 上下文菜單圖4.3.5 修改信息窗口圖4.3.6 刪除信息提示圖4.3.7 添加信息窗口第五章 主要功能模塊代碼5.1 公共類代碼設(shè)計(jì) namespace mysql public cl

11、ass mysql public string connectionstring = server=.sqlexpress;attachdbfilename=d:學(xué)習(xí)c#課程設(shè)計(jì)stuscoremansystemstuscoremansystemstuscomansys.mdf;integrated security=true;connect timeout=30;user instance=true; public string commondtext; public bool flag; /指示有條該條記錄 public system.data.dataview table; public

12、 void runsql() / 執(zhí)行查詢、刪除sql語句 using (sqlconnection connection = new sqlconnection(connectionstring) connection.open(); sqlcommand cmdquery = new sqlcommand(commondtext, connection); sqldataadapter sda = new sqldataadapter(commondtext, connection); dataset ds = new dataset(); sda.fill(ds); if (common

13、dtext.indexof(select) = 0) table = ds.tables0.defaultview; connection.close(); public bool getflag() /判斷是否有該條記錄 using (sqlconnection connection = new sqlconnection(connectionstring) connection.open(); sqlcommand cmdquery = new sqlcommand(commondtext, connection); sqldatareader reader = cmdquery.exec

14、utereader(); if (reader.read() flag = true; else flag = false; reader.close(); connection.close(); return flag; public string getcontent(string require,string sno) /獲取視圖表的的指定單元格內(nèi)容 try commondtext = select + require + from detail where 學(xué)號(hào)= + sno; if (require = up課程名稱) commondtext = select 課程名稱 from d

15、etail where 學(xué)號(hào)= + sno; if (require = up成績(jī)) commondtext = select 成績(jī) from detail where 學(xué)號(hào)= + sno; sqldataadapter sda = new sqldataadapter(commondtext, connectionstring); dataset ds = new dataset(); sda.fill(ds); string result=; if(require=課程名稱|require=成績(jī)) int i=new int(); for (i=0; i ds.tables0.rows.c

16、ount; i+) result = result+ds.tables0.rowsirequire.tostring()+n; else result=ds.tables0.rows0require.tostring().trim(); return result; catch return 無; public void update() /添加、更新語句 try using (sqlconnection connection = new sqlconnection(connectionstring) connection.open(); sqlcommand cmdinsert = new

17、sqlcommand(commondtext, connection); cmdinsert.executenonquery(); connection.close(); catch(exception ex) messagebox.show(ex.tostring(), 提示); 5.2 登錄界面代碼設(shè)計(jì) private void login_click(object sender, eventargs e) /用戶名及密碼組合判斷 if (username.text.tostring().trim() != & password.text.tostring().trim() != ) my

18、sql sql = new mysql(); mondtext = select * from userdata where username= + username.text.tostring().trim() + and password= + password.text.tostring().trim() + ; try bool temp = new bool(); temp = sql.getflag(); if (temp) this.visible = false; mainface main = new mainface(this); main.show(); c

19、atch(exception ex) messagebox.show(ex.tostring(),提示); else messagebox.show(請(qǐng)輸入用戶名和密碼,提示); 5.3 查詢模塊代碼設(shè)計(jì) private void btquery_click(object sender, eventargs e) mysql query=new mysql(); if (sninput.text.trim() = & snoinput.text.trim()!=) mondtext = select sno as 學(xué)號(hào),sn as 姓名,mn as 專業(yè)名稱,sex as 性

20、別,birday as 出生日期,ts as 總學(xué)分,com as 備注 from s where sno=+snoinput.text.trim()+; if (sninput.text.trim() != & snoinput.text.trim() = ) mondtext = select sno as 學(xué)號(hào),sn as 姓名,mn as 專業(yè)名稱,sex as 性別,birday as 出生日期,ts as 總學(xué)分,com as 備注 from s where sn= +sninput.text.trim()+ ; if (sninput.text.trim() !

21、= & snoinput.text.trim() != ) mondtext = select sno as 學(xué)號(hào),sn as 姓名,mn as 專業(yè)名稱,sex as 性別,birday as 出生日期,ts as 總學(xué)分,com as 備注 from s where sn= + sninput.text.trim() + and sno= + snoinput.text.trim() + ; if (sninput.text.trim() = & snoinput.text.trim() = ) messagebox.show(您輸入的信息為空,請(qǐng)重新輸入!, 錯(cuò)誤信息)

22、; else if (query.getflag() query.runsql(); datagridview1.datasource = query.table; else messagebox.show(您查找的信息不存在, 錯(cuò)誤信息); 5.4 添加模塊代碼設(shè)計(jì) private void addbtok_click(object sender, eventargs e) if (addstuno.text.trim() != & addstuname.text.trim() != & addstumajor.text.trim()!=) mysql sql = new mysql();

23、mondtext = select cno from c where cn= + listmn.text.tostring().trim()+ ; sql.runsql(); string temp = sql.table.table.rows0cno.tostring(); string sextemp=radiobutton1.checked ? 男:女; string comtemp; if (addstucom.text.tostring().trim() = ) comtemp = ; else comtemp = addstucom.text.tostring().t

24、rim(); string birtemp= ; if (addstubir.text.tostring().trim() = ) comtemp = ; else birtemp = addstucom.text.tostring().trim(); mondtext = insert into s (sno,sn,mn,sex,birday,com) values( +addstuno.text.tostring().trim()+, +addstuname.text.tostring().trim()+, +addstumajor.text.tostring().trim(

25、)+, +sextemp+, +birtemp+, +comtemp+); sql.update(); if(score.text.tostring().trim()!=) mondtext = insert into sc(sno,cno,score) values (+addstuno.text.tostring().trim() +,+temp+,+score.text.tostring().trim()+); sql.update(); this.close(); else messagebox.show(學(xué)號(hào)、姓名和專業(yè)名稱都不可以為空!,錯(cuò)誤!); private v

26、oid addnew_load(object sender, eventargs e) /獲取專業(yè)列表 mysql sql = new mysql(); mondtext = select distinct cn from c; sqldataadapter sda = new sqldataadapter(mondtext, sql.connectionstring); dataset ds = new dataset(); sda.fill(ds); listmn.datasource = ds.tables0.defaultview; listmn.displ

27、aymember = cn; listmn.displaymember = listmn.displaymember.tostring().trim(); 5.5 更新模塊代碼設(shè)計(jì) private void upbtok_click(object sender, eventargs e) mysql sql = new mysql(); mondtext = select 學(xué)號(hào) from detail where 學(xué)號(hào)=+upstuno.text.tostring().trim(); bool flagtemp = sql.getflag(); if (!flagtemp) /如

28、果表中無該條記錄,提示是否進(jìn)行添加新記錄操作 if (messagebox.show(查無當(dāng)前記錄,無法進(jìn)行更新操作!n是否進(jìn)行添加新記錄的操作?, 提示, messageboxbuttons.okcancel) = dialogresult.ok) if (upstuno.text.trim() != & upstuname.text.trim() != & upstumajor.text.trim() != ) mysql sqlme = new mysql(); mondtext = select cno from c where cn= + listmn.text.t

29、ostring().trim() + ; sqlme.runsql(); string temp = sqlme.table.table.rows0cno.tostring();/課程號(hào) string sextemp = radiobutton1.checked ? 男 : 女; string comtemp; if (upstucom.text.tostring().trim() = ) comtemp = ; else comtemp = upstucom.text.tostring().trim(); string birtemp; if (upstubir.text.tostring(

30、).trim() = ) birtemp = ; else birtemp = upstucom.text.tostring().trim(); mondtext = insert into s (sno,sn,mn,sex,birday,com) values( + upstuno.text.tostring().trim() + , + upstuname.text.tostring().trim() + , + upstumajor.text.tostring().trim() + , + sextemp + , + birtemp + , + comtemp + );

31、 sqlme.update(); if (upstuscore.text.tostring().trim() != ) mondtext = insert into sc(sno,cno,score) values ( + upstuno.text.tostring().trim() + , + temp + , + upstuscore.text.tostring().trim() + ); sqlme.update(); this.close(); else messagebox.show(學(xué)號(hào)、姓名和專業(yè)名稱都不可以為空!, 錯(cuò)誤!); else if (upstuno

32、.text.trim() != & upstuname.text.trim() != & upstumajor.text.trim() != ) mondtext = select cno from c where cn= + listmn.text.tostring().trim() + ; sql.runsql(); string temp = sql.table.table.rows0cno.tostring();/獲取課程號(hào) string sextemp = radiobutton1.checked ? 男 : 女; string comtemp; if(upstucom

33、.text.tostring().trim()=) comtemp= ; else comtemp=upstucom.text.tostring().trim(); string birtemp; if (upstubir.text.tostring().trim() = ) birtemp = ; else birtemp = upstubir.text.tostring().trim(); mondtext = update s set sn= + upstuname.text.tostring().trim() + ,mn= +upstumajor.text.tostrin

34、g().trim()+,sex= +sextemp+,birday= + upstubir.text.tostring().trim() + ,com= +comtemp+ where sno=+upstuno.text.tostring().trim(); sql.update(); bool scflag = new bool(); if (upstuscore.text.tostring().trim() != ) try mysql sctemp = new mysql(); sctmondtext = select cno from c where cn= + list

35、mn.text.tostring().trim() + ; sctemp.runsql(); string cntemp = sctemp.table.table.rows0cno.tostring();/獲取課程號(hào) sctmondtext = select sno from sc where sno= + upstuno.text.tostring().trim() + and cno= + cntemp; scflag = sctemp.getflag(); if (scflag) mondtext = update sc set score= + upstuscore.text.tostring().trim() + where sno= + upstuno.text.tostring().trim() + and cno= + temp; sql.update(); catch

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論