学生成绩管理系统 课程设计.docx
《学生成绩管理系统 课程设计.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统 课程设计.docx(13页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统课程设计
课程设计报告
课程名称VisualC#.Net程序设计教程
项目名称学生成绩管理系统
班级与班级代码09信管一班
实验室名称(或课室)
专业信息管理与信息系统
.NET程序设计开发课程设计
项目任务:
(本人)
一、项目名称
学生成绩管理系统
二、项目背景
在21世纪的科技时代,科学技术突飞猛进,计算机已经不仅是在科技上应用,而且在生活中也是同样得到了广泛在应用。
如今,不管是小学,初中,高中,甚至是很多大学生的学生成绩管理基本上是靠人工进行管理,但随着时间的变化,学校规模的扩大,有关学生成绩管理工作和所涉及到的数据量越来越大越来越多,大多数学校不得不靠增加人力,物力,财力来进行学生成绩管理。
但是人工管理成绩档案具有效率低,查找麻烦,可靠性不高,保密性低等因素。
因此开发出一个不仅仅是适用于大中专院校以及其它高校通用的学生成绩管理系统是必要的。
本团队就此开发一个学生成绩管理系统,采用计算机对学生成绩进行管理,以进一步提高办学效益和现代化水平,为广大教师和学生提高工作效率,实现学生成绩信息管理工作流程的系统化,规范化和自动化。
三、开发环境分析
使用MicrosoftVisualStudio2005开发、使用C#.NET语言编程,后台数据库选择SQLServer2005。
四、项目要求
设计一个比较完善的学生选课管理系统,其中要求后台的数据库利用SQLServer来完成(可以使用.NET自带的SQLExpress),功能具体要求如下:
(1)登录功能;
(2)学生信息管理功能;
(3)课程信息管理功能;
(4)学生成绩管理功能;
(5)实现将查询结果保存到硬盘的功能;
(6)修改相关数据库结构并据此实现基本选课功能
(7)任选
(1)—(4)项中的一项,将其利用ASP.NET来实现;
设计项目成立与项目实施
一、项目组长
组长:
李建波
二、设计项目分工
小组成员:
彭健锋,陈志明,张泰宁,周敏强,成思谋,李建波。
小组分工情况如下:
一、项目组长:
组长:
李建波
二、设计项目分工:
小组成员:
彭健锋,陈志明,张泰宁,周敏强,成思谋,李建波。
小组分工情况如下:
1、张泰宁:
负责登录功能:
Login.cs;并将其利用ASP.NET来实现;
2、彭健锋:
负责学生信息添加(StudentMsgFrm.cs) 、管理功能(StudentFrm.cs);
3、陈志明:
负责课程信息添加(CourseMsgFrm.cs)和管理功能(CourseFrm.cs);
4、成思谋:
负责学生成绩管理功能(ScoreMsgFrm.cs);
5、周敏强:
实现将查询结果保存到硬盘的功能(select)(统一数据库);
6、李建波:
实现学生基本选课功能(整合全部功能)(selectcourse)。
三、项目实施过程:
1、数据库设计和连接是使用SQLServer2005设计的,在.Net用connectionString连接数据库。
关键代码如下:
{InitializeComponent();
connString=@"DataSource=local;InitialCatalog=MySchool;IntegratedSecurity=True";
connection=newSqlConnection(connString);}
catch(Exceptionex)
{
MessageBox.Show(ex.Message,"数据库操作出错了!
",
MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
2、实现学生基本选课功能(整合全部功能),新建一个selectcourse.cs窗体,在窗体添加3个label控件,1个listbox控件,1个Richtxtbox和2个Button,设置两个数据源MySchoolDataSet1,MySchoolDataSet2
2.1按下列要求修改属性项:
控件
属性
属性设置
控件
属性
属性设置
Label1
Name
Label
Listbox
Name
Cdoclass
Text
名字
Label2
Name
Label2
Richtxtbox
Name
Richtxtbox
Text
信息如下:
Label3
Name
Label3
Button1
Name
Button1
Text
Text
选他了
MySchoolDataSet
Button2
Name
Button2
Text
退出
如下图:
2.1
图:
2.1界面设计
2.4设计的关键代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingMySchool;
usingSystem.Data.SqlClient;
namespaceMySchool
{
publicpartialclassselectcourse:
Form
{
publicselectcourse()
{
InitializeComponent();
}
privatevoidselectcourse_Load(objectsender,EventArgse)
{
//TODO:
这行代码将数据加载到表“mySchoolDataSet2.CourseMsg”中。
您可以根据需要移动或移除它。
this.courseMsgTableAdapter1.Fill(this.mySchoolDataSet2.CourseMsg);
//TODO:
这行代码将数据加载到表“mySchoolDataSet.CourseMsg”中。
您可以根据需要移动或移除它。
this.courseMsgTableAdapter.Fill(this.mySchoolDataSet.CourseMsg);
stringconnString=@"DataSource=(local);InitialCatalog=MySchool;IntegratedSecurity=True";
SqlConnectionconnection=newSqlConnection(connString);
stringsql=String.Format("selectccfrom[tablea]whereenroll=1");
connection.Open();
SqlCommandcommand=newSqlCommand(sql,connection);
stringnum=(string)command.ExecuteScalar();
stringmessage=String.Format("你好!
{0}先生",num);
label3.Text=num;
label1.Text=message;
connection.Close();
}
privatevoidaa_Click(objectsender,EventArgse)
{
stringconnString=@"DataSource=(local);InitialCatalog=MySchool;IntegratedSecurity=True";
SqlConnectionconnection=newSqlConnection(connString);
stringsql=String.Format("updatetableasetenroll=0whereenroll=1");
connection.Open();
SqlCommandcommand=newSqlCommand(sql,connection);
command.ExecuteNonQuery();
this.Close();
}
privatevoidcboClass_SelectedIndexChanged(objectsender,EventArgse)
{
stringkk=cboClass.Text;
stringconnString=@"DataSource=(local);InitialCatalog=MySchool;IntegratedSecurity=True";
SqlConnectionconnection=newSqlConnection(connString);
stringsql=String.Format("selectCourseClassfrom[CourseMsg]whereCourseName='{0}'",kk);
stringsql2=String.Format("selectCreditfrom[CourseMsg]whereCourseName='{0}'",kk);
stringsql3=String.Format("selectPrelectionCreditfrom[CourseMsg]whereCourseName='{0}'",kk);
stringsql4=String.Format("selectExperimentCredit[CourseMsg]whereCourseName='{0}'",kk);
connection.Open();
SqlCommandcommand=newSqlCommand(sql,connection);
SqlCommandcommand2=newSqlCommand(sql2,connection);
SqlCommandcommand3=newSqlCommand(sql3,connection);
SqlCommandcommand4=newSqlCommand(sql3,connection);
stringnum=(string)command.ExecuteScalar();
intnum2=(int)command2.ExecuteScalar();
intnum3=(int)command3.ExecuteScalar();
intnum4=(int)command4.ExecuteScalar();
stringmessage=String.Format("{0}",num);
richTextBox1.Text=message;
label2.Text="学分"+num2+"理论课时:
"+num3+"实验课时"+num4;
connection.Close();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringconnString=@"DataSource=(local);InitialCatalog=MySchool;IntegratedSecurity=True";
SqlConnectionconnection=newSqlConnection(connString);
stringsql=String.Format("INSERTINTOScoreMsgMe(StudentName,CourseName,Score)VALUES('{0}','{1}','{2}')",label3.Text,cboClass.Text,0);
connection.Open();
SqlCommandcommand=newSqlCommand(sql,connection);
command.ExecuteNonQuery();
}
}
}
四、结果演示:
数据库设计
1ER图
E-r图,如上图
2数据库表
学生课程关系图
User表结构
列名
数据类型
说明
UserName
nvarchar(50)
管理员用户名,不允许为空,主键
password
nvarchar(50)
管理员密码,不允许为空
StudentMsg表结构
列名
数据类型
说明
StudentNo
int(4)
学号,主键,标识列
StudentName
nvarchar(50)
学生姓名,不允许为空
sex
nchar(10)
性别
department
nvarchar(50)
院系
speciality
nvarchar(50)
专业
Hobby
nvarchar(200)
兴趣爱好
password
nvarchar(8)
学生登录密码,默认值1111
enroll
bit
(1)
学生登录状态,默认值为0
CourserMsg表结构
列名
数据类型
说明
CouresId
int(4)
课程编号,主键,标识列
CourseName
nvarchar(50)
课程名称,不允许为空
CourseClass
nvarchar(50)
课程类别
Required
bit
(1)
是否必修
Credit
int(4)
学分
PrelectionCredit
int(4)
理论学时
ExperimentCredit
int(4)
实验学时
ScoreMsg表结构
列名
数据类型
说明
StudentNo
int(4)
学号,主键,外键
CourseId
int(4)
课程编号,主键
Score
int(4)
成绩
User表数据
StudentMsg表数据
CourseMsg表数据
ScoreMsg表数据
2、结果演示:
学生登录
图4.2.1
学生应用界面图4.2.2
学生选课信息:
图4.2.3
选好课程后,点击“选它了”按钮,选课成功。
信息记录到表上。
选课
五、课程设计总结:
本次实验是要团队建立一个学生成绩管理系统,以实现快捷,高效,准确保存学生的基本信息,课程信息,成绩信息,还有实现选课功能。