学生选课系统设计visualstudiosqlsever.docx

上传人:b****5 文档编号:28383980 上传时间:2023-07-10 格式:DOCX 页数:26 大小:109.97KB
下载 相关 举报
学生选课系统设计visualstudiosqlsever.docx_第1页
第1页 / 共26页
学生选课系统设计visualstudiosqlsever.docx_第2页
第2页 / 共26页
学生选课系统设计visualstudiosqlsever.docx_第3页
第3页 / 共26页
学生选课系统设计visualstudiosqlsever.docx_第4页
第4页 / 共26页
学生选课系统设计visualstudiosqlsever.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

学生选课系统设计visualstudiosqlsever.docx

《学生选课系统设计visualstudiosqlsever.docx》由会员分享,可在线阅读,更多相关《学生选课系统设计visualstudiosqlsever.docx(26页珍藏版)》请在冰豆网上搜索。

学生选课系统设计visualstudiosqlsever.docx

学生选课系统设计visualstudiosqlsever

 

学生选课系统设计(visual-studio2005---SQLsever2000)

一.需求分析

1.1设计任务

本设计的任务是学生选课系统的设计与实现,其中要实现,课程信息管理(录入、查询、维护);学生信息管理(录入、查询、维护);教师信息管理(录入、查询、维护);选课管理(选课、退课、选课信息查询);教师输入成绩管理(查询学生选的课并给学生成绩)。

1.2系统性能需求

实用性:

为学生选课提供方便,可以有效的管理学生选课。

先进性:

产品的系统设计和开发应紧跟着整个计算机发展潮流,采用当时最先进的设计思想,利用最新的开发技术和开发工具。

使系统能够无论在功能设计上,还是在技术实现上,都处于同行业的领先地位。

操作简单:

本系统应该适用于不同水平的使用者,同时系统不应太复杂和烦琐,因此要求系统的操作尽可能简单易行。

适应性:

应该能广泛应用于不同类型的大、中、小学院校,系统采用模块化设计,用户可以根据自己的实际情况自行组合,使系统在不同的硬件环境下都能得以应用。

代码可读性好:

文中的代码将尽可能简洁,易懂。

1.3可行性分析

经济可行性:

由于本系统的主要背景是课程设计,不注重直接的经济效益和其后的发展方向,只在注重自身水平和能力的提高,对自身的经济要求也不高,只要有一台能运MicrosoftVisualStudio2008软件的电脑便可,所以不用考虑到经济问题。

技术可行性:

本系统的开发使用数据库,只需考虑安装SQLsever数据库的问题,在技术上要求并不高,因此本系统在技术上是可行的。

运行可行性:

本系统是一个学生选课系统,所耗费的资源非常的小,现在一般的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。

综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。

二.数据库设计

2.1实体关系图

图2.11学生实体关系图

图2.12教师实体关系图

图2.13课程实体关系图

图2.14选课实体关系图

2.2数据字典

数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。

利用SQLServer2000建立“学生选课”数据库,其基本表清单及表结构描述如下:

表2.1数据库中用到的表:

数据库表名

关系模式名称

备注

Student

学生表

学生基本信息表

Course

课程表

课程基本信息表

Teach

教师表

教师基本信息

Stu_Cour

选课表

学生选课信息

表2.2Student基本情况数据表:

字段名

字段类型

NotNull

说明

Sno

Char

Primarykey

学号

Sname

char

NotNull

姓名

Sclass

char

班级

Sage

intr

出生日期

Ssex

char

性别

表2.3Teach基本情况数据表:

字段名

字段类型

NotNull

说明

Tno

Char

Primarykey

教师编号

Tname

char

NotNull

教师名

Cno

char

外部码

所授课程

Tdept

char

所在系

表2.4Course数据表:

字段名

字段类型

约束控制

说明

Cno

char

主键(primarykey)

课程号

Cname

char

notnull

课程名称

Ctime

int

课时

Ccredit

int

学分

Cteachen

char

任课老师

表2.5Stu_cour情况数据表:

字段名

字段类型

约束控制

说明

Cno

char

外部键

课程编号

Sno

char

外部键

学号

Sname

char

姓名

Sclass

char

班级

SCgrade

char

成绩

Tname

char

教师名

Tno

char

教师编号

Cname

char

课程名称

Ccredit

int

成绩

Ccredit

int

学分

三.概要设计

3.1系统总体功能

根据本设计的要求可以得到如图3-1所示的系统功能图。

 

图3-1系统功能图

3.2系统功能模块设计

本系统需要完成的功能主要有:

(1)有关学生信息的输入,包括输入学生基本信息、所选课程。

(2)学生信息的查询、修改、删除。

(3)课程管理信息的添加、修改、删除和浏览等。

(4)学生选课管理信息的查询、添加、修改、删除。

(5)学生实现选择课程和退选课程的功能。

(6)教师实现查询学生选的课并给学生成绩。

四.详细设计

4.1登陆界面的设计

登录模块提供用户登录界面,用户输入正确的用户名和密码后,则可进入系统主窗口(即导航页面),从而可以选择进入相应的子系统。

在系统登录界面中,单击【确定】按钮验证用户名和用户密码,若正确则进入系统主界面;否则弹出错误提示,并等待用户的重新输入。

单击【取消】按钮则关闭登录界面,退出系统。

首先打开VisualStudio2008,新建一个Windows应用程序,命名为“学生选课系统”,再为应用程序添加一个窗体。

然后在窗体合适位置添加所需要的组件并设置相应属性。

接下来编写登录模块的代码,部分代码如下所示。

stringLJ=@"server=.;database=myd;uid=sa;pwd=";//建立连接

SqlConnectionconn=newSqlConnection(LJ);

conn.Open();//读取所输入的用户名和密码

SqlCommandcomm=conn.CreateCommand();

if(rbAdmin.Checked)

{stringsql="SELECTadminname,adminpasFROMadminWHERE(adminname='"+tbName.Text+"')";

comm.CommandText=sql;

SqlDataReaderdatar=comm.ExecuteReader();

DateTimedt=newDateTime(2008,1,1);

if(DateTime.Now>=dt)

MessageBox.Show("程序已经过期,请联系开发商!

","系统提示:

",MessageBoxButtons.OK,MessageBoxIcon.Information);

Close();//判断是否存在输入的用户

else

if(!

datar.HasRows)

MessageBox.Show("用户名不存在,请重新输入!

");

tbName.Focus();

return;

}/读取数据库的内容,并与输入的进行比较;

while(datar.Read())

{//判断用户输入是否正确

if(datar["adminpas"].ToString().Trim()!

=tbPas.Text.Trim())

MessageBox.Show("用户密码不正确,请重新输入!

");

tbPas.Focus();

return;

else

AdminLoginf2=newAdminLogin();

f2.ShowDialog();

Close();

elseif(rbStudent.Checked)

stringsql="SELECTsno,spasFROMstudentWHERE(sno='"+tbName.Text+"')";

comm.CommandText=sql;

SqlDataReaderdatar=comm.ExecuteReader();

DateTimedt=newDateTime(2008,1,1);

if(DateTime.Now>=dt)

MessageBox.Show("程序已经过期,请联系开发商!

","系统提示:

",MessageBoxButtons.OK,MessageBoxIcon.Information);

Close();

}//判断是否存在输入的用户

else

if(!

datar.HasRows)

MessageBox.Show("用户名不存在,请重新输入!

");

tbName.Focus();

return;

}//读取数据库的内容,并与输入的进行比较;

while(datar.Read())

{//判断用户输入是否正确

if(datar["spas"].ToString().Trim()!

=tbPas.Text.Trim())

MessageBox.Show("用户密码不正确,请重新输入!

");

tbPas.Focus();

return;

else

StudentLoginf3=newStudentLogin();

f3.ShowDialog();

Close();

else

stringsql="SELECTtno,tpasFROMteacherWHERE(tno='"+tbName.Text+"')";

comm.CommandText=sql;

SqlDataReaderdatar=comm.ExecuteReader();

DateTimedt=newDateTime(2008,1,1);

if(DateTime.Now>=dt)

MessageBox.Show("程序已经过期,请联系开发商!

","系统提示:

",MessageBoxButtons.OK,MessageBoxIcon.Information);

Close();

}//判断是否存在输入的用户

else

if(!

datar.HasRows)

MessageBox.Show("用户名不存在,请重新输入!

");

tbName.Focus();

return;

}//读取数据库的内容,并与输入的进行比较;

while(datar.Read())

{//判断用户输入是否正确

if(datar["tpas"].ToString().Trim()!

=tbPas.Text.Trim())

MessageBox.Show("用户密码不正确,请重新输入!

");

tbPas.Focus();

return;

else

TeacherLoginf4=newTeacherLogin();

f4.ShowDialog();

Close();

完成后的界面效果如图4.1所示

图4.1登陆界面

4.2管理员登陆界面设计

按照以上步骤设计一个管理员登陆界面如图4.2所示。

图4.2管理员登陆界面

4.3教师登陆界面设计

首先打开VisualStudio2008,新建一个Windows应用程序,再为应用程序添加一个窗体。

然后在窗体合适位置添加所需要的组件并设置相应属性。

部分代码如下所示:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.Data.SqlClient;

namespacemyd

publicpartialclassTeacherLogin:

Form

publicTeacherLogin()

InitializeComponent();

privatevoidbutOK_Click(objectsender,EventArgse)

if(tbSearch.Text.Length<=0)

MessageBox.Show("查询条件不能为空","系统提示:

",MessageBoxButtons.OK,MessageBoxIcon.Information);

return;

inti;

if(int.TryParse(tbSearch.Text,outi))

if(tbSearch.Text.Length<=0)

MessageBox.Show("学号必需为数字","系统提示:

",MessageBoxButtons.OK,MessageBoxIcon.Information);

return;

SqlConnectioncnn=newSqlConnection

("DataSource=.;InitialCatalog=myd;UserID=sa;Password=");

SqlCommandcmd=newSqlCommand();

cmd.CommandText="SC_Info_Search";

cmd.Parameters.Add("@SearchType",SqlDbType.Decimal);

cmd.Parameters.Add("@SearchText",SqlDbType.VarChar,50);

i=0;

cmd.Parameters["@SearchType"].Value=i;

cmd.Parameters["@SearchText"].Value=tbSearch.Text.Trim();

cmd.CommandType=CommandType.StoredProcedure;

cmd.Connection=cnn;

SqlDataAdaptersda=newSqlDataAdapter(cmd);

try

DataSetds=newDataSet();

sda.Fill(ds);//填充数据集

sCBindingSource.DataSource=ds.Tables[0];//将数据集显示出来

//把查询出来的数据绑定到相关控件

tbCj.DataBindings.Clear();

tbCj.DataBindings.Add("Text",sCBindingSource,"score");

catch(Exceptionex)

MessageBox.Show("出现错误,错误原因为"+ex.Message,

"系统提示:

",MessageBoxButtons.OK,MessageBoxIcon.Error);

privatevoidbutSave_Click(objectsender,EventArgse)

stringsql;

sql="updateSCsetscore='"+tbCj.Text+"'wheresno="+((DataRowView)sCBindingSource.Current)["sno"].ToString();

SqlConnectioncnn=newSqlConnection

("DataSource=.;InitialCatalog=myd;UserID=sa;Password=");

SqlCommandcmd=newSqlCommand(sql,cnn);

try

cnn.Open();//打开连接

cmd.ExecuteNonQuery();

MessageBox.Show("数据保存成功","系统提示:

");

catch(Exceptionex)

MessageBox.Show("出现错误,错误原因为"+ex.Message,

"系统提示:

",MessageBoxButtons.OK,MessageBoxIcon.Error);

finally

if(cnn.State==ConnectionState.Open)

cnn.Close();//关闭连接

完成后的界面效果如图4.3所示

图4.3教师登陆界面

4.4学生登陆界面设计

1.首先打开VisualStudio2005。

2.新建一个工程,工程名为:

StudentLogin

3.在窗体上放置数据显示工具DataGridView1、DataGridView2

4.设置DataGridView1和DataGridView2任务,在选择数据源中,选择添加项目数据源,根据数据源配置向导来添加,和数据库名为myd中的学生表连接起来,添加成功时,选择数据源为courseBindingSource和sCBindingSource。

5.在窗体上放置GroupBox组件GroupBox1,RadioButton组件RadioButton1、RadioButton2、RadioButton3、RadioButton4、RadioButton5,Label组件Label1、Label2、Label3,Button组件Button1、Button2、Button3、Button4、Button5,TextBox组件TextBox1到TextBox4

6.设置GroupBox的属性中的Text:

GroupBox1的Text中输入:

查询条件。

7.设置Button的属性中的Text:

Button1到Button5的Text中分别输入:

确认、返回、选中此课、退了此课、确定。

8.设置Button的属性中的Name:

确认、返回、选中此课、退了此课、确定的Name中分别输入:

btnOK、btnCancel、butXzck、butTlck、butOK2。

9.设置Label的属性中的Text:

Label1到Label3的Text中分别输入:

课程代码、输入自己的学号、输入自己的学号查找自己所选的课程和成绩。

10.设置RadioButton的属性中的Name:

RadioButton1到RadioButton5的Name中分别输入:

rbKcdm、rbKcmc、rbXf、rbKkx、rbRkls。

11.设置RadioButton的属性中的Text:

RadioButton1到RadioButton3的Text中分别输入:

课程代码、课程名称、学分、开课系、任课老师。

12.设置RadioButton1的属性中的checked设置为True。

13.设置TextBox的属性中的Name:

TextBox1到TextBox4的Name中分别输入:

tbSearch、tbNo、tbsno、tbSearch2。

14.分别双击确认、确认、返回、选中此课、退了此课、确定切换到代码窗口,输入代码,代码如下:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.Data.SqlClient;

namespacemyd

publicpartialclassStudentLogin:

Form

publicStudentLogin()

InitializeComponent();

privateboolInsert_flag=false;

privatevoiddataGridView1_CellClick(objectsender,DataGridViewCellEventArgse)

Insert_flag=false;

privatevoidStudentLogin_Load(objectsender,EventArgse)

{this.courseTableAdapter.Fill(this.mydDataSet5.course);

privatevoidbtnOK_Click(objectsender,EventArgse)

if(tbSearch.Text.Length<=0)

MessageBox.Show("查询条件不能为空","系统提示:

",MessageBoxButtons.OK,MessageBoxIcon.Information);

return;

inti;

if(rbXf.Checked&&int.TryParse(tbSearch.Text,outi))

if(tbSearch.Text.Length<=0)

MessageBox.Show("学分必需为数字","系统提示:

",MessageBoxButtons.OK,MessageBoxIcon.Information);

return;

SqlConnectioncnn=newSqlConnection

("DataSource=.;InitialCatalog=myd;UserID=sa;Password=");

SqlCommandcmd=newSqlCommand();

cmd.CommandText="Course_Info_Search";

cmd.Parameters.Add("@SearchType",SqlDbType.Decimal);

cmd.Parameters.Add("@SearchText",SqlDbType.VarChar,50);

if(rbKcdm.Checked)

i=0;

elseif(rbKcmc.Checked)

i=1;

elseif(rbXf.Checked)

i=2;

elseif(rbKkx.Checked)

i=3;

else

i=4;

cmd.Parameters["@SearchType"].Value=i;

cmd.Parameters["@SearchText"].Value=tbSearch.Text.Trim();

cmd.CommandType=CommandType.StoredProcedure;

cmd.Connection=cnn;

SqlDataAdaptersda=newSqlDataAdapter(cmd);

try

DataSetds=newDataSet();

sda.Fill(ds);//填充数据集

courseBindingSource.DataSource=ds.Tables[0];//

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1