C課程設(shè)計(jì)報(bào)告書.doc
1 2020 年 4 月 19 日 C 課程設(shè)計(jì)報(bào)告書 文檔僅供參考 2 2020 年 4 月 19 日 附件 4:課程設(shè)計(jì)報(bào)告書 面向?qū)ο蠓椒▽W(xué) 課 程 設(shè) 計(jì) 報(bào) 告 設(shè)計(jì)題目:學(xué)生信息管理系統(tǒng)課程 班 級(jí):13軟件工程1班 學(xué) 號(hào):0*姓 名:何*指導(dǎo)教師:莊*老師 設(shè)計(jì)時(shí)間:12 月 文檔僅供參考 3 2020 年 4 月 19 日 摘 要 本文描述的是基于 Windows 環(huán)境的學(xué)生信息管理系統(tǒng),主要功能模塊包括:學(xué)生信息的增刪改查,學(xué)生課程的增刪改查,學(xué)生成績的增刪改查,用戶的增刪改查。所用體系構(gòu)架 Client/Server結(jié)構(gòu)。主要工具 Microsoft Visual Studio 設(shè)計(jì)窗體,MYSQL 建立數(shù)據(jù)庫,實(shí)現(xiàn)學(xué)生信息管理的各個(gè)功能。運(yùn)用語言 C#與 sql 語法編程。本篇報(bào)告介紹一個(gè)學(xué)生信息管理系統(tǒng)的從分析到設(shè)計(jì)最后到開發(fā)的全過程為,給出了學(xué)生信息管理系統(tǒng)的設(shè)計(jì)和技術(shù)實(shí)現(xiàn)的過程,特別在細(xì)節(jié)上分析功能和函數(shù)的實(shí)現(xiàn)思想。關(guān)鍵詞:面向?qū)ο?,學(xué)生信息管理系統(tǒng),Win7,MYSQL,VS ,C/S This article describes the Windows environment based student information management system,the main function modules include:Additions and deletions to change search student information,additions and deletions to change search student curriculum,student achievement CRUD user CRUD.The system architecture Client/Server structure.The main tool for Microsoft Visual Studio design form,MYSQL 文檔僅供參考 4 2020 年 4 月 19 日 database was established to achieve the various functions of the student information management.Sql syntax and use of C#programming language.This report describes a student information management system from analysis to design and finally to the whole process of development,the process gives the student information management system design and technology,in particular,to achieve ideological analysis functions and functions in detail.Keywords:object oriented,student information management system,Win7,MYSQL,VS ,C/S 目 錄 摘 要.3 緒 論.6 1.1 設(shè)計(jì)目的.6 1.2 開發(fā)工具選擇.6 1.3 開發(fā)環(huán)境.7 1.4 本報(bào)告的主要內(nèi)容.7 需求分析.8 2.1 系統(tǒng)需求簡介.8 2.1.1 系統(tǒng)目標(biāo).8 2.1.2 功能需求分析.8 文檔僅供參考 5 2020 年 4 月 19 日 2.1.3 性能需求分析.9 總體設(shè)計(jì).9 3.1 設(shè)計(jì)概述.9 3.2 系統(tǒng)總體結(jié)構(gòu)及功能模塊劃分.9 3.2.1 學(xué)生信息管理模塊.10 3.2.2 學(xué)生課程管理模塊.11 3.2.3 學(xué)生成績管理模塊.11 3.2.4 系統(tǒng)用戶管理模塊.12 3.3 系統(tǒng)數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì).12 3.3.1 系統(tǒng) E-R 圖.13 3.3.2 系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì).13 3.4 安全保密設(shè)計(jì).15 3.4.1 用戶登錄安全性.15 詳細(xì)設(shè)計(jì).15 4.1 概述.15 4.2 系統(tǒng)程序流程圖.15 4.3 系統(tǒng)主要功能模塊簡介.16 4.3.1 系統(tǒng)登錄.16 4.3.2 學(xué)生信息管理模塊.17 4.3.3 學(xué)生課程管理模塊.20 4.3.4 學(xué)生成績管理模塊.21 4.3.5 系統(tǒng)用戶管理模塊.23 文檔僅供參考 6 2020 年 4 月 19 日 4.3.6 版權(quán)關(guān)于.25 主要功能模塊代碼.26 5.1 登錄界面代碼設(shè)計(jì).26 5.2 主頁面代碼.33 5.3 系統(tǒng)用戶管理模塊代碼設(shè)計(jì).51 5.4 課程信息管理模塊代碼設(shè)計(jì).61 5.5 成績信息管理模塊代碼設(shè)計(jì).72 總結(jié).85 參考文獻(xiàn).86 課程設(shè)計(jì)心得.86 緒 論 1.1 設(shè)計(jì)目的 本課程設(shè)計(jì)的目的是使學(xué)生能熟練掌握簡單的簡單 Windows窗體應(yīng)用程序的設(shè)計(jì)和 ADO.net 的應(yīng)用,希望經(jīng)過本次課程設(shè)計(jì)鍛煉學(xué)生使用 C#語言解決實(shí)際問題的能力。1.2 開發(fā)工具選擇 本系統(tǒng)后臺(tái)數(shù)據(jù)庫采用 MYSQL 數(shù)據(jù)庫,該數(shù)據(jù)庫系統(tǒng)在安全性、準(zhǔn)確性和運(yùn)行速度方面有絕正確優(yōu)勢,而且處理數(shù)據(jù)量大,效率高;前臺(tái)采用 Microsoft 公司的 Visual Studio 作為主文檔僅供參考 7 2020 年 4 月 19 日 要開發(fā)工具,可與 MYSQL 數(shù)據(jù)庫無縫鏈接。1.3 開發(fā)環(huán)境 開發(fā)系統(tǒng):Win7 系統(tǒng)開發(fā)平臺(tái):Microsoft Visual Studio 系統(tǒng)開發(fā)語言:C#數(shù)據(jù)庫管理軟件:MYSQL 1.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)行與測試。文檔僅供參考 8 2020 年 4 月 19 日 需求分析 2.1 系統(tǒng)需求簡介 2.1.1 系統(tǒng)目標(biāo) (1)根據(jù)查詢條件實(shí)現(xiàn)學(xué)生信息的查詢(2)學(xué)生選課信息查詢、成績信息和用戶信息的查詢(3)學(xué)生信息、課程信息、成績信息、用戶信息的增加、刪除、修改(4)對(duì)基本信息完成增加、刪除、修改時(shí),需注意表與表之間的關(guān)聯(lián) 2.1.2 功能需求分析 本系統(tǒng)的功能需求分析如下:(1)學(xué)生信息查詢:能夠根據(jù)學(xué)號(hào)進(jìn)行查詢.(2)學(xué)生信息管理:主要是用于學(xué)生信息添加、刪除、修改;(3)學(xué)生成績查詢:能夠根據(jù)學(xué)號(hào)進(jìn)行查詢.(4)學(xué)生成績管理:主要是用于學(xué)生成績添加、刪除、修改;(5)課程信息查詢:可根據(jù)菜單進(jìn)行查詢.(6)課程信息管理:主要是用于課程信息添加、刪除、修改;文檔僅供參考 9 2020 年 4 月 19 日(7)用戶信息查詢:可根據(jù)菜單進(jìn)行查詢.(8)用戶信息管理:主要是用于用戶信息添加、刪除、修改;2.1.3 性能需求分析 (1)登錄、用戶界面需求:簡潔、易懂、易用、友好的用戶界面。(2)安全保密性需求:只有憑借用戶名和密碼登陸系統(tǒng),只有管理員才能進(jìn)行信息的管理,非管理員只能查看信息??傮w設(shè)計(jì) 3.1 設(shè)計(jì)概述 根據(jù)需求把整個(gè)系統(tǒng)分化成不同的模塊,每個(gè)模塊完成一個(gè)特定的子功能。把這些模塊結(jié)合起來組成一個(gè)整體。逐一實(shí)現(xiàn)各個(gè)功能;3.2 系統(tǒng)總體結(jié)構(gòu)及功能模塊劃分 經(jīng)過對(duì)系統(tǒng)的需求分析,學(xué)生信息管理系統(tǒng)主要?jiǎng)澐譃槿齻€(gè)文檔僅供參考 10 2020 年 4 月 19 日 部分:學(xué)生信息查詢,學(xué)生信息管理,學(xué)生成績錄入三個(gè)功能模塊。如圖 3.2.0 系統(tǒng)的總體結(jié)構(gòu)。學(xué)生信息管理系統(tǒng)學(xué)生信息管理學(xué)生課程管理學(xué)生成績管理系統(tǒng)用戶管理 圖 3.2.0 系統(tǒng)的總體結(jié)構(gòu) 3.2.1 學(xué)生信息管理模塊 學(xué)生信息管理:主要是用于學(xué)生信息添加、刪除、修改,如圖 3.2.1 學(xué)生信息管理模塊結(jié)構(gòu)。學(xué)生信息管理模塊添加學(xué)生信息刪除學(xué)生信息修改學(xué)生信息 文檔僅供參考 11 2020 年 4 月 19 日 圖 3.2.1 3.2.2 學(xué)生課程管理模塊 學(xué)生課程管理:主要是用于學(xué)生課程添加、刪除、修改,如圖 3.2.2 學(xué)生課程管理模塊結(jié)構(gòu)。學(xué)生課程管理模塊添加課程信息刪除課程信息修改課程信息 圖 3.2.2 3.2.3 學(xué)生成績管理模塊 學(xué)生成績管理:主要是用于學(xué)生成績添加、刪除、修改,如圖 3.2.3 學(xué)生成績管理模塊結(jié)構(gòu)。文檔僅供參考 12 2020 年 4 月 19 日 學(xué)生成績管理模塊添加學(xué)生成績刪除學(xué)生成績修改學(xué)生成績 圖 3.2.3 3.2.4 系統(tǒng)用戶管理模塊 系統(tǒng)用戶管理:主要是用于系統(tǒng)用戶添加、刪除、修改,如圖 3.2.4 系統(tǒng)用戶管理模塊結(jié)構(gòu)。系統(tǒng)用戶管理模塊添加用戶刪除用戶修改用戶 圖 3.2.4 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ǔ)。文檔僅供參考 13 2020 年 4 月 19 日 3.3.1 系統(tǒng) E-R 圖 系統(tǒng) E-R 圖能夠?qū)⒏鱾€(gè)實(shí)體之間的關(guān)系顯示出來,將各個(gè)實(shí)體間的屬性依賴表示明白。如圖 3.3.1 系統(tǒng) E-R 圖結(jié)構(gòu)。學(xué)生表性別年齡院系姓名籍貫學(xué)號(hào)選課課程表課程ID課程名類型學(xué)分理論學(xué)時(shí)實(shí)驗(yàn)學(xué)時(shí)考核成績表學(xué)號(hào)課程名稱成績用戶表用戶名用戶密碼用戶類型 圖 3.3.1 系統(tǒng) E-R 圖結(jié)構(gòu) 3.3.2 系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì) 綜合以上分析,要實(shí)現(xiàn)上面的所有功能模塊,主要設(shè)計(jì)表如下:表 3.3.2.1 用戶表(user)文檔僅供參考 14 2020 年 4 月 19 日 表 3.3.2.2 成績表(grade)表 3.3.2.3 課程表(course)表 3.3.2.4 學(xué)生表(stu)3.3.3 數(shù)據(jù)庫的連接配置 先在項(xiàng)目中引用 MySQLDriverCS.dll 類添加 using MySQLDriverCS;文檔僅供參考 15 2020 年 4 月 19 日 MySQLConnection conn=new MySQLConnection(new MySQLConnectionString(數(shù)據(jù)庫名,Server 帳號(hào),密碼).AsString);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)程序流程圖 程序流程圖又稱為程序框圖,它是歷史悠久使用最廣泛的描述軟件設(shè)計(jì)的方法。它可將整個(gè)程序的總體流程清楚明白的顯示文檔僅供參考 16 2020 年 4 月 19 日 出來。如圖 4.2.1 系統(tǒng)總流程圖結(jié)構(gòu)。圖 4.2.1 系統(tǒng)總體流程圖 4.3 系統(tǒng)主要功能模塊簡介 4.3.1 系統(tǒng)登錄 用戶憑借用戶名及密碼登錄,成功登錄后可對(duì)學(xué)生信息進(jìn)行操作。用戶界面如圖 4.3.1 用戶登錄界面所示。文檔僅供參考 17 2020 年 4 月 19 日 圖 4.3.1 用戶登錄界面 4.3.2 學(xué)生信息管理模塊 學(xué)生信息管理:經(jīng)過程序主界面的添加學(xué)生信息按鈕可添加學(xué)生信息(如圖 4.3.2 添加信息窗口)。學(xué)生信息進(jìn)行詳細(xì)信息管理(如圖 4.3.3 信息管理)包括刪除信息(如圖 4.3.4 刪除信息提示)和修改信息(如圖 4.3.5 修改信息窗口)。文檔僅供參考 18 2020 年 4 月 19 日 圖 4.3.2 添加信息窗口 文檔僅供參考 19 2020 年 4 月 19 日 圖 4.3.3 信息管理 圖 4.3.4 刪除信息提示 圖 4.3.5 修改信息窗口 文檔僅供參考 20 2020 年 4 月 19 日 4.3.3 學(xué)生課程管理模塊 學(xué)生課程管理:經(jīng)過程序主界面的菜單-系統(tǒng)-課程管理 可添加課程信息(如圖 4.3.5 信息管理)和 詳細(xì)的課程管理(如圖 4.3.6 添加信息窗口)和(如圖 4.3.7 刪除信息提示)和(如圖4.3.8 修改信息窗口)。圖 4.3.5 信息管理 4.3.6 添加信息窗口 文檔僅供參考 21 2020 年 4 月 19 日 圖 4.3.7 刪除信息提示 圖 4.3.8 修改信息窗口 4.3.4 學(xué)生成績管理模塊 學(xué)生信息管理:選擇一行學(xué)生信息經(jīng)過程序主界面的查看-學(xué)生成績按鈕,查看該學(xué)生的成績信息(如圖 4.3.7 查看信息窗口)。查看后還能夠添加該學(xué)生的成績(如圖 4.3.8 添加信息窗口)、刪除該學(xué)生的成績(如圖 4.3.9 刪除提示窗口)和修改該文檔僅供參考 22 2020 年 4 月 19 日 學(xué)生的成績(如圖 4.3.10 修改信息窗口)圖 4.3.7 成績管理 4.3.8 添加信息窗口 文檔僅供參考 23 2020 年 4 月 19 日 圖 4.3.9 刪除提示窗口 圖 4.3.10 修改信息窗口 4.3.5 系統(tǒng)用戶管理模塊 系統(tǒng)用戶管理:經(jīng)過程序主界面的菜單-系統(tǒng)-用戶管理,查看該系統(tǒng)用戶的信息(如圖 4.3.11 查看信息窗口)。查看后還能夠添加該系統(tǒng)的用戶(如圖 4.3.12 添加信息窗口)、刪除該系統(tǒng)的用戶(如圖 4.3.13 刪除提示窗口)和修改該系統(tǒng)的用戶(如圖 4.3.14 修改信息窗口)文檔僅供參考 24 2020 年 4 月 19 日 4.3.11 查看信息窗口 圖 4.3.12 添加信息窗口 圖 4.3.13 刪除提示窗口 文檔僅供參考 25 2020 年 4 月 19 日 圖 4.3.14 修改信息窗口 4.3.6 版權(quán)關(guān)于 版權(quán)關(guān)于:圖 4.3.15 版權(quán)關(guān)于 圖 4.3.15 版權(quán)關(guān)于 文檔僅供參考 26 2020 年 4 月 19 日 主要功能模塊代碼 5.1 登錄界面代碼設(shè)計(jì) namespace SIMS_1 public partial class Log:Form String check=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;string check_4=;Random r=new Random();public Log()InitializeComponent();for(int i=0;i 4;i+)int n=r.Next(0,61);文檔僅供參考 27 2020 年 4 月 19 日 check_4+=+checkn;l_check.Text=check_4;private static String id,password,type;public static int Flag=1;String flag=;MySQLConnection con=new MySQLConnection(new MySQLConnectionString(students,root,123456).AsString);private void bt_log_Click(object sender,EventArgs e)try id=txt_id.Text.Trim();password=txt_password.Text.Trim();if(this.rb_log_Manager.Checked)type=管理員;文檔僅供參考 28 2020 年 4 月 19 日 if(this.rb_Log_Not_Manager.Checked)type=非管理員;/如果輸入的帳號(hào)和密碼與系統(tǒng)的帳號(hào)密碼一致就進(jìn)入本系統(tǒng) con.Open();MySQLCommand setformat=new MySQLCommand(set names gb2312,con);setformat.ExecuteNonQuery();setformat.Dispose();string sql=select*from user where 用戶名=+id+and 用戶密碼=+password+and 用戶類型=+type+;MySQLDataAdapter adapter=new MySQLDataAdapter(sql,con);DataSet set=new DataSet();adapter.Fill(set,user);文檔僅供參考 29 2020 年 4 月 19 日 this.dataView.DataSource=set.Tablesuser;int rowcount=dataView.RowCount-1;if(rowcount=1)try if(string.Compare(check_4,txt_check.Text,true)=0)MySQLCommand setformat1=new MySQLCommand(set names gb2312,con);setformat1.ExecuteNonQuery();setformat1.Dispose();string sql1=select 用戶類型 from user where 用戶名=+id+and 用戶密碼=+password+;MySQLDataAdapter adapter1=new MySQLDataAdapter(sql1,con);DataSet ds=new DataSet();adapter1.Fill(ds);DataRow dr=ds.Tables0.Rows0;/文檔僅供參考 30 2020 年 4 月 19 日 得到行數(shù)據(jù)集,實(shí)際是個(gè)數(shù)組 flag=dr.ItemArray0.ToString();con.Close();if(flag.Equals(非管理員)Flag=0;else Flag=1;Students s=new Students();s.Show();this.SetVisibleCore(false);else MessageBox.Show(驗(yàn)證碼錯(cuò)誤!);catch(MySQLException)文檔僅供參考 31 2020 年 4 月 19 日 MessageBox.Show(數(shù)據(jù)庫鏈接出錯(cuò)了);else MessageBox.Show(您輸入的帳號(hào)或密碼不正確或沒有選擇用戶類型,請(qǐng)重新輸入!,警告!,MessageBoxButtons.OK,MessageBoxIcon.Error);catch(System.IO.FileNotFoundException)MessageBox.Show(未找到數(shù)據(jù)庫!);private void bt_cancel_Click(object sender,EventArgs e)/詢問是否退出本系統(tǒng) if(MessageBox.Show(是否取消本次登錄?,確認(rèn),文檔僅供參考 32 2020 年 4 月 19 日 MessageBoxButtons.YesNo,MessageBoxIcon.Question)=DialogResult.Yes)Application.Exit();private void linkLabel1_LinkClicked(object sender,LinkLabelLinkClickedEventArgs e)registered_add r_add=new registered_add();r_add.Show();private void l_check_Click(object sender,EventArgs e)check_4=;for(int i=0;i 4;i+)int n=r.Next(0,61);check_4+=+checkn;文檔僅供參考 33 2020 年 4 月 19 日 l_check.Text=check_4;5.2 主頁面代碼 namespace SIMS_1 public partial class Students:Form public static MySQLConnection con=null;public Students()try InitializeComponent();con=new MySQLConnection(new MySQLConnectionString(students,root,123456).AsString);if(Log.Flag=0)this.bt_add.Hide();文檔僅供參考 34 2020 年 4 月 19 日 bt_delete.Hide();bt_change.Hide();catch(System.IO.FileNotFoundException)MessageBox.Show(未找到數(shù)據(jù)庫!);private void bt_searchAll_Click(object sender,EventArgs e)con.Open();MySQLCommand setformat=new MySQLCommand(set names gb2312,con);setformat.ExecuteNonQuery();setformat.Dispose();string sql1=select*from stu;MySQLDataAdapter adapter=new MySQLDataAdapter(sql1,con);DataSet set=new DataSet();adapter.Fill(set,stu);this.dataView.DataSource=set.Tables0;文檔僅供參考 35 2020 年 4 月 19 日 int rowcount=dataView.RowCount-1;MessageBox.Show(查找到+rowcount+個(gè)學(xué)生的信息!);if(rowcount=0)MessageBox.Show(您還未添加學(xué)生!);con.Close();private void bt_search_Click(object sender,EventArgs e)try Int64 id=Convert.ToInt64(txt_search.Text);con.Open();MySQLCommand setformat=new MySQLCommand(set names gb2312,con);setformat.ExecuteNonQuery();setformat.Dispose();String sql=select*from stu where 學(xué)號(hào)=+id+;文檔僅供參考 36 2020 年 4 月 19 日 MySQLDataAdapter adapter=new MySQLDataAdapter(sql,con);DataSet set=new DataSet();adapter.Fill(set,stu);dataView.DataSource=set.Tables0;int rowcount=dataView.RowCount-1;if(rowcount=0)MessageBox.Show(未找到您要查找的學(xué)號(hào)的學(xué)生!);con.Close();catch(FormatException)MessageBox.Show(輸入的學(xué)生學(xué)號(hào)格式有誤n 請(qǐng)重新輸入!,警告!,MessageBoxButtons.OK);文檔僅供參考 37 2020 年 4 月 19 日 private void bt_add_Click(object sender,EventArgs e)Add a=new Add();a.Show();private void bt_delete_Click(object sender,EventArgs e)try String id=dataView.SelectedRows0.Cells0.Value.ToString();if(MessageBox.Show(是否要?jiǎng)h除學(xué)號(hào)為:+id+的學(xué)生?,確認(rèn),MessageBoxButtons.YesNo,MessageBoxIcon.Question)=
編號(hào):41034739
類型:共享資源
大小:5.25MB
格式:DOC
上傳時(shí)間:2023-08-18
30
積分
積分
- 關(guān) 鍵 詞:
- 課程設(shè)計(jì) 報(bào)告書
- 資源描述:
-
1 2020 年 4 月 19 日 C 課程設(shè)計(jì)報(bào)告書 文檔僅供參考 2 2020 年 4 月 19 日 附件 4:課程設(shè)計(jì)報(bào)告書 面向?qū)ο蠓椒▽W(xué) 課 程 設(shè) 計(jì) 報(bào) 告 設(shè)計(jì)題目:學(xué)生信息管理系統(tǒng)課程 班 級(jí):13軟件工程1班 學(xué) 號(hào):0*姓 名:何*指導(dǎo)教師:莊*老師 設(shè)計(jì)時(shí)間:12 月 文檔僅供參考 3 2020 年 4 月 19 日 摘 要 本文描述的是基于 Windows 環(huán)境的學(xué)生信息管理系統(tǒng),主要功能模塊包括:學(xué)生信息的增刪改查,學(xué)生課程的增刪改查,學(xué)生成績的增刪改查,用戶的增刪改查。所用體系構(gòu)架 Client/Server結(jié)構(gòu)。主要工具 Microsoft Visual Studio 設(shè)計(jì)窗體,MYSQL 建立數(shù)據(jù)庫,實(shí)現(xiàn)學(xué)生信息管理的各個(gè)功能。運(yùn)用語言 C#與 sql 語法編程。本篇報(bào)告介紹一個(gè)學(xué)生信息管理系統(tǒng)的從分析到設(shè)計(jì)最后到開發(fā)的全過程為,給出了學(xué)生信息管理系統(tǒng)的設(shè)計(jì)和技術(shù)實(shí)現(xiàn)的過程,特別在細(xì)節(jié)上分析功能和函數(shù)的實(shí)現(xiàn)思想。關(guān)鍵詞:面向?qū)ο?,學(xué)生信息管理系統(tǒng),Win7,MYSQL,VS ,C/S This article describes the Windows environment based student information management system,the main function modules include:Additions and deletions to change search student information,additions and deletions to change search student curriculum,student achievement CRUD user CRUD.The system architecture Client/Server structure.The main tool for Microsoft Visual Studio design form,MYSQL 文檔僅供參考 4 2020 年 4 月 19 日 database was established to achieve the various functions of the student information management.Sql syntax and use of C#programming language.This report describes a student information management system from analysis to design and finally to the whole process of development,the process gives the student information management system design and technology,in particular,to achieve ideological analysis functions and functions in detail.Keywords:object oriented,student information management system,Win7,MYSQL,VS ,C/S 目 錄 摘 要.3 緒 論.6 1.1 設(shè)計(jì)目的.6 1.2 開發(fā)工具選擇.6 1.3 開發(fā)環(huán)境.7 1.4 本報(bào)告的主要內(nèi)容.7 需求分析.8 2.1 系統(tǒng)需求簡介.8 2.1.1 系統(tǒng)目標(biāo).8 2.1.2 功能需求分析.8 文檔僅供參考 5 2020 年 4 月 19 日 2.1.3 性能需求分析.9 總體設(shè)計(jì).9 3.1 設(shè)計(jì)概述.9 3.2 系統(tǒng)總體結(jié)構(gòu)及功能模塊劃分.9 3.2.1 學(xué)生信息管理模塊.10 3.2.2 學(xué)生課程管理模塊.11 3.2.3 學(xué)生成績管理模塊.11 3.2.4 系統(tǒng)用戶管理模塊.12 3.3 系統(tǒng)數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì).12 3.3.1 系統(tǒng) E-R 圖.13 3.3.2 系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì).13 3.4 安全保密設(shè)計(jì).15 3.4.1 用戶登錄安全性.15 詳細(xì)設(shè)計(jì).15 4.1 概述.15 4.2 系統(tǒng)程序流程圖.15 4.3 系統(tǒng)主要功能模塊簡介.16 4.3.1 系統(tǒng)登錄.16 4.3.2 學(xué)生信息管理模塊.17 4.3.3 學(xué)生課程管理模塊.20 4.3.4 學(xué)生成績管理模塊.21 4.3.5 系統(tǒng)用戶管理模塊.23 文檔僅供參考 6 2020 年 4 月 19 日 4.3.6 版權(quán)關(guān)于.25 主要功能模塊代碼.26 5.1 登錄界面代碼設(shè)計(jì).26 5.2 主頁面代碼.33 5.3 系統(tǒng)用戶管理模塊代碼設(shè)計(jì).51 5.4 課程信息管理模塊代碼設(shè)計(jì).61 5.5 成績信息管理模塊代碼設(shè)計(jì).72 總結(jié).85 參考文獻(xiàn).86 課程設(shè)計(jì)心得.86 緒 論 1.1 設(shè)計(jì)目的 本課程設(shè)計(jì)的目的是使學(xué)生能熟練掌握簡單的簡單 Windows窗體應(yīng)用程序的設(shè)計(jì)和 ADO.net 的應(yīng)用,希望經(jīng)過本次課程設(shè)計(jì)鍛煉學(xué)生使用 C#語言解決實(shí)際問題的能力。1.2 開發(fā)工具選擇 本系統(tǒng)后臺(tái)數(shù)據(jù)庫采用 MYSQL 數(shù)據(jù)庫,該數(shù)據(jù)庫系統(tǒng)在安全性、準(zhǔn)確性和運(yùn)行速度方面有絕正確優(yōu)勢,而且處理數(shù)據(jù)量大,效率高;前臺(tái)采用 Microsoft 公司的 Visual Studio 作為主文檔僅供參考 7 2020 年 4 月 19 日 要開發(fā)工具,可與 MYSQL 數(shù)據(jù)庫無縫鏈接。1.3 開發(fā)環(huán)境 開發(fā)系統(tǒng):Win7 系統(tǒng)開發(fā)平臺(tái):Microsoft Visual Studio 系統(tǒng)開發(fā)語言:C#數(shù)據(jù)庫管理軟件:MYSQL 1.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)行與測試。文檔僅供參考 8 2020 年 4 月 19 日 需求分析 2.1 系統(tǒng)需求簡介 2.1.1 系統(tǒng)目標(biāo) (1)根據(jù)查詢條件實(shí)現(xiàn)學(xué)生信息的查詢(2)學(xué)生選課信息查詢、成績信息和用戶信息的查詢(3)學(xué)生信息、課程信息、成績信息、用戶信息的增加、刪除、修改(4)對(duì)基本信息完成增加、刪除、修改時(shí),需注意表與表之間的關(guān)聯(lián) 2.1.2 功能需求分析 本系統(tǒng)的功能需求分析如下:(1)學(xué)生信息查詢:能夠根據(jù)學(xué)號(hào)進(jìn)行查詢.(2)學(xué)生信息管理:主要是用于學(xué)生信息添加、刪除、修改;(3)學(xué)生成績查詢:能夠根據(jù)學(xué)號(hào)進(jìn)行查詢.(4)學(xué)生成績管理:主要是用于學(xué)生成績添加、刪除、修改;(5)課程信息查詢:可根據(jù)菜單進(jìn)行查詢.(6)課程信息管理:主要是用于課程信息添加、刪除、修改;文檔僅供參考 9 2020 年 4 月 19 日(7)用戶信息查詢:可根據(jù)菜單進(jìn)行查詢.(8)用戶信息管理:主要是用于用戶信息添加、刪除、修改;2.1.3 性能需求分析 (1)登錄、用戶界面需求:簡潔、易懂、易用、友好的用戶界面。(2)安全保密性需求:只有憑借用戶名和密碼登陸系統(tǒng),只有管理員才能進(jìn)行信息的管理,非管理員只能查看信息??傮w設(shè)計(jì) 3.1 設(shè)計(jì)概述 根據(jù)需求把整個(gè)系統(tǒng)分化成不同的模塊,每個(gè)模塊完成一個(gè)特定的子功能。把這些模塊結(jié)合起來組成一個(gè)整體。逐一實(shí)現(xiàn)各個(gè)功能;3.2 系統(tǒng)總體結(jié)構(gòu)及功能模塊劃分 經(jīng)過對(duì)系統(tǒng)的需求分析,學(xué)生信息管理系統(tǒng)主要?jiǎng)澐譃槿齻€(gè)文檔僅供參考 10 2020 年 4 月 19 日 部分:學(xué)生信息查詢,學(xué)生信息管理,學(xué)生成績錄入三個(gè)功能模塊。如圖 3.2.0 系統(tǒng)的總體結(jié)構(gòu)。學(xué)生信息管理系統(tǒng)學(xué)生信息管理學(xué)生課程管理學(xué)生成績管理系統(tǒng)用戶管理 圖 3.2.0 系統(tǒng)的總體結(jié)構(gòu) 3.2.1 學(xué)生信息管理模塊 學(xué)生信息管理:主要是用于學(xué)生信息添加、刪除、修改,如圖 3.2.1 學(xué)生信息管理模塊結(jié)構(gòu)。學(xué)生信息管理模塊添加學(xué)生信息刪除學(xué)生信息修改學(xué)生信息 文檔僅供參考 11 2020 年 4 月 19 日 圖 3.2.1 3.2.2 學(xué)生課程管理模塊 學(xué)生課程管理:主要是用于學(xué)生課程添加、刪除、修改,如圖 3.2.2 學(xué)生課程管理模塊結(jié)構(gòu)。學(xué)生課程管理模塊添加課程信息刪除課程信息修改課程信息 圖 3.2.2 3.2.3 學(xué)生成績管理模塊 學(xué)生成績管理:主要是用于學(xué)生成績添加、刪除、修改,如圖 3.2.3 學(xué)生成績管理模塊結(jié)構(gòu)。文檔僅供參考 12 2020 年 4 月 19 日 學(xué)生成績管理模塊添加學(xué)生成績刪除學(xué)生成績修改學(xué)生成績 圖 3.2.3 3.2.4 系統(tǒng)用戶管理模塊 系統(tǒng)用戶管理:主要是用于系統(tǒng)用戶添加、刪除、修改,如圖 3.2.4 系統(tǒng)用戶管理模塊結(jié)構(gòu)。系統(tǒng)用戶管理模塊添加用戶刪除用戶修改用戶 圖 3.2.4 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ǔ)。文檔僅供參考 13 2020 年 4 月 19 日 3.3.1 系統(tǒng) E-R 圖 系統(tǒng) E-R 圖能夠?qū)⒏鱾€(gè)實(shí)體之間的關(guān)系顯示出來,將各個(gè)實(shí)體間的屬性依賴表示明白。如圖 3.3.1 系統(tǒng) E-R 圖結(jié)構(gòu)。學(xué)生表性別年齡院系姓名籍貫學(xué)號(hào)選課課程表課程ID課程名類型學(xué)分理論學(xué)時(shí)實(shí)驗(yàn)學(xué)時(shí)考核成績表學(xué)號(hào)課程名稱成績用戶表用戶名用戶密碼用戶類型 圖 3.3.1 系統(tǒng) E-R 圖結(jié)構(gòu) 3.3.2 系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì) 綜合以上分析,要實(shí)現(xiàn)上面的所有功能模塊,主要設(shè)計(jì)表如下:表 3.3.2.1 用戶表(user)文檔僅供參考 14 2020 年 4 月 19 日 表 3.3.2.2 成績表(grade)表 3.3.2.3 課程表(course)表 3.3.2.4 學(xué)生表(stu)3.3.3 數(shù)據(jù)庫的連接配置 先在項(xiàng)目中引用 MySQLDriverCS.dll 類添加 using MySQLDriverCS;文檔僅供參考 15 2020 年 4 月 19 日 MySQLConnection conn=new MySQLConnection(new MySQLConnectionString(數(shù)據(jù)庫名,Server 帳號(hào),密碼).AsString);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)程序流程圖 程序流程圖又稱為程序框圖,它是歷史悠久使用最廣泛的描述軟件設(shè)計(jì)的方法。它可將整個(gè)程序的總體流程清楚明白的顯示文檔僅供參考 16 2020 年 4 月 19 日 出來。如圖 4.2.1 系統(tǒng)總流程圖結(jié)構(gòu)。圖 4.2.1 系統(tǒng)總體流程圖 4.3 系統(tǒng)主要功能模塊簡介 4.3.1 系統(tǒng)登錄 用戶憑借用戶名及密碼登錄,成功登錄后可對(duì)學(xué)生信息進(jìn)行操作。用戶界面如圖 4.3.1 用戶登錄界面所示。文檔僅供參考 17 2020 年 4 月 19 日 圖 4.3.1 用戶登錄界面 4.3.2 學(xué)生信息管理模塊 學(xué)生信息管理:經(jīng)過程序主界面的添加學(xué)生信息按鈕可添加學(xué)生信息(如圖 4.3.2 添加信息窗口)。學(xué)生信息進(jìn)行詳細(xì)信息管理(如圖 4.3.3 信息管理)包括刪除信息(如圖 4.3.4 刪除信息提示)和修改信息(如圖 4.3.5 修改信息窗口)。文檔僅供參考 18 2020 年 4 月 19 日 圖 4.3.2 添加信息窗口 文檔僅供參考 19 2020 年 4 月 19 日 圖 4.3.3 信息管理 圖 4.3.4 刪除信息提示 圖 4.3.5 修改信息窗口 文檔僅供參考 20 2020 年 4 月 19 日 4.3.3 學(xué)生課程管理模塊 學(xué)生課程管理:經(jīng)過程序主界面的菜單-系統(tǒng)-課程管理 可添加課程信息(如圖 4.3.5 信息管理)和 詳細(xì)的課程管理(如圖 4.3.6 添加信息窗口)和(如圖 4.3.7 刪除信息提示)和(如圖4.3.8 修改信息窗口)。圖 4.3.5 信息管理 4.3.6 添加信息窗口 文檔僅供參考 21 2020 年 4 月 19 日 圖 4.3.7 刪除信息提示 圖 4.3.8 修改信息窗口 4.3.4 學(xué)生成績管理模塊 學(xué)生信息管理:選擇一行學(xué)生信息經(jīng)過程序主界面的查看-學(xué)生成績按鈕,查看該學(xué)生的成績信息(如圖 4.3.7 查看信息窗口)。查看后還能夠添加該學(xué)生的成績(如圖 4.3.8 添加信息窗口)、刪除該學(xué)生的成績(如圖 4.3.9 刪除提示窗口)和修改該文檔僅供參考 22 2020 年 4 月 19 日 學(xué)生的成績(如圖 4.3.10 修改信息窗口)圖 4.3.7 成績管理 4.3.8 添加信息窗口 文檔僅供參考 23 2020 年 4 月 19 日 圖 4.3.9 刪除提示窗口 圖 4.3.10 修改信息窗口 4.3.5 系統(tǒng)用戶管理模塊 系統(tǒng)用戶管理:經(jīng)過程序主界面的菜單-系統(tǒng)-用戶管理,查看該系統(tǒng)用戶的信息(如圖 4.3.11 查看信息窗口)。查看后還能夠添加該系統(tǒng)的用戶(如圖 4.3.12 添加信息窗口)、刪除該系統(tǒng)的用戶(如圖 4.3.13 刪除提示窗口)和修改該系統(tǒng)的用戶(如圖 4.3.14 修改信息窗口)文檔僅供參考 24 2020 年 4 月 19 日 4.3.11 查看信息窗口 圖 4.3.12 添加信息窗口 圖 4.3.13 刪除提示窗口 文檔僅供參考 25 2020 年 4 月 19 日 圖 4.3.14 修改信息窗口 4.3.6 版權(quán)關(guān)于 版權(quán)關(guān)于:圖 4.3.15 版權(quán)關(guān)于 圖 4.3.15 版權(quán)關(guān)于 文檔僅供參考 26 2020 年 4 月 19 日 主要功能模塊代碼 5.1 登錄界面代碼設(shè)計(jì) namespace SIMS_1 public partial class Log:Form String check=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;string check_4=;Random r=new Random();public Log()InitializeComponent();for(int i=0;i 4;i+)int n=r.Next(0,61);文檔僅供參考 27 2020 年 4 月 19 日 check_4+=+checkn;l_check.Text=check_4;private static String id,password,type;public static int Flag=1;String flag=;MySQLConnection con=new MySQLConnection(new MySQLConnectionString(students,root,123456).AsString);private void bt_log_Click(object sender,EventArgs e)try id=txt_id.Text.Trim();password=txt_password.Text.Trim();if(this.rb_log_Manager.Checked)type=管理員;文檔僅供參考 28 2020 年 4 月 19 日 if(this.rb_Log_Not_Manager.Checked)type=非管理員;/如果輸入的帳號(hào)和密碼與系統(tǒng)的帳號(hào)密碼一致就進(jìn)入本系統(tǒng) con.Open();MySQLCommand setformat=new MySQLCommand(set names gb2312,con);setformat.ExecuteNonQuery();setformat.Dispose();string sql=select*from user where 用戶名=+id+and 用戶密碼=+password+and 用戶類型=+type+;MySQLDataAdapter adapter=new MySQLDataAdapter(sql,con);DataSet set=new DataSet();adapter.Fill(set,user);文檔僅供參考 29 2020 年 4 月 19 日 this.dataView.DataSource=set.Tablesuser;int rowcount=dataView.RowCount-1;if(rowcount=1)try if(string.Compare(check_4,txt_check.Text,true)=0)MySQLCommand setformat1=new MySQLCommand(set names gb2312,con);setformat1.ExecuteNonQuery();setformat1.Dispose();string sql1=select 用戶類型 from user where 用戶名=+id+and 用戶密碼=+password+;MySQLDataAdapter adapter1=new MySQLDataAdapter(sql1,con);DataSet ds=new DataSet();adapter1.Fill(ds);DataRow dr=ds.Tables0.Rows0;/文檔僅供參考 30 2020 年 4 月 19 日 得到行數(shù)據(jù)集,實(shí)際是個(gè)數(shù)組 flag=dr.ItemArray0.ToString();con.Close();if(flag.Equals(非管理員)Flag=0;else Flag=1;Students s=new Students();s.Show();this.SetVisibleCore(false);else MessageBox.Show(驗(yàn)證碼錯(cuò)誤!);catch(MySQLException)文檔僅供參考 31 2020 年 4 月 19 日 MessageBox.Show(數(shù)據(jù)庫鏈接出錯(cuò)了);else MessageBox.Show(您輸入的帳號(hào)或密碼不正確或沒有選擇用戶類型,請(qǐng)重新輸入!,警告!,MessageBoxButtons.OK,MessageBoxIcon.Error);catch(System.IO.FileNotFoundException)MessageBox.Show(未找到數(shù)據(jù)庫!);private void bt_cancel_Click(object sender,EventArgs e)/詢問是否退出本系統(tǒng) if(MessageBox.Show(是否取消本次登錄?,確認(rèn),文檔僅供參考 32 2020 年 4 月 19 日 MessageBoxButtons.YesNo,MessageBoxIcon.Question)=DialogResult.Yes)Application.Exit();private void linkLabel1_LinkClicked(object sender,LinkLabelLinkClickedEventArgs e)registered_add r_add=new registered_add();r_add.Show();private void l_check_Click(object sender,EventArgs e)check_4=;for(int i=0;i 4;i+)int n=r.Next(0,61);check_4+=+checkn;文檔僅供參考 33 2020 年 4 月 19 日 l_check.Text=check_4;5.2 主頁面代碼 namespace SIMS_1 public partial class Students:Form public static MySQLConnection con=null;public Students()try InitializeComponent();con=new MySQLConnection(new MySQLConnectionString(students,root,123456).AsString);if(Log.Flag=0)this.bt_add.Hide();文檔僅供參考 34 2020 年 4 月 19 日 bt_delete.Hide();bt_change.Hide();catch(System.IO.FileNotFoundException)MessageBox.Show(未找到數(shù)據(jù)庫!);private void bt_searchAll_Click(object sender,EventArgs e)con.Open();MySQLCommand setformat=new MySQLCommand(set names gb2312,con);setformat.ExecuteNonQuery();setformat.Dispose();string sql1=select*from stu;MySQLDataAdapter adapter=new MySQLDataAdapter(sql1,con);DataSet set=new DataSet();adapter.Fill(set,stu);this.dataView.DataSource=set.Tables0;文檔僅供參考 35 2020 年 4 月 19 日 int rowcount=dataView.RowCount-1;MessageBox.Show(查找到+rowcount+個(gè)學(xué)生的信息!);if(rowcount=0)MessageBox.Show(您還未添加學(xué)生!);con.Close();private void bt_search_Click(object sender,EventArgs e)try Int64 id=Convert.ToInt64(txt_search.Text);con.Open();MySQLCommand setformat=new MySQLCommand(set names gb2312,con);setformat.ExecuteNonQuery();setformat.Dispose();String sql=select*from stu where 學(xué)號(hào)=+id+;文檔僅供參考 36 2020 年 4 月 19 日 MySQLDataAdapter adapter=new MySQLDataAdapter(sql,con);DataSet set=new DataSet();adapter.Fill(set,stu);dataView.DataSource=set.Tables0;int rowcount=dataView.RowCount-1;if(rowcount=0)MessageBox.Show(未找到您要查找的學(xué)號(hào)的學(xué)生!);con.Close();catch(FormatException)MessageBox.Show(輸入的學(xué)生學(xué)號(hào)格式有誤n 請(qǐng)重新輸入!,警告!,MessageBoxButtons.OK);文檔僅供參考 37 2020 年 4 月 19 日 private void bt_add_Click(object sender,EventArgs e)Add a=new Add();a.Show();private void bt_delete_Click(object sender,EventArgs e)try String id=dataView.SelectedRows0.Cells0.Value.ToString();if(MessageBox.Show(是否要?jiǎng)h除學(xué)號(hào)為:+id+的學(xué)生?,確認(rèn),MessageBoxButtons.YesNo,MessageBoxIcon.Question)=展開閱讀全文
匯文網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請(qǐng)勿作他用。
關(guān)于本文