理工学生选课系统Word文档下载推荐.docx

上传人:b****6 文档编号:18724387 上传时间:2022-12-31 格式:DOCX 页数:24 大小:546.67KB
下载 相关 举报
理工学生选课系统Word文档下载推荐.docx_第1页
第1页 / 共24页
理工学生选课系统Word文档下载推荐.docx_第2页
第2页 / 共24页
理工学生选课系统Word文档下载推荐.docx_第3页
第3页 / 共24页
理工学生选课系统Word文档下载推荐.docx_第4页
第4页 / 共24页
理工学生选课系统Word文档下载推荐.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

理工学生选课系统Word文档下载推荐.docx

《理工学生选课系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《理工学生选课系统Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。

理工学生选课系统Word文档下载推荐.docx

6.1.7教师修改课程16

6.1.8备份还原数据16

6.2创新功能及难点17

6.2主要页面及截图17

6.2.1功能突破------分行统计插入17

6.2.2功能突破------无重复选课18

6.2.3创新突破------选课推荐20

6.2.4创新突破------数据库备份22

7课程设计体会及心得22

参考文献23

1概述

随着科技的发展,校园网技术迅速发展。

对于高校而言,建立校园网的作用一般有以下两方面:

一是外部网络连接,实现与网络连接,提供本校的信息服务,融入世界信息潮流;

了解外面世界,加强学术交流与合作。

另一个就是建立本校的管理信息系统,实现管理的科学化、现代化;

利用现代化的手段提高教学质量和管理水平。

1.1选题背景

选课系统属于教学信息管理系统一部分,是学生课程安排的常用系统。

随着高等教育的发展和社会需要,各高校尽多地开设各类课程,以拓宽学生的知识面,培养学生的个性和创造能力,提高学生的综合素质。

传统的人工选课数据是经过多级手工处理后上报教务处的,效率较低,而选课时烦琐的工作也给教务管理部门带来了很大的工作量,因此容易出错。

另一方面,学生对课程的迟选、补选、改选操作非常麻烦,同时教学管理部门无法掌握选课人数的变化和学生分布的情况,难以进行动态调整。

传统的选课方式已经不适应现代教务教学的改革和发展,迫切需要一种新的选课方式。

为使教学管理工作的科学化、规范化,就必须采用计算机辅助管理。

计算机管理使选课更加高效准确,省去了大量的人力劳动,提高了教学管理的信息化水平。

本系统面向全校师生和管理人员,是高校日常教学、教务管理的应用软件。

该系统的目的主要是实现学生选择选修课的公平性和方便性,让他们可以选择课程,删除选课,查询选修课程信息;

对于任课教师,可以提交、修改及确认所任选课成绩;

对于教学管理部门,能够实现学生数据的导入、选修课表的录入、选课系统的合理配置,如每学期每人选课最大数目、每门课程的最大容量、选课时间及避开上课地点与时间的冲突等。

但是本人的知识和能力有限,时间有限,所做的系统只实现了最基本的选课系统的功能,我会在以后的学习过程中继续完善该系统。

1.2课题目的

通过数对学生选课流程和数据库开发过程的研究,采用SQLServer数据库技术,对学生选课系统进行开发,以期该系统可以实现广泛应用,达到便于学生选课,便于课程分配和熟悉大型数据库管理系统的结构与组成,熟悉数据库应用系统的设计方法和开发过程得目的。

1.3选课系统简介

本系统面向全校师生,是高校日常教学、教务管理的应用软件。

对于教师,可以修改、删除、添加需要选课的课程信息,查看学生的选课情况,以及修改密码等。

2需求分析

作为大学生的我们日常上课所学课程总是伴随着课程的选取,通过日常选课时对选课信息的研究和详细调查,确定开发学生选课系统。

经过对各个专业的选课状况的观察、分析,并结合实际情况,确定基于MicrosoftSQLServer2008数据库软件建立基于数据库的选课系统。

分析课程信息以及师生资源信息后,针对系统需求,总结如下:

登录用户分为教师和学生,即学生选取课程,教师教授课程;

学生与课程的关系式多对多的关系,即一个学生选取多门课程,同时一门课程有多位学生选取;

教师与课程的关系式一对多的关系,即一位教师教授多门类课程;

基于此,可以建立表关系如下:

课程表:

课程号(主键),课程名,课时,教师编号,学分,选课记录;

学生表:

学号(主键),姓名,性别,入学时间,所属院系,密码;

教师表:

教师编号(主键),姓名,性别,所属院系,密码;

选课表:

选课记录(主键),课程号,学号;

3概念设计

数据库的设计是指对于一个给定的应用环境,构造最有效的数据库模式,建立数据及应用系统,实质能够有效地存储数据,满足用户的需求,数据库设计是在数据库管理系统支持下进行的。

3.1选课系统E-R图分析

在分析用户需求的基础上,建立以反映用户实际环境和需求的数据库概念模型------E-R图。

综合分析系统主要功能,可以玻璃如下实体:

教师,学生,课程,成绩。

一次,建立以下实体关系图。

图3-1-1教师实体E-R图

 

图3-1-2课程实体E-R图

图3-1-3学生实体E-R图

图3-1-4选课实体E-R图

p

1

m

根据全局数据概念模式,将局部的E-R图根据他们之间的练习综合成一个完整的全局E-R图:

n

图3-1-5选课系统全局E-R图

3.2数据库表结构设计

将逻辑结构设计的关系模型转换为物理数据库,即具体的RDBMS中的支持的关系数据模型——表。

在SQLServer2008数据库管理系统中创建如下的表3-2-1~表3-2-4,以及相关的数据类型:

教师表

字段

类型

空值(NULL)

主键

教师编号

INT

NO

YES

姓名

CHAR

性别

所属院系

表3-2-1

学生表

空值

学号

入学日期

DATATIME

密码

表3-2-2

课程表

课程号

课程名

课时

学分

选课人数

表3-2-3

选课表

选课记录

表3-2-4

4逻辑设计

用户分为学生与教师两种,根据不同的用户身份登录可以实现不同的用户功能,其行为设计如下所示:

图4选课系统行为设计

5系统开发流程

图5选课系统开发流程

6系统使用说明及主要代码

该系统实现了现实生活中对选课系统的基本要求,可以方便用户实现增加、删除、修改、查看查课程的基本需求。

同时,该系统独具匠心的为学生用户添加课程推荐功能,使得学生用户了解热门课程和应选课程以方便选取课程,对于教师用户对课程的修改操作,学生端能够实时得知新添加课程,使得选课无遗漏。

对教师用户,该系统提供实时将学生选课人数统计入库,可以使得教师及时了解选课动态,教师用户还可以备份数据库并还原,以保证数据库的信息不回遗漏。

6.1主要功能及截图

6.1.1登陆界面及主要代码

图6-1登录界面

if(radstudent.Checked)

{

stringstr="

select*from学生表where学号="

+txtcode.Text.ToString()+"

and密码="

+txtpassword.Text.ToString()+"

"

;

SqlDataReadersdr=sql.datareader(str);

boolifconn=sdr.Read();

if(ifconn)

SQL.Login_user=txtcode.Text;

SQL.Login_pwd=txtpassword.Text;

this.Hide();

frminformfinform=newfrminform();

finform.Show();

}

elseif(radteacher.Checked)

select*from教师表where教师编号="

frmteacherfteacher=newfrmteacher();

fteacher.Show();

6.1.2修改密码界面及主要代码

图6-2修改密码

