资源描述
C#课程设计
姓名:
班级:
学号:
指导老师:
介绍
该系统是用Visua Studio和Access ,经过C#语言进行相关代码编写,生成相关程序。学生成绩管理系统是构建于Visual C#.NET平台上Windows应用程序。本文描述是基于Windows环境学生成绩管理系统,关键工具Microsoft Visual Studio 设计窗体,Access 建立数据库, 学生成绩管理管理系统为用户提供充足信息和快捷查询手段,实现学生基础信息、成绩录入,删除,查询,维护和成绩统计分析等几方面功效,是现实问题迫切要求。
本篇汇报介绍一个学生信息管理系统从分析到设计最终到开发全过程为,给出了学生信息管理系统设计和技术实现过程,尤其在细节上分析功效和函数实现思想。包含到学生信息管理基础功效在本汇报中全部有对应描述。管理信息系统正在向着网络化、智能化和集成化等趋势发展。学生成绩管理系统是为了愈加好管理学生考试成绩而开发数据管理软件。它对于一个学校是不可缺乏关键部分,它内容对于学校决议者和管理者来说全部至关关键。
在这次课程设计中,让我了解到Microsoft Visual Studio ,同时学习了Access数据库建立和连接和导入。能在Visual C#.NET平台上进行Access数据库修改和控制,将C#语句和SQL语句混合使用, 成功完成了学生成绩管理系统整体设计,加深巩固了选择条件语句,还有曾经学习过基础运算语句,同时也为以后深入学习垫下了了良好基础。
目录
第一章 绪论……………………………………………………4
1.1设计目标…………………………………………………4
1.2开发工具选择……………………………………………4
1.3开发环境…………………………………………………4
第二章 需求分析………………………………………………5
2.1系统目标…………………………………………………5
2.2功效需求分析……………………………………………6
2.3性能需求分析……………………………………………6
第三章 总体设计………………………………………………7
3.1设计概述…………………………………………………7
3.1功效模块设计……………………………………………7
第四章 数据库设计……………………………………………8
4.1数据库需求分析………………………………………8
4.2数据库表设计…………………………………………9
第五章 具体设计………………………………………………10
5.1系统程序步骤图…………………………………………11
5.2系统关键功效模块………………………………………13
5.2.1系统登录……………………………………………13
5.2.2学生登录模块………………………………………15
5.2.3管理员登录模块……………………………………20
第六章 总结………………………………………………………41
第一章 绪论
1.1 课程设计目标
此次课程设计目标是使学生能熟练掌握简单简单Windows窗体应用程序设计和.net应用,复习熟练基础运算符,和基础条件语句、判定语句,将Access使用和Microsoft Visual Studio 使用结合起来,期望经过此次课程设计锻炼我们使用C#语言处理实际问题能力。
1.2 系统开发环境
系统开发平台:Microsoft Visual Studio 系统开发语言C# 数据库管理软件:Access 系统开发程序 本系统后台数据库采取Access 数据库,该数据库系统在安全性、正确性和运行速度方面有绝正确优势,而且处理数据量大,效率高;前台采取Microsoft 企业Visual Studio 作为关键开发工具,可和Access 数据库无缝链接。
1.4 汇报关键内容
本汇报具体介绍了学生信息管理系统开发过程,关键包含到工作以下:系统需求分析、系统总体设计设计思绪、系统数据库设计、系统各模块具体设计、系统运行测试。
第二章 需求分析
2.1 系统设计目标
(1)登录模块中,有不一样权限设置,分为学生登录和管理员登录
(2)学生用户可依据不一样用户名和对应密码进行登录,并可修改密码。
(3)管理员能够依据不一样用户名和对应密码进行登录,并可修改密码。
(4)学生界面中学生能够根据姓名,学号,邮箱来查询成绩
(5)管理员界面中管理员能够实现学生成绩录入,删除,修改,查询,成绩分析,将成绩导出到Excel表中,还能够依据成绩画出柱状图。
2.2 功效需求分析
本系统功效需求分析以下:
(1) 学生密码修改:学生可在成功登录后对自己密码进行修改,以防个人信息外泄。
(2) 学生成绩查询:学生依据姓名,学号,邮箱进行查询。
(3) 学生成绩和信息录入:用于学生成绩管理,录入学生成绩和学生个人信息,也能够实现对成绩其它操作。
2.3 性能需求分析
(1) 登录、用户界面需求:简练、易懂、易用、友好用户界面。
(2) 安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息管理,同时也能够进行密码修改。
(3) 数据分析需求:可依据学生要求进行条件查询,分不一样姓名,学号,邮箱进行对应查询。
(4) 数据统计要求:可对学生成绩和个人信息进行添加更改和删除。
第三章 总体设计
3.1 设计总体概述
依据需求把整个系统分化成不一样模块,每个模块完成一个特定子功效。把这些模块结合起来组成一个整体。逐一实现各个功效;
3.2功效模块设计
(1)登录模块,依据不一样权限,链接数据库,然后登录。
(2)管理员登录模块,在此模块中有成绩查询,修改,删除,添加,分析,导出Excel表,绘出矩形图,退出登录,帮助,密码修改等功效模块。
(3)学生登录模块,在此模块中有查询,退出登录,帮助,密码修改等模块功效。
(4)成绩查询模块,连接数据库,用SELECT语句实现
(5)成绩修改模块,连接数据库,用UPDATE语句实现
(6)成绩删除模块,连接数据库,用DELETE语句实现
(7)成绩添加模块,连接数据库,用INSERT语句插入实现
(8)成绩分析模块,连接数据库,读出数据库中成绩,根据个门成绩分别求出她们最高分,最低分,平均分等。
(9)导出Excel表模块,将想要保留信息导出到Excel表中
(10)绘出矩形图模块,依据成绩分析模块绘出矩形图。
(11)退出登录模块,退出目前登录,切换用户
(12)帮助模块,给和部分非法操作处理措施
(13)密码修改模块,修改目前用户密码
第四章 数据库设计
4.1数据库需求分析
数据库中存放学生基础信息和成绩、管理员和学生登录号和密码。
4.2数据库E-R图以下
密码
成绩
班级
姓名
学号
密码
用户名
性别
学生
管理员
邮箱
4.3数据库表设计
本系统在登录时需要验证使用者身份,用户需要输入用户名和密码,所建立数据库表以下:
1、管理员表:
2、学生表:
3、学生基础信息和成绩表:
第五章 具体设计
5.1 系统总体结构
经过对系统需求分析,学生成绩管理系统关键划分为两个部分:学生成绩查询,管理员模块。
管理员登录模块
学生登录模块
成绩管理系统
系统程序模块步骤图:
成绩管理系统
学生登录模块
管理员登录模块
帮助
成绩查询
退出登录
密码修改
其它
成绩管理
导出Excel表
绘出矩形图
密码修改
退出登录
帮助
四处Excel表
成绩分析
成绩删除
成绩修改
成绩查询
成绩添加
5.1.1学生登录模块
学生登录模块
退出登录
密码修改
帮助
成绩查询
5.1.2管理员登录模块
退出登录
密码修改
帮助
导出Excel表
成绩分析
成绩删除
成绩修改
成绩查询
成绩添加
绘出矩形图
其它
成绩管理
管理员登录模块
5.2系统关键功效模块
5.2.1系统登录模块
登录:
代码:
private void buttonLogin_Click(object sender, EventArgs e)
{
//判定登录状态并弹出对应提醒框
if ((BoxUser.Text.Trim() == string.Empty) || (BoxPassword.Text.Trim() == string.Empty))
{
MessageBox.Show("请输入用户名或密码");
}
else
{
if (this.student.Checked == true)
{
string user = BoxUser.Text;
string password = BoxPassword.Text;
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += @"Data Source=" + Application.StartupPath + "\\StudentInfo.mdb";
OleDbConnection objConnection = new OleDbConnection(strConnection);
objConnection.Open();
OleDbCommand objCommand = new OleDbCommand("select * from student", objConnection);
DataSet ds = new DataSet();
OleDbDataAdapter sda= new OleDbDataAdapter("select * from student ", objConnection);;
sda.Fill(ds, "student");
OleDbDataReader reader = objCommand.ExecuteReader();
int i;
for (i = 0; i < ds.Tables["student"].Rows.Count; i++)
{
reader.Read();
if (reader["username"].Equals(user) && reader["password"].Equals(password))
{
this.DialogResult = DialogResult.OK;
this.Close();
break;
}
}
if (i == ds.Tables["student"].Rows.Count)
MessageBox.Show("用户名或密码输入有误!");
// 关闭Reader.
reader.Close();
objConnection.Close();
}
else if (this.admin.Checked == true)
{
string user = BoxUser.Text.ToString();
string password = BoxPassword.Text.ToString();
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += @"Data Source=" + Application.StartupPath + "\\StudentInfo.mdb";
OleDbConnection objConnection = new OleDbConnection(strConnection);
objConnection.Open();
OleDbCommand objCommand = new OleDbCommand("select * from admin", objConnection);
DataSet ds = new DataSet();
OleDbDataAdapter sda = new OleDbDataAdapter("select * from admin ", objConnection); ;
sda.Fill(ds, "admin");
OleDbDataReader reader = objCommand.ExecuteReader();
int i;
for (i = 0; i < ds.Tables["admin"].Rows.Count; i++)
{
reader.Read();
if (reader["username"].Equals(user) && reader["password"].Equals(password))
{
this.DialogResult = DialogResult.OK;
this.Close();
break;
}
}
if (i == ds.Tables["admin"].Rows.Count)
MessageBox.Show("用户名或密码输入有误!");
// 关闭Reader.
reader.Close();
objConnection.Close();
}
}
}
5.2.2学生登录模块
(1)学生界面模块
(2)成绩查询模块
代码:
//查询学生信息
string checkInfo = "";
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += @"Data Source=" + Application.StartupPath + "\\StudentInfo.mdb";
OleDbConnection objConnection = new OleDbConnection(strConnection);
objConnection.Open();
OleDbCommand objCommand = new OleDbCommand("select * from information", objConnection);
OleDbDataReader reader = objCommand.ExecuteReader();
switch (flag) //分别依据姓名,学号,邮箱查询学生信息
{
case 1:
checkInfo = textBox1.Text.ToString();
break;
case 2:
checkInfo = textBox2.Text.ToString();
break;
case 3:
checkInfo = textBox3.Text.ToString();
break;
}
if (checkInfo.Length == 0 || checkInfo.Trim() == string.Empty)
{
//输入查询信息为空,直接列出全部学生信息
this.listViewInfo.Items.Clear();
this.init(reader);
}
else
{
//依据输入查询信息checkInfo查询学生信息并显示到显示区
this.listViewInfo.Items.Clear();
while (reader.Read())
{
if (reader["name"].ToString().Equals(checkInfo) || reader["studentID"].ToString().Equals(checkInfo)
|| reader["email"].ToString().Equals(checkInfo))
{
ListViewItem lvi = new ListViewItem(reader["name"].ToString());
lvi.SubItems.Add(reader["studentID"].ToString());
lvi.SubItems.Add(reader["class"].ToString());
lvi.SubItems.Add(reader["sex"].ToString());
lvi.SubItems.Add(reader["email"].ToString());
lvi.SubItems.Add(reader["courseOne"].ToString());
lvi.SubItems.Add(reader["courseTwo"].ToString());
lvi.SubItems.Add(reader["courseThree"].ToString());
this.listViewInfo.Items.Add(lvi);
}
}
}
// 关闭Reader.
reader.Close();
objConnection.Close();
(3)密码修改模块
代码:
private void toolStripMenuItem8_Click(object sender, EventArgs e)
{
xiugaimima2 xiu = new xiugaimima2();
xiu.Show();
}
private void button1_Click(object sender, EventArgs e)
{
string user = tbusername.Text;
string password = tbpassword.Text;
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += @"Data Source=" + Application.StartupPath + "\\StudentInfo.mdb";
OleDbConnection objConnection = new OleDbConnection(strConnection);
objConnection.Open();
OleDbCommand objCommand = new OleDbCommand("select * from student", objConnection);
DataSet ds = new DataSet();
OleDbDataAdapter sda = new OleDbDataAdapter("select * from student ", objConnection); ;
sda.Fill(ds, "student");
OleDbDataReader reader = objCommand.ExecuteReader();
int i;
for (i = 0; i < ds.Tables["student"].Rows.Count; i++)
{
reader.Read();
if (reader["username"].Equals(user) && reader["password"].Equals(password))
{
string s = "update student set [username]='" + user + "',[password]='" + this.tbnewpassword.Text + "' where [username]= '" + user + "'";
OleDbCommand cmd = new OleDbCommand(s, objConnection);
cmd.ExecuteNonQuery();
MessageBox.Show("修改成功!");
break;
}
}
if (i == ds.Tables["student"].Rows.Count)
MessageBox.Show("请确定密码!");
// 关闭Reader.
reader.Close();
objConnection.Close();
}
(4)退出登录模块
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
Application.Restart();
}
(5)帮助模块
private void toolStripMenuItem4_Click(object sender, EventArgs e)
{
MessageBox.Show("请确定是不是没考!");
}
private void toolStripMenuItem6_Click(object sender, EventArgs e)
{
MessageBox.Show("请联络管理员!");
}
private void toolStripMenuItem7_Click(object sender, EventArgs e)
{
MessageBox.Show("请联络老师!");
}
5.2.3管理员登录模块
(1)管理员界面模块
(2)成绩添加模块
代码:
private void toolStripMenuItem3_Click(object sender, EventArgs e)
{
//初始化信息录入窗口,进行输入
InfoInput inputForm = new InfoInput();
inputForm.Show();
}
private void buttonAdd_Click(object sender, EventArgs e)
{
//将学生信息录入
string sex;
if (this.radioButtonMale.Checked)
sex = "男";
else
sex = "女";
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += @"Data Source=" + Application.StartupPath + "\\StudentInfo.mdb";
OleDbConnection objConnection = new OleDbConnection(strConnection);
OleDbCommand cmd = new OleDbCommand("insert into [information] " +
"([name],[studentID],[class],[sex],[email],[courseOne],[courseTwo],[courseThree])values ('" +
this.textBoxName.Text + "','" + this.textBoxStudentID.Text + "','" +
this.textBoxClass.Text+ "','"+sex+"','" + this.textBoxEmail.Text + "','" +
this.textBoxCourse1.Text + "','" + this.textBoxCourse2.Text + "','" +
this.textBoxCourse3.Text + "')", objConnection);
objConnection.Open();
//添加成功或失败分别弹出对应提醒框
if (cmd.ExecuteNonQuery() == 1 && (textBoxName.Text.Trim() != string.Empty) && (textBoxStudentID.Text.Trim() != string.Empty))
{
MessageBox.Show("成功添加 " + this.textBoxName.Text + " 同学信息!");
this.Close();
}
else
MessageBox.Show("添加失败,请确定是否添加该同学相关信息");
objConnection.Close();
}
(3)成绩查询模块
代码:
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
//查询学生信息
string checkInfo = "";
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += @"Data Source=" + Application.StartupPath + "\\StudentInfo.mdb";
OleDbConnection objConnection = new OleDbConnection(strConnection);
objConnection.Open();
OleDbCommand objCommand = new OleDbCommand("select * from information", objConnection);
OleDbDataReader reader = objCommand.ExecuteReader();
switch (flag) //分别依据姓名,学号,邮箱查询学生信息
{
case 1:
checkInfo = textBox1.Text.ToString();
break;
case 2:
checkInfo = textBox2.Text.ToString();
break;
case 3:
checkInfo = textBox3.Text.ToString();
break;
}
if (checkInfo.Length == 0 || checkInfo.Trim() == string.Empty)
{
//输入查询信息为空,直接列出全部学生信息
this.listViewInfo.Items.Clear();
this.init(reader);
展开阅读全文