C#成绩管理系统.docx
- 文档编号:24349632
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:30
- 大小:1MB
C#成绩管理系统.docx
《C#成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C#成绩管理系统.docx(30页珍藏版)》请在冰豆网上搜索。
C#成绩管理系统
课程设计任务书
专业
计算机科学与技术
班级
13计(专升本)
姓名
宋伟
设计起止日期
2013年12月23日---2013年12月27日
设计题目:
学生成绩管理系统
设计任务(主要技术参数):
硬件环境:
CPU:
IntelCorei3-350M(2.13GHz)硬盘:
320G内存:
2G
软件环境:
操作系统:
WindowsXP开发语言C#
开发工具MicrosoftVisualStudio2008
学生成绩管理系统用于管理查找学生成绩,学生信息,课程信息等等
小组成员:
赵成龙(管理员管理)宋伟(学生,课程查询)
路富尧(数据库)王飞飞(登录界面)
指导教师评语:
成绩:
签字:
年月日
学生成绩管理系统
1.设计背景
学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,但是几年前,各个学校的学生成绩管理基本上都是靠手工进行,随着各个学校的规模增大,有关学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理。
这种管理方式存在着许多缺点,如:
效率低、保密性差,另外所用其时间长,产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
如今学校的学生越来越多,成绩管理的工作量越来越大,手工管理成绩的弊端也越来越明显。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有手工管理所无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生档案管理的效率。
所以我想借本次课程设计之际,设计一个简易的学生成绩管理系统。
2.设计目的
1)掌握运用数据库原理进行系统分析和设计的方法;
2)掌握vs的使用方法;
3)掌握利用C#语言的运用;
3.功能描述
1)学生进入系统:
1学生信息查找;
2课程信息查找;
3学生成绩查找;
2)管理员进入系统:
1学生信息设置:
a学生信息添加;
b学生信息修改;
2学生成绩设置:
a学生成绩添加;
b学生成绩修改;
3课程信息设置:
a课程信息添加;
b课程信息修改;
4.方案论证
4.1总体设计
4.1.1功能框图
学生成绩管理信息系统总体功能框图如下:
图1总体功能框图
4.2详细设计
4.2.1数据库设计
1)实体E-R图
根据学生成绩管理系统分析与功能设计,学生成绩管理系统中主要包括学生信息实体、课程信息实体、成绩信息实体等。
学生信息实体包括学生的学号、姓名、年龄、性别、祖籍等。
该实体的E-R图如图2所示。
其中“学号”作为主键。
图2学生信息实体E-R图
图3课程信息实体E-R图
图4成绩信息实体E-R图
2)数据库结构设计
根据图书信息管理系统E-R图设计系统数据库。
本系统数据库名为“student”,其中包括五个数据表,分别存放学生登录信息、管理员登录信息、学生信息、课程信息和成绩信息。
1
学生登录信息表:
表名为:
“stu”,用于保存学生登录使用的用户名和密码,其结够如图5所示。
图5学生登录信息表
2
管理员登录信息表:
表名为:
“admin”,用于保存管理员登录使用的用户名和密码,其结构如图6所示。
图6管理员登录信息表
3
学生信息表:
表名为:
“student”,用于保存学生的基本信息,其结构如图7所示。
图7学生信息表
4
课程信息表:
表名为:
“course”,用于保存课程的基本信息,其结构如图8所示。
图8课程信息表
5
成绩信息表:
表名为:
“sc”,用于保存成绩的信息,其结构如图9所示。
图9成绩信息表
4.2.2程序界面设计
1)登录界面
首先,启动程序“MicrosoftVisualStudio2010”,选择“文件”——“新建”——“项目”,打开“新建项目”对话框,输入项目名称为“wangbo”,并指定文件位置。
将项目中的默认添加的第1个Windows窗体文件名称改为“form1.cs”,并将其作为登录前窗体,然后再编写其相应的事件方法代码(如图10)。
图10登录界面
1
管理员登录界面(如图11)
图11管理员登录界面
代码如下:
publicpartialclassForm2:
Form
{
publicclassDataConn
{
publicstaticstringmyconn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:
\\student.mdb;PersistSecurityInfo=False";
publicstaticstringdata_sno;
publicstaticstringdata_cno;
publicstaticstringdata_name;
publicstaticstringdata_qx;
}
publicForm2()
{
InitializeComponent();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(this.textBox1.Text==""||this.textBox2.Text=="")
{
MessageBox.Show("用户名或密码不能为空!
","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
this.textBox1.Focus();}
else
{
try
{
OleDbConnectionconn=newOleDbConnection(DataConn.myconn);stringstr="select*fromadminwherename='"+this.textBox1.Text+"'";
OleDbCommandcmd=newOleDbCommand(str,conn);conn.Open();/OleDbDataReaderread;
read=cmd.ExecuteReader();/
if(read.Read()==false)
{
MessageBox.Show("用户名不存在","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
this.textBox1.Text="";
this.textBox2.Text="";
this.textBox1.Focus();}
else
{
conn.Close();
conn.Open();
read=cmd.ExecuteReader();/
while(read.Read())
{
if(this.textBox2.Text==read.GetString
(2))
{
this.Hide();
Form4form=newForm4();
DataConn.data_name=this.textBox1.Text.Trim();
DataConn.data_qx=read.GetString(3);
form.Show();
}
else
{
MessageBox.Show("密码错误","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
this.textBox2.Text="";
this.textBox2.Focus();/}
}
read.Close();
conn.Close();
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
}
}
privatevoidForm2_Load(objectsender,EventArgse)
{
}
}
2
学生登录界面(如图12):
图12学生登录界面
(代码和管理员登录界面代码类似)
2)管理员管理界面
①学生信息设置界面(如图13)
图13学生信息设置界面
②学生成绩设置界面(如图14)
图14学生成绩设置界面
③课程信息界面(如图15)
图15课程信息界面
(管理员界面代码见附页)
3)学生登录界面(如图16)
图16学生登录界面
①学生信息查找界面(如图17)
图17学生信息查找界面
②课程信息查找界面(如图18)
图18课程信息查找界面
(代码见附页)
5心得体会
为期一周的课程设计结束了,我们小组的项目是图书管理信息系统。
在老师和同学的帮助下,我基本完成系统的设计。
我按照系统工程软件设计的要求,从需求分析,概念设计,总体设计,详细设计,系统测试等各个步骤,分步完成系统的各项任务,实现了系统中的学生信息查询,学生信息更新,学生信息添加等模块的功能。
在这短短的五天里我收获如下:
1、巩固和加深了对C#的理解,提高综合运用本课程所学知识的能力。
2、培养了我选用参考书,查阅手册及文献资料的能力。
培养独立思考,深入研究,分析问题、解决问题的能力。
3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
根据我在课程设计中遇到的问题,我将在以后的学习当中注意以下几点:
1、认真上好专业实验课,多在实践中锻炼自己。
2、写程序的过程中要考虑周到,严密。
3、在做设计的时候要有信心,有耐心,切勿浮躁。
4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。
5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。
参考文献
[1]杨涛Access2007实用教程清华大学出版社2007年第一版页281-300
[2]李志云周岩徐春华等VisualC#2005数据库开发案例教程机械工业出版社2009年第一版页146-193
[3]李春葆金晶曾平等C#程序设计教程清华大学出版社2010年第一版
[4]陈桂林Access数据库程序设计高等教育出版社2007年第一版
[5]张波译Access2007宝典人民邮电出版社2008年第二版页944
[6]向隅数据库应用(Access2007)实例教程清华大学出版社北京交通大学出版社2009年第一版
[7]李佳丁宁C#开发技术大全清华大学出版社2009年2月第一版页230-252
[8]李容完全手册VisualC#2008开发技术详解电子工业出版社2008年5月第一版页183-206
[9]沃森(Karli Watson)、内格尔(Christian Nagel)、齐立波、 黄静 C#入门经典(第5版) 清
华大学出版社 (2010-12出版)
[10]薛华成 管理信息系统(第5版) 清华大学出版社 (2007-08出版)
附页:
管理员界面代码:
namespacewangbo
{
publicpartialclassForm4:
Form
{
publicclassDataConn
{
publicstaticstringmyconn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:
\\student.mdb;PersistSecurityInfo=False";
publicstaticstringdata_sno;
publicstaticstringdata_cno;
publicstaticstringdata_name;
publicstaticstringdata_qx;
}
publicForm4()
{
InitializeComponent();
this.fillcourse2();
this.fillcourse();
}
privatevoidForm4_Load(objectsender,EventArgse)
{
this.toolStripStatusLabel1.Text+=DataConn.data_name;
this.toolStripStatusLabel2.Text+=DataConn.data_qx;
this.toolStripStatusLabel3.Text+=System.DateTime.Now.ToString();
}
privatevoidtabPage5_Click(objectsender,EventArgse)
{
}
privatevoidtabPage6_Click(objectsender,EventArgse)
{
}
privatevoidbutton19_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbutton16_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbutton15_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbutton11_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbutton4_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbutton22_Click(objectsender,EventArgse)
{
try
{
stringstrsql="updatecoursesetCname='"+this.textBox27.Text.Trim()+"',Cpno='"+this.textBox26.Text.Trim()+"',Credit='"+this.textBox25.Text.Trim()+"'whereCno='"+this.textBox28.Text.Trim()+"'";
OleDbConnectionmyconn=newOleDbConnection(DataConn.myconn);
OleDbCommandmycomm=newOleDbCommand(strsql,myconn);
myconn.Open();
inti=mycomm.ExecuteNonQuery();
myconn.Close();
if(i==1)
{
MessageBox.Show(更新成功","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
this.fillcourse2();
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
}
//privatevoidfillcourse()
//{
//thrownewException("Themethodoroperationisnotimplemented.");
//}
privatevoidbutton21_Click(objectsender,EventArgse)
{
if(MessageBox.Show("确定要删除吗?
","系统提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning)==DialogResult.Yes)
{
stringstrsql="deletefromcoursewhereCno='"+this.textBox28.Text.Trim()+"'";
OleDbConnectionmyconn=newOleDbConnection(DataConn.myconn);
OleDbCommandmycomm=newOleDbCommand(strsql,myconn);
myconn.Open();
mycomm.ExecuteNonQuery();
myconn.Close();
MessageBox.Show("删除成功","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
this.textBox24.Clear();
this.fillcourse2();
}
else
{
return;
}
}
privatevoidfillcourse2()
{
this.listView2.Items.Clear();
OleDbConnectionmyconn=newOleDbConnection(DataConn.myconn);
stringsql="select*fromcourse";
myconn.Open();
OleDbDataAdaptersda=newOleDbDataAdapter(sql,myconn);
DataSetds=newDataSet();
sda.Fill(ds,"course");
foreach(DataRowdrinds.Tables["course"].Rows)
{
string[]subitem=newstring[]
{
dr["cno"].ToString().Trim(),
dr["cname"].ToString().Trim(),
dr["cpno"].ToString().Trim(),
dr["credit"].ToString().Trim()
};
this.listView2.Items.Add(newListViewItem(subitem));
}
myconn.Close();
}
privatevoidfillcourse()
{
this.listView1.Items.Clear();
OleDbConnectionmyconn=newOleDbConnection(DataConn.myconn);
stringsql="select*fromsc";
myconn.Open();
OleDbDataAdaptersda=newOleDbDataAdapter(sql,myconn);
DataSetds=newDataSet();
sda.Fill(ds,"sc");
foreach(DataRowdrinds.Tables["sc"].Rows)
{
string[]subitem=newstring[]
{
dr["sno"].ToString().Trim(),
dr["cno"].ToString().Trim(),
dr["credit"].ToString().Trim()
};
this.listView1.Items.Add(newListViewItem(subitem));
}
myconn.Close();
}
privatevoidbutton18_Click(objectsender,EventArgse)
{
if(this.textBox24.Text=="")
{
MessageBox.Show("请填写要添加的内容!
","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
else
{
try
{
if(MessageBox.Show("确定要添加吗?
","系统提示",MessageBoxButtons.YesNo,MessageBoxIcon.Information)==DialogResult.Yes)
{
stringstrsql="Insertintocourse(Cno,Cname,Cpno,credit)values('"+this.textBox24.Text.Trim()+"','"+this.textBox23.Text.Trim()+"','"+this.textBox22.Text.Trim()+"','"+this.textBox21.Text.Trim()+"')";
OleDbConnectionmyconn=newOleDbConnection(DataConn.myconn);
OleDbCommandmycomm=newOleDbCommand(strsql,myconn);
myconn.Open();
inti=mycomm.ExecuteNonQuery();
myconn.Close();
if(i==1)
{
if(MessageBox.Show("添加成功","系统提示",MessageBoxButtons.YesNo,MessageBoxIcon.Information)==DialogResult.Yes)
{
this.textBox24.Focus();
}
}
t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 成绩管理系统
