数据库系统实验指导书

2024-05-17

数据库系统实验指导书(共6篇)

篇1:数据库系统实验指导书

实验一:数据定义及更新语句练习

一、实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新。

二、预习要求:实验前复习讲授过的有关创建数据库、基本表的SQL语句,预习SQL Server2000环境,特别是资源管理器和查询分析器的相关用法。

三、实验内容:

(一)用SQL语句建立如下mySPJ数据库,包括S,P,J,和SPJ四个基本表(教材第二章习题5中的四个表),要求实现关系的三类完整性。

S(SNO,SNAME,STATUS,CITY);

P(PNO,PNAME,COLOR,WEIGHT);

J(JNO,JNAME,CITY);

SPJ(SNO,PNO,JNO,QTY)

供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。

零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。

工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商 供应某种零件 给某工程项目的数量为QTY。

(二)分别使用插入、删除、修改的方式更新基本表中的数据。

四、实验方法和步骤:

(一)使用Microsoft SQL Server企业管理器和查询分析器建立数据库mySPJ:

1.打开“开始->程序->Microsoft SQL Server->企业管理器”;

2.在企业管理器左边的树标签中依次打开“Microsoft SQL Server-> SQL Server组->(local)(Windows NT)->数据库”,(local)(Windows NT)前的红色标记转化为绿色标记表明NT服务已启动;

3.从企业管理器的“工具”菜单中选择“SQL 查询分析器”,打开查询分析器后,在其窗口书写创建数据库mySPJ的SQL语句,点击执行按钮(或F5键)执行该SQL语句;

4.在企业管理器左边的树标签中查看数据库是否建立成功。

(二)在数据库mySPJ中建立S,P,J,和SPJ四个基本表:

按照实验内容给出的基本表结构在查询分析器窗口中书写SQL语句分别建立各表,并设置主键和外键约束;

(三)更新表数据:

1.利用Insert 语句将习题中给出的示例记录插入各表。

2.利用Update更新表中的记录:

①将p表中的所有红色零件的重量增加5。

②将spj表中所有天津供应商的QTY属性值减少10。用子查询。

3.利用Delete语句删除p表中的所有红色零件的记录。

4.SQL语句执行后返回基本表查看更新后的结果,如果与期望不符,分析原因并记录在实验报告中。

五、思考题:

(一)在为各表设定关键字时弹出的页面中有关键字和索引选项,试通过给基本表设定这两个项目并说明二者的区别。

(二)在基本表中输入数据时,注意数据与字段的数据类型和长度以及能否为空的属性是否一致,保存时如有错误分析错误原因,及时改正并将错误报告写在实验报告中。

六、实验报告要求:

(一)实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新。

(二)实验内容:需要创建的数据库及其四个基本表:零件表、供应商表、工程表、供应关系表的表结构、创建过程。

(三)完成情况(附上设计的SQL语句)。

