C學生成績管理(整理)_第1頁
C學生成績管理(整理)_第2頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C#程序設計 課程設計報告(20122013學年 第2學期)題目:學生成績信息管理系統專業(yè):計算機應用班級:11 計應姓名學號:1102040027指導教師:成績:2012年12月17日目錄摘 要 1第一章緒論 11.1 設計目的 11.2 開發(fā)工具選擇 11.3 開發(fā)環(huán)境 11.4 本報告的主要內容2第二章需求分析 22.1 系統需求簡介 22.1.1 系統目標 22.1.2 功能需求分析 22.1.3 性能需求分析 2第三章總體設計 33.1 設計概述 33.2 系統總體結構及功能模塊劃分33.2.1 學生信息查詢模塊33.2.2學生信息管理模塊 33.3 系統數據庫概念結構設計 33.3

2、.1系統 E-R 圖 33.3.2系統數據庫的設計 43.4 安全保密設計 43.4.1 用戶登錄安全性 4 第四章 詳細設計 44.1 概述 44.2 系統程序流程圖 44.3 系統主要功能模塊簡介 54.3.1 系統登錄 54.3.2 學生信息查詢模塊 54.3.3 學生信息管理模塊 5第五章 主要功能模塊代碼 65.1 公共類代碼設計 65.2 登錄界面代碼設計 85.3 查詢模塊代碼設計 95.4 添加模塊代碼設計 95.5 更新模塊代碼設計 115.6 刪除模塊代碼設計 13 第六章 課程設計心得 14 第七章 設計日志 15C#學生成績管理系統摘要本文描述的是基于Windows環(huán)境

3、的學生信息管理系統,主要功能模塊包 括:學生信查詢,學生信息管理,學生成績錄入,主要工具Microsoft Visual Studio 2010設計窗體,SQLserver2005建立數據庫,實現學校信息管理的各個 功能。本篇報告介紹一個學生信息管理系統的從分析到設計最后到開發(fā)的全過程 為,給出了學生信息管理系統的設計和技術實現的過程,特別在細節(jié)上分析功 能和函數的實現思想。涉及到學生信息管理的基本功能在本報告中都有相應的 描述。第一章緒 論1.1 設計目的本課程設計的目的是使學生能熟練掌握簡單的簡單Win dows窗體應用程序 的設計和ADO.net的應用,希望通過本次課程設計鍛煉學生使用C

4、#語言解決實 際問題的能力。1.2 開發(fā)工具選擇本系統后臺數據庫采用 Microsoft SQL Server 數據庫,該數據庫系統在安全性、準確性 和運行速度方面有絕對的優(yōu)勢,并且處理數據量大,效率高;前臺采用 Microsoft 公司的 Visual Studio 2005作為主要開發(fā)工具,可與 SQL Server 2005 數據庫無縫鏈接。1.3 開發(fā)環(huán)境系統開發(fā)平臺: Microsoft Visual Studio2005 系統開發(fā)語言: C#數據庫管理軟件: SQL Server 20051.4 本報告的主要內容本報告詳細的介紹了學生信息管理系統的開發(fā)過程,主要涉及到的工作如 下:

5、系統的需求分析、系統的總體設計、系統的概念設計、系統各模塊的詳細 設計、系統運行與測試。第二章需求分析2.1 系統需求簡介2.1.1系統目標(1)根據查詢條件實現學生信息的查詢(2)學生選課信息查詢、成績信息的查詢(3)學生信息、課程信息、成績信息的增加、刪除、修改(4)對基本信息完成增加、刪除、修改時,需注意表與表之間的關聯2.1.2功能需求分析本系統的功能需求分析如下:(1)學生信息查詢:學生可以根據學號、姓名、專業(yè)進行查詢.(2)學生信息管理:主要是用于學生信息更新、插入、刪除;(3)學生成績錄入:用于學生成績管理,錄入學生成績,也可以更 新;2.1.3性能需求分析(1)登錄、用戶界面需

6、求:簡潔、易懂、易用、友好的用戶界面。(2)安全保密性需求:只有憑借用戶名和密碼登陸系統,才能進行信息的管 理等。第三章總體設計3.1 設計概述根據需求把整個系統分化成不同的模塊,每個模塊完成一個特定的子功能。把這些模塊結合起來組成一個整體。逐一實現各個功能;3.2 系統總體結構及功能模塊劃分經過對系統的需求分析,學生信息管理系統主要劃分為三個部分:學生信息查詢,學生信息管理,學生成績錄入三個功能模塊。如圖3.2.1系統的總體結構。圖學2生系息的3.2.1學生信息查詢模塊圖3.3學生信息管理模塊結構系統.E-R圖可以將各個實體之間的關系顯示出來,將各個實體間的屬性依學生信息查詢學學生可以根據學

