C#+SQL学生成绩管理系统 结课论文.docx
《C#+SQL学生成绩管理系统 结课论文.docx》由会员分享,可在线阅读,更多相关《C#+SQL学生成绩管理系统 结课论文.docx(20页珍藏版)》请在冰点文库上搜索。
C#+SQL学生成绩管理系统结课论文
学生成绩管理系统
摘要
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。
管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。
本系统是在管理信息系统的理论和方法指导下、数据库技术支持下完成的。
本文在结构上首先论述了程序设计目的和意义,然后叙述了开发环境、开发平台以及数据库技术,接着用图片、说明和代码的方式介绍了系统的整体规划,接下来是系统在具体实现中的详细内容,最终本系统能够完成信息的添加、修改、删除、查询等功能,本系统界面友好,操作简单,比较实用,思路缜密严谨,管理起来方便快捷,能有效的达到学生信息的管理的目的。
关键词:
MicrosoftVisualC#2008,SQLserver2005,界面,权限
目录
第一章绪论1
第二章系统介绍2
第三章数据库的设计3
3.1系统功能流程图3
3.2数据库设计4
3.2.1各表的物理结构4
3.2.2数据库连接代码5
第四章主要内容6
4.1登陆界面6
4.2学生成绩管理界面9
4.3教师管理界面13
4.4管理员界面18
总结22
参考文献23
图表清单
图3.1系统功能流程…………………………………………………………3
图4.1登陆界面………………………………………………………………6
图4.2学生成绩管理界面………………………………………………………9
图4.3教师管理界面…………………………………………………………13
图4.4管理员界面…………………………………………………………18
表3.2.1学生成绩表……………………………………………………………4
表3.2.2用户登录表……………………………………………………………4
第一章绪论
人类有几千年的历史,计算机从产生到现在只不过50多年,而网络的迅速发展也不过10年的时间。
但是,计算机和网络对社会的影响已经迅速扩大,甚至在改变人们的生活。
特别是90年代以来,多媒体和网络技术的飞速发展正在以惊人的速度改变着人们的工作方式、交往方式和生活方式。
正像著名的未来学家尼葛洛庞帝(1997)所说的:
“数字不再只和计算有关,它决定我们的生存。
”科学技术是第一生产力,是最先进的生产力。
现在,已经没有人怀疑信息技术的发展将会引起人类社会全面和深刻的变革,使人类社会由工业社会迈向信息社会。
目前,在社会各个方面都呈现出了与工业社会显著不同的特点。
网上书店,网上医院,网上学校,网上购物,网上银行,政府上网等新事物如雨后春笋般涌现出来,对人们的传统生活方式、工作方式产生极大的冲击。
使人们感受到技术发展的脉搏和信息时代前进的步伐。
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。
面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。
通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。
第二章系统介绍
本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生信息进行日常管理,如查询、修改、增加、删除,另外还考虑到用户登录的权限,针对学生信息和权限登录的学生成绩管理系统。
本系统主要包括注册管理、教师管理、学生信息查询、添加、修改、删除等部分。
其功能主要有:
(1)学生信息的添加,包括输入学生基本信息和成绩。
(2)学生信息的查询,包括查询学生基本信息和成绩。
(3)学生信息的修改,包括修改学生基本信息和成绩。
(4)学生信息的删除,包括修改学生基本信息和成绩。
(5)登录用户密码修改,用户登录到系统可进行相应的用户密码修改。
(6)管理员用户对用户名的管理,包括添加新用户、删除用户。
学生成绩管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
经过分析,使用Microsoft公司的VisualC#2008开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
第三章数据库的设计
3.1系统功能流程图
退出
图3.1系统功能流程
3.2数据库设计
本系统的数据库是SQLserver数据库,在SQL环境下创建数据库学生成绩管理系统.mdf文件。
该数据库包括学生成绩表、用户登录表用于纪录学生的基本信息数据库表结构如下所示:
3.2.1各表的物理结构
表3.2.1学生成绩表
表3.2.2用户登录表
3.2.2数据库连接代码
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringconnStr="Server=.;DataBase=LOCAL;IntegratedSecurity=True";//数据库连接字符串,.表示本机服务器DataBase为表名,IntegratedSecurity=True是采用windows身份验证方式登录
SqlConnectionconn=newSqlConnection(connStr);//根据连接字符串,新建数据库连接
stringsqlStr="select*from[student1]";//查询student1表的查询语句
SqlCommandcmd=newSqlCommand(sqlStr,conn);//根据查询语句和数据库连接,等到查询命令对象
SqlDataReaderreader=cmd.ExecuteReader();//从查询命令对象中获得一个读取数据库数据的对象
while(reader.Read())//循环读取下一行数据,如果下一行没有数据返回false
{
stringid=reader["id"].ToString();//根据列名获得数据
stringname=reader["name"].ToString();
stringsex=reader["sex"].ToString();
MessageBox.Show(string.Format("id={0},name={1},sex={2}",id,name,sex));
}
}
第四章主要内容
4.1登陆界面
图4.1登录界面
设计过程:
用于输入用户名和密码登录,选择相应的用户类型进入系统,若是用户类型选择错误则不能进入系统。
输入用户名和密码后点击确定判断数据库中的用户是否为合法用户。
部分设计代码:
conn.Open();
if(txtname.Text==""||txtpassword.Text=="")
MessageBox.Show("请不要遗漏信息!
");
if(rbtnmanager.Checked)
{
stringcstr="select*from用户登录where类别='管理员'and用户名='"+txtname.Text.Trim()+"'and密码='"+txtpassword.Text.Trim()+"'";
SqlCommandcomm=newSqlCommand(cstr,conn);
SqlDataReaderdr=comm.ExecuteReader();
if(dr.Read())
{sn=txtname.Text.Trim();fr4.Show();this.Visible=false;}
else
{
MessageBox.Show("输入有误,请重新输入!
");
txtname.Text="";txtpassword.Text="";
}
}
if(rbtnteacher.Checked)
{
stringcstr="select*from用户登录where类别='教师'and用户名='"+txtname.Text.Trim()+"'and密码='"+txtpassword.Text.Trim()+"'";
SqlCommandcomm=newSqlCommand(cstr,conn);
SqlDataReaderdr=comm.ExecuteReader();
if(dr.Read())
{sn=txtname.Text.Trim();sub=dr.GetValue(3).ToString();fr3.Show();this.Visible=false;}
else
{
MessageBox.Show("输入有误,请重新输入!
");
txtname.Text="";txtpassword.Text="";
}
}
if(rbtnstudent.Checked)
{
stringcstr="select*from用户登录where类别='学生'and用户名='"+txtname.Text.Trim()+"'and密码='"+txtpassword.Text.Trim()+"'";
SqlCommandcomm=newSqlCommand(cstr,conn);
SqlDataReaderdr=comm.ExecuteReader();
if(dr.Read())
{sn=txtname.Text.Trim();fr2.Show();this.Visible=false;}
else
{
MessageBox.Show("输入有误,请重新输入!
");
txtname.Text="";txtpassword.Text="";
}
}
conn.Close();conn.Dispose();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
Application.Exit();
}
privatevoidtimer1_Tick(objectsender,EventArgse)
{
label1.Text="当前时间为:
"+DateTime.Now.ToLongDateString()+""+DateTime.Now.ToLongTimeString();
}
}
}
4.2学生成绩管理界面
图4.2学生成绩管理界面
设计过程:
此部分主要针对学生信息的管理,可以查询学生的所有成绩信息,实现成绩的添加、删除、修改、计算平均分等功能。
还可以修改当前用户下的密码。
部分设计代码:
privatevoidgroupBox2_Enter(objectsender,EventArgse)
{
}
privatevoidtoolStripButton3_Click(objectsender,EventArgse)
{
groupBox2.Visible=true;
stringstr="Password=123456789;PersistSecurityInfo=True;UserID=sa;InitialCatalog=学生成绩管理系统;DataSource=FLQ-PC\\SQLEXPRESS";
SqlConnectionconn=newSqlConnection(str);
conn.Open();
SqlDataAdapterda=newSqlDataAdapter("Select*from学生成绩表where姓名='"+Login.sn.Trim()+"'",conn);
DataSetds=newDataSet();
da.Fill(ds,"usertable");
intmax=0,min=1001;
doubleave=0.0;
for(inti=2;i<=6;i++)
{
if(int.Parse(ds.Tables["usertable"].Rows[0][i].ToString())>max)
max=int.Parse(ds.Tables["usertable"].Rows[0][i].ToString());
if(int.Parse(ds.Tables["usertable"].Rows[0][i].ToString())min=int.Parse(ds.Tables["usertable"].Rows[0][i].ToString());
}
txthscore.Text=max.ToString();
txtlscore.Text=min.ToString();
txtall.Text=ds.Tables["usertable"].Rows[0]["总分"].ToString();
ave=int.Parse(ds.Tables["usertable"].Rows[0]["总分"].ToString())/(double)5;
txtave.Text=ave.ToString();
conn.Close();conn.Dispose();
}
privatevoidtimer1_Tick(objectsender,EventArgse)
{
label6.Text="当前时间为:
"+DateTime.Now.ToLongDateString()+DateTime.Now.ToLongTimeString();
}
}
}
4.3教师管理界面
图4.3教师管理界面
设计过程:
此部分主要针对教师信息管理,可以查询学生的所有成绩信息,实现成绩的添加、删除、修改、成绩升序排序等功能。
还可以修改当前用户下的密码。
设计代码:
{
stringstr="Password=123456789;PersistSecurityInfo=True;UserID=sa;InitialCatalog=学生成绩管理系统;DataSource=FLQ-PC\\SQLEXPRESS";
SqlConnectionconn=newSqlConnection(str);
conn.Open();
SqlDataAdapterda=newSqlDataAdapter("select学号,姓名,"+Login.sub+"from学生成绩表",conn);
DataSetds=newDataSet();
da.Fill(ds,"table");
dataGridView1.DataSource=ds.Tables["table"].DefaultView;
conn.Close();conn.Dispose();
}
privatevoidbutton2_Click(objectsender,EventArgse)//修改
{
stringstr="Password=123456789;PersistSecurityInfo=True;UserID=sa;InitialCatalog=学生成绩管理系统;DataSource=FLQ-PC\\SQLEXPRESS";
SqlConnectionconn=newSqlConnection(str);
conn.Open();
SqlCommandcom=newSqlCommand("update学生成绩表set"+Login.sub+"='"+textBox3.Text+"'where姓名='"+textBox4.Text+"'",conn);
if(com.ExecuteNonQuery()==1)
MessageBox.Show("修改成功!
");
conn.Close();conn.Dispose();
}
privatevoid修改_Click(objectsender,EventArgse)
{
groupBox2.Enabled=true;
}
privatevoidgroupBox2_Enter(objectsender,EventArgse)
{
}
privatevoidbutton3_Click(objectsender,EventArgse)
4.4管理员界面
图4.3管理员界面
设计过程:
此部分主要针对管理员的,可以添加和删除所有用户的账号和密码。
部分设计代码:
if(com.ExecuteScalar()!
=null){MessageBox.Show("用户已存在!
");}
else
{
if(txtyhm.Text!
=""&&txtmm.Text!
=""&&txtkm.Text!
="")
{
SqlCommandcm=newSqlCommand("insertinto用户登录(用户名,密码,类别,科目)values('"+txtyhm.Text+"','"+txtmm.Text+"','教师','"+txtkm.Text+"')",conn);
if(cm.ExecuteNonQuery()==1){MessageBox.Show("创建成功!
");}
}
else
MessageBox.Show("请不要遗漏信息!
");
}
}
elseif(radioButton2.Checked)
{
txtkm.Enabled=false;
SqlCommandcom=newSqlCommand("select*from用户登录where用户名='"+txtyhm.Text.Trim()+"'",conn);
if(com.ExecuteNonQuery()==1){MessageBox.Show("用户已存在!
");}
else
{
if(txtyhm.Text!
=""&&txtmm.Text!
="")
{
SqlCommandcm=newSqlCommand("insertinto用户登录(用户名,密码,类别)values('"+txtyhm.Text+"','"+txtmm.Text+"','学生')",conn);
if(cm.ExecuteNonQuery()==1){MessageBox.Show("创建成功!
");
SqlCommandc=newSqlCommand("insertinto学生成绩表(姓名,微机原理,数据通信,英语,,C#程序设计,网络操作系统)values("+txtyhm.Text+"'100,100,100,100,100)",conn);}
}
else
MessageBox.Show("请不要遗漏信息!
");
}
}
else{MessageBox.Show("请先选择类别!
");}
conn.Close();conn.Dispose();
}
privatevoidradioButton3_CheckedChanged(objectsender,EventArgse)
{
textBox1.Enabled=true;
}
privatevoidradioButton4_CheckedChanged(objectsender,EventArgse)
{
textBox1.Enabled=true;
}
privatevoidbutton5_Click(objectsender,EventArgse)
{
stringstr="Password=123456789;PersistSecurityInfo=True;UserID=sa;InitialCatalog=学生成绩管理系统;DataSource=FLQ-PC\\SQLEXPRESS";
总结
本次系统设计让我知道了进行管理系统开发这样的工作,要有恒心,要能静下新来做,而不能浮躁。
要真真实实的多查资料,多问,多看。
要善于同同学和老师交流与合作,善于获取各种有用的资源。
经过本次准备的结课论文,让我学把老师上课讲的内容融会贯通,不再只是机械的复制老师思想。
巩固和加深了对C#的理解,提高综合运用本课程所学知识的能力。
培养了我选用参考书,查阅手册及文献资料的能力,及身边所能利用的一切资源。
培养独立思考,深入研究,分析问题、解决问题的能力。
独立自主设计和编码等一系列的程序。
通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
由于本次的论文准备遇到的问题,我将在以后的学习当中注意以下几个方面:
上课认真听讲,做好笔记,课下认真复习,掌握课本中的知识,多在电脑上实践,上好专业实验课;写程序的过程中要考虑周到,严密;在做设计的时候要有信心,有耐心,切勿浮躁;在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。
更让我认识到一个系统开发的过程中编码不是重要的,最重要的是分析系统、建立起系统模型。
只有分析出来才能进行编码。
在分析一个系统前,操作者必须要对将要开发的系统所涉及到的各方面知识有一个整体的认识,然后将系统的模型建立起来。
在程序编写中,我认识到软件要有简便的界面,良好的程序风格。
拥有这些条件,程序的可读性才会好,开发的复杂度才能大大减少,修改代码时更加容易下手。
参考文献
[1]《.NET程序设计使用教程》黄兴荣李昌领清华大学出版社
[2]《ASP.NET企业级开发案例精解(C#)》中国林业出版社
[3]《SQLServer数据库开发入门与范例解析》夏邦贵著北京机械工
[4]《VisualC#2005技术内幕》(美)马歇尔著许华杰/刘光惠译
[5]XX搜索