《C课程设计报告 参考模板.doc》由会员分享,可在线阅读,更多相关《C课程设计报告 参考模板.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 作业编号2017 安徽工业大学.Net平台与C#开发课程设计学生管理系统 .Net平台与C#开发课程设计报告书 专 业 学 号 学生姓名 指导教师 分 数 2017年6月目录1、需求分析32、总体设计33、数据描述44、详细设计65、主要代码实现和分析96、课程设计总结127、参考资料12设计报告1、需求分析学生管理系统是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理系统(Manage System On Studant)。它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。能有效的帮助学校和老师掌握学生
2、的情况,为学生提供成绩跟课程方面的查询。 学生用户通过输入学生基本信息、课程基本信息等,由系统自行生成相应的数据以供学生查询,管理用户还可以对这些基本信息进行更新和删除,学生管理系统力求给用户方便快捷的途径去管理这些繁琐的数据。具体系统功能需求描述如下: 在学生管理系统中,主要有用户登陆、班级信息管理、学生信息管理、课程信息管理、科目信息管理、成绩信息管理、教师信息管理、用户管理等功能,功能分析如下:(1)用户登陆学生管理系统用户名及密码验证模式,进入学生管理系统前,用户必须在登陆页面输入用户名及密码,只有验证通过的用户方可进入学生管理系统操作主界面。(2)班级信息管理包括3个功能模块:班级信
3、息的添加、班级信息的修改和删除以及班级信息的查询。(3)学生信息管理包括3个功能模块:学生个人信息的添加、学生信息的修改和删除以及学生信息的查询。(4)课程信息管理包括3个功能模块:课程基本信息的添加、课程信息的修改和删除以及课程信息的查询。(5)科目信息管理包括3个功能模块:科目基本信息的添加、科目信息的修改和删除以及科目信息的查询。(6)成绩信息管理包括3个功能模块:成绩基本信息的添加、成绩信息的修改和删除以及成绩信息的查询。(7)教师信息管理包括3个功能模块:教师基本信息的添加、教师信息的修改和教师以及课程信息的查询。(8)用户管理包括2个功能模块:用户信息添加、用户密码的修改和注销(即
4、 重新登录)。2、总体设计1、系统的主要功能模块登录模块、添加模块、修改删除模块、查询模块总体结构图2.1 XXXX3、数据描述数据库xsglxt的表设计如下:(1) 班级表:描述班级信息表3.1 XXXX(2)课程表:描述课程信息(3)科目表:描述科目信息(4)学生表:描述学生信息(5)用户表:描述用户信息(6)教师表:描述教师信息(2)成绩表:描述成绩信息4、详细设计界面设计(1)登录界面图4.1 XXXX该界面是本程序的入口,再输入用户名和密码后只有当文本框输入数据和数据库的已有信息相匹配时才可进入系统主界面,否则会提示输入有误。(2)系统主界面该窗体是所有子窗体的父窗体,由此窗体可调用
5、其他子窗体,通过子窗体实现相应功能。管理功能菜单包括“添加”,“修改 删除”和“查询”功能,系统菜单包括“教师管理”,“添加用户”,“修改密码”,“重新登录”,“退出”功能。控件notifyIcon1和contextMenuStrip1让系统运行时在通知栏显示小图标,在小图标右击时会弹出菜单。控件stutasStrip1和timer1让系统运行时显示当前时间。(3)功能界面功能界面因相差不大,不在一一举例,仅以班级管理为例1、添加界面该界面实现了将新的学生信息添加到数据库班级信息表(StuB.dbo),为添加信息提供提示和相关文本框,在文本框输入正确的信息后,单击“确定”按钮,软件将所输入的信
6、息通过数据库命令直接添加进数据库班级信息表(StuB.dbo),并提示“添加成功!”在“修改 删除”界面点击“刷新”按钮可看到添加结果在DataGridView控件中显示2修改删除界面该界面实现了对已有学生信息的修改和删除,填入相关信息后,点击“修改”(或“删除”)按钮,程序将对比班级编号后文本框的内容与数据库班级信息表(StuB.dbo)第一列的数据是否相同,如某一行的数据相同,则将文本框内的内容替换数据库班级信息表(StuB.dbo)中数据相同行的原有内容并提示“修改成功!”(或删除数据库班级信息表(StuB.dbo)中数据相同行)点击“刷新”按钮可看到修改(删除)结果在;如没有相同数据存
7、在,则弹出提示窗口提示“修改失败!”。3查询界面该界面实现了对已有学生信息的查询,在文本框中输入相关信息后,点击“确定”按钮后,与修改相同,对比输入数据和数据库班级信息表(StuB.dbo)的已有数据,如相同,则将该行信息在DataGridView控件中显示,如不同则不显示。4添加用户界面该界面的实现与添加界面相同5、修改用户密码界面该界面的实现与修改界面相同5、主要代码实现和分析1、用户登录主要代码 if (this.textBox2.Text = | this.textBox1.Text = ) MessageBox.Show(用户名或密码不能为空!); else sql = String
8、.Format(select * from login where username=0 and password=1, textBox1.Text.Trim(), textBox2.Text.Trim();要执行的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 Fo
9、rm2() 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;
10、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); /
11、连接数据库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); /要执行的SQL语句try con.Open(); cmd.ExecuteNonQuery();/执行 MessageBox.Show
12、(添加成功!); 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; /连接数据库命令 SqlConnection con = new SqlConnection(connString);if (this.textBox10.Te
13、xt = | 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
14、.Text) + ,学制= + textBox12.Text + ,专业= + textBox9.Text + ,班主任= + comboBox2.Text + ,备注= + textBox3.Text + + where 班级编号= + textBox10.Text + ; /要执行的SQL语句 try con.Open(); SqlCommand cmd = new SqlCommand(sql, con); cmd.ExecuteNonQuery(); /执行 MessageBox.Show(修改成功!); con.Close(); catch (Exception ex) Messag
15、eBox.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.OKCa
16、ncel); if (ret = DialogResult.Cancel) return; string sql = delete from StuB where 班级编号= + temp +;/要执行的SQL语句 SqlCommand cmd = new SqlCommand(sql, conn); try conn.Open(); int rows = cmd.ExecuteNonQuery();/执行命令 if (rows = 1) MessageBox.Show(删除成功!, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information);
17、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.ToStr
18、ing(); / dataGridView2的单击事件,用于获得选定行的第一个数据 private void button7_Click(object sender, EventArgs e) sql = select * from StuB; /要执行的SQL语句 ds = new DataSet();da = new SqlDataAdapter(sql, DBHelper.sqlcon); /创建DataAdapter数据适配器实例 da.Fill(ds, StuB);使用DataAdapter的Fill方法(填充),调用SELECT命令 dataGridView2.DataSource
19、 = 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(必填项不能为空!
20、); else SqlDataAdapter sda = new SqlDataAdapter(select 班级编号,班级名称,入学时间,学制,专业,班主任,备注 from StuB where 班级编号 = + this.textBox7.Text.Trim() + and 班级名称= + this.textBox8.Text.Trim() + , con); DataTable table = new DataTable(); sda.Fill(table); dataGridView1.DataSource = table;/声明数据集并将查询结果填充进数据集,再将数据集中的数据填充进
21、控件dataGridView1 textBox7.Clear(); textBox8.Clear(); 6、课程设计总结通过这次课程设计,实现了一个简单的学生管理系统,而我也对C#软件开发有了更深一步的认识,也学到了很多在课堂上没有学到的东西。对于VS2012和SQL2008的使用也更加熟练。系统中存在的一些不足和系统设计上存在的缺憾,说明自己在这些方面还有很多不足之处有待自己进一步学习、提高。在本次课程设计中,老师朱会东和同学们给了我很大的指导帮助,从他们哪里我学到了很多,在次表示感谢!7、参考资料1 SQL Server 2008 数据库及应用 李伟 著 清华大学出版社2 C#程序设计及应用教程李伟 著 清华大学出版社3 网络资源: