C#制作学生信息管理系统
源程序下载
系统各模块设计
一.主界面设计
1.新建工程xsgl,将主窗口命名fmain,标题为"学生管理系统"。设置其StartPosition为CenterScreen。
2.作主菜单:
系统:系统登录、退出登录、用户管理、退出系统
设置:专业设置、课程设置、班级设置
录入:、学生成绩
查询:、学生成绩
帮助:使用说明、关于系统
3.放一个图像框pictureBox1,设置Dock为Fill,SizeMode为StretchImage,取一幅图像(Image)。
4.放两个标签label1~2,标题分别为"欢迎你使用学生管理系统"、空,设置它们的字体、大小、颜、透明。
5.代码:
//响应fmain的Load事件:
label1.Parent = pictureBox1;
label2.Parent = pictureBox1;//设置标签的父容器
label1.Left = (Width - label1.Width) / 2;//label1水平居中
退出登录.Enabled = false;
用户管理.Enabled = false;
设置.Enabled = false;
录入.Enabled = false;
查询.Enabled = false;//未登录时关闭相应的功能
//响应菜单退出系统的代码:
Close();
//响应菜单关于系统的代码:
MessageBox.Show("学生管理系统\n版本1.0\n作者吴三成", "学生管理系统");
二.登录界面设计
1.新建窗口fdl,标题为登录,设置其StartPosition为CenterScreen。
2.放两个标签label1~2,标题分别为"用户名","密 码",再放两个文本框textBox1~2,再放按钮button1,标题为"登录"。设置它们的字体,大小,颜。
3.代码:
//为连接Access数据库,在代码头加上:
using System.Data.OleDb;
//在生成函数前加上属性:
public int ndl = 0;
public string yhm = "";
public string qx = "";
//响应登录按钮单击事件:
if (textBox1.Text == "")
{
MessageBox.Show("请你输入用户名!", "提示");
return;
}
if (textBox2.Text == "")
{
MessageBox.Show("请你输入密码!", "提示");
return;
}//以上验证输入
string cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xsgl.mdb";
OleDbConnection co = new OleDbConnection(cs); co.Open();
OleDbCommand cm = new OleDbCommand(); cm.Connection = co;
OleDbDataReader rd;//以上建立数据库连接
cm.CommandText = "select * from 用户 where 用户名='"+textBox1.Text+"'";
rd = cm.ExecuteReader();//以上设计与执行查用户名的SQL
if (rd.Read())
{//到用户名
string mm = rd.GetString(2).Trim();//从数据库中取得密码
if (mm.Equals(textBox2.Text.Trim()))
{//密码相等则登录成功,保存登录信息,关闭登录窗口
this.ndl = 1;
this.yhm = textBox1.Text;
this.qx = rd.GetString(3);
MessageBox.Show(this.qx + this.yhm + "登录成功!", "提示");
co.Close(); this.Close();
}
else
{
MessageBox.Show("密码不对!", "提示");
}
}
else
{
MessageBox.Show("无此用户名!",
"提示");
}
co.Close();//养成关闭数据库连接的好习惯
//fmain加上属性:
static int ndl = 0;
static string yhm = "";
static string qx = "";
//响应fmain系统登录菜单单击事件:
fdl f = new fdl();//生成登录窗口实例
f.ShowDialog();//模式显示之
ndl = f.ndl;
yhm = f.yhm;
qx = f.qx;//关闭登录窗口后取回登录数据
f.Dispose();//释放登录窗口资源
if (ndl == 1)
{//登录成功则开放相应的功能
查询.Enabled = true;
系统登录.Enabled = false;
退出登录.Enabled = true;
用户管理.Enabled = true;//所有用户都要开放的
if (qx.Equals("超级用户"))
{//超级用户全部开放
设置.Enabled = true;
录入.Enabled = true;
}
else if (qx.Equals("录入人员"))
{//录入人员可使用录入功能
录入.Enabled = true;
}
label2.Text = qx + yhm;//显示用户
label2.Left = (Width - label2.Width) / 2;
//响应fmain退出登录菜单单击事件:
//去掉登录信息,关闭相应功能,开放系统登录功能
label2.Text = "";
ndl = 0; qx = ""; yhm = "";
退出登录.Enabled = false;
用户管理.Enabled = false;
设置.Enabled = false;
录入.Enabled = false;
查询.Enabled = false;
系统登录.Enabled = true;
用户登录界面设计代码html三.用户管理界面设计
1.新建窗口fyh,标题为用户管理,设置其StartPosition为CenterScreen。
2.建立数据源xsglds(访问xsgl.mdb)。从xsglds中把用户表拖到窗口中,把表格的Dack设为Fill,AutoSizeColumnsMode为AllCells。
3.代码
//添加属性:
string yhm, qx;
//修改生成函数
public fyh(string s1,string s2)
{
InitializeComponent();
this.yhm = s1; this.qx = s2;
}
//把保存按钮的代码加上出错处理:
try
{
...//原代码
}
catch (Exception ex)
{
MessageBox.Show("保存数据不成功!", "提示");
}
//在fyh的Load事件中添加代码:
if (qx != "超级用户")
{
用户BindingSource.Filter = "用户名='" + yhm + "'";//过滤
用户DataGridView.Columns[0].ReadOnly = true;//不改序号
用户DataGridView.Columns[3].ReadOnly = true;//不改权限
用户DataGridView.AllowUserToAddRows = false;//不加行
用户DataGridView.AllowUserToDeleteRows = false;//不删行
用户BindingNavigator.AddNewItem.Enabled = false;//+灰
用户BindingNavigator.DeleteItem.Enabled = false;//x灰
}
//响应fmain用户管理菜单单击事件:
fyh f = new fyh(yhm,qx);
f.ShowDialog();
f.Dispose();
四.专业设置界面设计
1.新建窗口fzy,标题为专业设置,设置其StartPosition为CenterScreen。
2.从数据源xsglds中把专业表拖到窗口中,把表格的Dack设为Fill,AutoSizeColumnsMode为AllCells。
3.代码:
/
/把保存按钮的代码加上出错处理:
try
{
...//原代码
}
catch (Exception ex)
{
Mess
ageBox.Show("保存数据不成功!", "提示");
}
//响应fmain专业设置菜单单击事件:
fzy f = new fzy();
f.ShowDialog();
f.Dispose();
五.课程设置界面设计
1.新建窗口fkc,标题为课程设置,设置其StartPosition为CenterScreen。
2.从数据源xsglds中把课程表拖到窗口中,把表格的Dack设为Fill,AutoSizeColumnsMode为AllCells。
3.代码:
//把保存按钮的代码加上出错处理:
try
{
...//原代码
}
catch (Exception ex)
{
MessageBox.Show("保存数据不成功!", "提示");
}
//响应fmain课程设置菜单单击事件:
fkc f = new fkc();
f.ShowDialog();
f.Dispose();
六.班级设置界面设计
1.新建窗口fbj,标题为班级设置,设置其StartPosition为CenterScreen。
2.从数据源xsglds中把班级表拖到窗口中,把表格的Dack设为Fill,AutoSizeColumnsMode为AllCells。
3.代码:
//把保存按钮的代码加上出错处理:
try
{
...//原代码
}
catch (Exception ex)
{
MessageBox.Show("保存数据不成功!", "提示");
}
/
/响应fmain班级设置菜单单击事件:
fbj f = new fbj();
f.ShowDialog();
f.Dispose();
七.录入界面设计
1.新建窗口fxs,标题为录入,设StartPosition为CenterScreen。
2.放一个面板panel1,设置Dock为Bottom,在面板上放一个图像框pictureBox1,设置其Dock为Right,SizeMode为StretchImage,在面板上再放一个多行文本richTextBox1,设置其Dock为Fill。
3.从数据源xsglds中把学生表拖到窗口中,把表格的Dack设为Fill,AutoSizeColumnsMode为AllCells,去掉特长和照片列。设置pictureBox1的DataBindings的Image为学生表的照片,设置richTextBox1的DataBindings的Text为学生表的特长。
4.放一个打开文件对话框odlg
5.放一个弹出菜单contextMenuStrip1,加一个菜单项"取照片",设置pictureBox1的ContextMenuStrip为contextMenuStrip1
6.代码:
//把保存按钮的代码加上出错处理:
try
{
...//原代码
}
catch (Exception ex)
{
MessageBox.Show("保存数据不成功!", "提示");
}
//响应取照片菜单单击事件:
if (odlg.ShowDialog() == DialogResult.OK)
{
pictureBox1.LoadAsync(odlg.FileName);
}
//响应fmain录入中的菜单单击事件:
fxs f = new fxs();
f.ShowDialog();
f.Dispose();
八.学生成绩录入界面设计
1.新建窗口fcj,标题为学生成绩录入,设StartPosition为CenterScreen。
2.在数据源窗口右击选使用设计器编辑数据集,右击设计器添加关系,父表为学生,子表为成绩,键列和外键列为学号。此时,学生表内出现子表成绩
3.从数据源xsglds中把学生表拖到窗口中,把表格的Dack设为Top,AutoSizeColumnsMode为AllCells,ReadOnly为true。只保留:序号,学号,姓名,性别四列,去掉导航条的添加,删除按钮。
4.放一个数据导航条bindingNa
vigator1,将子表成绩拖到窗口中,设置表格的AutoSizeColumnsMode为AllCells,Dock为Fill。设导航条的BindingSource为成绩表,将学生表导航条的保存按钮剪切为此条的保存按钮。
5.代码:
//去掉学生表导航条的保存按钮代码
//成绩表导航条保存按钮的代码:
try
{
this.Validate();
this.成绩BindingSource.EndEdit();
this.成绩TableAdapter.Update(this.xsds.成绩);
}
catch (Exception ex)
{
MessageBox.Show("保存数据不成功!", "提示");
}
//响应fmain录入中学生成绩菜单单击事件:
fcj f = new fcj();
f.ShowDialog();
f.Dispose();
九.查询界面设计
1.新建窗口fxscx,标题为查询,设StartPosition为CenterScreen。
2.放一个面板panel1,设置Dock为Bottom,在面板上放一个图像框pictureBox1,设置其Dock为Right,SizeMode为StretchImage,在面板上再放一个多行文本richTextBox1,设置其Dock为Fill,ReadOnly为true。
3.从数据源xsglds中把学生表拖到窗口中,把表格的Dack设为Fill,AutoSizeColumnsMode为AllCells,ReadOnly为true,去掉特长和照片列。设置pictureBox1的DataBindings的Image为学生表的照片,设置richTextBox1的DataBindings的Text为学生表的特长。
4.去掉导航条上的保存、删除、添加按钮,删除保存按钮的代码。在导航条上添加下拉列表框zd,Items为"学号","姓名",ToolTipText为"字段";添加按钮toolStripButton1,Text为"按字段查询";添加文本框tj,Size为(250, 29),ToolTipText为"条件";添加按钮toolStripButton2,Text为"按条件查询"。
5.代码:
//去掉学生表导航条的保存按钮代码
//添加引用Microsoft.VisualBasic
//在代码头加上
using Microsoft.VisualBasic;
//按字段查询按钮toolStripButton1代码:
if (zd.Text == "学号")
{
string xh = Interaction.InputBox("输入要查的学号:", "输入", "xx0501", 100, 100);
学生BindingSource.Filter = "学号='" + xh + "'";
}
if (zd.Text == "姓名")
{
string xm = Interaction.InputBox("输入要查的姓名:", "输入", "张三", 100, 100);
学生BindingSource.Filter = "姓名='" + xm + "'";
}
//按条件查询按钮toolStripButton2代码:
学生BindingSource.Filter = tj.Text;
十.学生成绩查询界面设计
1.新建窗口fcjcx,标题为学生成绩查询,设StartPosition为CenterScreen。
2.从数据源xsglds中把学生表拖到窗口中,把表格的Dack设为Top,AutoSizeColumnsMode为AllCells,ReadOnly为true。只保留前八列,去掉导航条上的保存、删除、添加按钮,删除保存按钮的代码。在导航条上添加下拉列表框xszd,Items为"学号","姓名",ToolTipText为"学生字段";添加按钮toolStripButton1,Text为"按字段查询";添加文本框xstj,Size为(250, 29),ToolTipText为"条件";添加按钮toolStripButton2,Text为"按条件查询"。
3.放一个数据导航条bindingNavigator1,将子表成绩拖到窗
口中,设置表格的AutoSizeColumnsMode为AllCells,Dock为Fill,ReadOnly为true。设导航条的BindingSource为成绩表,去掉导航条上的删除、添加按钮。在导航条上添加下拉列表框cjzd,Items为"学期","课程",ToolTipText为"成绩字段";添加按钮toolStripButton3,Text为"按字段查询";添加文本框cjtj,Size为(250, 29),ToolTipText为"条件";添加按钮toolStripButton4,Text为"按条件查询"。
4.代码:
//去掉学生表导航条的保存按钮代码
//在代码头加上
using Microsoft.VisualBasic;
//按字段查询按钮toolStripButton1代码:
if (zd.Text == "学号")
{
string xh = Interaction.InputBox("输入要查的学号:", "输入", "xx0501", 100, 100);
学生BindingSource.Filter = "学号='" + xh + "'";
}
if (zd.Text == "姓名")
{
string xm = Interaction.InputBox("输入要查的姓名:", "输入", "张三", 100, 100);
学生BindingSource.Filter = "姓名='" + xm + "'";
}
//按条件查询按钮toolStripButton2代码:
学生BindingSource.Filter = tj.Text;
//按字段查询按钮toolStripButton3代码:
if (cjzd.Text == "学期")
{
string xq = Interaction.InputBox("输入要查的学期:", "输入", "一", 100, 100);
成绩BindingSource.Filter = "学期='" + xq + "'";
}
if (cjzd.Text == "课程")
{
string kc = Interaction.InputBox("输入要查的课程:", "输入", "一", 100, 100);
成绩BindingSource.Filter = "课程='" + kc + "'";
}
//按条件查询按钮toolStripButton4代码:
成绩BindingSource.Filter = cjtj.Text;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论