C#课程设计报告参考模板.docx
- 文档编号:12591517
- 上传时间:2023-04-20
- 格式:DOCX
- 页数:14
- 大小:403.90KB
C#课程设计报告参考模板.docx
《C#课程设计报告参考模板.docx》由会员分享,可在线阅读,更多相关《C#课程设计报告参考模板.docx(14页珍藏版)》请在冰豆网上搜索。
C#课程设计报告参考模板
作业编号2017
安徽工业大学.Net平台与C#开发课程设计
学生管理系统
《.Net平台与C#开发课程设计》报告书
专业
学号
学生姓名
指导教师
分数
2017年6月
设计报告
1、需求分析
学生管理系统是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理系统(ManageSystemOnStudant)。
它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。
能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程方面的查询。
学生用户通过输入学生基本信息、课程基本信息等,由系统自行生成相应的数据以供学生查询,管理用户还可以对这些基本信息进行更新和删除,学生管理系统力求给用户方便快捷的途径去管理这些繁琐的数据。
具体系统功能需求描述如下:
在学生管理系统中,主要有用户登陆、班级信息管理、学生信息管理、课程信息管理、科目信息管理、成绩信息管理、教师信息管理、用户管理等功能,功能分析如下:
(1)用户登陆
学生管理系统用户名及密码验证模式,进入学生管理系统前,用户必须在登陆页面输入用户名及密码,只有验证通过的用户方可进入学生管理系统操作主界面。
(2)班级信息管理
包括3个功能模块:
班级信息的添加、班级信息的修改和删除以及班级信息的查询。
(3)学生信息管理
包括3个功能模块:
学生个人信息的添加、学生信息的修改和删除以及学生信息的查询。
(4)课程信息管理
包括3个功能模块:
课程基本信息的添加、课程信息的修改和删除以及课程信息的查询。
(5)科目信息管理
包括3个功能模块:
科目基本信息的添加、科目信息的修改和删除以及科目信息的查询。
(6)成绩信息管理
包括3个功能模块:
成绩基本信息的添加、成绩信息的修改和删除以及成绩信息的查询。
(7)教师信息管理
包括3个功能模块:
教师基本信息的添加、教师信息的修改和教师以及课程信息的查询。
(8)用户管理
包括2个功能模块:
用户信息添加、用户密码的修改和注销(即重新登录)。
2、总体设计
1、系统的主要功能模块
登录模块、添加模块、修改删除模块、查询模块
总体结构
图2.1XXXX
3、数据描述
数据库xsglxt的表设计如下:
(1)班级表:
描述班级信息
表3.1XXXX
(2)课程表:
描述课程信息
(3)科目表:
描述科目信息
(4)学生表:
描述学生信息
(5)用户表:
描述用户信息
(6)教师表:
描述教师信息
(2)成绩表:
描述成绩信息
4、详细设计
界面设计
(1)登录界面
图4.1XXXX
该界面是本程序的入口,再输入用户名和密码后只有当文本框输入数据和数据库的已有信息相匹配时才可进入系统主界面,否则会提示输入有误。
(2)系统主界面
该窗体是所有子窗体的父窗体,由此窗体可调用其他子窗体,通过子窗体实现相应功能。
管理功能菜单包括“添加”,“修改删除”和“查询”功能,系统菜单包括“教师管理”,
“添加用户”,“修改密码”,“重新登录”,“退出”功能。
控件notifyIcon1和contextMenuStrip1让系统运行时在通知栏显示小图标,在小图标右击时会弹出菜单。
控件stutasStrip1和timer1让系统运行时显示当前时间。
(3)功能界面
功能界面因相差不大,不在一一举例,仅以班级管理为例
1、添加界面
该界面实现了将新的学生信息添加到数据库班级信息表(StuB.dbo),为添加信息提供提示和相关文本框,在文本框输入正确的信息后,单击“确定”按钮,软件将所输入的信息通过数据库命令直接添加进数据库班级信息表(StuB.dbo),并提示“添加成功!
”在“修改删除”界面点击“刷新”按钮可看到添加结果在DataGridView控件中显示
2修改删除界面
该界面实现了对已有学生信息的修改和删除,填入相关信息后,点击“修改”(或“删除”)按钮,程序将对比班级编号后文本框的内容与数据库班级信息表(StuB.dbo)第一列的数据是否相同,如某一行的数据相同,则将文本框内的内容替换数据库班级信息表(StuB.dbo)中数据相同行的原有内容并提示“修改成功!
”(或删除数据库班级信息表(StuB.dbo)中数据相同行)点击“刷新”按钮可看到修改(删除)结果在
;如没有相同数据存在,则弹出提示窗口提示“修改失败!
”。
3查询界面
该界面实现了对已有学生信息的查询,在文本框中输入相关信息后,点击“确定”按钮后,与修改相同,对比输入数据和数据库班级信息表(StuB.dbo)的已有数据,如相同,则将该行信息在DataGridView控件中显示,如不同则不显示。
4添加用户界面
该界面的实现与添加界面相同
5、修改用户密码界面
该界面的实现与修改界面相同
5、主要代码实现和分析
1、用户登录主要代码
if(this.textBox2.Text==""||this.textBox1.Text=="")
{MessageBox.Show("用户名或密码不能为空!
");}
else
{sql=String.Format("select*fromloginwhereusername='{0}'andpassword='{1}'",textBox1.Text.Trim(),textBox2.Text.Trim());要执行的SQL语句
com=newSqlCommand(sql,con);
con.Open();
dr=com.ExecuteReader();
if(dr.Read())
{Form2mf=newForm2();
mf.Show();
con.Close();
this.Hide();}}
2、主界面主要代码
//在通知栏显示小图标,程序运行时不在任务栏显示
publicForm2(){
InitializeComponent();
notifyIcon1.ContextMenuStrip=this.contextMenuStrip1;
this.ShowInTaskbar=false;}
//通知栏小图标的双击事件:
主界面最小化或打开主界面
privatevoidnotifyIcon1_DoubleClick(objectsender,MouseEventArgse){
if(this.WindowState==FormWindowState.Minimized){
this.WindowState=FormWindowState.Normal;
this.Activate();}
else{
this.WindowState=FormWindowState.Minimized;}}
//打开某一界面(例:
打开成绩管理界面)
privatevoid添加ToolStripMenuItem1_Click(objectsender,EventArgse){
CjglCj=newCjgl();Cj.Show();}
3、修改界面主代码
SqlConnectioncon=newSqlConnection("DataSource=李国豪;InitialCatalog=xsgl;IntegratedSecurity=True");//连接数据库
SqlCommandcmd=newSqlCommand("InsertintoStuBvalues('"+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("添加成功!
");}
catch(SqlExceptionex){
MessageBox.Show("添加失败!
"+ex.Message);}
4、修改删除界面主代码
privatevoidbutton5_Click(objectsender,EventArgse){
stringconnString="InitialCatalog=xsgl;DataSource=李国豪;IntegratedSecurity=true";//连接数据库命令
SqlConnectioncon=newSqlConnection(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{
stringsql="UpdateStuBset班级编号='"+textBox10.Text+"',班级名称='"+textBox11.Text+"',入学时间='"+DateTime.Parse(dateTimePicker2.Text)+"',学制="+textBox12.Text+",专业='"+textBox9.Text+"',班主任='"+comboBox2.Text+"',备注='"+textBox3.Text+"'"+"where班级编号='"+textBox10.Text+"'";//要执行的SQL语句
try{
con.Open();
SqlCommandcmd=newSqlCommand(sql,con);
cmd.ExecuteNonQuery();//执行
MessageBox.Show("修改成功!
");
con.Close();}
catch(Exceptionex)
{MessageBox.Show("修改失败!
"+ex.Message);}
textBox9.Clear();textBox10.Clear();textBox11.Clear();
textBox12.Clear();textBox3.Clear();}}
privatevoidbutton6_Click(objectsender,EventArgse){
SqlConnectionconn=newSqlConnection(connString);
DialogResultret=MessageBox.Show("确定要删除吗?
","删除",MessageBoxButtons.OKCancel);
if(ret==DialogResult.Cancel)
return;
stringsql="deletefromStuBwhere班级编号='"+temp+"'";//要执行的SQL语句SqlCommandcmd=newSqlCommand(sql,conn);
try{
conn.Open();
introws=cmd.ExecuteNonQuery();//执行命令
if(rows==1)
MessageBox.Show("删除成功!
","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}
catch(SqlExceptionex)
{MessageBox.Show("删除失败!
"+ex.Message);}
conn.Close();}
privatevoiddataGridView2_RowHeaderMouseClick(objectsender,DataGridViewCellMouseEventArgse){
DataGridViewRowdgvRow=dataGridView2.Rows[e.RowIndex];
DataGridViewCellCollectiondgvCC=dgvRow.Cells;
temp=dgvCC[0].Value.ToString();}//dataGridView2的单击事件,用于获得选定行的第一个数据
privatevoidbutton7_Click(objectsender,EventArgse){
sql="select*fromStuB";//要执行的SQL语句
ds=newDataSet();
da=newSqlDataAdapter(sql,DBHelper.sqlcon);//创建DataAdapter数据适配器实例
da.Fill(ds,"StuB");使用DataAdapter的Fill方法(填充),调用SELECT命令
dataGridView2.DataSource=newBindingSource(ds,"StuB");}}}
5、查询界面主代码
privatevoidbutton3_Click(objectsender,EventArgse){
DataSetds=newDataSet();
SqlConnectioncon=newSqlConnection("DataSource=李国豪;InitialCatalog=xsgl;IntegratedSecurity=True");
if(this.textBox7.Text==""||this.textBox8.Text==""){
MessageBox.Show("必填项不能为空!
");}
else{
SqlDataAdaptersda=newSqlDataAdapter("select班级编号,班级名称,入学时间,学制,专业,班主任,备注fromStuBwhere班级编号='"+this.textBox7.Text.Trim()+"'and班级名称='"+this.textBox8.Text.Trim()+"'",con);
DataTabletable=newDataTable();
sda.Fill(table);
dataGridView1.DataSource=table;
//声明数据集并将查询结果填充进数据集,再将数据集中的数据填充进控件dataGridView1
textBox7.Clear();
textBox8.Clear();}}
6、课程设计总结
通过这次课程设计,实现了一个简单的学生管理系统,而我也对C#软件开发有了更深一步的认识,也学到了很多在课堂上没有学到的东西。
对于VS2012和SQL2008的使用也更加熟练。
系统中存在的一些不足和系统设计上存在的缺憾,说明自己在这些方面还有很多不足之处有待自己进一步学习、提高。
在本次课程设计中,老师朱会东和同学们给了我很大的指导帮助,从他们哪里我学到了很多,在次表示感谢!
7、参考资料
[1]《SQLServer2008数据库及应用》李伟著清华大学出版社
[2]《C#程序设计及应用教程》李伟著清华大学出版社
[3]网络资源:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 课程设计 报告 参考 模板