C#课程设计报告参考模板Word下载.docx
《C#课程设计报告参考模板Word下载.docx》由会员分享,可在线阅读,更多相关《C#课程设计报告参考模板Word下载.docx(14页珍藏版)》请在冰点文库上搜索。
(4)课程信息管理
课程基本信息的添加、课程信息的修改和删除以及课程信息的查询。
(5)科目信息管理
科目基本信息的添加、科目信息的修改和删除以及科目信息的查询。
(6)成绩信息管理
成绩基本信息的添加、成绩信息的修改和删除以及成绩信息的查询。
(7)教师信息管理
教师基本信息的添加、教师信息的修改和教师以及课程信息的查询。
(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{
cmd.ExecuteNonQuery();
//执行
MessageBox.Show("
添加成功!
catch(SqlExceptionex){
添加失败!
+ex.Message);
4、修改删除界面主代码
privatevoidbutton5_Click(objectsender,EventArgse){
stringconnString="
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=="
){
必填项不能为空!
else{
stringsql="
UpdateStuBset班级编号='
+textBox10.Text+"
班级名称='
+textBox11.Text+"
入学时间='
+DateTime.Parse(dateTimePicker2.Text)+"
学制="
+textBox12.Text+"
专业='
+textBox9.Text+"
班主任='
+comboBox2.Text+"
备注='
+textBox3.Text+"
+"
where班级编号='
try{
SqlCommandcmd=newSqlCommand(sql,con);
//执行
修改成功!
catch(Exceptionex)
修改失败!
+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;
deletefromStuBwhere班级编号='
+temp+"
//要执行的SQL语句SqlCommandcmd=newSqlCommand(sql,conn);
conn.Open();
introws=cmd.ExecuteNonQuery();
//执行命令
if(rows==1)
删除成功!
提示"
MessageBoxButtons.OK,MessageBoxIcon.Information);
catch(SqlExceptionex)
删除失败!
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"
ds=newDataSet();
da=newSqlDataAdapter(sql,DBHelper.sqlcon);
//创建DataAdapter数据适配器实例
da.Fill(ds,"
StuB"
使用DataAdapter的Fill方法(填充),调用SELECT命令
dataGridView2.DataSource=newBindingSource(ds,"
}}}
5、查询界面主代码
privatevoidbutton3_Click(objectsender,EventArgse){
DataSetds=newDataSet();
SqlConnectioncon=newSqlConnection("
if(this.textBox7.Text=="
||this.textBox8.Text=="
SqlDataAdaptersda=newSqlDataAdapter("
select班级编号,班级名称,入学时间,学制,专业,班主任,备注fromStuBwhere班级编号='
+this.textBox7.Text.Trim()+"
and班级名称='
+this.textBox8.Text.Trim()+"
DataTabletable=newDataTable();
sda.Fill(table);
dataGridView1.DataSource=table;
//声明数据集并将查询结果填充进数据集,再将数据集中的数据填充进控件dataGridView1
textBox7.Clear();
textBox8.Clear();
6、课程设计总结
通过这次课程设计,实现了一个简单的学生管理系统,而我也对C#软件开发有了更深一步的认识,也学到了很多在课堂上没有学到的东西。
对于VS2012和SQL2008的使用也更加熟练。
系统中存在的一些不足和系统设计上存在的缺憾,说明自己在这些方面还有很多不足之处有待自己进一步学习、提高。
在本次课程设计中,老师朱会东和同学们给了我很大的指导帮助,从他们哪里我学到了很多,在次表示感谢!
7、参考资料
[1]《SQLServer2008数据库及应用》李伟著清华大学出版社
[2]《C#程序设计及应用教程》李伟著清华大学出版社
[3]网络资源: