文档库 最新最全的文档下载
当前位置:文档库 › 《Access(2010版)》 上机实验1-上机实验9题目

《Access(2010版)》 上机实验1-上机实验9题目

《Access(2010版)》 上机实验1-上机实验9题目
《Access(2010版)》 上机实验1-上机实验9题目

附录2

上机实验

附录2.1 上机实验1

1.启动“MicroSoft Office Access 2010”,单击“文件”选项卡上左侧窗格的“帮助”,单击中间窗格

上的“MicroSoft Office帮助”,便显出“Access帮助”窗口。单击该帮助窗口中的“Access 2010入门”

标题下的“Access 2010数据库设计基础”,便可选看列出的“数据库设计基础”的那些内容。

2.启动“MicroSoft Office Access 2010”,单击“文件”选项卡上左侧窗格的“帮助”,单击中间窗格

上的“MicroSoft Office帮助”,便显出“Access帮助”窗口。单击该帮助窗口中的“Access 2010入门”

标题下的“Access 演示”,显出“演示”的主题列表,单击主题列表中的“演示:认识导航窗格”,便可

进行观看。同理,可查看其他的Access帮助信息。

附录2.2 上机实验2

1.在用户盘的根目录中(如G:\)创建一个名为“上机实验”文件夹。

2.在“上机实验”文件夹中创建一个名为“学生管理系统.accdb”的数据库。

3.在“学生管理系统”数据库中创建如下的表:

295

296

(1)根据表3-2所示的“学系”表结构,创建一个表名为“学系”的表,主键是“学系代码”。“学系”表中包含学系代码、学系名称、办公电话、学系简介和学系资料等字段。

表3-2 “学系”表结构

(2)根据表3-3所示的“专业”表结构,创建一个表名为“专业”的表,主键是“专业代码”。“专业”表中包含专业代码、专业名称、学制年限、学系代码和专业简介字段。

表3-3 “专业”表结构

(3)根据表3-4所示的“班级”表结构,创建一个表名为“班级”的表,主键是“班级号”。“班级”表中包含班级号、班级名称、年级、专业代码,班主任和联系电话字段。

表3-4 “班级”表结构

(4)根据表3-5所示的“学生”表结构,创建一个表名为“学生”的表,主键是“学号”。“学生”表中包含学号、姓名、班级号、性别、出生日期、优干、高考总分,特长和相片字段。

表3-5 “学生”表结构

(5)根据表3-6所示的“课程”表结构,创建一个表名为“课程”的表,主键是“课程代码”。“课程”

297

表中包含课程代码、课程名称、周学时、上课周数、总学时、学分和课程简介字段。

表3-6 “课程”表结构

“总学时”计算的表达式是: [周学时]*[上课周数]

(6)根据表3-7所示的“修课成绩”表结构,创建一个表名为“修课成绩”的表,主键是“学年度”+“学期”+“学号”+“课程代码”。“修课成绩”表中包含学年度、学期、学号、课程代码、课程类别、成绩性质和成绩字段。

表3-7

“修课成绩”表结构

(7)根据表3-5所示的“学生”表结构,创建一个表名为“临时学生”的表,主键是“学号”。“临时学生”表包含学号、姓名、班级号、性别、出生日期、优干、高考总分,特长和相片字段。

4.在“学生管理系统”数据库中,使用“外部数据”选项卡上“导入并链接”组中的“Excel ”按钮的功能,分别进行如下操作,向表中导入数据。注:假定电子表格Excel 文件放在J 盘上。

注意:如果在导入数据时显出“下标越界”对话框,则取消当前操作,关闭Access ,然后,重新启动Access ,打开原数据库,重做该导入操作即可。

(1)将电子表格“学系.xls ”文件中的全部数据导入“学系”表。 (2)将电子表格“专业.xls ”文件中的全部数据导入“专业”表。 (3)将电子表格“班级.xls ”文件中的全部数据导入“班级”表。 (4)将电子表格“学生.xls ”文件中的全部数据导入“学生”表。

298 (5)将电子表格“课程.xls”文件中的全部数据导入“课程”表。

(6)将电子表格“修课成绩.xls”文件中的全部数据导入“修课成绩”表。

(7)将电子表格“临时学生.xls”文件中的全部数据导入“临时学生”表。

附录2.3 上机实验3

在“学生管理系统”数据库中,进行如下操作:

1.设置字段属性

(1)设置输入掩码

在“学生”表“设计视图”中,设置“学号”字段必须输入8个数字字符的输入掩码。

(2)设置格式

在“学生”表“设计视图”中,设置““出生日期””字段的自定义格式为形如:12月28日1994 。

mm\月dd\日yyyy

(3)设置默认值

在“临时学生”表“设计视图”中,设置“出生日期”字段的的默认值为上18年的5月26日。

Date()、Year() 和DateSerial() 分别是Access的三个内置函数。

Date() 函数返回当前系统日期值(如当前日期:2012-10-1)。

Year(Date())返回当前系统日期的年数值(如当前年:2012)。

Year(Date())-10 的值是(当前年)上10年的年数值(如(2012-10)为2002)。

DateSerial(年数值,月数值,日数值) 函数返回由参数指定的一个日期型值。

DateSerial(Year(Date())-1, 8, 30)返回上1年8月30日的日期值(2011-8-30)在“修课成绩”表“设计视图”中,设置“课程类别”字段的默认值为"全校必修",设置“成绩性质”

299

字段的默认值为“期末”。

(4)设置有效性规则和有效性文本

在“修课成绩”表“设计视图”中,设置“成绩”字段的有效性规则为“>=0 And <=100”,设置“成绩”字段的有效性文本为“输入的成绩超出了 [0 ,100] 范围,请重输!”

。 2.创建查阅字段

(1)在“修课成绩”表的“设计视图”中,创建“课程类别”字段的查阅字段的值列表,课程类别有:全校必修、专业必修、专业选修、任意选修。

在“课程类别”字段的“数据类型”列表框中,单击“查阅向导…”项,显出“查阅向导”对话框。在该对话框中,单击“自行键入所需的值”单选钮,单击“下一步”按钮,显出含有“请确定在查阅字段中显示哪些值。”信息的“查阅向导”对话框。在该对话框中,保持“列数”为1,在第一行单元格中键入:全校必修,在同一列的在第二行单元格中键入:专业必修,在同一列的第三行单元格中键入:专业选修,在同一列的第四行单元格中键入:任意选

修。然后,单击“完成”按钮。

(2)参照上题的操作提示,在“修课成绩”表的“设计视图”中,创建“成绩性质”字段的查阅字段的值列表,成绩性质有:期末、补考、重修。

3.在“学生管理系统”数据库中,做如下操作:

(1)使用“外部数据”选项卡上“导入并链接”组的“文本文件”命令按钮的功能,将“勤工助学.txt ”文件中的全部数据导入“学生管理系统”数据库并新建一个“勤工助学”表。

(2)打开“勤工助学”的表的“设计视图”,修改该表的结构为:字段分别为学号(文本类型,字段大小为8),岗位名称(文本类型,字段大小为30),工资(数字类型,字段大小为单精度),上班时间段(文本类型,字段大小为20);主键是“学号”字段。

4.在“学生管理系统”数据库中,打开“学生”表的“数据表视图”。

300 (1)设置单元格效果为“凸起”显示。

单击“开始”选项卡上的“文本格式”组中右下角的“设置数据表格式”按钮。

(2)利用“开始”选项卡上的“排序和筛选”组中的“升序”或“降序”按钮,依次进行如下操作:

①按“性别”升序操作并观察该数据表视图的显示效果。

②按“高考总分”降序操作并观察该数据表视图的显示效果。

③按“学号”升序操作并观察该数据表视图的显示效果。

(3)利用“开始”选项卡上“排序和筛选”组中的“高级”按钮下拉菜单中的“高级筛选/排序”命令,设置按“性别”降序、“出生日期”升序,然后,使用“高级”按钮下拉菜单中的“应用筛选/排序”命令,观察该数据表视图的显示效果。此外,可使用“排序和筛选”组中的“取消排序”命令,取消刚才由“应用筛选/排序”命令所产生的结果。

(4)同理,可自行练习“高级”按钮下拉菜单中的“按窗体筛选”,观察该数据表视图的显示效果,并取消刚才由“应用筛选/排序”命令所产生的结果。

5.建立表之间的关系

在“学生管理系统”数据库中,建立表之间的关系,如图附录2-1所示。

图附录2-1“学生管理系统”数据库中表之间的关系

6.在“学生”表的“数据表”视图中,插入前面3个学生的相片,相片文件自备。

301

右键单击某学生“相片”字段单元格,弹出快捷菜单,单击快捷菜单中“插入对象…

”,

显出对话框,单击“由文件创建”单选钮,再单击“浏览

…”按钮去找相片,按提示做下去。

7.在“学生管理系统”数据库中,将“学系”表导出名为“导出学系表数据.txt ”的文本文件。

单击“外部数据”选项卡上“导出”组中的“文本文件”按钮,按提示做下去。

8.在“学生管理系统”数据库中,将“专业”表导出名为“导出专业表数据.xls ”的电子表格文件。

单击“外部数据”选项卡上“导出”组中的“Excel ” 按钮,按提示做下去。

302

附录2.4 上机实验4

1.创建选择查询

(1)在“学生管理系统”数据库中,创建一个名为“查询学系专业的班级情况”的查询,要求该查询包含学系名称、专业名称、班级号、年级、班级名称等字段。

(2)在“学生管理系统”数据库中,创建一个名为“查询专业的学生情况”的查询,要求该查询包含专业名称、班级名称、学号、姓名、性别、出生日期、优干等字段。

(3)在“学生管理系统”数据库中,创建一个名为“查询1985出生的男学生基本情况”的查询,要求该查询包含“学生”表中的所有字段。

(4)在“学生管理系统”数据库中,创建一个名为“查询1985之前出生的女学生和1986出生的男学生基本情况”的查询,要求该查询包含学号、姓名、性别、出生日期、优干等字段。

(5)在“学生管理系统”数据库中,创建一个名为“统计全校2003年级的男、女学生人数”的查询。

其中的

“2003”是“班级”表中的“年级”字段值。

(6)在“学生管理系统”数据库中,创建一个名为“统计‘03级汉语专业班’的各课程期末考试的平均成绩”的查询。要求显出“课程名称”和“期末平均成绩”两列。

其中的“03级汉语专业班”是“班级”表中的“班级名称”字段值,“期末”是“修课成绩”

表中的“成绩性质”字段值。本题查询需要添加“班级”、“学生”、“修课成绩”和“课程”四个表。

2.创建参数查询

(1)在“学生管理系统”数据库中,创建一个名为“按照学号查询学生的成绩情况”的参数查询,

要求该查询包含学号、姓名、学年度、学期、课程名称和成绩等字段。参数格式是:[请输入要查

询的学号]。运行该查询示例学号:03101001。

(2)在“学生管理系统”数据库中,创建一个名为“按照班级名称及课程名称查询学生不及格成绩

情况”的参数查询,要求该查询包含班级名称、学号、姓名、学年度、学期、课程名称和成绩等字段。

注意,不及格是指成绩<60。两个参数格式分别是:[请输入要查询的班级名称] 和[请输入要查询

的课程名称]。运行该查询示例班级名称:03级汉语专业班;示例课程名称:文学概论。

3.创建交叉表查询

在“学生管理系统”数据库中,创建一个名为“交叉表统计各班的男、女学生人数”的交叉表查询。

其设计网格如图附录2-2所示。

图附录2-2交叉表统计的设计网格

4.创建生成表查询

在“学生管理系统”数据库中,创建一个名为“成绩不及格学生的生成表查询”的查询。该查询包

含学号、姓名、课程代码、课程名称、班级名称、成绩、学年度和学期等字段。要求该查询将2003-2004

学年度第二学期成绩不及格(即成绩<60)的学生相关字段生成到一新表。该表名为“不及格学生

名单”。运行该查询后,在“导航窗格”中选择“表”对象,查看“表”对象列表中是否添加了“不及格学生

名单”表。再打开“不及格学生名单”表的“数据表视图”去观察效果。

303

304

其中的“

2003-2004”

是“修课成绩”表中的“学年度”字段值,“二”是“修课成绩”表中的“学期”字段值。

5.创建追加查询

在“学生管理系统”数据库中,创建一个名为“成绩不及格学生的追加查询”的查询。要求该查询将2004-2005学年度第一学期成绩不及格(即成绩<60)的学生相关字段追加到“不及格学生名单”表中,该查询包含学号、姓名、课程代码、课程名称、班级名称、成绩、学年度和学期等字段。运行该查询后,再打开“不及格学生名单”表的“数据表视图”去观察效果。

其中的“2004-2005”是“修课成绩”表中的“学年度”字段值,“一”是“修课成绩”表中的“学期”字段值。

6.创建SQL查询

(1)创建一个名为“SQL1”的查询,利用“专业”表查询每个专业的所有信息。

(2)创建一个名为“SQL2”的查询,利用“学生”表查询1985年出生的男学生的学号、姓名、性别和出生日期的信息,并要求按“性别”降序及“出生日期”升序排序查询结果。

(3)创建一个名为“SQL3”的查询,利用“班级”表和“学生”表统计各班男、女学生的人数。要求查询结果含有“班级名称”和“性别”字段和一个标题为“学生人数”计算字段。

按“班级名称”和“性别”分组,使用Count函数统计人数。

附录2.5 上机实验5

在“学生管理系统”数据库中,进行如下创建窗体操作:

1.在“学生管理系统”数据库中,在“导航窗格”选定“学系”表后,使用“创建”选项卡上“窗体”组

305

中的“窗体”按钮,创建一个名为“学系—窗体”的窗体。该窗体的数据源就是“学系”表。

2.在“学生管理系统”数据库中,在“导航窗格”选定“专业”表后,使用“创建”选项卡上“窗体”组中的“其他窗体”按钮下拉菜单中的“数据表”命令,创建一个名为“专业—数据表窗体”的窗体。该窗体的数据源就是“专业”表。

3.在“学生管理系统”数据库中,在“导航窗格”选定“学生”表后,使用“创建”选项卡上“窗体”组中的“其他窗体”按钮下拉菜单中的“数据透视表”命令,创建一个名为“学生各班级男女人数—数据透视表”的数据透视表窗体,该数据透视表视图类似图5-18所示。该窗体的数据源就是“学生”表。

4.在“学生管理系统”数据库中,使用“创建”选项卡上“窗体”组中的“窗体设计”(即“设计视图”)创建一个名为“浏览学生基本情况—主/子窗体”的窗体,其窗体设计形如图5-43所示。要求创建一个主/子类型的窗体,主窗体的数据源是“学生”表,子窗体的数据来源是“修课成绩”表。当运行该窗体时,用户只能浏览查看信息,不允许对“学生”表和“修课成绩”表进行任何“修改”、“删除”和“添加”记录的操作。对主窗体不设置导航条,但要在窗体页脚节创建标题分别为“第一个记录”、“前一个记录”、“后一个记录”和“最后一个记录”的4个记录导航操作按钮,一个标题为“关闭窗体”的窗体操作按钮。在窗体页眉创建标题为“浏览学生基本信息”的标签,该标签的左边距属性值为3cm ,上边距属性值为0.25cm 。在窗体页眉创建显示当前日期的计算控件文本框,设置该文本框的左边距属性值为12cm ,上边距属性值为0.6cm ,设置该文本框的“格式”属性值为“长日期”。

可参考第5.3.1小节中的“例5-9”所介绍的方法。

306

附录2.6 上机实验6

在“学生管理系统”数据库中,进行如下创建报表操作:

1.在“学生管理系统”数据库中,在“导航窗格”选定“学系”表后,使用“创建”选项卡上“报表”组中的“报表”按钮,创建一个名为“学系—报表”的报表。该报表的数据源就是“学系”表。

2.在“学生管理系统”数据库中,使用“创建”选项卡上“报表”组的“报表设计”按钮(即使用设计视图),以“学生”表为数据源,创建一个先按学号左边的前2个字符分组,再按性别分组统计各年级的男、女学生人数及其占该年级学生总人数的百分比的报表。报表名为“男女学生人数统计百分比报表”。该报表的结构形状类似图6-59所示。

如果在报表“设计视图”中,按“报表视图”按钮后,显出“试图执行…”对话框时,则打开该报表“设计视图”,在报表的“属性表”中,把“排序依据”右边框中的属性值删除掉,再

试试。

附录2.7 上机实验7

在“学生管理系统”数据库中,进行如下创建宏操作:

1.在“学生管理系统”数据库,创建一个操作序列独立宏,该宏包含3条操作命令,其中的第一条操作命令“OpenForm”是打开名为“学系—窗体”的窗体,第二条操作命令“Beep”是发出“嘟”声音,第三条操作命令“MessageBox”是显示含有“这是操作序列独立宏的例子”消息的消息框。该宏的名称是“操作序列独立宏”。

2.在“学生管理系统”数据库中,创建一个含有If块的条件操作的独立宏,If块的条件表达式是“MsgBox("是否要打开报表?", 1)=1”,当该条件表达式的值为True

时,其对应的第一个操作是

“OpenReport”,其操作参数设置:报表名称是“男女学生人数统计百分比报表”,视图是“打印预览”;其

对应的第二个操作是“MessageBox”,其操作参数设置:消息是“已经打开了报表”。当该条件表达式的

值为False时,其对应的操作是“MessageBox”,其操作参数设置:消息是“没有打开报表”。该宏的名

称是“含有If块和Else块的条件操作的独立宏”。

3.在“学生管理系统”数据库,创建一个名为“含有子宏的独立宏”的宏,该宏包含2个子宏。

第1个子宏名为“打开查询”,该子宏包括2个操作,其中第1个操作是以“数据表”视图打开名为“查

询学系专业的班级情况”的查询,第2个操作是“Beep”。第2个子宏名为“打开窗体”,该宏包括3个

操作,其中第1个操作是以“窗体”视图打开名为“浏览学生基本情况—主/子窗体”的窗体,第2个

操作命令是“Beep”,第3个操作是“MessageBox”,用于显示含有“这是第二个子宏的例子”消息的消

息框。

附录2.8 上机实验8

1.在“上机实验”文件夹中创建一个名为“VBA编程.accdb”的数据库。

2.在“VBA编程”数据库中,创建一个名为“显示或隐藏文本框”的窗体。在该窗体上创建一个

文本框控件、3个命令按钮控件,命令按钮的标题分别设置为“显示”、“隐藏”和“关闭”,并为每个按

钮分别编写单击事件过程的VBA程序代码。当运行该窗体时,单击“隐藏”按钮后文本框消失;单

击“显示”按钮显示出文本框;单击“关闭”按钮关闭该窗体。

307

308

3.在“VBA 编程”数据库中,创建一个名为“算术运算”的窗体,如图附录2-5所示。在该窗体上创建3个文本框控件、2个标签控件、8个按钮控件。第1个标签

的标题为“+”(注:先定+,以后会随所选的

运算自动更改),第2个标签的标题为“=”。这8个命令按钮的标题分别设置为“+”、“?”、“*”、“/”、“\”、“Mod ”、“清除”和“关闭”(其中的“+”、“?”、“*”、“/”和“Mod ”6个命令按钮是用于进行算术运算),并为每个按钮分别编写单击事件过程的VBA 程序代码。当运行该窗体时,在第1个文本框和第2个文本框中分别输入数据后,如果单击“+”按钮,则将第1个标签的标题重新设置为“+”,在第3个文本框中显示两数之和;如果单击“*”按钮,则将第1个标签的标题重新设置为“*”,在第3个文本框中显示两数之积。单击“清除”按钮,清除3个文本框中的内容;单击“关闭”按钮关闭该窗体。

4.在“VBA 编程”数据库中,创建一个名为“求1到n 的所有偶数之和”的窗体。在该窗体上创建一个文本框控件、两个命令按钮控件,命令按钮的标题分别设置为“计算”和“关闭”,并为每个按钮分别编写单击事件过程的VBA 程序代码。当运行该窗体时,单击“计算”按钮,显出一个含有“请输入一个大于1的正整数”信息的输入对话框,当用户在该输入对话框输入一个正整数并单击“确定”按钮后,在该窗体的文本框中显示指定范围内的所有偶数之和。单击“关闭”按钮关闭该窗体。

5.在“VBA 编程”数据库中,创建一个名为“由大到小排序”的窗体。在该窗体上创建两个文本框控件、两个命令按钮控件,命令按钮的标题分别设置为“降序排序”和“关闭”,并为每个按钮分别编写单击事件过程的VBA 程序代码。当运行该窗体时,单击“降序排序”按钮,连续10次显出一个含有“请输入一个数”提示信息的输入对话框,供用户分别输入10个数。然后在该窗体的第1个

图附录2-5 “算术运算”窗体的设计视图

309

文本框中显示排序前的原数据序列的数(每两个数用空格分隔),按冒泡法排序并在该窗体的第2个文本框中显示排序后的数据序列的数(每两个数用空格分隔),。单击“关闭”按钮关闭该窗体。

可参考第8.5.7

小节中的“例8-15所介绍的方法。

6.在“VBA 编程”数据库中,创建一个名为“产生20个随机三位整数”的窗体。在该窗体上创建一个文本框控件、两个命令按钮控件,命令按钮的标题分别设置为“产生随机三位整数”和“关闭”,并为每个按钮分别编写单击事件过程的VBA 程序代码。当运行该窗体时,单击“产生随机三位整数”按钮,在该窗体的文本框中显示20个随机三位整数,每两个随机三位整数之间要用“,”分隔开。单击“关闭”按钮关闭该窗体。请注意:三位整数的下限值是100,上限值是999。

要求:编写产生一个随机三位整数的Sub 子过程,在标题为“产生随机三位整数”的按钮的单击事件过程的VBA 程序代码中,通过循环语句进行20次的Sub 子过程调用。子过程名由用户自定。

可参考“表8-16”下边的说明和第8.5.9小节中的“例8-22”所介绍的方法。

7.在“VBA 编程”数据库中,创建一个名为“求圆的周长函数”窗体。在该窗体上创建一个文本框控件、两个命令按钮控件,命令按钮的标题分别设置为“求圆周长”和“关闭”,并为每个按钮分别编写单击事件过程的VBA 程序代码。当运行该窗体时,单击“求圆周长”按钮,显示InputBox 输入对话框供用户输入一个圆半径的数值,单击该对话框中的“确定”按钮,在该窗体的文本框中显示对该圆半径所求出的圆周长值。(注:圆周率π=3.14159。)

要求:编写一个求圆周长的标准函数过程,该函数过程包含一个圆半径的参数,单精度型。

310 在“求圆周长”按钮的单击事件过程的VBA程序代码中,包含有对InputBox函数的调用,包含对求圆周长的函数过程的调用。标准函数过程名及其形参名由用户自定。

可参考第8.5.9小节中的“例8-23”所介绍的方法。

附录2.9 上机实验9

1.在“上机实验”文件夹中创建一个名为“DAO和ADO编程.accdb”的数据库。

2.在“DAO和ADO编程”数据库中,创建一个名为“DAO显示当前数据库的名称”的窗体。在该窗体上创建一个名为Lab0的标签,创建一个名为Cmd0的命令按钮。在Cmd0命令按钮的单击事件过程的VBA程序代码中,使用DAO编程,实现在Lab0标签上显示出当前打开的数据库的名称。

3.在“DAO和ADO编程”数据库中,创建一个名为“DAO创建数据表”的窗体。在该窗体上创建一个名为Cmd0的命令按钮。在Cmd0命令按钮的单击事件过程的VBA程序代码中,使用DAO编程,实现在“DAO和ADO编程”数据库中创建一个名为“职称外语考试成绩表”的表。

该表的主键是“考号”字段。该表的结构如表附录2-1所示:

表附录2-1 职称外语考试成绩表的结构

4.在“DAO和ADO编程”数据库中,创建一个名为“DAO添加新记录”的窗体。通过DAO编程,实现向“职称外语考试成绩表”表添加新记录的功能。添加新记录的数据如表附录2-2所示。

表附录2-2 添加一个记录的数据

311

数据库上机实验题目和答案

试用SQL的查询语句表达下列查询: 1.检索王丽同学所学课程的课程号和课程名。 select Cno ,Cname from c where Cno in (select cno from sc where sno in (select sno from s where sname='王丽' )) 2.检索年龄大于23岁的男学生的学号和姓名。 select sno,sname from s where sex='男' and age>23 3.检索‘c01’课程中一门课程的女学生姓名 select sname from s where sex='女' and sno in (select sno from sc where cno='c01') 4.检索s01同学不学的课程的课程号。 select cno from c where cno not in (select cno from sc where sno ='s01') 5.检索至少选修两门课程的学生学号。 select sc.sno from s,sc where s.sno=sc.sno group by sc.sno having count(https://www.wendangku.net/doc/0515920577.html,o)>=2 6.每个学生选修的课程门数。 解法一: select so.sno sno,https://www.wendangku.net/doc/0515920577.html,ount,s.sname from(select sc.sno sno,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno ) so,s where s.sno=so.sno 解法二: select sc.sno sno,s.sname,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno,sname

数据结构上机实验答案

《数据结构实验指导书》答案 实验一: 1、请编写函数int fun(int *a, int *b),函数的功能是判断两个指针a和b所指存储单 元的值的符号是否相同;若相同函数返回1,否则返回0。这两个存储单元中的值都不为0。在主函数中输入2个整数、调用函数fun、输出结果。 #include int fun(int *a, int *b) { if (*a*(*b)>0) return(1); else return(0); } main() { int x,y; scanf("%d%d",&x,&y); if (fun(&x,&y)) printf("yes\n"); else printf("no"); } 2、计算1+2+3+……+100,要求用指针进行设计。即设计函数int fun(int *n)实现求 1+2+3+……+*n,在主函数中输入、调用、输出结果。 #include int fun(int *n) { int i,sum=0; for (i=1;i<=*n;i++) sum+=i; return(sum); } main() { int x,sum; scanf("%d",&x); printf("the sum is %d\n",fun(&x)); } 3、函数的功能是求数组a中最大数的位置(位序号)。在主函数中输入10个整数、调用函

数fun、输出结果。 #define N 10 #include void input(int *a,int n) { int i; for (i=0;i*max) max=a+i; return(max-a); } main() {int a[N],maxi; input(a,N); maxi=fun(a,N); printf("\n the max position is %d\n",maxi); } 4、请编写函数fun(int *a,int n, int *odd, int *even),函数的功能是分别求出数组a 中所有奇数之和和所有偶数之和。形参n给出数组中数据的个数;利用指针odd和even分别返回奇数之和和偶数之和。在主函数中输入10个整数、调用函数fun、输出结果。 #define N 10 #include void input(int *a,int n) { int i; for (i=0;i

操作系统上机实验报告(西电)

操作系统上机题目 一、题目 实验1:LINUX/UNIX Shell部分 (一)系统基本命令 1.登陆系统,输入whoami 和pwd ,确定自己的登录名和当前目录; 登录名yuanye ,当前目录/home/yuanye 2.显示自己的注册目录?命令在哪里? a.键入echo $HOME,确认自己的主目录;主目录为/home/yuanye b.键入echo $PA TH,记下自己看到的目录表;/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games c.键入which abcd,看看得到的错误信息; 再键入which ls 和which vi,对比刚刚得到的结果的目录是否在a.、b. 两题看到的目录表中; /bin/ls /usr/bin/vi 3.ls 和cd 的使用: a.键入ls,ls -l ,ls -a ,ls -al 四条命令,观察输出,说明四种不同使用方式的区别。 1. examples.desktop 公共的模板视频图片文档音乐桌面; 总计32 2.-rw-r--r-- 1 yuanye yuanye 357 2011-03-22 22:15 examples.desktop drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 公共的 drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 模板 drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 视频 drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 图片 drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 文档 drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 音乐 drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 桌面 3. . .fontconfig .local .Xauthority .. .gconf .mozilla .xsession-errors .bash_logout .gconfd .nautilus 公共的 .bashrc .gksu.lock .profile 模板 .cache .gnome2 .pulse 视频 .chewing .gnome2_private .pulse-cookie 图片 .config .gnupg .recently-used.xbel 文档 .dbus .gstreamer-0.10 .scim 音乐 .dmrc .gtk-bookmarks .sudo_as_admin_successful 桌面 .esd_auth .gvfs .update-manager-core

数值计算实验课题目

数值实验课试题 本次数值实验课结课作业,请按题目要求内容写一篇文章。按题目要求 人数自由组合,每组所选题目不得相同(有特别注明的题目除外)。试题如下: 1)解线性方程组的Gauss 消去法和列主元Gauss 消去法(2人)/*张思珍,巩艳华*/ 用C 语言将不选主元和列主元Gauss 消去法编写成通用的子程序,然后用你编写的程序求解下列84阶的方程组 ???? ?????? ? ??=??????????? ????????????? ? ?1415151515768 168 168 168 1681684 8382321 x x x x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 2)解线性方程组的平方根法(4人)/*朱春成、黄锐奇、张重威、章杰*/ 用C 语言将平方根法和改进的平方根法编写成通用的子程序,然后用你编写的程序求解对称正定方程组b Ax =,其中 (1)b 随机的选取,系数矩阵为100阶矩阵 ?????? ???? ? ? ?101 1101 1101 1101 1101110 ; (2)系数矩阵为40阶的Hilbert 矩阵,即系数矩阵A 的第i 行第j 列元素为 1 1-+= j i a ij ,向量b 的第i 个分量为∑=-+ = n j i j i b 1 1 1. 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编

3.《数值分析简明教程》,王能超编 3)三对角线方程组的追赶法(3人)/*黄佳礼、唐伟、韦锡倍*/ 用C 语言将三对角线方程组的追赶法法编写成通用的子程序,然后用你编写的程序求解如下84阶三对角线方程组 ???? ?????? ? ??=??????????? ????????????? ? ?1415151515768 168 168 168 16816 84 8382321 x x x x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值分析简明教程》,王能超编 4)线性方程组的Jacobi 迭代法(3人)/*周桂宇、杨飞、李文军*/ 用C 语言将Jacobi 迭代法编写成独立的子程序,并用此求解下列方程组, 精确到小数点后5位 ???? ? ??=????? ??????? ? ?-149012 2111221 3 2 1 x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 5)线性方程组的Gauss-Seidel 迭代法(3人)/*张玉超、范守平、周红春*/ 用C 语言将Gauss-Seidel 迭代法编写成独立的子程序,并用此求解下列方程组,精确到小数点后5位 ???? ? ??=????? ??????? ? ?--39721 1111112 3 2 1 x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 6)解线性方程组的最速下降法法(2人)/*赵育辉、阿热孜古丽*/ 用C 语言将最速下降法编写成通用的子程序,然后用你编写的程序求解对称

C语言上机综合实验一及答案

1、编制程序,输入n 个整数(n 从键盘输入,n>0),输出它们的偶数和。 2、 编程,输入n 后:输入n 个数,根据下式计算并输出y 值。 3、输入一行字符,统计并输出其中英文字母、数字字符和其他字符的个数。 4、编写程序,输入一个正整数n ,计算并输出下列算式的值。要求定义和调用函数total(n)计算1+1/2+1/3+……+1/n ,函数返回值的类型是double 。 5、输入一个正整数n ,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n 的阶乘,函数返回值的类型是单精度浮点型。 答案: 程序1、 #include void main () { int n,i,x,sum=0; while(scanf("%d",&n),n<=0); printf ("请输入%d 个数:", n); for (i=1; i<=n ;i++) { scanf("%d",&x); if(x%2==0) sum+=x; } printf ("sum=%d", sum) ; } 程序2、 #include #include void main( ) { int i,n; float x,y; scanf(“%d”,&n); for(i=1;i<=n;i++){ scanf(“%f”,&x); if(x<-2) y=x*x-sin(x); else if(x<=2) y=pow(2,x)+x; else y=sqrt(x*x+x+1); printf(“%f \n”,y); } } 程序3、 # include void main( ) { int letter,digit,other; ?????>++≤≤-+-<-=2 12222sin 22x x x x x x x x y x 111111...23n k s k n ===++++∑

数据结构课程设计题目及要求

实验一~实验四任选一题;实验五~实验九任选一题。 实验一运动会分数统计 一、实验目的: (1)熟练掌握线性表的两种存储方式 (2)掌握链表的操作和应用。 (3)掌握指针、结构体的应用 (4)按照不同的学校,不同项目和不同的名次要求,产生各学校的成绩单、团体总分报表。 二、实验内容: 【问题描述】 参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。写一个统计程序产生各种成绩单和得分报表。 【基本要求】 产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。 【测试数据】 对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。 【实现提示】 可以假设m≤20,m≤30,w≤20,姓名长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并按名次顺序输入运动员姓名、校名(和成绩)。 【选作内容】 允许用户指定某些项目可采取其他名次取法。

实验二停车场管理 一、实验目的: (1)熟练掌握栈顺存和链存两种存储方式。 (2)掌握栈的基本操作及应用。 (3)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。 二、实验内容: 【问题描述】 设停车场是一个可停放n辆汽车的长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车信放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场院,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 【基本要求】 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。 【测试数据】 设n=2,输入数据为:(A,1,5),(A,1,15),(A,3,20),(A,4,25),(A,5,30),(D,2,35),(D,4,40),(E,0,0)。其中:A表示到达(Arrival);D表示离去(Departure);E表示输入结束(End)。 【实现提示】 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。 【选作内容】 (1)两个栈共享空间,思考应开辟数组的空间是多少? (2)汽车可有不同种类,则他们的占地面积不同收费标准也不同,如1辆客车和1.5辆小汽车的占地面积相同,1辆十轮卡车占地面积相当于3辆小汽车的占地面积。(3)汽车可以直接从便道开走,此时排在它前面的汽车要先开走让路,然后再依次排到队尾。 (4)停放在便道上的汽车也收费,收费标准比停放在停车场的车低,请思考如何修改结构以满足这种要求。

《 Windows7 操作系统》实验报告

实验(一) Windows 7基本操作 一、实验目的 1.掌握文件和文件夹基本操作。 2.掌握“资源管理器”和“计算机”基本操作。 二、实验要求 1.请将操作结果用Alt+Print Screen组合键截图粘贴在题目之后。 2.实验完成后,请将实验报告保存并提交。 三、实验内容 1.文件或文件夹的管理(提示:此题自行操作一遍即可,无需抓图)★期末机试必考题★ (1) 在D:盘根目录上创建一个名为“上机实验”的文件夹,在“上机实验”文件夹中创建1个名为“操作系统上机实验”的空白文件夹和2个分别名为“2.xlsx”和“3.pptx”的空白文件,在“操作系统上机实验”文件夹中创建一个名为“1.docx”的空白文件。 (2) 将“1.docx”改名为“介绍信.docx”;将“上机实验”改名为“作业”。 (3) 在“作业”文件夹中分别尝试选择一个文件、同时选择两个文件、一次同时选择所有文件和文件夹。 (4) 将“介绍信.docx”复制到C:盘根目录。 (5) 将D:盘根目录中的“作业”文件夹移动到C:盘根目录。 (6) 将“作业”文件夹中的“2.xlsx”文件删除放入“回收站”。 (7) 还原被删除的“2.xlsx”文件到原位置。 2.搜索文件或文件夹,要求如下: 查找C盘上所有以大写字母“A”开头,文件大小在10KB以上的文本文件。(提示:搜索时,可以使用“?”和“*”。“?”表示任意一个字符,“*”表示任意多个字符。)

3. 在桌面上为C:盘根目录下的“作业”文件夹创建一个桌面快捷方式。★期末机试必考题★ 3.“计算机”或“资源管理器”的使用 (1) 在“资源管理器”窗口,设置以详细信息方式显示C:\WINDOWS中所有文件和文件夹,使所有图标按类型排列显示,并不显示文件扩展名。(提示:三步操作全部做完后,将窗口中显示的最终设置结果抓一张图片即可) (2) 将C:盘根目录中“介绍信.docx”的文件属性设置为“只读”和“隐藏”,并设置在窗口中显示“隐藏属性”的文件或文件夹。(提示:请将“文件夹”对话框中选项设置效果与C:盘根目录中该文件图标呈现的半透明显示效果截取在一整张桌面图片中即可) 4.回收站的设置 设置删除文件后,不将其移入回收站中,而是直接彻底删除功能。

曲线拟合的数值计算方法实验

曲线拟合的数值计算方法实验 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。曲线直线化是曲线拟合的重要手段之一。对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按最小二乘法原理求出变换后变量的直线方程,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为曲线方程,实现对资料的曲线拟合。常用的曲线拟合有最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束。 关键词曲线拟合、最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束 一、实验目的 1.掌握曲线拟合方式及其常用函数指数函数、幂函数、对数函数的拟合。 2.掌握最小二乘法、线性插值、三次样条插值、端点约束等。 3.掌握实现曲线拟合的编程技巧。 二、实验原理 1.曲线拟合 曲线拟合是平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。用解析表达式逼近离散数据的一种方法。在科学实验或社会活动中,通过 实验或观测得到量x与y的一组数据对(X i ,Y i )(i=1,2,...m),其中各X i 是彼此不同的。人们希望用一类与数据的背景材料规律相适应的解析表达式,y=f(x,c)来反映量x与y之间的依赖关系,即在一定意义下“最佳”地逼近或 拟合已知数据。f(x,c)常称作拟合模型,式中c=(c 1,c 2 ,…c n )是一些待定参 数。当c在f中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c使得拟合模型与实际观测值在

大一C语言上机实验试题和答案

实验一上机操作初步(2学时) 一、实验方式:一人一机 二、实验目的: 1、熟悉VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个C程序。 3、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息:(实验指导书P79) ************************* Very Good ************************* 2、计算两个整数的和与积。(实验指导书P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。(书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include void main( ) { printf(“********************\n”); printf(“ Very Good\n”); printf(“********************\n”); } 2、#include void main( ) { int a,b,c,d; printf(“Please enter a,b:”); scanf(“%d,%d”,&a,&b); c=a+b; d=a*b; printf(“%d+%d=%d\n”,a,b,c); printf(“%d*%d=%d\n”,a,b,d);

数据结构(第4版)习题及实验参考答案数据结构复习资料完整版(c语言版)

数据结构基础及深入及考试 复习资料 习题及实验参考答案见附录 结论 1、数据的逻辑结构是指数据元素之间的逻辑关系。即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。 2、数据的物理结构亦称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像)。它依赖于计算机。存储结构可分为4大类:顺序、链式、索引、散列 3、抽象数据类型:由用户定义,用以表示应用问题的数据模型。它由基本的数据类型构成,并包括一组相关的服务(或称操作)。它与数据类型实质上是一个概念,但其特征是使用与实现分离,实行封装和信息隐蔽(独立于计算机)。 4、算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,是一系列输入转换为输出的计算步骤。 5、在数据结构中,从逻辑上可以把数据结构分成( C ) A、动态结构和表态结构 B、紧凑结构和非紧凑结构 C、线性结构和非线性结构 D、内部结构和外部结构 6、算法的时间复杂度取决于( A ) A、问题的规模 B、待处理数据的初态 C、问题的规模和待处理数据的初态 线性表 1、线性表的存储结构包括顺序存储结构和链式存储结构两种。 2、表长为n的顺序存储的线性表,当在任何位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均次数为( E ),删除一个元素需要移动的元素的个数为( A )。 A、(n-1)/2 B、n C、n+1 D、n-1 E、n/2 F、(n+1)/2 G、(n-2)/2 3、“线性表的逻辑顺序与存储顺序总是一致的。”这个结论是( B ) A、正确的 B、错误的 C、不一定,与具体的结构有关 4、线性表采用链式存储结构时,要求内存中可用存储单元的地址( D ) A、必须是连续的 B、部分地址必须是连续的C一定是不连续的D连续或不连续都可以 5、带头结点的单链表为空的判定条件是( B ) A、head==NULL B、head->next==NULL C、head->next=head D、head!=NULL 6、不带头结点的单链表head为空的判定条件是( A ) A、head==NULL B、head->next==NULL C、head->next=head D、head!=NULL 7、非空的循环单链表head的尾结点P满足( C ) A、p->next==NULL B、p==NULL C、p->next==head D、p==head 8、在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是( B ) A、O(1) B、O(n) C、O(n2) D、O(nlog2n) 9、在一个单链表中,若删除p所指结点的后继结点,则执行( A )

操作系统上机实验报告

大连理工大学实验报告 学院(系):专业:班级: 姓名:学号:组:___ 实验时间:实验室:实验台: 指导教师签字:成绩: 实验名称:进程控制 一、实验目的和要求 (1)进一步加强对进程概念的理解,明确进程和程序的区别 (2)进一步认识并发执行的实质 二、实验环境 在windows平台上,cygwin模拟UNIX运行环境 三、实验内容 (1) getpid()---获取进程的pid 每个进程都执行自己独立的程序,打印自己的pid; (2) getpid()---获取进程的pid 每个进程都执行自己独立的程序,打印自己的pid; 父进程打印两个子进程的pid;

(3)写一个命令处理程序,能处理max(m,n), min(m,n),average(m,n,l)这几个命令(使用exec函数族)。 Max函数 Min函数 Average函数 Exec函数族调用 四、程序代码 五、运行结果 六、实验结果与分析 七、体会 通过这次上机,我了解了fork函数的运行方法,同时更深刻的了解了进程的并行执行的本质,印证了在课堂上学习的理论知识。同时通过编写实验内容(3)的命令处理程序,学会了exec函数族工作原理和使用方法。通过这次上机实验让我加深了对课堂上学习的理论知识的理解,收获很多。

大连理工大学实验报告 学院(系):专业:班级: 姓名:学号:组:___ 实验时间:实验室:实验台: 指导教师签字:成绩: 实验名称:进程通讯 一、实验目的和要求 了解和熟悉UNIX支持的共享存储区机制 二、实验环境 在windows平台上,cygwin模拟UNIX运行环境 三.实验内容 编写一段程序, 使其用共享存储区来实现两个进程之间的进程通讯。进程A创建一个长度为512字节的共享内存,并显示写入该共享内存的数据;进程B将共享内存附加到自己的地址空间,并向共享内存中写入数据。 四、程序代码 五、运行结果 六、实验结果与分析 七、体会

数值分析实验报告1

实验一误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中ε(1.1)和(1.221,,,a a 的输出b ”和“poly ε。 (1(2 (3)写成展 关于α solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。 实验过程: 程序: a=poly(1:20); rr=roots(a); forn=2:21 n form=1:9 ess=10^(-6-m);

ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); -6-m s=max(abs(r-rr)) end end 利用符号函数:(思考题一)a=poly(1:20); y=poly2sym(a); rr=solve(y) n

很容易的得出对一个多次的代数多项式的其中某一项进行很小的扰动,对其多项式的根会有一定的扰动的,所以对于这类病态问题可以借助于MATLAB来进行问题的分析。 学号:06450210 姓名:万轩 实验二插值法

Matlab上机实验答案 (1)

Matlab上机实验答案 实验一MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/200)/(1+exp(2)) z1 = 0.2375 >> x=[2 1+2i;-0.45 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = 0.7120 - 0.0253i 0.8968 + 0.3658i 0.2209 + 0.9343i 1.2041 - 0.0044i 2.9,,2.9, 3.0

>> a=-3.0:0.1:3.0; >> z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) (>> z33=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 0.7388 + 3.2020i 0.7696 + 3.2020i 0.7871 + 3.2020i 0.7920 + 3.2020i 0.7822 + 3.2020i Columns 6 through 10 0.7602 + 3.2020i 0.7254 + 3.2020i 0.6784 + 3.2020i 0.6206 + 3.2020i 0.5496 + 3.2020i Columns 11 through 20 0.4688 + 3.2020i 0.3780 + 3.2020i 0.2775 + 3.2020i 0.2080 + 3.2020i 0.0497 + 3.2020i

《数据结构与算法》上机实验要求

《数据结构与算法》课程实验内容与要求 一、课程简介 本课程着重讲述①线性结构、树型结构、图等典型数据结构的逻辑特点、存储结构及其相应的基本算法。②各种查找算法③典型内部排序算法。 二、实验的作用、地位和目的 数据结构是一门技术基础课,通过实验深刻理解各种逻辑结构、存储结构的特性,培养为实际问题分析其数据对象、基本操作,选择逻辑结构、存储结构灵活应用基本算法,设计出具有专业水准的应用程序的能力。 三、实验方式与要求 ①首先要求学生在课下完成问题分析、算法设计,基本完成程序设计。 ②实验时,每位学生使用一台微机,独立调试,完成程序。 ③程序调试好后,由指导教师检测运行结果,并要求学生回答相关的问题。教师评出检查成绩。 ④学生记录程序的输入数据,运行结果及源程序。 ⑤在一周内完成实验报告。 四、考核方式与实验报告要求 实验成绩由指导教师根据学生的实验完成情况、源程序质量、回答问题情况、实验报告质量、实验纪律等方面给分。 学生在实验后的一周内提交实验报告。实验报告按照首页附件中实验报告模版书写。实验报告中应包括如下内容: ?实验内容按任课教师下达的实验任务填写(具体实验题目和要求); ?实验过程与实验结果应包括如下主要内容: 算法设计思路简介 算法描述:可以用自然语言、伪代码或流程图等方式 算法的实现和测试结果:包括算法运行时的输入、输出,实验中出现的问题及解决办法等 ?源程序清单与实验结果或其它说明可打印,并装订在实验报告首页之后。 ?实验报告雷同者,本次实验成绩为0分或雷同实验报告平分得分

五、实验的软硬件环境 硬件环境:PⅡ以上微型计算机 软件环境:Windows98/2000, VC++6.0或turbo C 六、实验内容安排 实验一线性表应用 实验时间:2016年3月14日1-4节(地点:7-215) 实验目的:理解线性表的逻辑特点;掌握顺序表、链表存储结构,以及线性表的基本操作,如插入、删除、查找,以及线性表合并等操作在顺序存储结构和链式存储结构上的实现算法,并能够在实际问题背景下的灵活运用线性表来解决问题,实现相应算法。 具体实验题目与要求:(任课教师根据实验大纲自己指定) 每位同学可从下面题目中选择1-2题实现: 1.一元稀疏多项式简单的计算器 1)问题描述:用线性表表示一元稀疏多项式,设计一个一元多项式运算器 2)要求: (1)采用单链表存储结构一元稀疏多项式 (2)输入并建立多项式 (3)输出多项式 (4)实现多项式加、减运算 2.单链表基本操作练习 1)问题描述:在主程序中提供下列菜单: 1…建立链表 2…连接链表 3…输出链表 0…结束 2)实验要求:算法中包含下列过程,分别完成相应的功能: CreateLinklist(): 从键盘输入数据,创建单链表 ContLinklist():将前面建立的两个单链表首尾相连 OutputLinklist():输出显示单链表 3.约瑟夫环问题 1)问题描述:有编号为1, 2…n 的n 个人按顺时针方向围坐一圈,每人持有一个正整数密码。开始给定一个正整数m,从第一个人按顺时针方向自1开始报数,报到m者出列,不再参加报数,这时将出列者的密码作为m,从出列者顺时针方向的下一人开始重新自1开始报数。如此下去,直到所有人都出列。试设计算法,输出出列者的序列。 2)要求: 采用顺序和链式两种存储结构实现 实验报告格式及要求:按附件中实验报告模版书写。(具体要求见四)