7、信息查詢模塊結。生信息學、|姓名、 專業(yè)進行查詢 生圖3.2.2學生信息管理模塊結構3.2.2學生信息管理模塊 學生信息管管理模塊結構。日,用于學R理息是學學 生成 績錄 刪除,如圖。如圖3.2.2學生3.2.3學生3.3系統數據庫概念結構設生殳學生根據對數據項與數據結構的分信,學生設計出能夠滿足系統需求的各種實體,息勺關系3.3.1系統E新及它們之間白,為后面的邏輯結構設計打下基礎入息 。刪除和、插入、姓王要號學生信息管理名 查查1系統E-R成績錄結構基本信賴表示明白成 績昵基本信3學號入成績表圖33.系名學號新3.3.2系統數據庫的設計綜合以上分析,要實現上面的所有功能模塊,主要設計表如下

8、:表3.3.1用戶表(usedata)表3.3.2成績表(SC)表3.3.3課程表 (C)表3.3.4學生表(S)3.4 安全保密設計3.4.1用戶登錄安全性 系統設計了登錄界面,每個合法用戶有用戶名及一個密碼,只有當用戶輸入正確的用戶名及密碼組合后才能夠對學生信息進行操作。第四章詳細設計4.1 概述詳細設計階段的根本目標是確定應該怎樣具體的實現所要求的系統,也就 是說,經過這個階段的設計工作,應該得出目標系統的精確描述,從而在編碼 階段可以把這個描述直接翻譯成用某種程序設計語言書寫的程序。4.2 系統程序流程圖程序流程圖又稱為程序框圖,它是歷史悠久使用最廣泛的描述軟件設計的 方法。它可將整個

9、程序的總體流程清楚明白的顯示出來。如圖4.2.1系統總流 程圖結構。圖4.2.1系統總體流程圖4.3 系統主要功能模塊簡介4.3.1系統登錄 用戶憑借用戶名及密碼登錄,成功登錄后可對學生信息進行操作。用戶界面 如圖4.3.1用戶登錄界面所示。圖4.3.1用戶登錄界面4.3.2學生信息查詢模塊學生信息查詢:在程序主界面(如圖4.3.2程序主界面)學生可以根據學 號、姓名進行查詢。學生也可以只用一種條件進行信息查詢,也可以多個條件 查詢。雙擊記錄任一單元格可顯示學生的更詳細信息(如圖4.3.3詳細信息窗 口)。圖4.3.2程序主界面圖4.3.3詳細信息窗口4.3.3學生信息管理模塊學生信息管理:通

10、過右擊程序主界面的相應記錄彈出的上下文菜單(如圖4.3.4上下文菜單)可對當前選定學生信息進行詳細信息查詢(如圖4.3.3詳細信息窗口)、 修改信息(如圖4.3.5修改信息窗口)、刪除信息(如圖4.3.6刪除信息提示)。更新 時如果輸入的學號不存在, 可選擇是否添加學生信息。 通過程序主界面的新建 信息記錄可添加學生信息 (如圖4.3.7添加信息窗口)。圖4.3.4上下文菜單圖 4.3.5 修改信息窗口圖4.3.6刪除信息提示圖4.3.7添加信息窗口第五章主要功能模塊代碼5.1 公共類代碼設計namespace MySqlpublic class mySqlpublic String conn

