目 录
第一章 系统简介.... 3
1.1内容介绍... 3
第二章 数据库设计.... 3
2.1数据表说明.... 3
第三章 系统功能设计.... 3
3.1:模块流程图... 5
第四章 核心代码.... 6
4.1登录模块代码... 7
4.2主界面模块代码... 8
4.3成绩查询模块代码... 10
4.4成绩录入代码... 12
4.5成绩修改模块代码... 14
4.6学生信息查询模块代码... 16
4.7成绩删除代码... 17
4.8学生信息录入代码... 19
第五章 总结.... 21
参考文献.... 21
学生成绩管理系统
[摘要] 随着网络技术在教育领域应用的普及,应用现代化信息技术构架的网络成绩管理考试系统展现了越来越来的优越性.随着现在学生人数的增多,国家加强对信息化的重视,以及学校对无纸化系统的一种探索,使各项管理更加的规范化,设计本系统---学生成绩管理系统,
[关键字] c# 成绩管理 VS2005 sql2005
第一章 系统简介
1.1内容介绍
(1).开发环境:VS2005+SQL2005
(2).语言:c#
(3).系统介绍
学生成绩管理系统是一个信息管理系统(MIS),其开发主要包括系统需求分析,系统设计,界面设计,以及编码实现。本系统应用了C#语言编写设计,对于基本登录实现权限限制,管理员,教师。学生分别查看不同的功能,其中管理员权限最大。可以添,删,改,查等
第二章 数据库设计
2.1数据表说明
数据库名: StudentCj数据库用户名:sa 密码:
数据库表整体说明如下:
(1)Admin表(用户名和密码)
(2)BJ表(班级代码和班级名称)
(3)student表(序号,姓名和班级代码)
(4)kecheng表(课程代码和课程名称)
(5)cjbiao表(用户id和课程代码和班级代码和学生成绩)
第三章 系统功能设计
3.1:模块流程图
模块流程图
功能介绍:
1.学生模块:
考生通过登录窗口,输入用户名和密码,实现登录,查看自己的成绩以及自己密码的修改
2.管理员管理模块
(1).用户管理:管理员对用户进行管理,可以修改用户的角色
(2).数据库管理:管理员可以对数据库进行添加,删除和修改.
(3).课程科目管理:管理员可以课程科目进行添加和删除和修改.
(4).成绩管理:管理员可以对删除考生的成绩.
(5).权限管理:管理员可以给不同的用户不同的权限.
(6).系别管理:管理员可以添加,删除和修改系别.
3.教师模块
教师可以对学生成绩进行发布,查看学生所选课程.教师可以修改自己的密码;
第四章 核心代码
4.1登录模块代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SqlConnection con1 = new SqlConnection();
con1.ConnectionString = "(local);database=StudentCj;Integrated Security=true";
string sql = "select Name,passwd from Admin where Name='" + textBox1.Text + "' and passwd='" + textBox2.Text + "'";
SqlCommand com1 = new SqlCommand();
com1.CommandText = sql;
com1.Connection = con1;
con1.Open();
SqlDataReader sdr = com1.ExecuteReader();
if (sdr.Read())
{
Main longs = new Main();
longs.Show();
con1.Close();
this.Visible = false;
}
else
{
MessageBox.Show("请输入正确用户和密码");
}
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void Form1_Load(object sender, EventArgs e)
{
this.textBox1.Text = "";
this.textBox2.Text = "";
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
button1.PerformClick();
}
if (e.KeyCode == Keys.Escape)
{
button2.PerformClick();
}
}
}
}
4.2主界面模块代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private void Main_Load(object sender, EventArgs e)
{
this.Text = "学生信息管理系统";
this.toolStripStatusLabel1.Text = "系统当前时间" + System.DateTime.Now.Year + "年" + System.DateTime.Now.Month + "月" + System.DateTime.Now.Day + "日" + System.DateTime.Now.Hour + ":" + System.DateTime.Now.Minute;
}
private void 推ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void 学生信息输入ToolStripMenuItem_Click(object sender, EventArgs e)
{
XinXiShuRu xxsr = new XinXiShuRu();
xxsr.MdiParent = this;
xxsr.Show();
}
private void 学生信息查询ToolStripMenuItem_Click(object sender, EventArgs e)
{
XinXiChaXun xxcx = new XinXiChaXun();
xxcx.MdiParent = this;
xxcx.Show();
}
private void 成绩输入ToolStripMenuItem_Click(object sender, EventArgs e)
{
ChengJiLuRu cjlr = new ChengJiLuRu();
cjlr.MdiParent = this;
cjlr.Show();
}
private void 成绩修改ToolStripMenuItem_Click(object sender, EventArgs e)
{
ChengJiXiuGai cjxg = new ChengJiXiuGai();
cjxg.MdiParent = this;
cjxg.Show();
}
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
ShanChu sc = new ShanChu();
sc.MdiParent = this;
sc.Show();
}
private void 关于ToolStripMenuItem_Click(object sender, EventArgs e)
{
GuanYu gy = new GuanYu();
gy.MdiParent = this;
gy.Show();
}
private void 成绩查询ToolStripMenuItem_Click(object sender, EventArgs e)
{
ChengJiChaXun cjcx = new ChengJiChaXun();
cjcx.MdiParent=this;
cjcx.Show();
}
private void 学生信息管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
}
}
}
4.3成绩查询模块代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsApplication1
{
public partial class ChengJiChaXun : Form
{
string strConn = "Server=localhost; database=StudentCj;user=sa;password=ok;"; public ChengJiChaXun()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
try
{
DataSet ds;
string sqla = "select a.id as 学号,b.name as 姓名,a.cj as 成绩, c.kcmc as 课程名称 from cjbiao a join student b on a.id=b.id join kecheng c on a.kcdm=c.kcdm where a.id='" + textBox1.Text + "' or b.name='" + textBox2.Text + "'";
SqlDataAdapter adp = new SqlDataAdapter(sqla, strConn);
ds = new DataSet();
ds.Clear();
adp.Fill(ds, "Cjbiao");
//dataGridView1.DataSource = ds.Tables[0].DefaultView;
if (ds.Tables[0].Rows.Count != 0)
{
dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
else
{
MessageBox.Show("对不起!你的成绩不存在,请输入正确的学号或姓名");
}
}
catch
{ }
}
private void button1_Click(object sender, EventArgs e)
{
try
{
DataSet ds2;
//string sql2 = "select a.id as 学号,b.name as 姓名,a.cj as 成绩, c.kcmc as 课程名称 from cjbiao a join student b on a.id=b.id join kecheng c on a.kcdm=c.kcdm where a.bjdm=(select bjdm from bj where bjmc='"+comboBj.Text+"')";
string sql2 = "SELECT b.ID as 学号,d.Name as 姓名,a.BJMC as 班级名称,c.KCMC as 课程名称,b.CJ as 成绩 FROM BJ a join cjbiao b ON a.BJDM =b.BJDM JOIN kecheng c ON b.KCDM =c.KCDM JOIN student d ON b.ID = d.ID where bjmc='" + comboBox1.Text + "'";
SqlDataAdapter adp = new SqlDataAdapter(sql2, strConn);
ds2 = new DataSet();
ds2.Clear();
adp.Fill(ds2, "Cjbiao1");
//dataGridView1.DataSource = ds2.Tables[0].DefaultView;
if (ds2.Tables[0].Rows.Count != 0)
{
dataGridView1.DataSource = ds2.Tables[0].DefaultView;
textBox2.Text = "";
textBox1.Text = "";
}
else
{
MessageBox.Show("对不起!你输入的班级的信息不存在,请输入正确的班级");
textBox1.Text = "";
textBox2.Text = "";
}
}
catch
{ }
}
}
}
4.4.成绩录入模块代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsApplication1
{
public partial class ChengJiLuRu : Form
{
string str1 = "Server=localhost; database=StudentCj; user=sa; password=ok;";
SqlConnection conn2;
public ChengJiLuRu()
{
InitializeComponent();
conn2 = new SqlConnection(str1);
}
private void button1_Click(object sender, EventArgs e)
{
try
{
string sql1 = "SELECT student.ID,BJ.BJDM,kecheng.KCDM FROM BJ CROSS JOIN kecheng CROSS JOIN student where student.ID='" + textBox1.Text + "' and BJ.BJMC='" + comboBox2.Text + "' and kecheng.KCMC='" + comboBox1.Text + "'";
DataSet da1 = new DataSet();
SqlDataAdapter adp1 = new SqlDataAdapter(sql1, str1);
da1.Clear();
adp1.Fill(da1);
string ID = da1.Tables[0].Rows[0][0].ToString();
string BJDM = da1.Tables[0].Rows[0][1].ToString();
string KCDM = da1.Tables[0].Rows[0][2].ToString();
string sql = "insert into cjbiao(id,kcdm,bjdm,cj) values('" + ID + "','" + KCDM + "','" + BJDM + "','" + textBox3.Text + "')";
SqlCommand cmd = new SqlCommand(sql, conn2);
conn2.Open();
cmd.ExecuteNonQuery();
conn2.Close();
MessageBox.Show("信息添加成功", "提示");
textBox3.Text = "";
}
catch
{
MessageBox.Show("对不起!没有该学生的信息!操作失败!");
}
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
}
4.5.成绩修改模块代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsApplication1
{
public partial class ChengJiXiuGai : Form
{
string strCon = "Server=(local);database=StudentCj;Integrated Security=true;";
SqlConnection conn3;
public ChengJiXiuGai()
{
InitializeComponent();
conn3 = new SqlConnection(strCon);
}
private void button1_Click(object sender, EventArgs e)
{
try
{
string sql = "update cjbiao set cj='" + textBox2.Text + "' where id='" + textBox1.Text + "' and kcdm=(select kcdm from kecheng where kcmc='" + comboBox1.Text + "')";
SqlCommand cmd = new SqlCommand(sql, conn3);
conn3.Open();
int aaa = cmd.ExecuteNonQuery();
conn3.Close();
if (aaa > 0)
MessageBox.Show("修改成功!");
else
{
MessageBox.Show("修改失败!");
}
textBox1.Text = "";
comboBox1.Text = "";
textBox2.Text = "";
}
catch
{
MessageBox.Show("对不起!修改不成功!");
}
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
4.6.学生信息查询模块代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsApplication1
{
public partial class XinXiChaXun : Form
{
string strConn = "Server=localhost; database=StudentCj; User=sa; Password=ok;";
SqlConnection conn2;
public XinXiChaXun()
{
InitializeComponent();
conn2 = new SqlConnection(strConn);
}
private void button1_Click(object sender, EventArgs e)
{
string sqlcxx = "SELECT student.ID as 学号, student.Name as 姓名,BJ.BJMC as 班级名称 FROM BJ JOIN student ON BJ.BJDM = student.BJDM";
DataSet dtst = new DataSet();
SqlDataAdapter sdat = new SqlDataAdapter(sqlcxx,conn2);
dtst.Clear();
sdat.Fill(dtst,"student");
dataGridView1.DataSource = dtst.Tables[0].DefaultView;
}
}
}
4.7.成绩删除模块代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsApplication1
{
public partial class ShanChu : Form
{
string strCon = "Server=(local);database=StudentCj;Integrated Security=true;";
SqlConnection con;
public ShanChu()
{
InitializeComponent();
con = new SqlConnection(strCon);
}
private void button1_Click(object sender, EventArgs e)
{
string sql1 = "select * from cjbiao delete from cjbiao where id='" + textBox1.Text + "'";
string sql2 = "select * from student delete from student where id='" + textBox1.Text + "'";
SqlCommand com1 = new SqlCommand(sql1, con);
SqlCommand com2 = new SqlCommand(sql2, con);
con.Open();
com1.ExecuteNonQuery();
com2.ExecuteNonQuery();
con.Close();
MessageBox.Show("您确认删除吗!", "消息框", MessageBoxButtons.YesNo);
textBox1.Text = "";
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
4.8.学生信息录入模块代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsApplication1
{
public partial class XinXiShuRu : Form
{
string strcon = "Server=(local);database=StudentCj;Integrated Security=true";
SqlConnection con;
public XinXiShuRu()
{
InitializeComponent();
con = new SqlConnection(strcon);
}
private void XinXiShuRu_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
try
{
DataSet sd = new DataSet();
string sqlbj = "select bjdm from bj where bjmc='" + comboBox1.Text + "'";
string id = "select id from studeng where id='" + textBox1 + "'";
SqlDataAdapter sda = new SqlDataAdapter(id, con);
sd.Clear();
sda.Fill(sd, "id");
if (sd.Tables[0].Rows.Count != 0)
{
MessageBox.Show("你输入的信息有误");
}
else
{
SqlDataAdapter sda1 = new SqlDataAdapter(sqlbj, con);
sd.Clear();
sda1.Fill(sd, "bjmc");
string bjcx = sd.Tables[0].Rows[0][0].ToString();
string sql = "insert into student values('" + textBox1.Text + "','" + textBox2.Text + "','" + bjcx + "')";
SqlCommand com = new SqlCommand(sql, con);
con.Open();
com.ExecuteNonQuery();
con.Close();
MessageBox.Show("恭喜你!输入成功!");
textBox1.Text = "";
textBox2.Text = "";
}
}
catch
{
}
}
}
}
第五章 总结
结束语
水滴石穿,我的未来不是梦。经过这次设计我学会了很多,我要感谢所有在毕业设计期间给予我帮助的人,整个设计过程给予我很大的启发与帮助总之,通过毕业设计,我更深刻的体会到要做一个完整的事情,必须要有系统的思维方式和方法,对待一个新的问题,要耐心,要善于运用自己的资源来充实自己,同时我也深刻的认识到,对待事情,要从整体考虑,这样对完成系统而言才能更加有效,最后探索出了一套考虑问题和解决问题的方法,这对我以后的继续学习受益匪浅。
参考文献
[1].王小科 吕双,C#从入门到精通.清华大学出版社.2008.09
[2].王一平.信息系统开发案例.清华大学出版社.1999
[3]. 高金兰.数据库原理与SQL Server应用.武汉大学出版社.2008.01