第8章数据库应用系统设计实例习题解答Word文件下载.docx

上传人:b****4 文档编号:17528363 上传时间:2022-12-07 格式:DOCX 页数:19 大小:26.99KB
下载 相关 举报
第8章数据库应用系统设计实例习题解答Word文件下载.docx_第1页
第1页 / 共19页
第8章数据库应用系统设计实例习题解答Word文件下载.docx_第2页
第2页 / 共19页
第8章数据库应用系统设计实例习题解答Word文件下载.docx_第3页
第3页 / 共19页
第8章数据库应用系统设计实例习题解答Word文件下载.docx_第4页
第4页 / 共19页
第8章数据库应用系统设计实例习题解答Word文件下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

第8章数据库应用系统设计实例习题解答Word文件下载.docx

《第8章数据库应用系统设计实例习题解答Word文件下载.docx》由会员分享,可在线阅读,更多相关《第8章数据库应用系统设计实例习题解答Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。

第8章数据库应用系统设计实例习题解答Word文件下载.docx

(C)需求分析(D)程序编码

6、软件生命周期中,用户参与主要在A.

(A)软件定义期(B)软件开发期

(C)软件维护期(D)整个软件生命周期过程中

7、在软件工程方法中,常使用的两种软件开发模型是瀑布模型和原型模型,这两者的差别和联系有:

A。

(1)前提和假设不同

(2)方法相互补充

(3)方法相互排斥

(4)前提和假设相同

试给出最正确的组合结论选择

(A)

(1)、

(2)(B)(4)、(3)

(C)(4)、

(2)(D)

(1)、(3)

三.应用题

1、参考本章宾馆信息管理系统的分析和设计过程,分析并设计一个高校人事管理系统,具备人员入校(毕业分配、调入等)、出校(调出、退体等)、基本情况查询和报表打印等功能。

毕业生

调入人员

信息录入

人事档案

人事处

审核

退休处理

调离

退休人员

调离人员

查询

打印

职工号

char(10)

notnull

primarykey

姓名

varchar(20)

 

性别

char

(2)

民族

出生日期

datetime

身份证号

char(18)

籍贯

政治面貌

毕业院校

varchar(50)

所学专业

毕业时间

最高学历

最高学位

调入时间

调离时间

退休时间

2、

参考本章图书网上销售系统的分析和设计过程,分析并设计一个全校选修课报名管理系统。

讲授

指导

学号

学生名

password

班级

系别

学生

所属系

联系方式

教师

教师号

任课老师

选修

选修课

限招人数

学分

课时

课程号

已招人数

开课时间

结束时间

课程介绍

课程名

 

1n

Mn

Nm

1)管理员(admin):

在admin表中存放管理员信息。

2)课程信息表(class):

在class表中存放与课程内容相关的信息。

3)选课记录表(grade):

在grade表中存储每一名学生选课记录。

4)学生信息表(student):

在student表中存放学生个人信息。

5)教师表(teacher):

在teacher表中存放教师个人信息。

公共函数

创建数据库连接(Connection):

本系统先建立一个连接数据库的函数文件,然后再调用此文件,以方便在各个页面中的实现对数据库的访问。

链接用以保持一些关于正在访问的数据的一些状态信息,以及链接者信息。

ASP文件中如果要访问数据,必须首先创建与数据库的链接的函数,其语法如下:

FunctionGetSQLServerConnection(Computer,UserID,Password,Db)

DimParams,conn

SetGetSQLServerConnection=Nothing

Params=”Provider=SQLOLEDB。

1"

Params=Params&”;

DataSource=”&Computer

UserID="

&UserID

Params=Params&

”;

Password=”&Password

"

;

InitialCatalog=”&Db

Setconn=Server。

CreateObject("

ADODB.Connection"

conn。

OpenParams

SetGetSQLServerConnection=conn

EndFunction

此函数创建了链接对象Conn,打开链接,为“Params”。

创建数据对象(RecordSet)

ADO中的数据对象通常保存的是查询结果.RecordSet是ADO中最复杂的对象,有许多属性和方法。

RecordSet保存的是一行行的记录,并标有一个当前记录.以下是创建函数:

FunctionGetSQLServerRecordset(conn,source)

Dimrs

Setrs=Server。

CreateObject(”ADODB。

Recordset"

rs。

Opensource,conn,2,2

SetGetSQLServerRecordset=rs

FunctionGetSQLServerStaticRecordset(conn,source)

Setrs=Server。

ADODB。

Recordset”)

Opensource,conn,3,2

SetGetSQLServerStaticRecordset=rs

其中setrs=server.CreateObject(”adodb.recordset"

)这条语句创建了对象RecordSet,rs是一个字串,代表一条标准的SQL语句。

例如:

setrs=conn.Execute(”select*fromgrade”)其中Conn是先前创建的链接对象,这条语句执行后,对象RecordSet中就保存了表grade中的所有记录。

操作数据库

通过调用链接对象的Execute方法来将查询结果返回给一个数据对象或进行添加、删除等操作。

例如:

sql="

insertintostudent(“学号”)values('

"

&

request.form(”学号”)&”'

)"

conn。

execute(sql)********/执行添加操作

deletefromstudentwhere“学号"

="

request。

querystring("

学号"

conn.execute(sql)********/执行删除操作

关闭数据对象和链接对象

在使用了ADO对象之后要关闭它,因为它使用了一定的服务器资源。

通过调用函数文件实现关闭,然后再释放它。

FunctionGetSQLServerRs(Computer,UserID,Password,Db,source,Cursor)

Dimconn,rs

OnErrorResumeNext

SetGetSQLServerRs=Nothing

Setconn=GetSQLServerConnection(Computer,UserID,Password,Db)

IfconnIsNothingThenExitFunction

ADODB.Recordset”)

IfErr.Number<

〉0ThenExitFunction

Opensource,conn,Cursor,2

>

0ThenExitFunction

SetGetSQLServerRs=rs

EndFunction**********/关闭创建的数据对象及链接对象/*********

模块详解

登录分析:

〈%if(Request("

submit”)<

Emptyand(request("

id"

)=””orrequest("

password”)="

”))then

response.write"

〈divalign=center〉请输入密码或用户名〈/div〉”

elseIfRequest("

submit"

)<

EmptyThen

Setconn=GetSQLServerConnection(”(local)”,”sa"

,”sa"

,"

netclass”)

Setrs=GetSQLServerStaticRecordset(conn,"

student"

)%〉

***/如果当学生用户输入相关登录身份时,连接数据库,并打开student表/***

<

%i=0

whilenot(rs.eofori=1)***/如果该身份在记录中存在,将获得的“id”传递给打开的记录集rs

(2),

ifrs

(2)=request("

)then并且与该记录集中的“password”字段对应的内容做比较/***

 ifrequest(”password"

)=rs

(1)theni=1

 endif

rs。

movenext

wend

ifi=1then

moveprevious***/如果用户名与密码相匹配,那么显示“id欢迎你的到来”/***

response.Writerequest(”id"

response.write"

欢迎你的到来〈/b>

/center〉〈/p〉”

session("

)=rs

(2)***/并且把rs

(2)中对应的内容传递给对象(session(“id”)),在下面页面跳转中该变量不会改变。

/***

Elseresponse。

write"

〈center〉〈b〉用户名错误或密码错误〈/b〉<

/center>

”***/否则登录失败/***

endif%>

开课情况与选课内容分析:

〈%ifrs2.eof<

〉truethen

sql=”select*fromgradewhere学号='

”&session("

id”)&

”’"

setrs5=server。

adodb.recordset"

rs5。

opensql,conn,1,1***/根据学生登录身份,打开该学生的选课记录表/***

i=rs5。

recordcount

ifi〉=5then%>

***/判断记录集是否超过5条/***

〈scriptlanguage="

vbscript"

***/若大于5,不能再选修课程了/***

MsgBox”你已修满课程,不能再修了!

history.back()〈/script〉

%elseifrs3。

eof=truethen***/否则,有权行选课操作。

但需要有以下几个约束条件.当前所选的课程号不能与记录集中的相同。

/***

ifdate>

=rs

(2)then***/当前选课时间要符合开课时间和结束选课时间的要求。

ifrs(0)<

rs

(1)then  ***/选择的课程中不能选报已被报满的课程。

ifdate<

rs(3)then 

 rs3。

addnew   ***/若满足以上几个约束条件,那么从rs(选课表)中获取相关课程

rs3

(2)=rs2(0)内容添加到rs3记录集中(学生选课记录表)。

/***

rs3

(1)=request(”课程号"

……………。

…………….

rs3(4)=rs2(4)

rs3.update

rs(0)=rs(0)+1***/在学生选课成功后,对于选课表中的“实招人数”一栏要做相  rs。

update      应的修改。

/***

 response.write"

选课成功<

br>

” ***/然后,显示“选课成功"

,并提示你已有几条选

 response。

write"

你已选了"

     课记录。

/***

Write"

i+1&”"

门课〈br〉”

ahref=choseclass.asp>

返回〈/a〉”

else%〉

<

scriptlanguage="

MsgBox”你来迟哦,已错过选课时间!

history.back()<

/script>

〈%endif

 else%>

 ***/否则一一提示没能成功选课的理由,让用户容易明白失败的原因,这在

 scriptlanguage=”vbscript"

  代码中能直接反应,这里不做解释/***

MsgBox”对不起,该课程已报满!

history.back()〈/script>

<

%endif

Else%>

MsgBox"

你早到啦,还没开始选课呢!

history。

back()<

〈%endif

Else

response.write"

center>

你已经选了这门课〈ahref=choseclass。

asp〉返<

/a〉〈/center>

endif

endif%>

选课记录:

〈%Fori=0tors3.Fields。

Count-1

Response.Write”〈TDbgcolor=#B5EDFF〉"

&rs3(i)。

Name&"

/TD〉”

Next

whilenotrs3。

eof  ***/根据session("

)的传递,在学生选课记录表中找出对应的

response.Write”<

tr>

td〉"

     记录集,并通过循环的方式在页面中显示数据库的内容:

response。

Writers3(0)学生名,课程名,课程号,班级,系别等/***

…………………。

………………….

response.Write”〈tr〉<

td〉” 

Writers3(4)

Write”<

/td〉"

%>

rs3.movenext

wend%〉

学生报名管理:

〈%

dimstu

stu="

SELECTstudent。

学生名,class.课程名,student。

班级,student.系别FROMstudentINNERJOINgradeONstudent.学号=grade。

学号INNERJOINclassONgrade。

课程号=class。

课程号WHEREclass。

任课老师='

”&

session(”teacher"

)&”’"

Setconn=GetSQLServerConnection(”(local)"

,”sa"

sa"

”netclass”)

Setrs=GetSQLServerStaticRecordset(conn,stu)

ifrs。

eofthen

response.write”<

center〉<

fontcolor=#0000FFsize=+2face=华文行楷>

response。

Write”对不起暂时还没有学生选你的课程如有意见请跟管理员联系”

/font>

else

session(”class"

)=rs

(1)

%〉

***/通过student表中的学号与grade表中的学号连接使得student表与grade表相连,同时grade表中的课程号与class表中的课程号连接使得grade表与class表相连。

然后,又通过session的变量“teacher”传递登录教师名。

打开符合上述几个条件的记录集,如果找不到与上述几条相符的记录集,那么显示“对不起暂时还没有学生选你的课程如有意见请跟管理员联系”/***

Fori=0tors.Fields.Count—1

Response。

TDbgcolor=#B5EDFF〉”&rs(i).Name&

”<

/TD>

Response.Write”〈tdbgcolor=#B5EDFF>

【删除此学生】〈/td>

〈tdbgcolor=#B5EDFF〉【打印】<

whilenotrs。

eof

Write”〈tr〉〈td〉"

***/用循环的方式将对应的记集在页面中显示出来,并且在

response.Writers(0)    每一条记录后增加【删除此学生】与【打印】的链接/***

………………

………………

response.Writers(3)

response.Write”〈/td>

%〉

rs.movenext

wend

%〉

【打印】

此功能本系统中巧妙的运用了ASP中调用word打印语句实现打印功能。

这一设计简单又有效。

stu=”SELECTstudent。

学生名,class。

课程名,student。

班级,student.系别FROMstudentINNERJOINgradeONstudent.学号=grade.学号INNERJOINclassONgrade。

课程号=class.课程号WHEREclass。

&session("

teacher”)&

'

Setconn=GetSQLServerConnection(”(local)”,”sa”,"

sa”,"

netclass”)

Setrs=GetSQLServerStaticRecordset(conn,stu)

%>

〈%

Response。

ContentType="

application/msword”

response.AddHeader”content—disposition”,"

inline:

filename=report.doc"

***/通过用SQL内联语句找出符合打印的的记录集,然后调用ASP中通过连接word打印的语句准备打印。

Fori=0tors.Fields.Count-1

Response。

Write"

〈TDbgcolor=#B5EDFF>

&rs(i).Name&”〈/TD>

Next

whilenotrs。

response.Write"

tr〉<

response.Writers(0)

…………………。

.***/在WORD页面中,通过用循环打印的方式,将符合条件的记录

………………….。

集打印出来/***

/td〉”

%>

〈%

wend

【删除】

主要用到request对象的session数据集合来获取searchuser与class的值。

这里涉及到三张表:

student,class,grade。

通过rs。

delete,rs。

update达到实现效果。

主要代码与解释:

dimstu

stu=”SELECTgrade.*FROMgradeINNERJOINstudentONstudent.学号=grade.学号INNERJOINclassONgrade.课程号=class。

课程号WHEREstudent.学生名=’”&request("

searchuser"

)&

”'

ANDclass。

课程名='

session(”class"

Setconn=

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

当前位置:首页 > 考试认证 > 其它考试

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

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