课程设计报告.docx

上传人:b****7 文档编号:26686498 上传时间:2023-06-21 格式:DOCX 页数:52 大小:228.25KB
下载 相关 举报
课程设计报告.docx_第1页
第1页 / 共52页
课程设计报告.docx_第2页
第2页 / 共52页
课程设计报告.docx_第3页
第3页 / 共52页
课程设计报告.docx_第4页
第4页 / 共52页
课程设计报告.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

课程设计报告.docx

《课程设计报告.docx》由会员分享,可在线阅读,更多相关《课程设计报告.docx(52页珍藏版)》请在冰豆网上搜索。

课程设计报告.docx

课程设计报告

第1章问题描述………………………………………………………………1

1.1学生管理系统简介…………………………………………………1

1.2数据需求……………………………………………………………1

1.3事务需求……………………………………………………………1

1.4系统开发平台………………………………………………………2

1.5网络拓扑结构………………………………………………………2

第2章解决方案………………………………………………………………3

2.1E-R模型设计………………………………………………………3

2.1.1实体列表……………………………………………………3

2.1.2系统的E-R模型……………………………………………3

2.2设计数据库…………………………………………………………4

2.2.1创建数据库…………………………………………………4

2.2.2创建数据表…………………………………………………4

2.3主窗体设计…………………………………………………………5

2.3.1添加控件……………………………………………………5

2.3.2设计登录界面………………………………………………5

2.3.3设计用户显示界面…………………………………………5

2.3.4设计管理员显示界面………………………………………5

第3章系统实现………………………………………………………………6

3.1系统流程图…………………………………………………………6

3.2程序调试情况………………………………………………………6

3.3功能显示……………………………………………………………7

第4章结束语…………………………………………………………………11

附录:

源代码清单……………………………………………………………12

 

 

学院:

信息科学与工程学院

班级:

自动化XXXX

学号:

XXXXXXXXXXX

姓名:

XXXXXXX

 

第一章问题描述

1.1学生管理系统简介

本系统利用VB处理数据库的功能,实现对学生信息的管理。

主要功能为管理有用户、课程、成绩和管理者的信息等。

本系统的结构分为用户信息管理模块、课程信息管理模块、成绩信息管理模块、管理者管理信息模块、查询处理模块。

1.2数据需求

根据系统的需求,首先将要记录的信息分类,要记录的信息如下。

(1)用户信息:

包括学号、姓名、密码、性别、出生日期、联系方式(联系电话、电子邮件、联系地址)等。

(2)课程信息:

包括学号、课程编号、课程名、学分、类别、任课教师等。

(3)成绩信息:

包括学号、课程编号、课程名、成绩、取得学分等。

(4)管理者信息:

包括管理者编号、姓名、密码、性别、出生日期、联系方式(联系电话、电子邮件、联系地址)等。

根据这些需要,本系统需要“用户信息”表,“课程信息”表,“成绩信息”表和“管理者信息”表。

1.3事务需求

经过实际考察、咨询和分析,学生管理系统主要应该具有以下功能模块,如1.1图。

(1)在用户信息管理部分,要求如下:

●可以浏览用户自身信息。

●可以修改自身登陆密码和用户基本信息(除学号外)。

●可以查询自身课程信息及成绩信息等

(2)在管理员信息管理部分,要求如下:

●可以浏览所有用户信息。

●可以浏览管理员自身信息。

●可以对所有用户信息进行维护,包括查询、修改、添加及删除等操作。

●可以修改自身登陆密码和管理员基本信息(除管理员编号外)。

●可以添加管理员。

●可以对所有用户的课程信息进行维护,包括查询、修改、添加及删除等操作。

●可以对所有用户的成绩信息进行维护,包括查询、修改、添加及删除等操作等。

图1.1系统业务逻辑关系

1.4系统开发平台

操作系统:

MicrosoftWindows2000/XP

开发工具:

MicrosoftVisualBasic6.0

数据库服务器:

MicrosoftSQL2000Server

1.5网络拓扑结构

本设计采用客户机/服务器(C/S)体系,数据的储存管理功能较为透明性,可以合理均衡事务的处理,充分保证数据的完整性和一致性。

图1.2C/S模式结构

第二章解决方案

数据库主要着重于数据对象的属性和数据对象之间的关系的分析。

一般采用E-R图,即实体-关系模型来分析数据对象的属性和数据对象之间的关系。

2.1E-R模型设计

2.1.1实体列表

实体

描述

用户

所有用户,由用户学号标识

课程

所有课程,由课程编号标识

成绩

用户学号、课程编号、课程名、成绩,由用户学号和课程编号标识

系统管理员

老师,由管理员编号标识

2.1.2系统的E-R模型

图2.1学生管理系统的E-R图

2.2设计数据库

2.2.1创建数据库

(1)打开MSSQL工具“查询分析器”

(2)在查询窗口中键入下列SQL语句

createdatabase学生管理系统数据库

执行上述SQL语句即可新建一名为“学生管理系统数据库”的数据库

2.2.2创建数据表

创建数据库后,为“学生管理系统数据库”添加数据表,步骤如下。

(1)新建查询窗口

(2)在查询窗口中键入下列SQL语句

createtableUsers(//创建用户信息表

Uidchar(10)primarykey,//学号

Unamechar(10)notnull,//姓名

Upwdchar(10),//登陆密码

Usexchar

(2)check(Usexin('男','女')),//性别

Uborndatetime,//出生日期

Utelchar(10),//联系电话

Uemailchar(10),//电子邮件

Uaddrchar(10),//联系地址

createtableManagers(//创建管理员信息表

Midchar(10)primarykey,//管理员编号

Mnamechar(10)notnull,//姓名

Mpwdchar(10),//登陆密码

Msexchar

(2)check(Msexin('男','女')),//性别

Mborndatetime,//出生日期

Mtelchar(10),//联系电话

Memailchar(10),//电子邮件

Maddrchar(10),//联系地址

createtableCouese(//创建课程信息表

Cidchar(10)primarykey,//课程编号

Cnamechar(10)notnull,//课程名

Ccreditchar(10),//学分

Ctypechar(10),//类别

Cteacherchar(10),//任课教师

Uidchar(10)primarykey,//学号)

createtableAchievement(//创建成绩信息表

Uidchar(10),//用户编号

Cidchar(10),//课程编号

Cnamechar(10),//课程名

Ccreditchar(10),//学分

Over_timesmallint,//类别

Amarkchar(10),//成绩

Agoalchar(10),//取得学分

foreignkey(Uid)referencesUsers(Uid),//外来键

foreignkey(Cid)referencesCourse(Cid)//外来键

(3)执行上述SQL语句即可创建相关表格

2.3主窗体设计

创建一个新的“标准EXE”类型的工程,在工程属性里设置工程名为“学生管理系统”。

2.3.1添加控件

在控件箱中右击空白处,选择“部件”,在弹出的对话框中勾选

MicrosoftADODataControl6.0(SP6)(OLEDB)//用于连接数据库

MicrosoftDataGridControl6.0(SP6)(OLEDB)//用于显示数据

MicrosoftTabbedDialogControl6.0(SP6)//用于多窗口显示

这3个控件,点击确定。

2.3.2设计登录界面

设计登录界面,添加一个新的“窗体”,名为FrmLogin,作为本系统的登录界面.在登录窗体上添加5个Label控件,2个CommandButton控件,1个ComboBox控件和3个TextBox控件。

2.3.3设计用户显示界面

在当前工程中添加一个“窗体”,将窗体命名为“FrmUser”。

在窗体上添加1个ADODC控件、1个CheckBox控件、1个ComboBox控件、6个CommandButton控件、1个DataGrid控件、9个Label控件、1个SSTab控件、3个PictureBox控件和8个TextBox控件。

各按钮控件是为了执行相应的操作。

各TextBox控件和CheckBox控件用来显示数据库中的数据,这个功能通过设置DataBindings属性来实现。

2.3.4设计管理员显示界面

在当前工程中添加一个“窗体”,将窗体命名为“FrmMger”。

在窗体上添加1个ComboBox控件、5个CommandButton控件、1个DataGrid控件、3个Label控件、1个SSTab控件和1个TextBox控件。

各按钮控件是为了执行相应的操作。

各TextBox控件和CheckBox控件用来显示数据库中的数据,这个功能通过设置DataBindings属性来实现。

第三章系统实现

3.1系统流程图

在本系统中准备通过如下窗体来实现数据维护的功能。

(1)登录窗体:

进行用户登录、连接子窗体。

(2)“用户”子窗体:

管理用户信息、显示课程信息及成绩信息

(3)“管理员”子窗体:

管理用户、课程信息及成绩信息。

系统流程图如图3.1所示:

图3.1系统流程图

3.2程序调试情况

在把系统从一台计算机移植到另一台计算机时一定要把数据文件学生管理系统数据库.mdf和学生管理系统数据库_log.ldf同时移植,并对相应的提供服务的SQLServer服务器进行相应的修改,否则数据不能正确连接并显示。

 

3.3功能显示

运行程序后首先显示登录界面,如图3.1所示。

图3.1登陆界面

 

在登录对话框中输入帐号和密码,选择“普通用户”,单击“登录”按钮,就会对用户身份进行认证,如果认证通过,那么就会弹出如图3.2、图3.3、

图3.4所示的用户窗体。

图3.2用户窗体(课程信息查询)

图3.3用户窗体(用户基本信息)

图3.4用户窗体(成绩信息查询)

点击注销即可返回登录窗体。

在登录对话框中输入管理员编号和密码,选择“管理员”,单击“登录”按钮,就会对管理员身份进行认证,如果认证通过,那么就会弹出如图3.5、图3.6、图3.7、图3.8所示的管理员窗体。

图3.5管理员窗体(课程信息)

图3.6管理员窗体(管理员基本信息)

图3.7管理员窗体(用户信息)

图3.8管理员窗体(成绩信息)

第四章结束语

通过做课程设计,有几点感想,归纳如下。

1.扎实的理论基础。

如果不掌握它们,很难写出高水平的程序。

而这一点又是我们所缺乏的。

2.不钻牛角尖。

当遇到障碍的时候,暂时远离电脑,当重新开始的时候,也许会发现那些难题现在竟然可以迎刃而解。

  

3.多与别人交流。

三人行必有我师。

4.良好的编程风格。

注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。

如果注释和代码不一致,那就更加糟糕。

5.数据库讲求的是整体,只有在整体的情况下完善局部,才能做出一个好的数据库。

但数据库的连接问题一直困扰着我。

某些机器无论如何加载数据库,都是无法和程序正常连接。

还有就是表的关系问题,一团糟,添加、修改、删除的时候有可能会受到表的一些限制,这是一个很大的缺陷!

这个问题在我完成了设计之后都无法解决。

希望老师能给些指点。

附录:

源代码清单

1.1通用模块程序

OptionExplicit

PublicconstrAsString'数据库连接信息

PublicrstAsADODB.Recordset'数据库内的记录

PublicconAsADODB.Connection

PublicSubconnect_db()

constr="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=学生管理数据库;DataSource="'数据库引擎+路径

Setcon=NewADODB.Connection'新建一个数据库连接

con.CursorLocation=adUseClient'用于客户端(ADOR)Recordset对象,游标库属性必须为adUseClient

con.ConnectionString=constr'连接信息

con.Openconstr

EndSub

PublicSubsel_table(table_nameAsString,where_strAsString)

DimsqlAsString

Setrst=NewADODB.Recordset

sql="select*from"&table_name&""&where_str&""

rst.Opensql,con,adOpenDynamic,adLockOptimistic

rst.Requery

EndSub

PublicSubupd_table(table_nameAsString,set_strAsString,where_strAsString)

DimsqlAsString

sql="update"&table_name&"set"&set_str&"where"&where_str&""

con.BeginTrans

con.Executesql

con.CommitTrans

EndSub

PublicSubdel_table(table_nameAsString,whereAsString)

DimsqlAsString

sql="deletefrom"&table_name&""&where&""

con.Executesql

EndSub

PublicSubins_table(table_nameAsString,intoAsString,valuesAsString)

DimsqlAsString

sql="insertinto"&table_name&into&""&values&""

con.Executesql

EndSub

1.2登录窗体程序

PrivateSubCommand1_Click()

OnErrorGoToExecuteSQL_Error

IfText1.Text=""Then

MsgBox("用户名不能空")

ExitSub

EndIf

IfText2.Text<>Text3.TextOrText2.Text=""OrText3.Text=""Then

MsgBox("密码输入错误")

ExitSub

EndIf

Callconnect_db

IfCombo1.Text="普通用户"Then

Callsel_table("Users","whereUid='"&Text1.Text&"'andUpwd='"&Text2.Text&"'")

Ifrst.RecordCount>0Then

WithFrmUser

.SSTab.Tab=1

.Text1.Text=Text1.Text

.SSTab.Tab=1

.Picture1.Visible=False

.Picture2.Visible=True

.Picture3.Visible=True

EndWith

Callconnect_db

Callsel_table("Course","whereUid='"&Text1.Text&"'")

SetFrmUser.DataGrid1.DataSource=rst

WithFrmUser

.DataGrid1.Columns(0).Caption="学号"

.DataGrid1.Columns

(1).Caption="课程编号"

.DataGrid1.Columns

(2).Caption="课程名"

.DataGrid1.Columns(3).Caption="学分"

.DataGrid1.Columns(4).Caption="类别"

.DataGrid1.Columns(5).Caption="任课教师"

EndWith

UnloadMe

FrmUser.Show

UnloadFrmLogin

ExitSub

EndIf

Else

Callsel_table("Managers","whereMid='"&Text1.Text&"'andMpwd='"&Text2.Text&"'")

Ifrst.RecordCount>0Then

UnloadMe

FrmMger.SSTab1.Tab=2

Callconnect_db

Callsel_table("Course","")

SetFrmMger.DataGrid1.DataSource=rst

WithFrmMger

.DataGrid1.Columns(0).Caption="学号"

.DataGrid1.Columns

(1).Caption="课程编号"

.DataGrid1.Columns

(2).Caption="课程名"

.DataGrid1.Columns(3).Caption="学分"

.DataGrid1.Columns(4).Caption="类别"

.DataGrid1.Columns(5).Caption="任课教师"

EndWith

FrmMger.Show

UnloadFrmLogin

ExitSub

EndIf

EndIf

MsgBox("用户名或密码错误")

ExitSub

ExecuteSQL_Error:

MsgBox("数据库连接失败")

EndSub

PrivateSubCommand2_Click()

MsgBox("谢谢使用学生管理系统!

")

UnloadMe

EndSub

PrivateSubForm_Load()

WithCombo1

.Clear

.List(0)="普通用户"

.List

(1)="管理员"

.Text="普通用户"

EndWith

EndSub

1.3用户窗体程序

PrivateSubForm_Unload(CancelAsInteger)

FrmLogin.Show

EndSub

PrivateSubSSTab_Click(PreviousTabAsInteger)

SelectCaseSSTab.Tab

Case0:

Picture1.Visible=True

Picture2.Visible=False

Callconnect_db

Callsel_table("Users","whereUid='"&Text1.Text&"'")

Ifrst.RecordCount>0Then

Text2.Text=rst("Uname")

Text3.Text=rst("Usex")&""

Text4.Text=rst("Uborn")&""

Text5.Text=rst("Utel")&""

Text6.Text=rst("Uemail")&""

Text7.Text=rst("Uaddr")&""

EndIf

Case1:

Combo1.Clear

WithCombo1

.List(0)="课程编号"

.List

(1)="课程名"

.List

(2)="任课教师"

.Text="课程编号"

EndWith

Picture1.Visible=False

Picture2.Visible=True

Picture3.Visible=True

Callconnect_db

Callsel_table("Course","whereUid='"&Text1.Text&"'")

SetDataGrid1.DataSource=rst

WithDataGrid1

.Columns(0).Caption="学号"

.Columns

(1).Caption="课程编号"

.Columns

(2).Caption="课程名"

.Columns(3).Caption="学分"

.Columns(4).Caption="类别"

.Columns(5).Caption="任课教师"

EndWith

Case2:

WithCombo1

.Clear

.List(0)="课程编号"

.List

(1)="课程名"

.Text="课程编号"

EndWith

Picture1.Visible=False

Picture2.Visible=True

Picture3.Visible=True

Callconnect_db

Callsel_table("Achievement","whereUid='"&Text1.Text&"'")

SetDataGrid1.DataSource=rst

WithDataGrid1

.Columns(0).Caption="学号"

.Columns

(1).Caption="课程编号"

.

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

当前位置:首页 > 高中教育 > 高考

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

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