C#課程設計報告 參考模板
作業(yè)編號2017 安徽工業(yè)大學.Net平臺與C#開發(fā)課程設計學生管理系統(tǒng) .Net平臺與C#開發(fā)課程設計報告書 專 業(yè) 學 號 學生姓名 指導教師 分 數(shù) 2017年6月目錄1、需求分析32、總體設計33、數(shù)據(jù)描述44、詳細設計65、主要代碼實現(xiàn)和分析96、課程設計總結(jié)127、參考資料12設計報告1、需求分析學生管理系統(tǒng)是針對學校人事處的大量業(yè)務處理工作而開發(fā)的管理軟件,是典型的管理系統(tǒng)(Manage System On Studant)。它是一個教育單位不可缺少的部分,它的內(nèi)容對于學校的決策者和管理者來說都至關(guān)重要,它能夠為用戶提供充足的信息和快捷的查詢手段。能有效的幫助學校和老師掌握學生的情況,為學生提供成績跟課程方面的查詢。 學生用戶通過輸入學生基本信息、課程基本信息等,由系統(tǒng)自行生成相應的數(shù)據(jù)以供學生查詢,管理用戶還可以對這些基本信息進行更新和刪除,學生管理系統(tǒng)力求給用戶方便快捷的途徑去管理這些繁瑣的數(shù)據(jù)。具體系統(tǒng)功能需求描述如下: 在學生管理系統(tǒng)中,主要有用戶登陸、班級信息管理、學生信息管理、課程信息管理、科目信息管理、成績信息管理、教師信息管理、用戶管理等功能,功能分析如下:(1)用戶登陸學生管理系統(tǒng)用戶名及密碼驗證模式,進入學生管理系統(tǒng)前,用戶必須在登陸頁面輸入用戶名及密碼,只有驗證通過的用戶方可進入學生管理系統(tǒng)操作主界面。(2)班級信息管理包括3個功能模塊:班級信息的添加、班級信息的修改和刪除以及班級信息的查詢。(3)學生信息管理包括3個功能模塊:學生個人信息的添加、學生信息的修改和刪除以及學生信息的查詢。(4)課程信息管理包括3個功能模塊:課程基本信息的添加、課程信息的修改和刪除以及課程信息的查詢。(5)科目信息管理包括3個功能模塊:科目基本信息的添加、科目信息的修改和刪除以及科目信息的查詢。(6)成績信息管理包括3個功能模塊:成績基本信息的添加、成績信息的修改和刪除以及成績信息的查詢。(7)教師信息管理包括3個功能模塊:教師基本信息的添加、教師信息的修改和教師以及課程信息的查詢。(8)用戶管理包括2個功能模塊:用戶信息添加、用戶密碼的修改和注銷(即 重新登錄)。2、總體設計1、系統(tǒng)的主要功能模塊登錄模塊、添加模塊、修改刪除模塊、查詢模塊總體結(jié)構(gòu)圖2.1 XXXX3、數(shù)據(jù)描述數(shù)據(jù)庫xsglxt的表設計如下:(1) 班級表:描述班級信息表3.1 XXXX(2)課程表:描述課程信息(3)科目表:描述科目信息(4)學生表:描述學生信息(5)用戶表:描述用戶信息(6)教師表:描述教師信息(2)成績表:描述成績信息4、詳細設計界面設計(1)登錄界面圖4.1 XXXX該界面是本程序的入口,再輸入用戶名和密碼后只有當文本框輸入數(shù)據(jù)和數(shù)據(jù)庫的已有信息相匹配時才可進入系統(tǒng)主界面,否則會提示輸入有誤。(2)系統(tǒng)主界面該窗體是所有子窗體的父窗體,由此窗體可調(diào)用其他子窗體,通過子窗體實現(xiàn)相應功能。管理功能菜單包括“添加”,“修改 刪除”和“查詢”功能,系統(tǒng)菜單包括“教師管理”,“添加用戶”,“修改密碼”,“重新登錄”,“退出”功能??丶otifyIcon1和contextMenuStrip1讓系統(tǒng)運行時在通知欄顯示小圖標,在小圖標右擊時會彈出菜單??丶tutasStrip1和timer1讓系統(tǒng)運行時顯示當前時間。(3)功能界面功能界面因相差不大,不在一一舉例,僅以班級管理為例1、添加界面該界面實現(xiàn)了將新的學生信息添加到數(shù)據(jù)庫班級信息表(StuB.dbo),為添加信息提供提示和相關(guān)文本框,在文本框輸入正確的信息后,單擊“確定”按鈕,軟件將所輸入的信息通過數(shù)據(jù)庫命令直接添加進數(shù)據(jù)庫班級信息表(StuB.dbo),并提示“添加成功!”在“修改 刪除”界面點擊“刷新”按鈕可看到添加結(jié)果在DataGridView控件中顯示2修改刪除界面該界面實現(xiàn)了對已有學生信息的修改和刪除,填入相關(guān)信息后,點擊“修改”(或“刪除”)按鈕,程序?qū)Ρ劝嗉壘幪柡笪谋究虻膬?nèi)容與數(shù)據(jù)庫班級信息表(StuB.dbo)第一列的數(shù)據(jù)是否相同,如某一行的數(shù)據(jù)相同,則將文本框內(nèi)的內(nèi)容替換數(shù)據(jù)庫班級信息表(StuB.dbo)中數(shù)據(jù)相同行的原有內(nèi)容并提示“修改成功!”(或刪除數(shù)據(jù)庫班級信息表(StuB.dbo)中數(shù)據(jù)相同行)點擊“刷新”按鈕可看到修改(刪除)結(jié)果在;如沒有相同數(shù)據(jù)存在,則彈出提示窗口提示“修改失??!”。3查詢界面該界面實現(xiàn)了對已有學生信息的查詢,在文本框中輸入相關(guān)信息后,點擊“確定”按鈕后,與修改相同,對比輸入數(shù)據(jù)和數(shù)據(jù)庫班級信息表(StuB.dbo)的已有數(shù)據(jù),如相同,則將該行信息在DataGridView控件中顯示,如不同則不顯示。4添加用戶界面該界面的實現(xiàn)與添加界面相同5、修改用戶密碼界面該界面的實現(xiàn)與修改界面相同5、主要代碼實現(xiàn)和分析1、用戶登錄主要代碼 if (this.textBox2.Text = "" | this.textBox1.Text = "") MessageBox.Show("用戶名或密碼不能為空!"); else sql = String.Format("select * from login where username='0' and password='1'", textBox1.Text.Trim(), textBox2.Text.Trim();要執(zhí)行的SQL語句 com = new SqlCommand(sql, con); con.Open(); dr = com.ExecuteReader(); if (dr.Read() Form2 mf = new Form2(); mf.Show(); con.Close(); this.Hide(); 2、主界面主要代碼/在通知欄顯示小圖標,程序運行時不在任務欄顯示public Form2() InitializeComponent(); notifyIcon1.ContextMenuStrip = this.contextMenuStrip1; this.ShowInTaskbar = false; /通知欄小圖標的雙擊事件:主界面最小化或打開主界面private void notifyIcon1_DoubleClick(object sender, MouseEventArgs e) if (this.WindowState = FormWindowState.Minimized) this.WindowState = FormWindowState.Normal; this.Activate(); else this.WindowState = FormWindowState.Minimized; /打開某一界面(例:打開成績管理界面)private void 添加ToolStripMenuItem1_Click(object sender, EventArgs e) Cjgl Cj = new Cjgl(); Cj.Show(); 3、修改界面主代碼SqlConnection con = new SqlConnection("Data Source=李國豪;Initial Catalog=xsgl;Integrated Security=True"); /連接數(shù)據(jù)庫SqlCommand cmd = new SqlCommand("Insert into StuB values('" + textBox1.Text + "','" + textBox2.Text + "','" + DateTime.Parse(dateTimePicker1.Text) + "','" + textBox4.Text + "','" + textBox5.Text + "','" + comboBox1.Text + "','" + textBox6.Text + "')", con); /要執(zhí)行的SQL語句try con.Open(); cmd.ExecuteNonQuery();/執(zhí)行 MessageBox.Show("添加成功!"); catch (SqlException ex) MessageBox.Show("添加失??!"+ ex.Message); 4、修改 刪除界面主代碼private void button5_Click(object sender, EventArgs e) string connString = "Initial Catalog=xsgl;Data Source =李國豪;Integrated Security=true" /連接數(shù)據(jù)庫命令 SqlConnection con = new SqlConnection(connString);if (this.textBox10.Text = "" | this.textBox11.Text = "" | this.textBox12.Text = "" | this.textBox9.Text = "" | this.textBox3.Text = "" | this.dateTimePicker2.Text = "" | boBox2.Text = "") MessageBox.Show("必填項不能為空!"); else string sql = "Update StuB set 班級編號 ='" + textBox10.Text + "', 班級名稱='" + textBox11.Text + "',入學時間='" + DateTime.Parse(dateTimePicker2.Text) + "',學制=" + textBox12.Text + ",專業(yè)='" + textBox9.Text + "',班主任='" + comboBox2.Text + "',備注='" + textBox3.Text + "'" + "where 班級編號='" + textBox10.Text + "'" /要執(zhí)行的SQL語句 try con.Open(); SqlCommand cmd = new SqlCommand(sql, con); cmd.ExecuteNonQuery(); /執(zhí)行 MessageBox.Show("修改成功!"); con.Close(); catch (Exception ex) MessageBox.Show("修改失??!" + ex.Message); textBox9.Clear(); textBox10.Clear(); textBox11.Clear(); textBox12.Clear();textBox3.Clear(); private void button6_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnection(connString); DialogResult ret = MessageBox.Show("確定要刪除嗎?", "刪除", MessageBoxButtons.OKCancel); if (ret = DialogResult.Cancel) return; string sql = "delete from StuB where 班級編號='" + temp +"'"/要執(zhí)行的SQL語句 SqlCommand cmd = new SqlCommand(sql, conn); try conn.Open(); int rows = cmd.ExecuteNonQuery();/執(zhí)行命令 if (rows = 1) MessageBox.Show("刪除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); catch (SqlException ex) MessageBox.Show("刪除失??!" + ex.Message); conn.Close(); private void dataGridView2_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) DataGridViewRow dgvRow = dataGridView2.Rowse.RowIndex; DataGridViewCellCollection dgvCC = dgvRow.Cells; temp = dgvCC0.Value.ToString(); / dataGridView2的單擊事件,用于獲得選定行的第一個數(shù)據(jù) private void button7_Click(object sender, EventArgs e) sql = "select * from StuB" /要執(zhí)行的SQL語句 ds = new DataSet();da = new SqlDataAdapter(sql, DBHelper.sqlcon); /創(chuàng)建DataAdapter數(shù)據(jù)適配器實例 da.Fill(ds, "StuB");使用DataAdapter的Fill方法(填充),調(diào)用SELECT命令 dataGridView2.DataSource = new BindingSource(ds, "StuB"); 5、查詢界面主代碼private void button3_Click(object sender, EventArgs e) DataSet ds = new DataSet(); SqlConnection con = new SqlConnection("Data Source=李國豪;Initial Catalog=xsgl;Integrated Security=True"); if (this.textBox7.Text = "" | this.textBox8.Text = "") MessageBox.Show("必填項不能為空!"); else SqlDataAdapter sda = new SqlDataAdapter("select 班級編號,班級名稱,入學時間,學制,專業(yè),班主任,備注 from StuB where 班級編號 = '" + this.textBox7.Text.Trim() + "'and 班級名稱='" + this.textBox8.Text.Trim() + "'", con); DataTable table = new DataTable(); sda.Fill(table); dataGridView1.DataSource = table;/聲明數(shù)據(jù)集并將查詢結(jié)果填充進數(shù)據(jù)集,再將數(shù)據(jù)集中的數(shù)據(jù)填充進控件dataGridView1 textBox7.Clear(); textBox8.Clear(); 6、課程設計總結(jié)通過這次課程設計,實現(xiàn)了一個簡單的學生管理系統(tǒng),而我也對C#軟件開發(fā)有了更深一步的認識,也學到了很多在課堂上沒有學到的東西。對于VS2012和SQL2008的使用也更加熟練。系統(tǒng)中存在的一些不足和系統(tǒng)設計上存在的缺憾,說明自己在這些方面還有很多不足之處有待自己進一步學習、提高。在本次課程設計中,老師朱會東和同學們給了我很大的指導幫助,從他們哪里我學到了很多,在次表示感謝!7、參考資料1 SQL Server 2008 數(shù)據(jù)庫及應用 李偉 著 清華大學出版社2 C#程序設計及應用教程李偉 著 清華大學出版社3 網(wǎng)絡資源: