第一章作业分析.docx

上传人:b****0 文档编号:12860022 上传时间:2023-04-22 格式:DOCX 页数:19 大小:174.38KB
下载 相关 举报
第一章作业分析.docx_第1页
第1页 / 共19页
第一章作业分析.docx_第2页
第2页 / 共19页
第一章作业分析.docx_第3页
第3页 / 共19页
第一章作业分析.docx_第4页
第4页 / 共19页
第一章作业分析.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

第一章作业分析.docx

《第一章作业分析.docx》由会员分享,可在线阅读,更多相关《第一章作业分析.docx(19页珍藏版)》请在冰豆网上搜索。

第一章作业分析.docx

第一章作业分析

第一章

题目:

实验题(9)假设学院为每个研究生分配了一个长度固定的E-mail地址,地址中包括3个字符的用户名和8个字符的邮件服务器名(不包括“@”、“.”)。

请按___@_____.___格式创建一个掩码,以方便输入诸如abc@形式的地址。

分析:

本题要求同学们了解掩码中某些符号的特定含义。

用户名和服务器名由字母或数字组成,定义掩码时使用符号A(注意要大写),“@”与“.”是固定不变的,是原义字符,需要做在该字符前加上“\”符号。

步骤:

定义名为“电子邮件”的掩码过程如下:

1.在数据表设计视图中添加新字段E-mail,文本型,长度13个字符

2.将插入点停留在E-mail字段上,单击“常规”选项卡“输入掩码”行右侧按钮,见下图所示:

3.在提示保存表后,弹出“掩码向导窗口”对话框,用户可单击左下角的“编辑列表”按钮,打开“自定义‘输入掩码向导’”对话框,见下图:

4.单击该窗口中

按钮,添加新掩码

5.在随后打开对话框窗口中,输入下图所示内容,注意“输入掩码”文本框中输入的内容为AAA\@AAAAA\.AAA

6.单击“关闭”按钮,在“输入掩码向导”窗口中,现实刚刚创建的新掩码“电子邮件”,见图:

7.单击“下一步”按钮,在弹出的对话框中再次单击“下一步”按钮

8.在出现的下图所示窗口中,选择“像这样使用掩码中的符号”

9.单击完成,结束掩码的建立操作

10.切换到数据表视图,进行“E-mail”字段的输入操作

页首

 

第二章

题目:

实验题(4)计算研究生中最早和最晚入学的学生相差几年

分析:

这是一个嵌套查询,首先分别找出研究生中最早的入学日期和最晚的入学日期,然后将两个查询结果值相减,最后使用SELECT命令将这个差值作为计算字段的值输出,输出时所用到的数据源任意,为避免重复显示,可以使用DISTINCT命令消除相同记录;计算字段是个表达式,需要用AS子句为该字段增加一个字段名。

结果:

SELECTDISTINCT(SELECTYEAR(MAX(入学日期))FROM研究生)-(SELECTYEAR(MIN(入学日期))FROM研究生)AS相差年数

FROM研究生

题目:

实验题(7)生成一个查询,要求能显示每个系及其该系所培养的研究生的名字。

分析:

在涉及多表查询时,必须首先在关系视图中建立各表间的关系。

本题的关系视图入下图所示:

本题可以在查询设计视图中完成。

系与研究生之间没有直接关系,必须以“导师”表为桥梁产生间接联系,因此本题表面上与导师表无关,但查询设计视图中必须出现导师表。

结果:

查询设计视图如下图所示:

讨论:

如果查询设计视图上不出现导师表,则查询结果将达54行,为什么?

页首

 

第三章

题目:

实验题(11)输出导师马腾跃所带研究生中入学日期最早者姓名。

分析:

这是一个嵌套查询,步骤是首先找出马腾跃所带研究生的最早日期,再进一步查找马腾跃所带的研究生中谁的入学日期恰好与它相同,此时可输出这个(这些)研究生的名字。

结果:

SELECT研究生.姓名

FROM导师INNERJOIN研究生ON导师.导师编号=研究生.导师编号

WHERE入学日期=(SELECTMIN(入学日期)FROM导师INNERJOIN研究生ON导师.导师编号=研究生.导师编号WHERE导师.姓名='马腾跃')AND导师.姓名='马腾跃'

讨论:

本题最易犯的错误是省略最后部分的AND导师.姓名='马腾跃',此时执行查询,显示的结果也许还是对的,但从逻辑上说是错误的,为什么?

题目:

实验题(12)输出图示的交叉表,内容为各个导师(姓名)所带的不同研究方向男女研究生的最高分。

分析:

交叉表只能用“交叉表查询向导”完成。

交叉表向导的数据源只能是一个,而现在要求的内容涉及到两个表(导师表和研究生表)。

要解决这个问题,只能通过查询进行,将交叉表中相关字段在查询涉及视图中组成一个简单的查询,再以该查询作为交叉表的数据源,从而将多重数据源转换成单一数据源。

查询设计视图如下:

页首

 

第五章

 

题目:

实验题(6)找出所有姓李的导师的姓名及其所带研究生的姓名,在立即窗口中输出。

102

李向明

51

 

冯山谷

101

103

马大可

58

 

杨柳

102

104

李小严

63

 

周旋敏

104

 

 

 

 

 

马力

 

 

 

 

 

 

马德里

101

 

 

 

 

 

潘浩

104

结果:

   SubData_Plus()

     DimAAsInteger,BAsInteger

     DimCAsInteger,DAsInteger

     '4个原始数据

     A=23:

B=12:

C=31:

D=19

     CallLine1(20)'调用过程绘制第一条横线(20个-)

     Debug.PrintA;Tab(6);B;Tab(12);A+B

     Debug.PrintC;Tab(6);D;Tab(12);C+D

     CallLine1(30)'调用过程绘制第二条横线(30个-)

     Debug.PrintA+C;Tab(6);B+D;Tab(12);A+B+C+D

     CallLine1(18)'调用过程绘制第三条横线(12个-)

   EndSub

   SubLine1(NAsInteger)'绘制N个"-"组成的横线

     DimIAsInteger

     IfN<15OrN>25ThenN=15

      ForI=1ToN

      Debug.Print"-";

      NextI

      Debug.Print'取消最后的";"作用

   EndSub

页首

 

第六章

题目:

实验题(9)编写一个程序,上有一个文本框和一个按钮“四季”;单击一次按钮,文本框中显示一个季节名称,依次是红色的“春”、黄色的“夏”、蓝色的“秋”和绿色的“冬”,文字大小为72磅,字体依次为宋、仿宋、楷、黑,再次单击重复显示“春”。

窗体保存为“实验8”,见下图:

步骤:

1.选择“在设计视图中创建窗体”命令,在新窗体上添加一个文本框和一个按钮;

2.将按钮的标题修改为“四季”;

3.打开VBA代码窗口,在“对象”下拉列表框中选择按钮,本例为Command2,在“过程”下拉列表框中选择Click(单击事件);

4.在PrivateSubCommand2_Click()和EndSub之间输入下面的代码:

    IfIsNull(Text0.Value)=TrueThen

      Text0.ForeColor=vbRed

      Text0.FontName="宋体"

      Text0.Value="春"

    ElseIfText0.Value="春"Then

      Text0.ForeColor=vbYellow

      Text0.FontName="仿宋"

      Text0.Value="夏"

    ElseIfText0.Value="夏"Then

      Text0.ForeColor=vbBlue

      Text0.FontName="楷体"

      Text0.Value="秋"

    ElseIfText0.Value="秋"Then

      Text0.ForeColor=vbGreen

      Text0.FontName="黑体"

      Text0.Value="冬"

    ElseIfText0.Value="冬"Then

      Text0.ForeColor=vbRed

      Text0.FontName="宋体"

      Text0.Value="春"

    EndIf

5.在“对象”下拉列表框中选择窗体Form,在“过程”下拉列表框中选择Load(加载事件);

6.在PrivateSubForm_Load()和EndSub之间输入下列代码:

      Text0.FontSize=100'设置文本框中文字大小

      Command2.SetFocus

      Command2.Default=True'任何时候按下回车键相当于鼠标单击该按钮

7.关闭代码窗口,切换到“窗体视图”,然后回到窗体设计视图中调整文本框的大小和窗体的大小;

8.保存窗体。

页首

 

第七章

题目:

实验题(10)编写下图所示简易计算器,要求:

(1)参与计算的数据是1000及以内的实数,否则自动为0;

(2)计算精度均只保留小数两位;

(3)窗体启动和单击“清除”按钮后,4种运算符的单选按钮全部为灰色,文本框为0;

(4)除法运算时,如果除数为0则计算结果显示“ERROR”。

步骤:

1.新建一个窗体,在上面添加所需控件见下图所示,注意应该先添加选项组控件,再增加选项按钮,见下图;

 

2.利用窗口设计视图中的“格式”菜单命令“大小”和“对齐”,调整窗体上各个控件的大小与对齐方式

3.在VBA代码窗口中建立相应的事件过程,输入下列代码:

  PrivateSubCommand20_Click()

   IfIsNull(Frame8.Value)=TrueThen

     MsgBox"请选择运算符!

"

   EndIf

   IfFrame8.Value=1Then

     Text6.Value=Val(Text2.Value)+Val(Text4.Value)

   EndIf

   IfFrame8.Value=2Then

     Text6.Value=Val(Text2.Value)-Val(Text4.Value)

   EndIf

   IfFrame8.Value=3Then

     Text6.Value=Val(Text2.Value)*Val(Text4.Value)

   EndIf

   IfFrame8.Value=4AndVal(Text4.Value)=0Then

     MsgBox"除数不能为零!

"

   EndIf

   IfFrame8.Value=4AndVal(Text4.Value)<>0Then

     Text6.Value=Val(Text2.Value)/Val(Text4.Value) 

     Text6.Value=Format(Text6.Value,"0.0000")

   EndIf

  EndSub

 

  PrivateSubCommand21_Click()

   CallForm_Load

  EndSub

 

  PrivateSubCommand22_Click()

   DoCmd.Close

  EndSub

 

  PrivateSubForm_Load()

   Text2.Value=""

   Text4.Value=""

   Text6.Value=""

   Text2.SetFocus

   Command20.Default=True

   Command21.Cancel=True

   Frame8.Value=Null

  EndSub

页首

 

第七章

题目:

实验题(3①~⑦)全部代码。

表7.4《数据库原理》成绩单

学号

姓名

成绩

等级

200401

刘伟

96

 

200402

秦建中

87

 

200403

张峻

67

 

200404

高萍

92

 

200405

林亦明

83

 

200406

宋海涛

71

 

……

……

……

……

代码:

DimCNAsADODB.Connection

DimRSAsADODB.Recordset

PrivateSubForm_Load()

OnErrorGoToloop1

文本8.Locked=True'该文本框表示等级,不能直接输入成绩值

DoCmd.OpenTable"数据库原理"

'成绩单表存在

DoCmd.CloseacTable,"数据库原理",acSaveNo

命令26.Enabled=False'表存在,无需创建表

SetCN=CurrentProject.Connection

SetRS=NewADODB.Recordset

RS.LockType=adLockOptimistic

RS.Open"数据库原理",CN,,,adCmdTable

IfRS.EOF=TrueAndRS.BOF=TrueThen'表中没有记录

命令15.Enabled=False

命令16.Enabled=False

文本12.Enabled=False

ExitSub

EndIf

文本2.Value=RS!

学号

文本4.Value=RS!

姓名

文本6.Value=RS!

成绩

文本8.Value=RS!

等级

ExitSub

loop1:

IfErr.Number=7874Then

文本2.Value=Null

文本4.Value=Null

文本6.Value=Null

文本8.Value=Null

MsgBox"成绩单不存在"

命令14.Enabled=False

命令15.Enabled=False

命令16.Enabled=False

命令18.Enabled=False

命令24.Enabled=False

EndIf

EndSub

PrivateSub命令14_Click()'新纪录按钮

'建立新记录

文本2.Value=Null

文本4.Value=Null

文本6.Value=Null

文本8.Value=Null

RS.AddNew

EndSub

PrivateSub命令15_Click()'前一记录按钮

RS.MovePrevious

IfRS.BOF=FalseThen

文本2.Value=RS!

学号

文本4.Value=RS!

姓名

文本6.Value=RS!

成绩

文本8.Value=RS!

等级

Else

RS.MoveNext

EndIf

 

EndSub

PrivateSub命令16_Click()'后一记录按钮

RS.MoveNext

IfRS.EOF=FalseThen

文本2.Value=RS!

学号

文本4.Value=RS!

姓名

文本6.Value=RS!

成绩

文本8.Value=RS!

等级

Else

RS.MovePrevious

EndIf

EndSub

PrivateSub命令17_Click()'退出按钮

DoCmd.Close

EndSub

PrivateSub命令18_Click()'保存记录按钮

'保存对当前记录的修改

IfRS.BOF=TrueAndRS.EOF=TrueThen'如果没有记录,添加新纪录

RS.AddNew

EndIf

RS!

学号=文本2.Value

RS!

姓名=文本4.Value

RS!

成绩=文本6.Value

RS!

等级=文本8.Value

RS.Update

命令15.Enabled=True

命令16.Enabled=True

命令24.Enabled=True

EndSub

PrivateSub命令24_Click()'删除当前记录按钮

'进行删除确认

DimSureAsByte

Sure=MsgBox("是否要删除当前记录(数据间左侧文本框)?

",vbYesNo+vbQuestion,"成绩管理")

IfSure=vbNoThenExitSub

RS.Delete

RS.MoveLast'转至最后记录,准备继续删除空记录

文本2.Value=RS!

学号

文本4.Value=RS!

姓名

文本6.Value=RS!

成绩

文本8.Value=RS!

等级

EndSub

PrivateSub命令26_Click()'创建表按钮

DoCmd.RunSQL"createtable成绩单(学号text(6),姓名text(3),成绩byte,等级text(4))"

命令14.Enabled=True'可以增加新纪录

命令18.Enabled=True'可以保存记录

命令18.SetFocus

命令26.Enabled=False'本命令按钮无效

SetCN=CurrentProject.Connection

SetRS=NewADODB.Recordset

RS.LockType=adLockOptimistic

RS.Open"成绩单",CN,,,adCmdTable

IfRS.EOF=TrueAndRS.BOF=TrueThen'表中没有记录

命令15.Enabled=False

命令16.Enabled=False

文本12.Enabled=False

ExitSub

EndIf

EndSub

PrivateSub文本21_Click()'均方差计算文本框

DimAvgAsSingle,IAsByte,NAsInteger,FAsSingle

'上述变量分别表示均数、循环变量、记录数、均方差

RS.MoveFirst

DoWhileRS.EOF=False

Avg=Avg+RS!

成绩

N=N+1

RS.MoveNext

Loop

Avg=Avg/N

RS.MoveFirst

ForI=1ToN

F=F+(RS!

成绩-Avg)^2

RS.MoveNext

NextI

F=Sqr(F/(N-1))

文本12.Value=F

RS.MoveFirst

EndSub

PrivateSub文本6_LostFocus()'根据成绩字段值,计算等级

'当插入点离开本文本框时,计算出“等级”值

IfVal(文本6.Value)>=85Then

文本8.Value="优秀"

ElseIfVal(文本6.Value)>=60Then

文本8.Value="及格"

Else

文本8.Value="不及格"

EndIf

EndSub

 

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

当前位置:首页 > 初中教育 > 其它课程

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

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