您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 软件技术基础实验指导书
《软件技术基础》实验指导书班级姓名1实验一、二叉树遍历的程序编制二叉树是一种典型、应用非常广泛的数据结构。设置本实验可以使学生进一步加强对二叉树遍历算法的理解。一、实验目的:1.理解二叉树在计算机中存储的物理结构。2.掌握二叉树遍历算法。二、实验要求任意输入一棵二叉树,根据二叉树前序、中序和后遍历算法,分别输出遍历结果。三、实验设备1.计算机系统2.安装TurboC或其他C语言集成开发工具四、实验原理1、前序遍历原理:先访问根,再访问左子树,最后访问右子树,依次递归遍历树的所有节点。2、中序遍历原理:先访问左子树,再访问根,最后访问右子树,依次递归遍历树的所有节点。3、中序遍历原理:先访问右子树,再访问根,最后访问左子树,依次递归遍历树的所有节点。4、例子ABCEDEFGH前序遍历:ABDEGHCF中序遍历:DBGEHACF后序遍历:DGHEBFCA24、编程基本要领1)前序遍历voidpreorder(t)bitree*t;{if(t){printf(“\t%c\n”,t-data);preorder(t-lchild);preorder(t-rlchild);}}2)中序遍历voidinorder(t)bitree*t;{if(t){inorder(t-lchild);printf(“\t%c\n”,t-data);inorder(t-rchild);}}32)后序遍历voidpostorder(t)bitree*t;{if(t){postorder(t-lchild);postorder(t-rchild);printf(“\t%c\n”,t-data);}}五、实验步骤1、在C语言集成开发工具的编辑器中输入源程序2、利用编译器编译源程序3、连接生成执行文件4、执行程序4实验二、单向链表插入与删除的程序编制单向链表是一种典型、应用非常广泛的数据结构,对其插入与删除算法较为复杂。设置本实验可以使学生进一步加强对单向链表插入与删除算法的理解。一、实验目的:1、理解单向链表在计算机中存储的物理结构。2、掌握单向链表插入与删除算法。二、实验要求任意输入单向链表,根据单向链表插入与删除算法,输出插入与删除后的结果。三、实验设备3.计算机系统4.安装TurboC或其他C语言集成开发工具四、实验原理1、前插原理2、删除原理xheadqpsXpheadr=p-nextp-next=r-nextfree(r)rXX5六、实验步骤1、在C语言集成开发工具的编辑器中输入源程序2、利用编译器编译源程序3、连接生成执行文件4、执行程序6实验三数据库管理系统综合应用-------零件交易中心管理系统(例)一、实验目的:通过完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步了解和掌握数据库这一章所讲解的内容。二、实验简述:零件交易管理系统主要提供顾客和供应商之间完成零件交易的功能,其中包括供应商信息、顾客信息以及零件信息。供应商信息包括供应商号、供应商名、地址、电话、简介;顾客信息包括顾客号、顾客名、地址、电话;零件信息包括零件号、零件名、重量、颜色、简介等。此系统可以让供应商增加、删除和修改所提供的零件产品,还可以让顾客增加、删除和修改所需求的零件。交易可以利用顾客提出的需求信息和供应商提出的供应信息来提出交易的建议,由供应商和顾客进行确认后即完成这笔交易。三、实验设备1、安装SQLServer的服务器系统2、安装了SQLServer客户端的计算机系统3、由服务器与客户端的计算机系统所构成的计算机网络三、实验要求:完成该系统的数据库设计;用SQL实现数据库的设计,并在SQLServer上调试通过。四、实验步骤与参考答案:1、需求分析1.1供应商供应商的操作流程图如图A.1所示。注册注销增加供应项修改供应项删除供应项修改个人信息图A.1供应商操作分类表71.2顾客顾客的地位和供应商几乎是对称的,所以功能分类上也很相似。顾客的操作流程图如图A.2所示。注册注销增加需求项修改需求项删除需求项修改个人信息图A.2顾客操作分类表1.3交易员交易员的工作就是提出交易和完成交易。这里需要仔细考虑的问题是:一个交易如何产生,并如何达成,可以用图A.3来说明这个问题。供应商提出顾客提出交易申请交易员提出交易申请图A.3交易流程协议书草案供应商以及顾客签字正式协议书交易员签发完成交易我们在处理交易的时候可能面临如下问题:(1)一个交易只能在交易双方都同意的情况下才可以进行,所以数据库中的供求信息只能作为达成某个交易的基础;(2)交易的双方可能不同时使用这个系统,因此需要系统提供一个双方交换信息的方式;(3)系统需要提供一种方便系统(交易员)向用户提出建议来促成交易的途径,并在保证数据库完整性的情况下达成交易。2、概念模型设计数据库需要表述的信息有以下几种:(1)零件信息(2)供应商信息(3)顾客信息(4)供应商和零件之间的联系(供应)(5)顾客和零件之间的联系(求购)(6)交易(三元联系)8可以用E—R模型表述该模型的设计,E—R图如图A.4所示。零件供应商顾客交易供应求购颜色零件号零件名重量简介数量价格数量价格价格数量简介供应商号地址电话供应商名电话地址顾客名顾客号图A.4E-R模型3、逻辑设计通过E—R模型到关系模型的转化,可以得到如下关系模式:(1)Part(ID,Color,Name,Weight,Intro)(2)Provider(ID,Name,Address,Tel,Intro)(3)Customer(ID,Name,Address,Tel)(4)Supply(PartID,ProviderID,Price,Quantity)(5)OfferToBuy(CustomerID,PartID,Price,Quantity)(6)Business(CustometID,ProviderID,PartID,Price,Quantity)每个关系模式的键码都用下划线标出。同时,对于从联系导出的关系Supply(供应),OfferToBuy(求购)和Business(交易),使用与之联系的实体集的键码作为自己的键码,必须符合外键码约束。对于Customer(顾客),Provider(供应商)和Part(零件)之间,不存在直接的约束,所以可以存在没有供应商供应同时也没有顾客求购的零件。4、物理设计为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引。下面是各表中建立索引的表项:(1)Part(ID)(2)Provider(ID)(3)Customer(ID)(4)Supply(PartID,ProviderID)(5)OfferToBuy(CustomerID,PartID)(6)Business(CustometID,ProviderID)5、用SQL实现设计实现该设计的环境为Windows2000Professinal+MSSQLServer7.05.1建立Part表createtablePart(IDsmallintIDENTITY(1,1)PRIMARYKEYCLUSTERED,Colorvarchar(20),Namevarchar(20)NOTNULL,weightintDEFAULT0,Introtext);5.2建立Provider表9createtableProvider(IDsmallintIDENTITY(1,1)PRIMARYKEYCLUSTERED,Namevarchar(20)NOTNULL,passwordvarchar(8)NOTNULL,Addressvarchar(30),Telvarchar(20),Introtext);5.3建立Customer表createtableCustomer(IDsmallintIDENTITY(1,1)PRIMARYKEYCLUSTERED,Namevarchar(20)NOTNULL,Addressvarchar(30),Telvarchar(20));5.4建立Supply表createtableSupply(PartIDsmallint,ProviderIDsmallint,Priceint,Quantityint,CONSTRAINTPK_SUPPLYPRIMARYKEYCLUSTERED(PartID,ProviderID),CONSTRAINTFK_SUPPLY_PARTIDFOREIGNKEY(PartID)REFERENCESPart(ID),CONSTRAINTFK_SUPPLY_PROVIDERIDFOREIGNKEY(ProviderID)REFERENCESProvider(ID));5.5建立OfferToBuy表createtableOfferToBuy(CustomertIDsmallint,PartIDsmallint,Priceint,Quantityint,CONSTRAINTPK_OFFERTOBUYPRIMARYKEYCLUSTERED(CustomerID,PartID),CONSTRAINTFK_OFFERTOBUY_CUSTOMERIDFOREIGNKEY(CustomerID)REFERENCESCustomer(ID),CONSTRAINTFK_OFFERTOBUY_PARTIDFOREIGNKEY(PartID)REFERENCESPart(ID));5.6建立Business表createtableBusiness(CustomertIDsmallint,ProviderIDsmallint,PartIDsmallint,Priceint,Quantityint,CONSTRAINTPK_BUSINESSPRIMARYKEYCLUSTERED(CustomerID,ProviderID,PartID),CONSTRAINTFK_BUSINESS_CUSTOMERIDFOREIGNKEY(CustomerID)REFERENCESCustomer(ID),CONSTRAINTFK_BUSINESS_PROVIDERIDFOREIGNKEY(ProviderID)REFERENCESProvider(ID),CONSTRAINTFK_BUSINESS_PARTIDFOREIGNKEY(PartID)REFERENCESPart(ID));5.7供应商操作(1)注册(register)INSERTINTOProvider(Name,Address,Tel,Intro)VALUES(#Name,#Address,#Tel,#Intro)在登记操作后,供应商得到一个唯一的ID,可以根据这个ID来查询和修改供应商的数据。10(2)注销(unregister)DELETEProviderWHERE(ID=#ID)(3)修改个人信息(update)UPDATEProviderSet(Name=#Name,Address=#Address,Tel=#Tel,Intro=#Intro)WHERE(ID=#ID)(4)增加供应项(add_supply_item)INSERTINTOSupply(PartID,ProviderID,Price,Quantity)VALUES(#PartID,#ProviderID,#Price,#Quantuty)(5)删除供应项(delete_supply_item)DELETESupplyWHERE(PartID=#PartIDANDProviderID=#ProviderID)(6)修改供应项(update_supply_item)UPDATESupplySet(Price=#Price,Quantity=#Quantity)WHERE(PartID=#PartIDANDProviderID=#ProviderID)很明显,系统并没有提供面向供应商修改零件信息的接口,所以供应商提供的零件必须已知在零件表中存在;可以这样假设,交易所的管理员负责更新零件信息,而
本文标题:软件技术基础实验指导书
链接地址:https://www.777doc.com/doc-4144907 .html