操作系统实验报告生产者与消费者问题模拟

操作系统上机实验报告 实验名称: 生产者与消费者问题模拟 实验目的: 通过模拟生产者消费者问题理解进程或线程之间的同步与互斥。 实验内容: 1、设计一个环形缓冲区,大小为10,生产者依次向其中写入1到20,每个缓冲区中存放一个数字,消费者从中依次读取数字。 2、相应的信号量; 3、生产者和消费者可按如下两种方式之一设计; (1)设计成两个进程; (2)设计成一个进程内的两个线程。 4、根据实验结果理解信号量的工作原理,进程或线程的同步\互斥关系。 实验步骤及分析: 一.管道 (一)管道定义 所谓管道,是指能够连接一个写进程和一个读进程的、并允许它们以生产者—消费者方式进行通信的一个共享文件,又称为pipe文件。由写进程从管道的写入端(句柄1)将数据写入管道,而读进程则从管道的读出端(句柄0)读出数据。(二)所涉及的系统调用 1、pipe( ) 建立一无名管道。 系统调用格式 pipe(filedes) 参数定义 int pipe(filedes); int filedes[2]; 其中,filedes[1]是写入端,filedes[0]是读出端。 该函数使用头文件如下: #include #inlcude #include 2、read( ) : 系统调用格式 read(fd,buf,nbyte) 功能:从fd所指示的文件中读出nbyte个字节的数据,并将它们送至由指针buf 所指示的缓冲区中。如该文件被加锁,等待,直到锁打开为止。 参数定义:

int read(fd,buf,nbyte); int fd; char *buf; unsigned nbyte; 3、write( ) 系统调用格式 read(fd,buf,nbyte) 功能:把nbyte 个字节的数据,从buf所指向的缓冲区写到由fd所指向的文件中。如文件加锁,暂停写入,直至开锁。 参数定义同read( )。 (三)参考程序 #include #include #include int pid1,pid2; main( ) { int fd[2]; char outpipe[100],inpipe[100]; pipe(fd); /*创建一个管道*/ while ((pid1=fork( ))==-1); if(pid1==0) { lockf(fd[1],1,0); /*把串放入数组outpipe中*/ sprintf(outpipe,child 1 is using pipe!); /* 向管道写长为50字节的串*/ write(fd[1],outpipe,50); sleep(5); /*自我阻塞5秒*/ lockf(fd[1],0,0); exit(0); } else { while((pid2=fork( ))==-1); if(pid2==0) { lockf(fd[1],1,0); /*互斥*/ sprintf(outpipe,child 2 is using pipe!); write(fd[1],outpipe,50); sleep(5); lockf(fd[1],0,0);

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

数据结构实验题参考答案

【实验题】 1.狐狸逮兔子 围绕着山顶有10个圆形排列的洞,狐狸要吃兔子,兔子说:“可以,但必须找到我,我就藏身于这十个洞中,你先到1号洞找,第二次隔1个洞(即3号洞)找,第三次隔2个洞(即6号洞)找,以后如此类推,次数不限。”但狐狸从早到晚进进出出了1000次,仍没有找到兔子。问兔子究竟藏在哪个洞里? (提示:这实际上是一个反复查找线性表的过程。) 【数据描述】 定义一个顺序表,用具有10个元素顺序表来表示这10个洞。每个元素分别表示围着山顶的一个洞,下标为洞的编号。 #define LIST_INIT_SIZE 10 //线性表存储空间的初始分配量 typedef struct { ElemType *elem; //存储空间基址 int length; //当前长度 int listsize; //当前分配的存储容量(以sizeof(ElemType)为单位) }SqList; 【算法描述】 status InitList_Sq(SqList &L) { //构造一个线性表L L.elem=(ElemType )malloc(LIST_INIT_SIZE*sizeof(ElemType)); If(!L.elem) return OVERFLOW; //存储分配失败 L.length=0; //空表长度为0 L.listsize=LIST_INIT_SIZE; //初始存储容量 return OK; } //InitList_Sq status Rabbit(SqList &L) { //构造狐狸逮兔子函数 int current=0; //定义一个当前洞口号的记数器,初始位置为第一个洞口 for(i=0;i #include #define OK 1 #define OVERFLOW -2 typedef int status; typedef int ElemType; #define LIST_INIT_SIZE 10 /*线性表存储空间的初始分配量*/

相关文档
相关文档 最新文档