C#课程设计分析报告书学生成绩管理系统.docx
《C#课程设计分析报告书学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C#课程设计分析报告书学生成绩管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
C#课程设计分析报告书学生成绩管理系统
C#课程设计报告书(学生成绩管理系统)
————————————————————————————————作者:
————————————————————————————————日期:
沈阳航空航天大学
C#课程设计报告书
学生成绩管理系统
————密码修改
院系
专业
班号
学号
姓名
指导教师
2014年12月
摘要
该系统是用VisuaStudio2010和Access2007,通过C#语言进行相关代码的编写,生成相关程序。
学生成绩管理系统是构建于Visual C#.NET平台上的Windows应用程序,采用应用前景广阔的XML技术存储数据,具有平台构建免费、运行速度快、程序小、扩展性好、技术先进等特点。
本文描述的是基于Windows环境的学生成绩管理系统,主要工具MicrosoftVisualStudio2010设计窗体,Access2007建立数据库,学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生基本信息、成绩的录入,删除,查询,维护以及成绩的统计分析等几方面的功能,是现实问题的迫切要求。
本篇报告介绍一个学生信息管理系统的从分析到设计最后到开发的全过程为,给出了学生信息管理系统的设计和技术实现的过程,特别在细节上分析功能和函数的实现思想。
涉及到学生信息管理的基本功能在本报告中都有相应的描述。
管理信息系统正在向着网络化、智能化和集成化等趋势发展。
学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。
它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。
在这次的课程设计中,让我加深了对MicrosoftVisualStudio2010的运用,同时学习了Access数据库的建立和连接与导入。
能在Visual C#.NET平台上进行Access数据库的修改与控制,将C#语句与SQL语句混合使用,成功的完成了学生成绩管理系统的整体设计,加深巩固了选择的条件语句,还有曾经学习过的基本运算语句,同时也为以后的进一步学习垫下了了良好的基础。
关键词:
C#;学生成绩管理;数据库
第一章绪 论
1.1课程设计目的
本次课程设计的目的是使学生能熟练掌握简单的简单Windows窗体应用程序的设计和ADO.net的应用,复习熟练基本运算符,和基本的条件语句、判断语句,将Access的使用和MicrosoftVisualStudio2010的使用结合起来,希望通过本次课程设计锻炼学生使用C#语言解决实际问题的能力。
1.2系统开发环境
系统开发平台:
MicrosoftVisualStudio2010
系统开发语言:
C#
数据库管理软件:
Access2007
1.3系统开发程序
本系统后台数据库采用Access数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用Microsoft公司的VisualStudio2010作为主要开发工具,可与Access2007数据库无缝链接。
1.4报告主要内容
本报告详细的介绍了学生信息管理系统的开发过程,主要涉及到的工作如下:
系统的需求分析、系统的总体设计设计思路、系统的概念设计、系统各模块的详细设计、系统运行与测试。
第二章系统的需求分析
2.1系统设计目标
(1)学生用户可根据不同的用户名和相应的密码进行登录,并可修改密码。
(2)根据条件查询实现学生成绩的按学号、课程、成绩、学期的查询
(3)教师可对学生成绩和学生个人信息进行查询、添加、更改、删除。
2.2功能需求分析
本系统的功能需求分析如下:
(1)学生密码修改:
学生可在成功登录后对自己的密码进行修改,以防个人信息外泄。
(2)学生成绩查询:
学生根据学号、成绩、课程进行查询。
(3)学生成绩录入:
用于学生成绩管理,录入学生成绩,也可以进行更新。
(4)学生信息录入:
用于学生个人信息管理,录入学生个人信息,也可以进行更新和对学生登录密码的修改。
2.3性能需求分析
(1)登录、用户界面需求:
简洁、易懂、易用、友好的用户界面。
(2)安全保密性需求:
只有凭借用户名和密码登陆系统,才能进行信息的管理,同时也可以进行密码修改。
(3)数据分析需求:
可根据学生要求进行条件查询,分不同的学号、成绩、课程、学期进行相应查询。
(4)数据统计要求:
可对学生成绩和个人信息进行添加更改和删除。
第三章总体设计思路
3.1设计总体概述
根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。
把这些模块结合起来组成一个整体。
逐一实现各个功能;
3.2系统总体结构
经过对系统的需求分析,学生成绩管理系统主要划分为两个部分:
学生成绩查询,教师管理。
如图3.2系统的总体结构。
图3.2系统的总体结构
3.3系统程序模块流程图
图3.3学生成绩管理系统程序流程图
3.4系统主要功能模块简介
3.4.1学生信息查询模块
学生成绩查询:
学生可以根据学号、成绩、课程、学期进行查询,同时也能浏览全体学生的成绩。
3.4.2教师成绩管理模块
教师管理:
主要是用于学生成绩和个人信息更改、添加、删除。
如图3.4
图3.4教师成绩管理模块结构
第四章各程序界面及其功能示范
4.1主界面及二三级界面
4.1.1主界面
学生成绩管理系统主界面如图4.1.1,在输入正确的用户名和密码后,可点击各个按钮从而进入学生成绩查询、教师窗口等的二级界面,进行下一步操作。
图4.1.1学生成绩系统主界面
4.1.2二级界面
学生成绩查询的二级界面如图4.1.2。
在界面中,有学生学号、课程、成绩、和学期。
可以实现对学生成绩等各种信息的浏览。
点击分类查询按钮,即可进行选择按学号、成绩、课程、学期的不同方式进入三级界面进行查询。
点击密码修改按钮,即可进行密码修改的三级界面。
点击返回按钮,即可回到主界面,进行其他账号的登录。
点击右上角的关闭符号可直接关闭程序。
教师窗口的二级界面如图4.1.3。
在界面中,有序号、学生学号、课程、成绩、和学期。
可以实现对学生成绩的浏览、修改、添加、和删除。
在序号框输入相应的序号,点击删除,即可进行删除;在对应框处输入对应的信息,点击修改或添加,即可进行修改和添加。
点击分类查询,可获得与学生界面同样的按条件查询功能。
点击学生信息修改按钮,即可进入学生信息管理的二级界面。
点击返回按钮,即可回到主界面,进行其他账号的登录。
点击右上角的关闭符号可直接关闭程序。
图4.1.2学生成绩查询的二级界面
图4.1.3教师窗口的二级界面
4.1.3三级界面
密码修改的三级界面如图4.1.4所示。
在界面中,有旧密码、新密码、确认密码三个部分。
可以实现对学生密码的修改。
图4.1.4密码修改的三级界面
按条件查询三级页面如图4.1.5和图4.1.6所示。
在界面中,依据输入条件输入相应的需要查询的条件点击查询按钮即可在表中出现相应的数据。
图4.1.5按条件查询的三级界面1
图4.1.5按条件查询的三级界面2
4.2部分功能演示
4.2.1信息修改功能
在对应框中输入相应的需要更改的信息,点击修改按钮,即可进行修改。
如图4.2.1。
图4.2.1信息修改功能
4.2.2信息删除功能
在序号输入框输入对应需要删除的信息的序号,点击删除按钮,即可进行删除,删除后不可恢复!
如图4.2.2。
图4.2.2信息删除功能
4.2.3信息添加功能
在对应框中输入相应的一条与其他信息没有重复的新的信息,点击添加按钮,即可进行添加。
如图4.2.3。
图4.2.3信息添加功能
4.2.4密码修改功能
在旧密码框中输入旧密码,新密码框中输入需要更改的新密码,在确认密码框中输入与新密码相同的确认密码,如果新密码和确认密码不同,将会出现如图4.2.4所示的提示;若新密码与确认密码相同,点击修改按钮,将提示密码修改成功请重新登录,如图4.2.5。
图4.2.4密码修改错误
图4.2.5密码修改成功
第五章主要功能模块代码
5.1登陆界面代码设计
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.OleDb;
namespace学生成绩管理系统
{
publicpartialclassForm1:
Form
{
staticpublicstringusmen;//用户名,用于保存
staticpublicstringuspass;//密码,用于保存
publicForm1()
{
InitializeComponent();
}
privateboolpdyj()
{
if(textBox1.Text=="")
returnfalse;
if(textBox2.Text=="")
returnfalse;
returntrue;
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(!
pdyj())
{
MessageBox.Show("请输入正确信息");
return;
}
//创建路径及数据库名
stringstrPath=Application.StartupPath+"\\Student.mdb";
//生成链接数据库字符串
stringoleCon="provider=Microsoft.ACE.OLEDB.12.0;JetOLEDB:
DataBasePassword='xxx123';UserId='admin';Datasource="+strPath;
//创建数据库连接
OleDbConnectionconn=newOleDbConnection(oleCon);
//当创建好连接到Access后打开数据库连接
conn.Open();
//SQL查询语句
stringAccess="selectusername,userpasswordfromuserlistwhereusername='"+this.textBox1.Text+"'anduserpassword='"+this.textBox2.Text+"'";//select是查询数据库语句
OleDbCommandcmd=newOleDbCommand(Access,conn);
OleDbDataReaderhyw=cmd.ExecuteReader();
if(hyw.Read())
{
//在构造中我们的量就作为判断
usmen=textBox1.Text;
uspass=textBox2.Text;
//一旦连接成功了就弹出窗口
MessageBox.Show("登录成功!
");
Formf2=newForm4();
this.Hide();
f2.ShowDialog();
this.Dispose();
}
else
{
//信息错误,判断条件不成立
MessageBox.Show("输入用户密码错误");
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
if((textBox1.Text=="001")&&(textBox2.Text=="12345"))
{
MessageBox.Show("登录成功!
");
Form3b=newForm3();
this.Hide();
b.ShowDialog();
this.Dispose();
}
else
{
MessageBox.Show("错误","密码错误,请重新输入!
");
}
}
privatevoidtimer1_Tick(objectsender,EventArgse)
{
if(pictureBox1.Left>=this.Width)
{pictureBox1.Left=-pictureBox1.Width;}
pictureBox1.Left+=1;}
}
}
5.2学生查询界面代码设计
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.OleDb;
namespace学生成绩管理系统
{
publicpartialclassForm4:
Form
{
publicForm4()
{
InitializeComponent();
}
privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)
{
Form1b=newForm1();
this.Hide();
b.ShowDialog();
this.Dispose();
}
privatevoidForm4_Load(objectsender,EventArgse)
{
//TODO:
这行代码将数据加载到表“studentDataSet10.学生成绩表”中。
您可以根据需要移动或删除它。
this.学生成绩表TableAdapter2.Fill(this.studentDataSet10.学生成绩表);
}
5.3教师修改模块代码设计
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.OleDb;
namespace学生成绩管理系统
{
publicpartialclassForm3:
Form
{
publicForm3()
{
InitializeComponent();
}
privateboolpdyj()
{
if(textBox1.Text=="")
returnfalse;
returntrue;
}
privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)
{
Form1b=newForm1();
this.Hide();
b.ShowDialog();
this.Dispose();
}
privatevoidForm3_Load(objectsender,EventArgse)
{
//TODO:
这行代码将数据加载到表“studentDataSet9.学生成绩表”中。
您可以根据需要移动或删除它。
this.学生成绩表TableAdapter6.Fill(this.studentDataSet9.学生成绩表);
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(!
pdyj())
{
MessageBox.Show("请输入正确信息");
return;
}
//连接到一个数据库
stringstrPath=Application.StartupPath+"\\Student.mdb";
stringstrCon="provider=Microsoft.ACE.OLEDB.12.0;JetOLEDB:
DataBasePassword='xxx123';UserId='admin';Datasource="+strPath;
OleDbConnectionmyConn=newOleDbConnection(strCon);
myConn.Open();
//从数据库中修改指定记录
stringstrUpdt="UPDATE学生成绩表SET课程='"
+textBox2.Text+"',成绩='"
+textBox3.Text+"',学期="
+textBox4.Text+"WHERE序号="+textBox1.Text;
OleDbCommandmyCommand=newOleDbCommand(strUpdt,myConn);
intrtn=myCommand.ExecuteNonQuery();
MessageBox.Show(rtn.ToString()+"行被更改");
myConn.Close();
}
}
}
5.4教师删除模块代码设计
privatevoidbutton3_Click(objectsender,EventArgse)
{
if(!
pdyj())
{
MessageBox.Show("请输入正确信息");
return;
}
//连接到一个数据库
stringstrPath=Application.StartupPath+"\\Student.mdb";
stringstrCon="provider=Microsoft.ACE.OLEDB.12.0;JetOLEDB:
DataBasePassword='xxx123';UserId='admin';Datasource="+strPath;
OleDbConnectionmyConn=newOleDbConnection(strCon);
myConn.Open();
stringstrDele="DELETEFROM学生成绩表WHERE序号="+textBox1.Text;
OleDbCommandmyCommand=newOleDbCommand(strDele,myConn);
//从数据库中删除指定记录
intrtn=myCommand.ExecuteNonQuery();
//从studentDataSett中删除指定记录信息
MessageBox.Show(rtn.ToString()+"行被删除");
myConn.Close();//关闭数据库连接
}
5.5教师添加模块代码设计
privatevoidbutton2_Click(objectsender,EventArgse)
{
if(!
pdyj())
{
MessageBox.Show("请输入正确信息");
return;
}
stringstrPath=Application.StartupPath+"\\Student.mdb";
stringstrCon="provider=Microsoft.ACE.OLEDB.12.0;JetOLEDB:
DataBasePassword='xxx123';UserId='admin';Datasource="+strPath;
OleDbConnectionmyConn=newOleDbConnection(strCon);
myConn.Open();
stringstrInsert="INSERTINTO学生成绩表(序号,学号,课程,成绩,学期)VALUES(";
strInsert+=textBox1.Text+",'";
strInsert+=textBox5.Text+"','";
strInsert+=textBox2.Text+"',";
strInsert+=textBox3.Text+",";
strInsert+=textBox4.Text+")";
OleDbCommandinst=newOleDbCommand(strInsert,myConn);
intrtn=inst.ExecuteNonQuery();
MessageBox.Show(rtn.ToString()+"行被添加");
myConn.Close();
}
5.6密码修改模块代码设计
publicpartialclassForm5:
Form
{
publicForm5()
{
InitializeComponent();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
Form4b=newForm4();
this.Hide();
b.ShowDialog();
this.Close();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(textBox1.Text==""||textBox2.Text==""||textBox3.Text=="")
{
MessageBox.Show("您输入的信息不完整!
请重新输入!
","提示");
}
elseif(textBox2.Text!
=textBox3.Text)
{
MessageBox.Show("您的新密码输入错误!
请重新输入!
","提示");
}
elseif(textBox1.Text!
="")
{
stringstrPath=Application.StartupPath+"\\Student.m