(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。

(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。

(六)回答思考题提出的问题,(七)实验总结:心得体会,建议等。

实验二:简单查询和连接查询

一、实验目的:熟练掌握用SQL语句实现的简单查询和多个数据表连接查询。

二、预习要求:实验前复习讲授过的有关简单查询与多表查询的知识,编写相应的SQL语句。

三、实验内容:

(一)完成下面的简单查询:

①查询所有“天津”的供应商明细;

②查询所有“红色”的14公斤以上的零件。

③查询工程名称中含有“厂”字的工程明细。

(二)完成下面的连接查询:

①等值连接:求s表和j表的相同城市的等值连接。

②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。

③笛卡尔积:求s和p表的笛卡尔积

④左连接:求j表和spj表的左连接。

⑤右连接:求spj表和j表的右连接。

四、实验方法和步骤:

参照实验一中给出的使用Microsoft SQL Server企业管理器和SQL查询分析器的方法,将实验内容中所要求的查询项目依次用SQL语句实现,并记录下执行结果。

五、思考题:

查看实验内容2中左连接和右连接的执行结果是否一致,为什么?

六、实验报告要求:

(一)实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新。

(二)实验内容:需要创建的数据库及其四个基本表:零件表、供应商表、工程表、供应关系表的表结构、创建过程。

(三)完成情况(附上设计的SQL语句)。

(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。

(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。

(六)回答思考题提出的问题,实验总结:心得体会,建议等。实验三:分组查询和嵌套查询

一、实验目的:熟练掌握用SQL语句实现多个数据表的分组查询和嵌套查询。

二、预习要求:实验前复习讲授过的有关分组查询和嵌套查询的知识,编写相应的SQL语句。

三、实验内容:

(一)分组查询:

1.求各种颜色零件的平均重量。

2.求北京供应商和天津供应商的总个数。

3.求各供应商供应的零件总数。

4.求各供应商供应给各工程的零件总数。

5.求使用了100个以上P1零件的工程名称。

6.求各工程使用的各城市供应的零件总数。

(二)嵌套查询:

1.in连接谓词查询:

① 查询没有使用天津供应商供应的红色零件的工程名称。

② 查询供应了1000个以上零件的供应商名称。(having)

2.比较运算符:求重量大于所有零件平均重量的零件名称。

3.Exists连接谓词:

① 查询供应J1的所有的零件都是红色的供应商名称。

② 至少用了供应商S1所供应的全部零件的工程号JNO。

四、实验方法和步骤:

参照实验一中给出的使用Microsoft SQL Server企业管理器和SQL查询分析器的方法,将实验内容中所要求的查询项目依次用SQL语句实现,并记录下执行结果。

五、思考题:

(一)嵌套查询中的in连接谓词查询,关键字in可以直接用any代替么?什么情况下in和any可以互相代替?

(二)嵌套查询中的内查询为外查询返回的内容是什么?是表达式?视图?还是物理数据集合?

六、实验报告要求:

(一)实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新。

(二)实验内容:需要创建的数据库及其四个基本表:零件表、供应商表、工程表、供应关系表的表结构、创建过程。

(三)完成情况(附上设计的SQL语句)。

(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。

(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。

(六)回答思考题提出的问题,(七)实验总结:心得体会,建议等。

实验四:视图操作和数据控制

一、实验目的:熟练掌握用SQL语句实现视图操作和数据控制。

二、预习要求:实验前复习讲授过的有关视图操作和数据控制的知识,编写相应的SQL语句。

三、实验内容:

(一)定义如下视图:

①查询北京的供应商的编号、名称和城市。

②查询S1供应商的所有供应明细。

③查询各工程名称使用的各种颜色零件的个数。

查询上面定义的视图。

(二)数据控制:

①使用GRANT把对S表查询的权利授予WangLi。

②使用GRANT把对P表查询、插入、修改、删除的权利授予LiMing。

③使用REVOKE把LiMing对P表插入、删除的权利回收。

四、实验方法和步骤:

参照实验一中给出的使用Microsoft SQL Server企业管理器和SQL查询分析器的方法,将实验内容中所要求的查询项目依次用SQL语句实现,并记录下执行结果。

五、思考题:

实验内容中的哪些视图可以用来更新记录?

六、实验报告要求:

(一)实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新。

(二)实验内容:需要创建的数据库及其四个基本表:零件表、供应商表、工程表、供应关系表的表结构、创建过程。

(三)完成情况(附上设计的SQL语句)。

(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。

(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。

(六)回答思考题提出的问题。

(七)实验总结:心得体会,建议等。

实验五:触发器和存储过程

一、实验目的:理解触发器和存储过程的含义,掌握用SQL语句实现触发器和存储过程的编写,并初步掌握什么情况下使用事务。

二、预习要求:存储过程和触发器的相关概念,事务的相关概念,编写相应的SQL语句。

三、实验内容:

(一)为S表的删除操作定义一个触发器,在删除一个供应商记录时,将这个供应商的所有供应情况从spj表中删除。

(二)有一个小型的图书管理数据库,包含的表为:

bookstore(bookid,bookname,bookauthor,purchasedate,state);--图书库存表

borrowcard(cardid,ownername);--借书证表

borrowlog(cardid,bookid,borrowdate,returndate);--借书记录表

写一个存储过程,实现借书操作,要求有事务处理。(1)读者借书,要先设置书籍不在库标志state(借出),然后增加借书记录,在同一事务中完成。(2)要求在事务执行过程中引入错误触发事件,以此体会事务的错误保护机制和事务编程的作用。

四、实验方法和步骤:

(一)在查询分析器中编写实现上述功能的触发器,参考Create Trigger语法。

(二)参考CREATE PROCEDURE语句。在事务执行过程中引入错误触发事件,可以考虑在增加借书记录时违反实体完整性或参照完整性,以此体会事务的错误保护机制。

五、思考题:

如何通过系统的设置实现类似的功能,而不需触发器?

六、实验报告要求:

(一)实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新。

(二)实验内容:需要创建的数据库及其四个基本表:零件表、供应商表、工程表、供应关系表的表结构、创建过程。

(三)完成情况(附上设计的SQL语句)。

(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。

(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。

(六)回答思考题提出的问题,实验总结:心得体会,建议等。

篇2:数据库系统实验指导书

二 实验目的:加深对视图的理解,熟练视图的定义、查看、修改等操作 三 实验内容及要求:(从下面10个题目中选一个)题目一:

学生(学号,年龄,性别,系名)课程(课号,课名,学分,学时)选课(学号,课号,成绩)根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩 2 观察基本表数据变化时,视图中数据的变化。3 利用视图,查询平均成绩最高的学生。

题目二:

图书(书号,书名,价格,出版社)读者(卡号,姓名,年龄,所属单位)借阅(书号,卡号,借阅日期)根据上面基本表的信息定义视图显示每本书的书名、借阅次数 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询借阅次数最多的书。

题目三:

商品(编号,品名,进价,库存,售价,厂商编号)顾客(卡号,姓名,电话,积分)厂商(编号,厂址,名称、电话)

销售(顾客卡号,商品编号,数量,日期)根据上面基本表的信息定义视图显示每种商品的品名、销售数量 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询销售数量最高的商品。

题目四:

图书(书号,书名,作者编号,价格,出版社编号)作者(编号,姓名,电话)

出版社(编号,出版社名称,地址)根据上面基本表的信息定义视图显示每个出版社的名称、出版书的数量 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询出版书最多的出版社

题目五:

零件(编号,名称,颜色,生产车间号)车间(编号,名称,人数,主任)产品(编号,名称,车间编号)

使用(产品编号,使用零件编号,个数)根据上面基本表的信息定义视图显示每个产品的编号,使用零件的编号,生产零件的车间号,车间主任 观察基本表数据变化时,视图中数据的变化。3利用视图,查询使用零件最多的产品。

题目六:

药品(编号,名称,价格,厂商)处方(药品编号,数量,医生编号)医生(编号,姓名,科室,职称)根据上面基本表的信息定义视图显示每种药品的品名、销售金额 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询最畅销的药品。

题目七:

学生(学号,年龄,性别,系名)

教材(编号,书名,出版社编号,价格)订购(学号,书号,数量)出版社(编号,名称,地址)根据上面基本表的信息定义视图显示每个学生姓名、应缴书费 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询交费最高的学生。

题目八:

员工(编号,姓名,性别,年龄,部门编号,年薪)部门(编号,名称,人数,负责人)项目(编号,名称,负责部门编号)根据上面基本表的信息定义视图显示每个部门名称、年工资总额 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询工资额最高的部门

题目九:

帐户(编号,姓名,余额,建立日期,储蓄所编号)储蓄所(编号,名称,地址,人数,所属城市)借贷(帐户,借贷类型,金额,日期)根据上面基本表的信息定义视图显示每个储蓄所名称、储蓄总金额 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询储蓄金额最高的储蓄所。

题目十:

仓库(编号,保管员编号,面积)

保管员(编号,姓名,年龄,电话、月薪)商品(编号,品名,仓库编号、数量,单价)

1根据上面基本表的信息定义视图显示每个仓库保管员姓名、保管商品价值总额 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询保管商品价值金额最高的保管员。

篇3:指导学生学会分析实验数据

一、运用表格整理,指导学生发现数据呈现的规律

在收集各种数据时,教师应引导学生明白,数据的本身并没有意义,重要的是数据所给予的启示。特级教师路培琦曾说过:“科学课既强调学生亲历探究的过程,还重视在实验过程中搜集和积累数据,强调对事物的认识,不仅要在质上认识,更要从量的分析中得出结论。”学生收集、记录实验数据完成后,教师指导学生对实验数据进行重新整理和分析,使原本无序、杂乱的数据变得有序,不但能帮助学生深入挖掘数据背后隐藏的规律,为学生更好地总结、归纳概括科学规律提供依据和建议,也有利于发挥数据应有的作用,对现象作出客观的解释,学会从各种数据中选择有效的数据并把数据转化为证据。

在教学《豌豆荚里的豌豆》一课时,学生收集的40个豌豆夹里的豌豆粒数如下:4、5、3、1、4、5、7、6、4、6、8、4、6、3、4、6、5、7、5、4、6、7、4、5、6、3、0、2、5、5、6、6、7、9、5、5、6、5、6、5。这些数据很真实地记录了每个豌豆荚里的豌豆粒数,但是很杂乱无章,很难发现碗豆荚里种子粒数的分布规律。在学生完成搜集数据之后,教师指导学生运用表格对这些数据进行整理和分析。如下表:

学生对表格中的数据进行分析如下:

生:我发现了5粒的最多。

生:我发现了没有种子的只有1个。

生:我发现一个碗豆荚里种子最多有8个。

生:我发现8粒和1粒的各有一个,而9粒和9粒以上的都没有。

生:大多数都在4~6粒种子之间。

师:豌豆荚里的豌豆种子数是多少?怎样回答比较合理?哪一些种子数量比较多一些?

生:4粒、5粒、6粒。在4~6个之间的数量比较多。

这样,原本无序的数据变得清晰有序,学生很轻松地发现豌豆种子粒数分布的大致规律。虽然不能确切地说出碗豆荚里的种子数,但在整理分析后,得到了一个合理的推论,更重要的是培养了学生实事求是的科学态度,增强了学生对数据的敏感性。这一过程,将潜移默化地影响着学生的科学学习,对于学生探究事物的内在规律将起到至关重要的作用。

二、运用直观图表,指导学生发现数据之间的变化规律

将实验数据按一定规律用直观图表的方式表达出来是记录和处理实验数据最常用的方法。图表设计要求对应关系清楚、简单明了、有利于发现相关数据之间的关系。对于一般比较简单的探究问题,学生通过对统计得到的数据进行分析就可以发现事物内在规律,而一些稍复杂的内容,光看数据就不那么容易了,通过统计图、分布图等图表的运用,能直观反映出数据之间的联系,有利于学生发现数据背后蕴含的规律。

如在六年级《抵抗弯曲》一课的教学中,学生通过实验获得了一组关于纸的厚度与所承受垫圈数量的数据。这些实验数据比较抽象,教师引导学生利用这组数据制作出一份曲线图,使抽象的数变为直观,很容易建立数据之间的联系,发现其中的规律。

学生根据纸的厚度与所承受垫圈的数据完成的统计图如下:

折线统计图更直观有效地反映了纸的厚度与抵抗弯曲能力之间的关系。统计图让学生充分认识到:随着纸的厚度的增加,承受垫圈的个数大大增加,抵抗弯曲的能力也显著增强。通过运用直观图表的方法,让学生更形象、更容易地找到了事物变化的规律。

三、运用纵横比较,指导学生建立实验数据的联系

在小学科学教材中,有许多实验得到的数据是具有高度明晰、数据内在高度规律化的,此时学生很容易从数据上轻而易举地解释现象,并从现象中概括结论。有的教师此时往往就此满足,未能开展学生数据分析方法的提炼,学生因此失去形成数据分析方法的理性思考机会,以后在遇到较为复杂的数据时就表现为茫然失措,不知从何入手。如果教师引领学生对通过实验得到的数据进行纵横比较,很容易发现实验数据之间的变化规律,建立不同实验数据之间的联系,提升实验数据分析的有效性。教师引领学生进行数据分析,可以采用横向比较、纵向比较、同一类纵向比、不同类横向比等等,学生自然就会对数据分析具有了一定的分析策略,数据分析能力将会有较大的提高。

如一位科学教师执教教科版六年级上册《形状与结构》单元的《抵抗弯曲》一课时,教材引领学生用对比实验的方法研究梁的抗弯曲能力与其宽度、厚度之间的关系。学生得到的实验数据如下:(单位为1角钱硬币的重量)

在两个实验中,改变宽度和厚度都要成倍地改变,很容易看出实验数据变化的规律。学生可以发现:纸的宽度增加,抗弯曲能力会增强;纸的厚度增加,抗弯曲能力会大大增强。这位教师没有就此收场,而是引领学生把增加纸的宽度和厚度所收集的实验数据进行纵横比较,把两个实验进行沟通,架构了两个实验之间的联系,很容易发现实验数据之间的规律。学生会发现:要增强抗弯曲的能力,增加厚度比增加宽度更加有效。这样提升了学生的实验数据分析能力,促进了学生思维的深刻性。

四、通过差异比较,引领学生把数据分析推向深刻

学生在探究活动中会得到大量的数据。这些数据间的差异是客观存在的,有时是不可靠的,甚至是错误的。科学教师不应该回避这些差异,而应积极面对,正确对待学生实验数据的差异,必要时引领学生重复实验,以期得到可靠的且具有一定信度的数据,增强学生对数据的敏感性,培养学生严谨细致、认真负责的科学态度,使学生的数据意识在处理这些数据时得以培养,能自觉地学会用数据来描述事物或对一些现象进行解释。学生数据分析能力虽然可以从高度明晰化的数据分析中逐渐得到提升,但是更大的提升来源于对于数据差异的分析,而且在数据差异处把数据分析引向深刻,促使学生返回去审视自己实验操作的科学性和正确性、审视实验器材的合理性与科学性、审视实验进程先后顺序的科学性等等,对于提高学生今后实验开展的严谨性、自我审视能力等都会起到很大的作用。

如,在研究纸的宽度与抵抗弯曲的能力之间的关系时,统计学生的实验数据如下(单位为1个垫圈的重量):

教师指导学生通过比较,先观察比较第1组学生的数据,发现:随着纸的宽度增加,抵抗弯曲的能力也随着增加。教师引领学生比较这4组的数据,发现第4组的4倍宽的纸承重32个垫圈的重量,远远超过了其他三个小组的数据。教师没有放弃这个差异,而是引领学生共同探讨这一组为什么出现了这么大的差异。下面是这一环节的教学:

师:请第4组的同学把这张纸拿到前面来。展示给大家看看。

学生把这张4倍宽的纸展示给大家。

师:为什么他们的纸能承受的垫圈数比你们的多这么多?他这组的纸和你们小组的有什么区别?

生:他们的纸有折痕。

生:他们的纸有点像半圆形,我们的纸是平的。

生:他们纸的边都折起来,有点像工字形。我觉得纸的形状也能增强抵抗弯曲的能力。

……

师:纸的形状与抵抗弯曲的能力到底有没有关系?我们下节课再研究。

对于这个与其他组相比差异很大的实验数据,教师没有回避,没有放弃,而是组织学生进行研讨。学生通过研讨,发现了纸的形状也与抵抗弯曲的能力有关这一值得研究的问题,恰恰是下一课需要研究的问题。本节课虽然没有研究,却给学生下一阶段的学习埋下了伏笔,使学生产生了进一步探究的欲望,这不正是我们科学课所期待的吗?

五、培养数据意识,提高学生的分析能力

实验数据展示在学生面前时,学生不一定马上能从数据表或图中找到规律,教师应引导学生重视实验数据,指导学生选用适当的方法进行分析数据,培养学生分析数据的能力和习惯。这一过程是十分重要的。教师可以从以下几方面入手:

教师自己要关注数据。教师可以借助放大的数据统计表或者运用多媒体把实验数据放大进行展示,通过问题的设置来引领学生关注数据、分析数据、探寻规律。在整理数据的基础上,指导学生一步步分析数据,给学生提供训练分析实验数据的机会,使学生养成分析数据的习惯。

在教学中,教师应当有意识地要求学生从实验数据出发,通过分析思考,运用数学工具得出规律性结论。这样做不仅能使学生加深对科学规律的总结过程和本质内涵的理解,并且有助于培养学生分析实验数据的能力,使学生经历由数据推出结果的过程。

在分析实验数据时,教师应引导学生像数学解题那样,要说出整个数据分析思考的过程,学会选用合适的方法进行表达。长此以往,学生的表达能力会不断提升,同时也促进学生思维能力的提升。

篇4:数据库系统实验指导书

普通物理实验数据采集处理系统系统分析系统设计一、引言

现代科学技术正以前所未有的强劲动力,推动着社会经济飞速发展。以科学知识和科学技术为基础的“知识经济”迅速取代传统的“工业经济”。高等教育对社会经济发展的参与和作用比以往任何时候都更为强烈和直接。信息化是当今世界经济和社会发展的大潮流、大趋势,信息技术与社会生产的结合大大的促进了社会生产力的发展,提高了社会的生产效率。将先进的信息技术手段运用到教学中改变教学支撑环境,可以极大地缩短教学时间,改善教学效果,提高教学质量。

二、系统概述

普通物理实验数据采集、处理系统主要是针对高校普通物理实验教学中的数据处理进行开发;该系统针对各项实验设计专用的数据处理函数,每个函数应用范围虽窄但针对性强,当然,用户可以自主扩充函数库以扩展系统功能;该系统既能实现实验数据的处理又能提供实验报告编写、批阅、成绩统计等功能。

总体来看,高校普通物理实验数据采集、处理系统在以下几方面体现出通用型数据处理软件不具备的特点:

1.操作简单

高校普通物理实验数据采集、处理系统的使用就像日常的文档编辑和网页浏览一样简单明了,只要懂得操作计算机就可以正常使用,对用户要求极低。

2.针对性强

高校普通物理实验数据采集、处理系统是专门为了解决高校普通物理实验教学中的实际问题而开发的。该系统的目的就是为了解决大学低年级普通物理实验中的数据采集处理问题,适用范围虽窄但针对性强。

3.支持网络应用

该系统的网络应用方面的功能,能够实现网络信息的共享,能够为广大师生提供相对自由的使用空间。

三、系统分析

1.主要目标

(1)满足学生利用系统进行物理实验数据采集、处理及编写物理实验报告。

(2)满足教师利用系统进行物理实验报告的批阅。

(3)满足系统管理员对用户的管理,对物理实验项目的管理及对系统数据的管理。

(4)能够实现方便的扩展,以便将来系统能够支持自定义实验项目。

2.功能需求

基于高校普通物理实验的需求分析,高校普通物理实验数据采集、处理系统要实现以下基本功能:用户身份验证、数据采集、数据筛选、数据处理、实验报告管理、系统管理。

(1)用户身份验证。该功能实现对使用系统用户的身份验证。

(2)数据采集。该功能实现各项物理实验中实验测量数据的输入,系统提供两种数据采集的方式:手工录入和自动采集。

(3)数据筛选。数据筛选模块负责对录入数据进行筛选,或对数据进行环境修正。

(4)数据处理。数据处理模块负责对数据进行函数计算或绘出反映数据规律的曲线。

(5)实验报告管理。实验报告管理模块包括:实验报告编写、实验报告提交、实验报告评阅、实验报告查阅、实验报告打印、实验成绩查询、实验成绩统计等七个子模块。

(6)系统管理。根据业务需求,系统管理模块负责实现用户管理、实验项目管理、函数管理和数据库管理的功能。此功能只限于具有系统管理员权限的用户使用(图略)。

四、系统设计

1.系统体系结构设计

系统采取流行的多层体系结构进行设计。采用多层次结构进行设计,可以极大地方便后续的修改和调整。由于每个层次间是相互独立的,层与层之间通过统一的接口进行交互,当某一层内部需要进行修改和调整时,仅影响到本层的内部,而不會对其它的层次产生干扰。

(1)系统结构层次包。根据系统分层设计的思想我们设计时将系统划分为五个包:用户界面、业务逻辑层、数据访问层、数据持久层、数据源层。

(2)系统结构层次组件。根据业务需求系统的业务逻辑层次组件设计包含权限管理、数据采集、文件处理、数据筛选、环境修正、数据处理、模板管理、流程管理、函数管理、查询、统计等11个组件。

(3)系统顶层抽象类。通过对系统的分析,我们抽象出五个顶层的类,它们是用户界面类、业务代理类、权限管理类、数据对象访问类和实体类。

2.数据库设计

鉴于ODBC是用于数据库访问的应用最广泛的应用程序编程接口,它允许应用程序使用相同的代码访问不同的数据库管理系统(DBMS),本系统采用ODBC的方式访问数据库。

成绩表通过实验编号字段与实验项目表产生关联、通过学号字段与学生用户表产生关联;实验数据对象表通过实验编号字段与实验项目表和实验文档模板产生关联、通过学号字段与学生用户表产生关联;学生用户表通过班级编号与实验班级表产生关联;实验报告表通过学号与学生用户表产生关联,通过教师编号与教师用户表产生关联;教师用户表通过班级名称与实验班级表产生关联;实验文档模板表通过实验编号与实验项目表产生关联,通过函数编号同函数表产生关联,数据库设计满足第三范式要求。

五、总结

根据高校普通物理实验教学环节中存在的数据采集、处理问题,笔者针对性地提出了用计算机系统完成数据采集和处理的解决方案。本文中笔者完成了大学物理数据采集、处理系统的分析与设计工作。对系统的分析设计主要包括以下几方面工作:

1.通过对高校普通物理实验过程的调查研究,并与物理实验教师的交流讨论拟定了系统的主要目标;通过研究物理实验各环节的应用情况分析出了系统的功能需求,并在功能需求的基础上建立了系统用例模型。

2.通过对系统需求的分析采用分层结构的思想规划了系统的总体结构;通过对系统事件及工作流程的分析划分了系统的功能模块,完成了用户身份验证、数据采集、数据筛选、数据处理、实验报告管理、系统管理功能模块的结构分析及体系结构设计。

3.通过对系统各功能模块的分析,抽象出了登录、用户注册等15个边界类;身份验证、权限管理等23个控制类;学生用户、教师用户等9个实体类。完成了各个类的详细设计,建立了类间的相互关联,并且在实体类的基础上完成了系统数据库设计。

高校普通物理实验数据的自动采集、处理问题是广大高校物理实验教学中面临的普遍困难,高校普通物理实验数据采集、处理系统为高校普通物理实验数据的采集和处理构建了一个良好的支持平台。

参考文献:

[1]苏福才.院士谈教育教学改革.教学与教材研究,1995,(2).

[2]张攀,朱肖平,曾光群.用Visual Basic编制物理实验数据处理及评价软件.高校普通物理实验.

[3]何长英.用Java Applet编写高校普通物理实验数据处理软件.高校普通物理实验.

篇5:数据结构实验指导书

实验规则················································2 实验环境················································2 实验报告要求············································3 实验一 单链表

(一)······································4 实验二 单链表

(二)······································5 实验三 栈···············································6 实验四 二叉树···········································7 实验五 最短路径·········································8 实验六 内部排序·········································9

实 验 规 则

为了顺利完成实验教学任务,确保人身、设备的安全,培养严谨、踏实、实事求是的科学作风和爱护国家财产的优良品质,特制定以下实验规则:

1、实验前必须充分预习,完成指定的预习任务。预习要求如下:

(1)认真阅读指导书,进行必要的设计与计算。(2)熟悉实验内容。

(3)预先复习,并按要求编写程序。(4)未完成预习任务者不得进入实验室。

2、遵守以下纪律:

(1)在实验室不得做和实验无关的事情。

(2)进行任课老师指定内容以外的实验,必须经指导教师同意。(3)遵守纪律,不迟到。

(4)保持实验室内安静、整洁,爱护公物,不许乱写乱画。

实 验 环 境

本实验在386以上的微机上进行,运行环境为VC6.0。

实验报告要求

1、实验题目 2.实验目的 3.实验环境

4.实验内容与完成情况(可以附上自主设计的源程序)5.出现的问题及对问题的解决方案 6.实验思考:(学生对本次实验的收获的总结)

实验一 单链表

(一)一、实验目的

掌握线性表的链式存储结构及其基本操作。

二、预习要求

1、看懂书上的算法,深入理解链表的物理存储模式和逻辑模式。

2、根据要求,编写程序准备上机调试。

三、实验内容

实现一个简单的学生信息管理系统,该系统的功能有:

1、利用单链表建立学生基本信息表

2、浏览每个学生的信息

3、根据学号查询某个学生的基本信息

4、添加学生信息到单链表中

5、删除一个学生的信息

四、实现提示

设计结点的结构体类型,包括学生的学号、姓名、年龄、性别;要求设计一个简单的菜单界面,根据需要选择所要进行的操作;构造函数,每一个函数实现上述的一个功能。

实验二 单链表

(二)一、实验目的

掌握线性表的链式存储结构及其基本操作。

二、预习要求

1、看懂书上的算法,深入理解链表的物理存储模式和逻辑模式。

2、根据要求,编写程序准备上机调试。

三、实验内容

1、实现单链表的就地逆置。

2、建立两个非递减有序单链表,然后合并成一个非递减链表。

3、建立两个非递减有序单链表,然后合并成一个非递增链表。

4、编写一个主函数,调试上述算法。

四、选做题、思考题

1、如何用带表头结点的单链表作为多项式的存储表示,实现两个多项式的相加。

2、约毖夫环的实现。

3、如何利用文件实现学生信息的存取。

实验三 栈

一、实验目的

深入了解并掌握栈的特性及其在实际中的应用;熟练掌握栈的算法实现;运用栈操作求解实际问题。

二、预习要求

1、看懂书上的算法,深入理解栈的特性和存储结构,以便在实际问题背景下灵活运用。

2、根据要求,编写程序准备上机调试。

三、实验内容

利用栈实现数据的分类,要求当输入为偶数时进栈1,当输入为奇数时进栈2,最后分别从栈1和栈2输出偶数和奇数序列。

四、实现提示

1、开辟一个连续的存储空间,实现两个栈顺序存储空间的共享;分别在两端设置栈顶指针,并按要求实现栈操作。

2、采用顺序存储实现栈的初始化、入栈、出栈操作。

五、选做题、思考题

1、两栈空间共享时,栈满的条件是什么?

2、为停车场编制进行管理的模拟程序(习题集P96,2.1)。

3、编写程序,利用栈实现表达式求值。

实验四 二叉树

一、实验目的

通过实践掌握二叉树的存储结构和遍历思想;掌握二叉树的常见算法的程序实现。

二、预习要求

二叉树的三种遍历方法。

三、实验内容

1、输入字符序列,建立二叉链表。

2、利用栈,编写非递归算法,编程实现二叉树的中序遍历。

3、求二叉树的叶子结点个数。

4、在主函数中设计一个简单的菜单,分别调试上述算法。

四、选做题、思考题

1、如何实现二叉树的后序遍历(非递归)。

2、如何求二叉树的高度。

实验五 最短路径(旅游景点导游咨询模拟)

一、实验目的

利用图的最短路径原理为用户提供路径咨询,掌握求最短路径的算法并编程实现。

二、预习要求

学习了解图的存储结构,掌握求最短路径的两种算法。

三、实验内容

设计一个旅游景点导游模拟程序,为来访的客人提供景点最短路径的信息查询服务,任意选取n城市,构成一个有向带权图,图中顶点表示城市,边上的权值表示两点间的距离,根据用户指定的始点和终点输出相应的最短路径。

四、实现提示

咨询以用户和计算机的对话方式进行,由用户输入起始点和终点,输出信息:最短路径是多少?并指出所经过的城市。存储结构可选用邻接矩阵。

五、选做题、思考题

1.如何实现对城市信息进行编辑(如:添加或删除)的功能。

2.用邻接表作存储结构,求一指定景点出发,到其余各景点的最短路径。

实验六 内部排序

一、实验目的

直观感受算法的关键字比较次数和关键字移动次数。

二、预习要求

1、常见的排序算法(插入排序、交换排序、选择排序、归并排序、基数排序等)的思想、特点及其适用条件。

2、根据要求,编写程序准备上机调试。

三、实验内容

1、对直接插入排序和简单选择排序算法进行关键字比较次数和关键字移动次数的比较。

2、利用链式存储结构,编写程序,实现直接插入排序和冒泡排序。

四、实现提示

测试数据可以为几组典型的数据:正序、逆序、乱序。

五、选做题、思考题

1、快速排序算法的非递归实现。

2、结合实验,理解针对不同待排元素的特点而选择不同排序方法的重要性。

篇6:算法与数据结构实验指导书

计 算 机 科 学 与 技 术 学 院

算 法 与 数 据 结 构

实 验 指 导 书

杨俊、徐塞虹、漆涛 编著

2006年9月 算法与数据结构 实验指导书

目录

实验要求....................................................................................................................................3 试验

一、约瑟夫环..............................................................................…………………..……4 试验

二、长整数四则运算运算………………………………………………………………4 实验三、八皇后.....................................……..........................................................................5 实验

四、骑士遍历......................................……………………..............................................5 实验

五、桌面计算器...............................……………..............................................................6 实验

六、平衡排序二叉树....................…...…….....................................................................6 试验

七、多重集合的实现……......................................………………………………………7 试验

八、图论………………………………………………………………………….……..8 实验

八、内部排序性能的比较..........………………….............................................................8 教材及主要参考文献………………………………………………………………………………..9 2 北京邮电大学 计算机科学与技术学院 算法与数据结构 实验指导书

实验要求

一、本课程在讲课期间需要做上机实验,目的之一是检查学生对所学算法的掌握和理解程度;其次是锻炼学生的团队合作精神。

二、成绩:

1、编码:占整个实验成绩的50%;

2、测试:占整个实验成绩的20%;

3、文档:占整个实验成绩的30%。

三、按时提交上机文档,实验文档包含以下各项:

1、问题描述:实验题目、内容和要求;

2、算法思路:实验小组对问题的解决方法的文字描述;

3、算法描述:用类算法语言等对算法进行描述;

4、源程序及驱动程序:上机实验编制的代码源程序及程序运行环境;

5、测试数据:对算法的测试用例;

6、结果分析和结论:对算法及测试结果的分析及结论;

7、心得体会:通过实验获得的心得体会;

8、分工及签名:最后是小组成员的分工及签名。

北京邮电大学 计算机科学与技术学院-1-算法与数据结构 实验指导书

实验

一、约瑟夫环

一、实验类别:设计型实验。

二、问题描述:约瑟夫环问题是:n个人p0,p1,…pn 围坐成一个圆环。每个人pk持有一个秘密的数字ck。0 < ck <= m。开始时随机选取一个数 c = c0。每个人从p0 开始从1开始报数。报到数c 的人出对。然后以出队的人的秘密数字作为新的c 值。从出队者的下一个人顺时针从1 开始再报数。直到所有的人全部出队。

三、实验目的:检查学生对各种线性表的实现的掌握程度。

四、实验学时:2小时

五、实验组人数:1人。

六、实验设备环境:计算机。

七、实验原理及要点(知识点):各种队列的实现。

八、实验内容和要求:至少用3种以上的线性表来完成此试验。可以在带头节点的和不带头节点的线性表、循环的和非循环线性表、动态链表和静态链表以及向量(数组)之间选择三种。从空表开始,为每个人生成一个随机数。然后将此人加入到线性表之中。

九、可研究与探索的问题:给出各种实现的优缺点比较。

十、验收及实验报告要求:现场操作及运行效果验收。要求程序必须上机编译通过并且正确运行。给出试验报告。给出各种线性表实现的优缺点分析。

实验

二、长整数四则运算

一、实验类别:验证实验。

二、问题描述:计算机CPU本身可以做32位或者64位的整数四则运算。本试验要求对任意大小的整数实现其四则运算。将一个整数N表示为

N = ±(d0 + d1*B + d2*B2 + ….+ bk*Bk)

其中 1< B <= 256 为一个取定的整数。0 <= dk < B。用线性表存储{bk}。给出整数的四则运算程序。

三、实验目的:对具体的问题选择适当的线性表实现。

四、实验学时:2小时

五、实验组人数:3人。

六、实验设备环境:计算机。

七、实验原理及要点(知识点):各种队列的实现。

八、实验内容和要求:至少用2种以上的线性表来完成此试验。比较不同线性表实现的速度。

九、可研究与探索的问题:1)对具体问题选择合适的线性表实现。2)B 的选取问题。可 否选择更大的基B。B的选择所应考虑的因素。

十、验收及实验报告要求:现场操作及运行效果验收。要求程序必须上机编译通过并且正确运行。给出试验报告。能够得出用向量(数组)实现的线性表速度最快。

实验三、八皇后问题

一、实验类别:设计型实验。

二、问题描述:在n*n 的国际象棋棋盘上放置n个皇后,使每个皇后不受其他皇后的攻击。

三、实验目的:检查学生对堆栈和递归程序掌握程度。

四、实验学时:2小时

五、实验组人数:1人。

六、实验设备环境:计算机。

七、实验原理及要点(知识点):递归程序与堆栈

八、实验内容和要求: 分别用递归和堆栈完成此试验。统计程序运行时间与问题规模n 的关系。

九、可研究与探索的问题:问题的复杂度。当n 比较大时,讨论提高程序运行的方法。

十、验收及实验报告要求:现场操作及运行效果验收。要求程序必须上机编译通过并且正确运行。给出试验报告。找出程序运行速度的瓶颈。

实验

四、骑士遍历

一、实验类别:设计型实验。

二、问题描述:在国际象棋n*n的棋盘中,一匹马从棋盘中任意一格出发,要求用n2-1步走完所有的n2个格子。每个格子走且只走过一次。应如何走? 试给出算法实现。

三、实验目的:检查学生对堆栈与回溯算法的掌握。

四、实验学时:2小时

五、实验组人数:3人。

六、实验设备环境:计算机。

七、实验原理及要点(知识点):堆栈与回溯

八、实验内容和要求:用堆栈完成此试验。统计程序运行时间与问题规模n 的关系。

九、可研究与探索的问题:怎样枚举所有马下一步可走的位置。选择下一步所走位置的策略。注意由于这个程序非常耗时,在初期程序调试时应取较小的n。

十、验收及实验报告要求:现场操作及运行效果验收。要求程序必须上机编译通过并且正确运行。给出试验报告。找出程序运行速度的瓶颈。给出不同选择策略的程序运行 速度的比较结果。

实验

五、桌面计算器(表达式求值)

一、实验类别:设计型实验。

二、问题描述:模仿Unix系统下的dc命令。输入表达式字符串,按回车键后给出表达式的值。操作数为实数。

1)操作符有 “+”、“-”、“*”、“/”、“^”(乘方)

2)还可以有临时变量。用法如 pi = 3.1415926,r = 3, r*pi^2 3)还可以有事先定义的函数如:“sin()”(正弦)、“cos()”(余弦)、“log()”(对数)、“ln()”(自然对数)等函数。

三、实验目的:检查学生用堆栈解决实际问题。为本课程后续的内容提供伏笔。也为后继的课程如编译原理预习。

四、实验学时:2小时

五、实验组人数:3人。

六、实验设备环境:计算机。

七、实验原理及要点(知识点):堆栈,线性表,命令行参数的处理。

八、实验内容和要求:学生应至少应实现处理五个运算符:“+”、“-”、“*”、“/”、“^”(乘方)。可以用一个线性表来存储临时变量。另一个线性表来存储预定义的函数名。

九、可研究与探索的问题:查找临时变量名的不同方法。如哈希表,二叉树。

十、验收及实验报告要求:现场操作及运行效果验收。要求程序必须上机编译通过并且正确运行。给出试验报告。

实验

六、平衡排序二叉树

一、实验类别:设计型实验。

二、问题描述:随机生成一组整数p0,p1,…pn-1。将这组整数按生成的次序插入到一个平衡排序二叉树中。然后将p0,p1,…pn-1随机重新排列为q0,q1,…qn-1。再按照次次序将这些整数从生成的平衡排序二叉树删除。

三、实验目的:平衡排序二叉树的插入和删除。

四、实验学时:2小时

五、实验组人数:3人。

六、实验设备环境:计算机。

七、实验原理及要点(知识点):平衡排序二叉树的插入和删除中的旋转。

八、实验内容和要求:统计在平衡排序二叉树的插入和删除过程中各种旋转的出现次数。

九、可研究与探索的问题:研究平衡排序二叉树与一般的排序二叉树在插入和删除方面的性能比较。

十、验收及实验报告要求:现场操作及运行效果验收。要求程序必须上机编译通过并且正确运行。给出试验报告。给出在均匀的随机分布下,平衡排序二叉树与一般排序二叉树的性能比较。

实验

七、多重集合的实现

一、实验类别:设计型实验。

二、问题描述:实现数学上多重集合。所谓的多重集合类似于集合,但是一件东西可以放置多个副本。就如一个菜篮子里面可以放两个苹果。

三、实验目的:查找结构的各种实现。

四、实验学时:2小时

五、实验组人数:3人。

六、实验设备环境:计算机。

七、实验原理及要点(知识点):平衡排序二叉树的插入和删除、遍历,查找。哈希查找结构。

八、实验内容和要求: 假设集合中包含的元素是可以排序的。将多重集合封装成一个类。具体的实现可以是中序线索化的平衡排序二叉树,或者带父节点指针的平衡排序二叉树。多重集合的界面如下:

template //假设类型 T 是可以排序的 class Multi_set

{

Multi_set(void);//构造函数,初始化为空集合~Multi_set(void);//析构函数

Multi_set& operator=(Multi_set const a);//重载运算符=

bool contains(T const& v)const;//如果集合包含v 则返回true,否则返回false

Multi_set& operator+=(Multi_set const&a);//将集合a 并到自身中。

Multi_set& operator-=(Multi_set const& a);//自身减去集合a

Multi_set& operator-=(T const& a);//自身减去一个元素a

};//~class Multi_set

//返回集合a,b的并

template Multi_set Mult_set:: operator+(Multi_set const& a,Multi_set const& b);

//返回集合a,b的差

template Multi_set Mult_set:: operator-(Multi_set const& a,Multi_set const& b);

//返回 a –{v}

template

Multi_set Multi_set::operator-(Multi_set const& a,T const& v);

九、可研究与探索的问题:哈希函数的选取。比较哈希与平衡排序二叉树的优缺点、性能和速度。

十、验收及实验报告要求:现场操作及运行效果验收。要求程序必须上机编译通过并且正确运行。给出试验报告。给出平衡排序二叉树实现的多重集合和用哈希实现的多重集合的性能比较。

实验

八、图论

一、实验类别:设计型实验。

二、问题描述:实现图论中的各种算法。

1)最小代价生成树的Krscal 算法和Prim算法。2)单源点的最短路径的Dijstra 算法。3)深度优先遍历与广度优先遍历。4)拓扑排序

5)求所有节点之间的最短路径Floyd算法

(在这五个小题中只要选作一个即可。)

三、实验目的:学习根据不同的运算来选取不同的存储结构。

四、实验学时:2小时

五、实验组人数:3人。

六、实验设备环境:计算机。

七、实验原理及要点(知识点):图论中的各种算法及其复杂度。根据不同的操作来决定图的存储结构。

八、实验内容和要求:至少实现上面五个小题目中的一个。从文件中读入一个图的信息。

九、可研究与探索的问题:高级数据结构如堆、并查集在图论算法中的应用。

十、验收及实验报告要求:现场操作及运行效果验收。要求程序必须上机编译通过并且正确运行。给出试验报告。给出在均匀的随机分布下,平衡排序二叉树与一般排序二叉树的性能比较。

实验

九、内部排序性能的比较

一、实验类别:设计型实验。

二、问题描述:随机生成一组整数p0,p1,…pn-1。对这组数据进行排序。

三、实验目的:比较不同排序算法的性能。

四、实验学时:2小时

五、实验组人数:3人。

六、实验设备环境:计算机。

七、实验原理及要点(知识点):各种内部排序算法。

八、实验内容和要求: 1)实现插入排序,选择排序,希尔排序,堆排序以及快速排序。2)快速排序的多种版本。3)对单链表实现归并排序。4)基数排序。

5)对小型问题(n = 10)、中型问题(n = 1000)以及大型问题(n = 1百万)分别统计不同排序算法的键值比较次数、键值移动次数以及程序运行时间。

26)排序算法的时间复杂度可以有O(n)和 O(n log n)。对相同复杂度的算法,给出他们运行时间与时间复杂度的比值。

九、可研究与探索的问题:研究快速排序算法的不同改进方法。自省排序算法。只需要移动而不需要交换的快速排序方法。

十、验收及实验报告要求:现场操作及运行效果验收。要求程序必须上机编译通过并且正确运行。给出试验报告。给出在均匀的随机分布下,对大中小问题的最快的排序算法。

教材及主要参考文献

[1] 严蔚敏、吴伟民,数据结构习题集,清华大学出版社,1999年

[2] John R.Hubbard, Data Structures with C++, China Machine Press, 2002.[3] Mark Allen Weiss, Data Structures and Problem Solving Using C++, 2ed, 清华大学出版社。2004年。[4] Robert Sedgewick,Algorithms in C Part 1 – 4: Fundamentals, Data Structures, Sorting, rdSearching, 3, 中国电力出版社,2003年。

上一篇:协议书银行开户协议书下一篇:天上人间勿相忘作文500字