11、ectionString = SERVER=.SQLEXPRESS 。學習 課程設計 StuScoreManSystemStuScoreManSystemStuScoManSys.mdf 。 IntegratedSecurity=True 。 Connect Timeout=30 。 User Instance=True。 。public String commondText 。public bool flag 。 / 指示有條該條記錄public System.Data.DataView table 。public void runSql() / 執(zhí)行查詢、刪除 SQL 語句using (S

12、qlConnection 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 (commondText.IndexOf(SELECT) = 0)table = ds.Ta

13、bles0.DefaultView 。connection.Close() 。public bool getFlag() / 判斷是否有該條記錄using (SqlConnection connection = new SqlConnection(connectionString) connection.Open() 。 SqlCommand cmdQuery = new SqlCommand(commondText,connection) 。 SqlDataReader reader = cmdQuery.ExecuteReader() 。if (reader.Read() flag = t

14、rue 。 else flag = false 。reader.Close()。 connection.Close() 。return flag 。public String getContent(String require,String SNO) / 獲取視圖表的的指定單元格內容trycommondText = SELECT + require + FROM detail WHERE 學號 = + SNO 。if (require= up 課程名稱 )commondText = SELECT 課程名稱 FROM detail WHERE 學號 = + SNO 。 if (require=

15、up 成績 )commondText = SELECT 成績 FROM detail WHERE 學號 = + SNO 。 SqlDataAdaptersda = new SqlDataAdapter(commondText, connectionString) 。 DataSet ds = newDataSet() 。sda.Fill(ds) 。String result= 。 if(require= 課程名稱 |require= 成績 )int i=new int() 。for (i=0 。 i ds.Tables0.Rows.Count 。 i+)result = result+ds.T

16、ables0.Rowsirequire.ToString()+n 。else result=ds.Tables0.Rows0require.ToString().Trim() 。 return result 。catchreturn 無 。public void update()/ 添加、更新語句tryusing (SqlConnection connection = new SqlConnection(connectionString)connection.Open() 。SqlCommand cmdInsert = new SqlCommand(commondText, connectio

17、n) 。cmdInsert.ExecuteNonQuery() 。connection.Close() 。catch(Exception ex)MessageBox.Show(ex.ToString(), 提示 ) 。5.2 登錄界面代碼設計private void login_Click(object sender, EventArgs e)/ 用戶名及密碼組合判斷if (username.Text.ToString().Trim() != & password.Text.ToString().Trim() != )mySql sql = new mySql() 。mondText

18、= SELECT * FROM userdata WHERE USERNAME= +username.Text.ToString().Trim() + AND PASSWORD= + password.Text.ToString().Trim() +nin 。trybool temp = new bool() 。temp = sql.getFlag() 。if (temp)this.Visible = false 。mainface main = new mainface(this) 。main.Show() 。catch(Exception ex)MessageBox.Show(ex.ToS

19、tring(), 提示 ) 。elseMessageBox.Show( 請輸入用戶名和密碼 , 提示 ) 。5.3 查詢模塊代碼設計private void btQuery_Click(object sender, EventArgs e)mySql query=new mySql() 。if (sNInput.Text.Trim() = & sNoinput.Text.Trim()!=) mondText = SELECT SNOAS 學號,SN AS 姓名,MN AS 專業(yè)名稱,SEX AS 性別,BIRDAY AS 出生日 期,TS AS 總學分,COM AS備注 FROM S

20、WHERE SNO=+sNoinput.Text.Trim()+。if (sNInput.Text.Trim() != & sNoinput.Text.Trim() = ) mondText = SELECTSNO AS學號,SN AS姓名,MN AS專業(yè)名稱,SEX AS性別,BIRDAY AS出生日 期,TS AS 總學分,COM AS備注 FROM S WHERE SN= +sNInput.Text.Trim()+ ”。if (sNInput.Text.Trim() != & sNoinput.Text.Trim() != ) mondText = SELECTSNO A

21、S學號,SN AS姓名,MN AS專業(yè)名稱,SEX AS性別,BIRDAY AS出生日 期,TS AS 總學分,COM AS備注 FROM S WHERE SN= + sNInput.Text.Trim() + and SNO= + sNoinput.Text.Trim() + 。if (sNInput.Text.Trim() = & sNoinput.Text.Trim() = ) MessageBox.Show(您輸入的信息為空,請重新輸入! , 錯誤信息 )。elseif (query.getFlag()query.runSql() 。dataGridView1.DataSour

22、ce = query.table 。else MessageBox.Show( 您查找的信息不存在 , 錯誤信息 )。5.4 添加模塊代碼設計private void addbtOK_Click(object sender, EventArgs e)if (addStuNo.Text.Trim() !=& addStuName.Text.Trim() !=&addStuMajor.Text.Trim()!=)mySql sql = new mySql() 。mondText = SELECT CNO FROM C WHERE CN= +listmn.Text.ToString(

23、).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().Trim() 。String birTemp= 。if (addStuBir.Text.ToString().Trim() = )comTemp

24、 = 。else birTemp = addStuCom.Text.ToString().Trim() 。mondText = INSERT INTO S (SNO,SN,MN,SEX,BIRDAY ,COM) V ALUES(+addStuNo.Text.ToString().Trim()+,+addStuName.Text.ToString().Trim()+,+addStuMajor.Text.ToString().Trim()+,+sexTemp+,+birTemp+,+comTemp+) 。 。sql.update() 。if(score.Text.ToString().Trim()

25、!=)mondText = INSERT INTO SC(SNO,CNO,SCORE) VALUES(+addStuNo.Text.ToString().Trim()+,+temp+,+score.Text.ToString().Trim()+) 。 。sql.update() 。this.Close() 。elseMessageBox.Show( 學號、姓名和專業(yè)名稱都不可以為空!, 錯誤! ) 。private void AddNew_Load(object sender, EventArgs e)/ 獲取專業(yè)列表mySql sql = new mySql() 。mondText = SE

26、LECT DISTINCT CN FROM C 。SqlDataAdapter sda = new SqlDataAdapter(mondText, sql.connectionString) 。DataSet ds = new DataSet() 。sda.Fill(ds) 。listmn.DataSource = ds.Tables0.DefaultView 。listmn.DisplayMember = CN 。listmn.DisplayMember = listmn.DisplayMember.ToString().Trim() 。5.5 更新模塊代碼設計private void u

27、pbtOK_Click(object sender, EventArgs e)mySql sql = new mySql() 。mondText = SELECT 學 號 FROM detail WHERE 學 號=+upStuNo.Text.ToString().Trim() 。bool flagtemp = sql.getFlag() 。if (!flagtemp) / 如果表中無該條記錄,提示是否進行添加新記錄操作if (MessageBox.Show( 查無當前記錄, 無法進行更新操作!n 是否進行添加新記 錄的操作?, 提示 , MessageBoxButtons.OKCancel)

28、 = 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.ToString().Trim() + 。sqlme.runSql() 。String temp = sqlme.table.Table.Rows0CNO.ToString() 。 / 課程號String sexTemp

29、= radioButton1.Checked ? 男 : 女 。String comTemp 。if (upStuCom.Text.ToString().Trim() = ) comTemp = 。else comTemp = upStuCom.Text.ToString().Trim() 。String birTemp 。if (upStuBir.Text.ToString().Trim() = ) birTemp = 。else birTemp = upStuCom.Text.ToString().Trim() 。mondText = INSERT INTO S (SNO,SN,MN,SE

30、X,BIRDAY,COM) VALUES(+ upStuNo.Text.ToString().Trim() + ,+ upStuName.Text.ToString().Trim() + ,+ upStuMajor.Text.ToString().Trim() + ,+ sexTemp + ,+ birTemp + ,+ comTemp + ) 。 。sqlme.update() 。if (upStuScore.Text.ToString().Trim() != ) mondText = INSERT INTO SC(SNO,CNO,SCORE) V ALUES ( +upStuNo.Text

31、.ToString().Trim()+ , + temp + , + upStuScore.Text.ToString().Trim() + ) 。 。sqlme.update() 。this.Close() 。elseMessageBox.Show( 學號、姓名和專業(yè)名稱都不可以為空!, 錯誤! )。elseif (upStuNo.Text.Trim() != & upStuName.Text.Trim() != & upStuMajor.Text.Trim() !=)mondText = SELECT CNO FROM C WHERE CN= +listmn.Text.To

32、String().Trim() + 。sql.runSql() 。String temp = sql.table.Table.Rows0CNO.ToString() 。 /獲取課程號String sexTemp = radioButton1.Checked ? 男 : 女 。String comTemp 。 if(upStuCom.Text.ToString().Trim()=) comTemp= 。else comTemp=upStuCom.Text.ToString().Trim() 。String birTemp 。if (upStuBir.Text.ToString().Trim()

33、= ) birTemp = 。else birTemp = upStuBir.Text.ToString().Trim() 。 mondText = UPDA TE S SETSN= + upStuName.Text.ToString().Trim() + ,MN=+upStuMajor.Text.ToString().Trim()+,SEX= +sexTemp+,BIRDAY=+ upStuBir.Text.ToString().Trim() + ,COM= +comTemp+ WHERESNO=+upStuNo.Text.ToString().Trim() 。 sql.update() 。

34、bool scFlag = new bool() 。if (upStuScore.Text.ToString().Trim() != )trymySql scTemp = new mySql() 。scTmondText = SELECT CNO FROM C WHERE CN= +listmn.Text.ToString().Trim() + 。scTemp.runSql() 。String cntemp = scTemp.table.Table.Rows0CNO.ToString() 。 / 獲取課程 號scTmondText = SELECT SNO FROM SC WHERE SNO= +upStuNo.Text.ToString().Trim() + AND CNO= + cntemp 。scFlag = scTemp.getFlag() 。if (scFlag)mondText = UPDA TE SC SET SCORE= +upStuScore.Text.ToString().Trim() + WHERE SNO= + upStuNo.Text.ToString().Trim() + ANDCNO= + temp 。sql.update() 。catch mondText = I

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論