if(s=="

学生表"

stringsqlstu="

Update学生表Set密码='

+txXmm.Text+"

'

Where密码='

+txCsmm.Text+"

and学号='

+SQL.Login_user+"

sql.cmd=newSqlCommand(sqlstu,sql.conn);

sql.cmd.ExecuteNonQuery();

frmstudentfst=newfrmstudent("

);

fst.Show();

else

stringsqltea="

Update教师表Set密码='

and教师编号='

//SqlDataAdaptersada=newSqlDataAdapter(sqltea,sql.conn);

sql.cmd=newSqlCommand(sqltea,sql.conn);

frmteacherftc=newfrmteacher();

ftc.Show();

this.Hide();

intMyCount=sql.cmd.ExecuteNonQuery();

if(MyCount==0)

MessageBox.Show("

在数据库中修改用户密码操作成功!

"

信息提示"

MessageBoxButtons.OK,MessageBoxIcon.Information);

在数据库中修改用户密码操作失败!

6.1.3课程按条件查询

图6-3按条件浏览课程

stringsqljb="

select课程表.*from课程表,教师表where课程表.教师编号=教师表.教师编号and姓名='

+tx1.Text+"

cm.CommandText=sqljb;

SqlDataReaderr=cm.ExecuteReader();

if(!

r.HasRows)

{

授课教师不存在,请重新输入!

tx1.Focus();

r.Close();

SqlDataAdapterda=newSqlDataAdapter(sqljb,sql.conn);

DataSetds=newDataSet();

da.Fill(ds);

DataTableab=newDataTable();

ab=ds.Tables[0];

dataGridView1.DataSource=ab;

6.1.4学生选课及删除

6.1.4.1选课

图6-4选课界面

sql.getconn();

确定要选择此课程吗?

stringsqlxk="

insertinto选课表(课程号,学号)values('

+(string)comboBox1.SelectedItem+"

'

sql.cmd=newSqlCommand(sqlxk,sql.conn);

6.1.4.2删除课程

stringcode="

delete选课表where课程号='

+dtxtccode.Text+"

and学号='

sql.cmd=newSqlCommand(code,sql.conn);

该课程已成功删除"

dtxtccode.Text="

6.1.5课程推荐

图6-5课程推荐

6.1.5.1最受欢迎课程

stringsqlct="

SELECTTOP3WITHTIES*FROM课程表ORDERBY选课人数desc"

SqlDataAdaptersda=newSqlDataAdapter(sqlct,sql.conn);

DataSetdt=newDataSet();

sda.Fill(dt);

dataGridView4.DataSource=dt.Tables[0].DefaultView;

6.1.5.2本专业推荐课程

stringdept="

select所在系from学生表where学号='

stringszx;

SqlDataAdapterda1=newSqlDataAdapter(dept,sql.conn);

DataTabledt1=newDataTable();

da1.Fill(dt1);

szx=Convert.ToString(dt1.Rows[0]["

所在系"

]);

stringsqljs="

select课程表.课程号,课程名from课程表,教师表where课程表.教师编号=教师表.教师编号and所属院系='

+szx+"

SqlDataAdaptersda=newSqlDataAdapter(sqljs,sql.conn);

dataGridView5.DataSource=dt.Tables[0].DefaultView;

6.1.6教师浏览信息

图6-6教师浏览信息

stringstrxk="

select学生表.学号,课程表.课程号,课程名,姓名,所在系from学生表,选课表,课程表where学生表.学号=选课表.学号and选课表.课程号=课程表.课程号"

SqlDataAdaptersada=newSqlDataAdapter(strxk,sql.conn);

DataSett=newDataSet();

sada.Fill(t);

this.dataGridView1.DataSource=t.Tables[0].DefaultView;

6.1.7教师修改课程

图6-7教师修改课程信息

tringstrinsert="

insertinto课程表(课程号,课程名,教师编号,课时,学分)values('

+txtccode.Text.Trim()+"

+txtcn.Text.Trim()+"

+txttchcode.Text.Trim()+"

+txtctm.Text.Trim()+"

+txtgrade.Text.Trim()+"

sql.cmd=newSqlCommand(strinsert,sql.conn);

6.1.8备份还原数据

图6-8备份还原

6.1.8.1备份数据

stringmyfilepath=txtfiledialog.Text.ToString()+"

\\"

+txtfilename.Text.ToString()+"

.bak"

File.Exists(myfilepath))

stringcmsql=cmbsql.Text;

stringCommandText="

BACKUPDATABASE"

+cmsql+"

TODISK='

+myfilepath+"

sql.cmd=newSqlCommand(CommandText,sql.conn);

数据库备份成功!

提示信息"

MessageBoxButtons.OK,MessageBoxIcon.Exclamation);

MessageBox.Show(ex.Message);

6.1.8.2还原数据

stringpath=txthback.Text.Trim();

stringdbname=cmbselect.Text.Trim();

stringsqlstr2="

usemasterrestoredatabase"

+dbname+"

fromdisk='

+path+"

withreplace"

stringsingle="

alterdatabase"

setsingle_userwithrollbackimmediate"

+sqlstr2;

sql.cmd=newSqlCommand(single,sql.conn);

还原数据成功"

6.2创新功能以及难点

6.2.1功能突破------分行统计插入

stringkcc="

select课程号from课程表"

inta;

stringca="

selectcount(*)from课程表"

sql.cmd=newSqlCommand(ca,sql.conn);

a=Convert.ToInt16(sql.cmd.ExecuteScalar());

SqlDataAdapterda=newSqlDataAdapter(kcc,sql.conn);

DataTabledt=newDataTable();

da.Fill(dt);

string[]hh=newstring[a];

string[]t=newstring[a];

for(inti=0;

i<

a;

i++)

hh[i]=Convert.ToString(dt.Rows[i]["

课程号"

stringtongji="

selectCOUNT(选课表.课程号)from选课表,课程表where选课表.课程号=课程表.课程号and选课表.课程号='

+hh[i]+"

sql.cmd=newSqlCommand(tongji,sql.conn);

t[i]=sql.cmd.ExecuteScalar().ToString();

stringud="

update课程表set选课人数='

+t[i]+"

where课程号='

SqlDataAdaptersada=newSqlDataAdapter(ud,sql.conn);

DataSettt=newDataSet();

sada.Fill(tt);

此处实现了根基课程表的课程号统计选课表中选择该课程的人数,再将选课人数添加到课程表中对应课程号选课人数列中。

其中,最初需要统计课程表行数以限制遍历课程表,再通过循环实现

6.2.2功能突破------无重复选课

try

select课程号from选课表where学号='

selectcount(*)from选课表where学号='

stringx=(string)comboBox1.SelectedItem;

if(a==0)

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

当前位置:首页 > 求职职场 > 社交礼仪

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

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