沈阳航空航天大学
课 程 设 计 报 告
课程设计名称:软件综合课程设计
课程设计题目:学生学籍管理系统的设计与实现
院(系): 计算机学院 专 业: 计算机科学与技术 班 级: 04010101 学 号: [1**********]15 姓 名: 指导教师: 丁一军
沈阳航空航天大学
课程设计任务书
目 录
1 课程设计介绍 .............................................................................................................. 2 1.1 课程设计内容 ........................................................................................................ 2 1.2 课程设计要求 ........................................................................................................ 2 1.3 需求分析简述 ........................................................................................................ 2 2 数据库设计 .................................................................................................................. 3 2.1 实体关系(E-R)图 ................................................................................................... 3 2.2实体图 . .................................................................................................................... 4 2.3数据库表 . ................................................................................................................ 5 3 功能设计 ...................................................................................................................... 7 3.1 系统功能模块 ........................................................................................................ 7 整体程序…….. ......................................................................................................... 7 3.2 各功能模块程序流程图 ........................................................................................ 8 4 调试与分析 ................................................................................................................ 13 4.1 调试过程 .............................................................................................................. 13 4.2 程序执行过程 ...................................................................................................... 13 参考文献 ........................................................................................................................ 19 总结 ................................................................................................................................ 20 附 录(关键部分程序清单) .................................................................................. 21
1 课程设计介绍
1.1 课程设计内容
设计程序,实现对宿舍管理的基本操作,系统主要功能如下:
1. 实现对学生信息的查询。
2. 实现学生基本信息的添加、删除、修改。 3. 实现学生表彰,处分信息的添加、修改。 4. 实现对学生助学贷款的全部查询、添加和删除。 5. 实现对学生休学,退学信息的管理。
1.2 课程设计要求
1. 学生信息的查询。
2. 实现学生基本信息的添加、修改。 3. 要求按班级,年级对基本信息进行统计。 4. 要求能按关键字进行查询。 5. 上述各项信息的查询。
1.3 需求分析简述
随着计算机科学技术的不断发展,各个学校对学生学籍的管理也由原先的手动管理转变为计算机操作管理,这不但节省了大量的人力物力,而且还提高了工作效率。本系统的设计就是用于学生学籍的管理系统,通过使用该系统平台能够实现对学生信息的管理。实现学生基本信息的添加、修改。实现学生表彰,处分信息的添加、修改。实现对学生助学贷款的全部查询、添加和删除。实现对学生休学,退学信息的管理。
2 数据库设计
2.1 实体关系(E-R)图
图2.1系统E-R 图
2.2实体图
图2.2类别实体图
2.3数据库表
表2.1 学生信息表
表2.2 贷款信息表
表2.3 处分信息表
表2.4 表彰信息表
表2.5 休学学生信息表
3 功能设计
3.1 系统功能模块
整体程序如图3.1所示
图3.1 功能模块图
3.2 各功能模块程序流程图
1. 登录模块流程图,如图3.2所示。
图3.2登录程序流程图
2. 查询模块流程图,如图3.3所示。
图3.3查询程序流程图
3. 添加模块流程图,如图3.4所示。
图3.4添加程序流程图
4. 修改模块流程图,如图3.5所示。
图3.5修改程序流程图
5. 删除模块流程图,如图3.6所示。
图3.6删除程序流程图
4 调试与分析
4.1 调试过程
在调试程序时主要遇到以下几类问题:
1. 当程序运行时空指针异常,是变量作用域问题。 2. 数据从数据库中读出失败,因为ado 语句写错。 3. 操作数据库数据时报错,是数据类型与变量类型不符。 4. 操作数据库时报错,因为数据库没打开。 5. sql 语句执行失败,是sql 语句书写不规范。
4.2 程序执行过程
1. 登录界面,如图4.1所示。
图4.1登陆界面图
2. 主界面,如图4.2所示。
图4.2主界面图
3. 查询操作,如图4.3所示。
图4.3查询界面图
4. 学生信息查询,如图4.4所示。
图4.4所有学生信息查询界面图
5. 贷款信息查询,如图4.5所示。
图4.5贷款信息查询界面图
6. 学生档案的录入,如图4.6所示。
图4.6 学生档案录入界面图
7. 助学贷款的录入,如图4.7所示。
图4.7助学贷款录入界面图
8. 休学退学办理,如图4.8所示。
图4.8休学退学界面图
参考文献
[1] 王国胜,刘攀.C#软件开发课堂[M].北京:清华大学出版社,2009
[2] 郑宇军, C#语言程序设计基础[M]. 北京:清华大学出版社,2009
[3] 高英,Access 数据库应用系统开发与实例[M].北京:清华大学出版社,2010
[4] 柴煜,王云,ADO.NET 数据库访问技术案例式教程北京[M]:清华大学出版社,2010
[5] 严蔚敏,吴伟民. 数据结构[M].北京:清华大学出版社,2007.
[6] 王珊. 数据库技术与联机分析处理[M].北京:北京科学出版社,2004.
[7] 钱雪忠. 数据库原理及应用[M].北京:邮电大学出版社,2007.
[8] Ryan Stephens.SQL入门经典[M].北京,人民邮电出版社,2010.
总结
附 录(关键部分程序清单)
程序代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace student
{
static class Program
{
///
/// 应|用?程¨¬序¨°的Ì? 主¡Â入¨? 口¨²点Ì? 。¡ê
///
[STAThread ]
static void Main()
{
Application .EnableVisualStyles();
Application .SetCompatibleTextRenderingDefault(false );
Application .Run(new Form1());
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class DL : Form
{
public DL()
{
InitializeComponent();
}
private void DL_Load(object sender, EventArgs e)
{
textBox1.Focus();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "" || textBox2.Text.Trim() == "" )
{
MessageBox .Show(" 请? 输º? 入¨? 用?户¡ì名? 和¨ª密¨¹码?" , " 错䨪误¨提¬¨¢示º?" ); }
else
{
OleDbConnection add = new OleDbConnection ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\MyProject\\student\\student\\sdatabase.accdb");
add.Open();
OleDbCommand cmd = new OleDbCommand ("" , add);
string sql = "select user from UserInfo where user='" + textBox1.Text.Trim() + "' and password='" + textBox2.Text.Trim() + "'" ;
cmd.CommandText = sql;
if (null != cmd.ExecuteScalar())
{
Form1 main = new Form1();
main.Tag = this .FindForm();
main.ShowDialog();
add.Close();
}
else
{
MessageBox .Show(" 用?户¡ì名? 或¨°密¨¹码? 错䨪误¨", " 登Ì? 录? 失º¡ì败㨹" ); add.Close();
}
}
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace student
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
AddUser adduser;
private void 添¬¨ª加¨用?户¡ìToolStripMenuItem_Click(object sender, EventArgs e)
{
if (adduser == null || adduser.IsDisposed)
{
adduser = new AddUser ();
adduser.Show();
}
}
DealUser dealuser;
private void 删¦? 除y 用?户¡ìToolStripMenuItem_Click(object sender, EventArgs e)
{
if (dealuser == null || dealuser.IsDisposed)
{
dealuser = new DealUser ();
dealuser.Show();
}
}
AddStuInfo addstuinfo;
private void 档̦Ì案ã? 录? 入¨?ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (addstuinfo == null || addstuinfo.IsDisposed)
{
addstuinfo = new AddStuInfo ();
addstuinfo.Show();
}
}
ApdateStuInfo apdatestuinfo;
private void 学¡ì生¦¨²信? 息¡é查¨¦询¡¥ToolStripMenuItem_Click(object sender, EventArgs e) {
if (apdatestuinfo == null || apdatestuinfo.IsDisposed)
apdatestuinfo = new ApdateStuInfo ();
apdatestuinfo.Show();
}
AddLoan addloan;
private void 助¨²学¡ì贷ä? 款? 录? 入¨?ToolStripMenuItem_Click(object sender, EventArgs e) {
if (addloan == null || addloan.IsDisposed)
addloan = new AddLoan ();
addloan.Show();
}
SeeLoan sLoan;
private void 助¨²学¡ì贷ä? 款? 查¨¦询¡¥ToolStripMenuItem_Click(object sender, EventArgs e) {
if (sLoan == null || sLoan.IsDisposed)
sLoan = new SeeLoan ();
sLoan.Show();
}
private void 表À¨ª彰? 与?处ä|分¤? 信? 息¡éToolStripMenuItem_Click(object sender, EventArgs e) {
}
DeletStudent DS;
private void 退ª? 学¡ì管¨¹理¤¨ªToolStripMenuItem_Click(object sender, EventArgs e)
{
if (DS == null || DS.IsDisposed)
DS = new DeletStudent ();
DS.Show();
}
Suspend Sus;
private void 休Y 学¡ì管¨¹理¤¨ªToolStripMenuItem_Click(object sender, EventArgs e)
{
if (Sus == null || Sus.IsDisposed)
Sus = new Suspend ();
Sus.Show();
}
Honor Hon;
private void 表À¨ª彰? 信? 息¡é查¨¦询¡¥ToolStripMenuItem_Click(object sender, EventArgs e) {
if (Hon == null || Hon.IsDisposed)
Hon = new Honor ();
Hon.Show();
}
HonorAdd HA;
private void 表À¨ª彰? 信? 息¡é管¨¹理¤¨ªToolStripMenuItem_Click(object sender, EventArgs e) {
if (HA == null || HA.IsDisposed)
HA = new HonorAdd ();
HA.Show();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class AddLoan : Form
{
public AddLoan()
{
InitializeComponent();
}
private void AddLoan_Load(object sender, EventArgs e)
{
textBox1.Focus();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "" || textBox2.Text.Trim() == "" || textBox3.Text.Trim() == "" || textBox4.Text.Trim() == "" )
{
MessageBox .Show(" 请? 填¬? 写¡ä完ª¨º整? 信? 息¡é!ê?" , " 错䨪误¨提¬¨¢示º?" );
}
else
{
OleDbConnection add = new
OleDbConnection ("Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb");
//add.Close();
add.Open();
OleDbCommand cmd = new OleDbCommand ("" , add);
string sql;
sql = "select LoanNum from LoanInfo where LoanNum='" + textBox1.Text.Trim() + "'" ; cmd.CommandText = sql;
if (cmd.ExecuteScalar() == null )
{
sql = "insert into LoanInfo values('" + textBox1.Text.Trim() + "','" +
textBox2.Text.Trim() + "','" + textBox3.Text.Trim() + "','" + textBox4.Text.Trim() + "','" + comboBox1.Text.Trim() + "')" ;
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
MessageBox .Show(" 用?户¡ì添¬¨ª加¨成¨¦功|!ê?" , " 成¨¦功|提¬¨¢示º?" ); add.Close();
this .Close();
}
else
{
MessageBox .Show(" 该? 用?户¡ì已°? 经-存ä? 在¨²,ê? 请? 重? 新? 输º? 入¨? !ê?" , " 错
䨪误¨提¬¨¢示º?" );
add.Close();
}
}
}
private void button2_Click(object sender, EventArgs e)
{
this .Close();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class AddStuInfo : Form
{
public AddStuInfo()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void AddStuInfo_Load(object sender, EventArgs e)
{
OleDbConnection add = new OleDbConnection ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\MyProject\\student\\student\\sdatabase.accdb");
add.Open();
DataSet ds = new DataSet ();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "" || textBox2.Text.Trim() == "" || textBox3.Text.Trim() == "" || textBox4.Text.Trim() == "" || textBox5.Text.Trim() == "" || comboBox1.Text.Trim() == "" ||
comboBox2.Text.Trim() == "" || comboBox3.Text.Trim() == "" )
{
MessageBox .Show(" 你? 填¬? 写¡ä的Ì? 信? 息¡é不? 完ª¨º整? ,ê? 请? 继¨¬续? 填¬? 写¡ä完ª¨º整? !ê?" , " 错䨪误¨提¬¨¢示º?" );
}
else
{
OleDbConnection add = new OleDbConnection ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\MyProject\\student\\student\\sdatabase.accdb");
add.Open();
string sql;
sql = "select * from StudentInfo where sNum='" + this .textBox1.Text.Trim() + "'" ; OleDbCommand cmd = new OleDbCommand (sql, add);
sql = "insert into StudentInfo values('" + textBox1.Text.Trim () + "','" + textBox2.Text.Trim () + "','" + comboBox1.Text.Trim() + "','" + textBox3.Text.Trim () + "','" + textBox4.Text.Trim () + "','" + comboBox2.Text.Trim() + "','" + textBox5.Text.Trim () + "','" + comboBox3.Text.Trim() + "')" ;
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
MessageBox .Show(" 学¡ì生¦¨²学¡ì籍? 信? 息¡é注Á¡é册¨¢成¨¦功|!ê?" , " 成¨¦功|信? 息¡é" ); add.Close();
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class AddUser : Form
{
public AddUser()
{
InitializeComponent();
}
private void AddUser_Load(object sender, EventArgs e)
{
// DataSet ds = new DataSet();
//OleDbConnection cn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\MyProject\\student\\student\\sdatabase.mdb");
//OleDbDataAdapter adp = new OleDbDataAdapter("",cn);
//adp.Fill(ds);
textBox1.Focus();
}
private void button1_Click_1(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "" || textBox2.Text.Trim() == "" || textBox3.Text.Trim() == "" ) {
MessageBox .Show(" 请? 填¬? 写¡ä完ª¨º整? 信? 息¡é!ê?" , " 错䨪误¨提¬¨¢示º?" ); }
else
{
if (textBox2.Text.Trim() != textBox3.Text.Trim())
{
MessageBox .Show(" 两¢? 次ä? 密¨¹码? 输º? 入¨? 不? 一°? 致? ,ê? 请? 重? 新? 输º? 入¨? !ê?" , " 错䨪误¨提¬¨¢示º?" );
}
else
{
OleDbConnection add = new
OleDbConnection ("Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb");
//add.Close();
add.Open();
OleDbCommand cmd = new OleDbCommand ("" ,add);
string sql;
sql = "select user from UserInfo where user='" + textBox1.Text.Trim() + "'" ; cmd.CommandText = sql;
if (cmd.ExecuteScalar() == null )
{
sql = "insert into UserInfo values('" + textBox1.Text.Trim() + "','" +
textBox2.Text.Trim() + "')" ;
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
MessageBox .Show(" 用?户¡ì添¬¨ª加¨成¨¦功|!ê?" , " 成¨¦功|提¬¨¢示º?" ); add.Close();
this .Close();
}
else
{
MessageBox .Show(" 该? 用?户¡ì已°? 经-存ä? 在¨²,ê? 请? 重? 新? 输º? 入¨? !ê?" , " 错䨪误¨提¬¨¢示º?" );
add.Close();
}
}
}
}
private void button2_Click_1(object sender, EventArgs e)
{
this .Close();
}
private void label1_Click(object sender, EventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class ApdateStuInfo : Form
{
DataSet ds = new DataSet ();
OleDbDataAdapter adp = null ;
public ApdateStuInfo()
{
InitializeComponent();
}
private void ApdateStuInfo_Load(object sender, EventArgs e)
{
string cn = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb";
OleDbConnection deal = new OleDbConnection (cn);
deal.Open();
string sql = "Select * from StudentInfo";
adp = new OleDbDataAdapter (sql, cn);
adp.Fill(this .ds, "StudentInfo" );
this .dataGridView1.DataSource = this .ds.Tables["StudentInfo" ];
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class DealUser : Form
{
//定¡§义°? 数ºy 据Y 集¡¥对? 象¨
DataSet ds = new DataSet ();
OleDbDataAdapter adp =null ;
public DealUser()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string cn="Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb";
OleDbConnection deal = new OleDbConnection (cn);
deal.Open();
string sql="Select * from UserInfo";
adp=new OleDbDataAdapter (sql,cn);
adp.Fill(this .ds, "UserInfo" );
this .dataGridView1.DataSource = this .ds.Tables["UserInfo" ];
BindingSource bs = new BindingSource ();
bs.DataSource = this .ds.Tables["UserInfo" ];
bindingNavigator1.BindingSource = bs;
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) {
}
private void DealUser_Load(object sender, EventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class DeletStudent : Form
{
void LoadData()
{
DataSet ds = new DataSet ();
string cn = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb";
OleDbConnection connection = new OleDbConnection (cn);
connection.Open();
string sql = "Select * from StudentInfo";
adp = new OleDbDataAdapter (sql, cn);
adp.Fill(ds, "StudentInfo" );
this .dataGridView1.DataSource = ds.Tables["StudentInfo" ];
}
OleDbDataAdapter adp = null ;
public DeletStudent()
{
InitializeComponent();
}
private void DeletStudent_Load(object sender, EventArgs e)
{
LoadData();
}
private void 办㨬理¤¨ª休Y 学¡ìToolStripMenuItem_Click(object sender, EventArgs e) {
if (dataGridView1.SelectedRows.Count
{
MessageBox .Show(" 请? 选? 中D 其? 中D 一°? 行D !ê?" );
return ;
}
}
private void 办㨬理¤¨ª退ª? 学¡ìToolStripMenuItem_Click(object sender, EventArgs e) {
if (dataGridView1.SelectedRows.Count
{
MessageBox .Show(" 请? 选? 中D 其? 中D 一°? 行D !ê?" );
return ;
}
int ID = Convert .ToInt32(dataGridView1.SelectedRows[0].Cells[0].Value); string cn = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb";
OleDbConnection connection = new OleDbConnection (cn);
connection.Open();
string sql = string .Format("Delete from StudentInfo where sNum ={0}", ID); OleDbCommand cmd=null ;
cmd = new OleDbCommand (sql, connection);
cmd.ExecuteNonQuery();
MessageBox .Show(" 删¦? 除y 成¨¦功|!ê?" );
LoadData();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class SeeLoan : Form
{
OleDbDataAdapter adp = null ;
public SeeLoan()
{
InitializeComponent();
}
private void SeeLoan_Load(object sender, EventArgs e)
{
DataSet ds = new DataSet ();
string cn="Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb";
OleDbConnection deal = new OleDbConnection (cn);
deal.Open();
string sql="Select * from LoanInfo";
adp=new OleDbDataAdapter (sql,cn);
adp.Fill(ds,"LoanInfo" );
this .dataGridView1.DataSource = ds.Tables["LoanInfo" ];
}
private void button1_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet ();
string cn = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb";
OleDbConnection deal = new OleDbConnection (cn);
deal.Open();
string sql = "Select * from LoanInfo where LoanType ='"+comboBox1.Text.Trim()+"'" ; adp = new OleDbDataAdapter (sql, cn);
adp.Fill(ds, "LoanInfo" );
this .dataGridView1.DataSource = ds.Tables["LoanInfo" ];
}
}
}
沈阳航空航天大学
课 程 设 计 报 告
课程设计名称:软件综合课程设计
课程设计题目:学生学籍管理系统的设计与实现
院(系): 计算机学院 专 业: 计算机科学与技术 班 级: 04010101 学 号: [1**********]15 姓 名: 指导教师: 丁一军
沈阳航空航天大学
课程设计任务书
目 录
1 课程设计介绍 .............................................................................................................. 2 1.1 课程设计内容 ........................................................................................................ 2 1.2 课程设计要求 ........................................................................................................ 2 1.3 需求分析简述 ........................................................................................................ 2 2 数据库设计 .................................................................................................................. 3 2.1 实体关系(E-R)图 ................................................................................................... 3 2.2实体图 . .................................................................................................................... 4 2.3数据库表 . ................................................................................................................ 5 3 功能设计 ...................................................................................................................... 7 3.1 系统功能模块 ........................................................................................................ 7 整体程序…….. ......................................................................................................... 7 3.2 各功能模块程序流程图 ........................................................................................ 8 4 调试与分析 ................................................................................................................ 13 4.1 调试过程 .............................................................................................................. 13 4.2 程序执行过程 ...................................................................................................... 13 参考文献 ........................................................................................................................ 19 总结 ................................................................................................................................ 20 附 录(关键部分程序清单) .................................................................................. 21
1 课程设计介绍
1.1 课程设计内容
设计程序,实现对宿舍管理的基本操作,系统主要功能如下:
1. 实现对学生信息的查询。
2. 实现学生基本信息的添加、删除、修改。 3. 实现学生表彰,处分信息的添加、修改。 4. 实现对学生助学贷款的全部查询、添加和删除。 5. 实现对学生休学,退学信息的管理。
1.2 课程设计要求
1. 学生信息的查询。
2. 实现学生基本信息的添加、修改。 3. 要求按班级,年级对基本信息进行统计。 4. 要求能按关键字进行查询。 5. 上述各项信息的查询。
1.3 需求分析简述
随着计算机科学技术的不断发展,各个学校对学生学籍的管理也由原先的手动管理转变为计算机操作管理,这不但节省了大量的人力物力,而且还提高了工作效率。本系统的设计就是用于学生学籍的管理系统,通过使用该系统平台能够实现对学生信息的管理。实现学生基本信息的添加、修改。实现学生表彰,处分信息的添加、修改。实现对学生助学贷款的全部查询、添加和删除。实现对学生休学,退学信息的管理。
2 数据库设计
2.1 实体关系(E-R)图
图2.1系统E-R 图
2.2实体图
图2.2类别实体图
2.3数据库表
表2.1 学生信息表
表2.2 贷款信息表
表2.3 处分信息表
表2.4 表彰信息表
表2.5 休学学生信息表
3 功能设计
3.1 系统功能模块
整体程序如图3.1所示
图3.1 功能模块图
3.2 各功能模块程序流程图
1. 登录模块流程图,如图3.2所示。
图3.2登录程序流程图
2. 查询模块流程图,如图3.3所示。
图3.3查询程序流程图
3. 添加模块流程图,如图3.4所示。
图3.4添加程序流程图
4. 修改模块流程图,如图3.5所示。
图3.5修改程序流程图
5. 删除模块流程图,如图3.6所示。
图3.6删除程序流程图
4 调试与分析
4.1 调试过程
在调试程序时主要遇到以下几类问题:
1. 当程序运行时空指针异常,是变量作用域问题。 2. 数据从数据库中读出失败,因为ado 语句写错。 3. 操作数据库数据时报错,是数据类型与变量类型不符。 4. 操作数据库时报错,因为数据库没打开。 5. sql 语句执行失败,是sql 语句书写不规范。
4.2 程序执行过程
1. 登录界面,如图4.1所示。
图4.1登陆界面图
2. 主界面,如图4.2所示。
图4.2主界面图
3. 查询操作,如图4.3所示。
图4.3查询界面图
4. 学生信息查询,如图4.4所示。
图4.4所有学生信息查询界面图
5. 贷款信息查询,如图4.5所示。
图4.5贷款信息查询界面图
6. 学生档案的录入,如图4.6所示。
图4.6 学生档案录入界面图
7. 助学贷款的录入,如图4.7所示。
图4.7助学贷款录入界面图
8. 休学退学办理,如图4.8所示。
图4.8休学退学界面图
参考文献
[1] 王国胜,刘攀.C#软件开发课堂[M].北京:清华大学出版社,2009
[2] 郑宇军, C#语言程序设计基础[M]. 北京:清华大学出版社,2009
[3] 高英,Access 数据库应用系统开发与实例[M].北京:清华大学出版社,2010
[4] 柴煜,王云,ADO.NET 数据库访问技术案例式教程北京[M]:清华大学出版社,2010
[5] 严蔚敏,吴伟民. 数据结构[M].北京:清华大学出版社,2007.
[6] 王珊. 数据库技术与联机分析处理[M].北京:北京科学出版社,2004.
[7] 钱雪忠. 数据库原理及应用[M].北京:邮电大学出版社,2007.
[8] Ryan Stephens.SQL入门经典[M].北京,人民邮电出版社,2010.
总结
附 录(关键部分程序清单)
程序代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace student
{
static class Program
{
///
/// 应|用?程¨¬序¨°的Ì? 主¡Â入¨? 口¨²点Ì? 。¡ê
///
[STAThread ]
static void Main()
{
Application .EnableVisualStyles();
Application .SetCompatibleTextRenderingDefault(false );
Application .Run(new Form1());
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class DL : Form
{
public DL()
{
InitializeComponent();
}
private void DL_Load(object sender, EventArgs e)
{
textBox1.Focus();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "" || textBox2.Text.Trim() == "" )
{
MessageBox .Show(" 请? 输º? 入¨? 用?户¡ì名? 和¨ª密¨¹码?" , " 错䨪误¨提¬¨¢示º?" ); }
else
{
OleDbConnection add = new OleDbConnection ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\MyProject\\student\\student\\sdatabase.accdb");
add.Open();
OleDbCommand cmd = new OleDbCommand ("" , add);
string sql = "select user from UserInfo where user='" + textBox1.Text.Trim() + "' and password='" + textBox2.Text.Trim() + "'" ;
cmd.CommandText = sql;
if (null != cmd.ExecuteScalar())
{
Form1 main = new Form1();
main.Tag = this .FindForm();
main.ShowDialog();
add.Close();
}
else
{
MessageBox .Show(" 用?户¡ì名? 或¨°密¨¹码? 错䨪误¨", " 登Ì? 录? 失º¡ì败㨹" ); add.Close();
}
}
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace student
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
AddUser adduser;
private void 添¬¨ª加¨用?户¡ìToolStripMenuItem_Click(object sender, EventArgs e)
{
if (adduser == null || adduser.IsDisposed)
{
adduser = new AddUser ();
adduser.Show();
}
}
DealUser dealuser;
private void 删¦? 除y 用?户¡ìToolStripMenuItem_Click(object sender, EventArgs e)
{
if (dealuser == null || dealuser.IsDisposed)
{
dealuser = new DealUser ();
dealuser.Show();
}
}
AddStuInfo addstuinfo;
private void 档̦Ì案ã? 录? 入¨?ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (addstuinfo == null || addstuinfo.IsDisposed)
{
addstuinfo = new AddStuInfo ();
addstuinfo.Show();
}
}
ApdateStuInfo apdatestuinfo;
private void 学¡ì生¦¨²信? 息¡é查¨¦询¡¥ToolStripMenuItem_Click(object sender, EventArgs e) {
if (apdatestuinfo == null || apdatestuinfo.IsDisposed)
apdatestuinfo = new ApdateStuInfo ();
apdatestuinfo.Show();
}
AddLoan addloan;
private void 助¨²学¡ì贷ä? 款? 录? 入¨?ToolStripMenuItem_Click(object sender, EventArgs e) {
if (addloan == null || addloan.IsDisposed)
addloan = new AddLoan ();
addloan.Show();
}
SeeLoan sLoan;
private void 助¨²学¡ì贷ä? 款? 查¨¦询¡¥ToolStripMenuItem_Click(object sender, EventArgs e) {
if (sLoan == null || sLoan.IsDisposed)
sLoan = new SeeLoan ();
sLoan.Show();
}
private void 表À¨ª彰? 与?处ä|分¤? 信? 息¡éToolStripMenuItem_Click(object sender, EventArgs e) {
}
DeletStudent DS;
private void 退ª? 学¡ì管¨¹理¤¨ªToolStripMenuItem_Click(object sender, EventArgs e)
{
if (DS == null || DS.IsDisposed)
DS = new DeletStudent ();
DS.Show();
}
Suspend Sus;
private void 休Y 学¡ì管¨¹理¤¨ªToolStripMenuItem_Click(object sender, EventArgs e)
{
if (Sus == null || Sus.IsDisposed)
Sus = new Suspend ();
Sus.Show();
}
Honor Hon;
private void 表À¨ª彰? 信? 息¡é查¨¦询¡¥ToolStripMenuItem_Click(object sender, EventArgs e) {
if (Hon == null || Hon.IsDisposed)
Hon = new Honor ();
Hon.Show();
}
HonorAdd HA;
private void 表À¨ª彰? 信? 息¡é管¨¹理¤¨ªToolStripMenuItem_Click(object sender, EventArgs e) {
if (HA == null || HA.IsDisposed)
HA = new HonorAdd ();
HA.Show();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class AddLoan : Form
{
public AddLoan()
{
InitializeComponent();
}
private void AddLoan_Load(object sender, EventArgs e)
{
textBox1.Focus();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "" || textBox2.Text.Trim() == "" || textBox3.Text.Trim() == "" || textBox4.Text.Trim() == "" )
{
MessageBox .Show(" 请? 填¬? 写¡ä完ª¨º整? 信? 息¡é!ê?" , " 错䨪误¨提¬¨¢示º?" );
}
else
{
OleDbConnection add = new
OleDbConnection ("Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb");
//add.Close();
add.Open();
OleDbCommand cmd = new OleDbCommand ("" , add);
string sql;
sql = "select LoanNum from LoanInfo where LoanNum='" + textBox1.Text.Trim() + "'" ; cmd.CommandText = sql;
if (cmd.ExecuteScalar() == null )
{
sql = "insert into LoanInfo values('" + textBox1.Text.Trim() + "','" +
textBox2.Text.Trim() + "','" + textBox3.Text.Trim() + "','" + textBox4.Text.Trim() + "','" + comboBox1.Text.Trim() + "')" ;
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
MessageBox .Show(" 用?户¡ì添¬¨ª加¨成¨¦功|!ê?" , " 成¨¦功|提¬¨¢示º?" ); add.Close();
this .Close();
}
else
{
MessageBox .Show(" 该? 用?户¡ì已°? 经-存ä? 在¨²,ê? 请? 重? 新? 输º? 入¨? !ê?" , " 错
䨪误¨提¬¨¢示º?" );
add.Close();
}
}
}
private void button2_Click(object sender, EventArgs e)
{
this .Close();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class AddStuInfo : Form
{
public AddStuInfo()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void AddStuInfo_Load(object sender, EventArgs e)
{
OleDbConnection add = new OleDbConnection ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\MyProject\\student\\student\\sdatabase.accdb");
add.Open();
DataSet ds = new DataSet ();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "" || textBox2.Text.Trim() == "" || textBox3.Text.Trim() == "" || textBox4.Text.Trim() == "" || textBox5.Text.Trim() == "" || comboBox1.Text.Trim() == "" ||
comboBox2.Text.Trim() == "" || comboBox3.Text.Trim() == "" )
{
MessageBox .Show(" 你? 填¬? 写¡ä的Ì? 信? 息¡é不? 完ª¨º整? ,ê? 请? 继¨¬续? 填¬? 写¡ä完ª¨º整? !ê?" , " 错䨪误¨提¬¨¢示º?" );
}
else
{
OleDbConnection add = new OleDbConnection ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\MyProject\\student\\student\\sdatabase.accdb");
add.Open();
string sql;
sql = "select * from StudentInfo where sNum='" + this .textBox1.Text.Trim() + "'" ; OleDbCommand cmd = new OleDbCommand (sql, add);
sql = "insert into StudentInfo values('" + textBox1.Text.Trim () + "','" + textBox2.Text.Trim () + "','" + comboBox1.Text.Trim() + "','" + textBox3.Text.Trim () + "','" + textBox4.Text.Trim () + "','" + comboBox2.Text.Trim() + "','" + textBox5.Text.Trim () + "','" + comboBox3.Text.Trim() + "')" ;
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
MessageBox .Show(" 学¡ì生¦¨²学¡ì籍? 信? 息¡é注Á¡é册¨¢成¨¦功|!ê?" , " 成¨¦功|信? 息¡é" ); add.Close();
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class AddUser : Form
{
public AddUser()
{
InitializeComponent();
}
private void AddUser_Load(object sender, EventArgs e)
{
// DataSet ds = new DataSet();
//OleDbConnection cn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\MyProject\\student\\student\\sdatabase.mdb");
//OleDbDataAdapter adp = new OleDbDataAdapter("",cn);
//adp.Fill(ds);
textBox1.Focus();
}
private void button1_Click_1(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "" || textBox2.Text.Trim() == "" || textBox3.Text.Trim() == "" ) {
MessageBox .Show(" 请? 填¬? 写¡ä完ª¨º整? 信? 息¡é!ê?" , " 错䨪误¨提¬¨¢示º?" ); }
else
{
if (textBox2.Text.Trim() != textBox3.Text.Trim())
{
MessageBox .Show(" 两¢? 次ä? 密¨¹码? 输º? 入¨? 不? 一°? 致? ,ê? 请? 重? 新? 输º? 入¨? !ê?" , " 错䨪误¨提¬¨¢示º?" );
}
else
{
OleDbConnection add = new
OleDbConnection ("Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb");
//add.Close();
add.Open();
OleDbCommand cmd = new OleDbCommand ("" ,add);
string sql;
sql = "select user from UserInfo where user='" + textBox1.Text.Trim() + "'" ; cmd.CommandText = sql;
if (cmd.ExecuteScalar() == null )
{
sql = "insert into UserInfo values('" + textBox1.Text.Trim() + "','" +
textBox2.Text.Trim() + "')" ;
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
MessageBox .Show(" 用?户¡ì添¬¨ª加¨成¨¦功|!ê?" , " 成¨¦功|提¬¨¢示º?" ); add.Close();
this .Close();
}
else
{
MessageBox .Show(" 该? 用?户¡ì已°? 经-存ä? 在¨²,ê? 请? 重? 新? 输º? 入¨? !ê?" , " 错䨪误¨提¬¨¢示º?" );
add.Close();
}
}
}
}
private void button2_Click_1(object sender, EventArgs e)
{
this .Close();
}
private void label1_Click(object sender, EventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class ApdateStuInfo : Form
{
DataSet ds = new DataSet ();
OleDbDataAdapter adp = null ;
public ApdateStuInfo()
{
InitializeComponent();
}
private void ApdateStuInfo_Load(object sender, EventArgs e)
{
string cn = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb";
OleDbConnection deal = new OleDbConnection (cn);
deal.Open();
string sql = "Select * from StudentInfo";
adp = new OleDbDataAdapter (sql, cn);
adp.Fill(this .ds, "StudentInfo" );
this .dataGridView1.DataSource = this .ds.Tables["StudentInfo" ];
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class DealUser : Form
{
//定¡§义°? 数ºy 据Y 集¡¥对? 象¨
DataSet ds = new DataSet ();
OleDbDataAdapter adp =null ;
public DealUser()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string cn="Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb";
OleDbConnection deal = new OleDbConnection (cn);
deal.Open();
string sql="Select * from UserInfo";
adp=new OleDbDataAdapter (sql,cn);
adp.Fill(this .ds, "UserInfo" );
this .dataGridView1.DataSource = this .ds.Tables["UserInfo" ];
BindingSource bs = new BindingSource ();
bs.DataSource = this .ds.Tables["UserInfo" ];
bindingNavigator1.BindingSource = bs;
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) {
}
private void DealUser_Load(object sender, EventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class DeletStudent : Form
{
void LoadData()
{
DataSet ds = new DataSet ();
string cn = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb";
OleDbConnection connection = new OleDbConnection (cn);
connection.Open();
string sql = "Select * from StudentInfo";
adp = new OleDbDataAdapter (sql, cn);
adp.Fill(ds, "StudentInfo" );
this .dataGridView1.DataSource = ds.Tables["StudentInfo" ];
}
OleDbDataAdapter adp = null ;
public DeletStudent()
{
InitializeComponent();
}
private void DeletStudent_Load(object sender, EventArgs e)
{
LoadData();
}
private void 办㨬理¤¨ª休Y 学¡ìToolStripMenuItem_Click(object sender, EventArgs e) {
if (dataGridView1.SelectedRows.Count
{
MessageBox .Show(" 请? 选? 中D 其? 中D 一°? 行D !ê?" );
return ;
}
}
private void 办㨬理¤¨ª退ª? 学¡ìToolStripMenuItem_Click(object sender, EventArgs e) {
if (dataGridView1.SelectedRows.Count
{
MessageBox .Show(" 请? 选? 中D 其? 中D 一°? 行D !ê?" );
return ;
}
int ID = Convert .ToInt32(dataGridView1.SelectedRows[0].Cells[0].Value); string cn = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb";
OleDbConnection connection = new OleDbConnection (cn);
connection.Open();
string sql = string .Format("Delete from StudentInfo where sNum ={0}", ID); OleDbCommand cmd=null ;
cmd = new OleDbCommand (sql, connection);
cmd.ExecuteNonQuery();
MessageBox .Show(" 删¦? 除y 成¨¦功|!ê?" );
LoadData();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace student
{
public partial class SeeLoan : Form
{
OleDbDataAdapter adp = null ;
public SeeLoan()
{
InitializeComponent();
}
private void SeeLoan_Load(object sender, EventArgs e)
{
DataSet ds = new DataSet ();
string cn="Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb";
OleDbConnection deal = new OleDbConnection (cn);
deal.Open();
string sql="Select * from LoanInfo";
adp=new OleDbDataAdapter (sql,cn);
adp.Fill(ds,"LoanInfo" );
this .dataGridView1.DataSource = ds.Tables["LoanInfo" ];
}
private void button1_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet ();
string cn = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\\MyProject\\student\\student\\sdatabase.accdb";
OleDbConnection deal = new OleDbConnection (cn);
deal.Open();
string sql = "Select * from LoanInfo where LoanType ='"+comboBox1.Text.Trim()+"'" ; adp = new OleDbDataAdapter (sql, cn);
adp.Fill(ds, "LoanInfo" );
this .dataGridView1.DataSource = ds.Tables["LoanInfo" ];
}
}
}