软件技术基础实验指导书
Java实验指导书
Java程序设计实验指导书课程号:适用专业:计算机相关专业制定人:龙艳彬教研室:计算机科学与技术教研室电子信息工程学院2012 年8 月前言一、上机实验目的上机实验的目的是提高学生的分析问题、解决问题的能力和动手能力,通过实践环节理解Java语言的基本结构和程序设计方法。
通过亲手编程掌握Java 语言编程的方法。
二、实验基本内容为了使学生在上机实验时目标明确,本实验指导书针对课程内容编写了8 个实验。
学生可以在课内机时先完成指导书中给出的程序,理解所学的知识,在此基础上再编写其他应用程序。
指导书中的8 个实验如下:1.Java 程序运行环境的下载、安装与配置。
2.Java 基本语法的编程练习。
3.面向对象编程练习。
4.Java 包、接口和异常处理的练习。
5.常用系统类的练习。
6.窗口与菜单界面编程练习。
7.Java 多线程、图形与多媒体处理练习。
8.综合应用练习。
三、实验任务与时间安排《Java 语言》是一门实践性很强的课程,除了在课内安排的实验外,鼓励同学在课外用相关技术进行编程练习。
《Java 语言》上机实验时间为32学时,与教学内容同时进行上机实验。
32个上机学时分为7个实验和1个综合上机实验。
实验要求一、可读性一个好的程序要具备可读性,可方便自己也可方便别人。
所以,要培养一个良好的编程习惯,可注意以下几方面:1.代码的缩进;2.有效使用空格;3.简明的注释;4.意义明确的命名;5.着重表示的常量。
二、亲手编写源程序在编写Java 程序过程中,还可以利用一些可视化的开发工具,它们可以综合使用Java 的编译器和调试器等,例如Symantec 公司的Visual Café、Kawa、Sun 公司的Java Worshop 和Java Studio、Inprise 公司的JBuilder、微软的Visual J++等,使用编程开发工具可以加快编程的速度。
但在初始学习时还是最好亲手编写源程序,以便理解类和编程思想。
《软件开发架构平台技术》实验指导书
《软件开发架构平台技术》课程实验指导书编写宋铁中南大学软件学院2013年8月实验一用AJAX改进用户体验一、实验目的熟悉AJAX相关技术,掌握异步交互的通信方式,熟练使用JavaScript以及CSS等客户端技术,熟练掌握XMLHttpRequest对象的使用,掌握用AJAX技术改善Web应用的用户体验。
二、实验内容AJAX开发。
在JSP/Servlet实现的JPetStore项目基础上,在表单验证、表单输入、订单更新等环节增加AJAX技术,改善项目的用户体验。
任务一:账号管理模块。
在新建账号和修改账号信息页面上用AJAX技术进行表单验证。
任务二:查询商品模块。
在主页面右上角的查询商品功能中添加自动补全功能。
任务三:商品展示模块。
在首页展示商品的图片上添加AJAX效果,即当鼠标移到某个商品图片上时,用悬浮窗展示该类型商品的信息。
三、实验要求1.熟练使用JavaScript+CSS进行客户端编程;2.熟练XMLHttpRequest对象与服务器异步交互;3.熟练使用AJAX技术改善Web应用的用户体验。
四、实验步骤1.将之前用JSP/Servlet完成的JPetStore项目部署并配置运行;2.用AJAX改善登录的用户体验。
五、实验报告要求1.简要列举项目应用了AJAX技术的功能模块以及有无使用框架。
2.说明应用AJAX技术的理由、具体实现方法和核心源代码。
3.应用了AJAX技术之后的效果截图4.打包提交所有源代码。
5.每个小组提交一份实验报告,在报告末尾列举小组成员分工。
附录(JPetStore相关说明):1.JPetStore功能需求说明宠物店(Pet Store)是迄今为止最著名的一个学习Java Web编程和应用开发的经典入门案例。
宠物店软件有多个版本,包括原来Sun的Java Pet Store、iBATIS JPetStore(ClintonBegin)和Spring JPetStore(Juergen Hoeller)等等。
《软件技术基础》实验指导书_实验三、四
《软件技术基础》实验指导书电子商务教研室2009年9月实验三队列的应用◆实验目的与基本要求1、掌握队列的顺序存储和链式存储结构。
2、掌握队列的特点。
3、掌握队列的基本运算。
◆实验条件1、硬件:一台微机2、软件:操作系统和C语言系统◆实验方法确定存储结构后,上机调试实现队列的基本运算。
◆实验内容1、写出队列的出队和入队算法。
2、设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚,依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已停放n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。
每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆次序。
编制一个程序模拟该停车场的管理。
◆性质:必做◆类型:验证◆2h队列是从日常排队现象抽象出来的一种数学模型。
当然数据结构中的队列远没有生活中的排队灵活。
数据结构中的队列规定:数据只能从队尾进,从队首出来。
已经进入队列的数据次序不能再做改变。
这就叫做“先进先出”(FIFO)或者说“后进后出”(LILO)。
允许插入的一端称为队尾,通常用一个称为尾指针(rear)的指针指向队尾元素,即尾指针总是指向最后被插入的元素;允许删除的一端称为队首,通常也用一个队首指针(front)指向队首元素的前一个位置(当然也可以直接指向队首元素,只是许多数据结构的书上都习惯这么定义)。
与队列类似,我们可以用一维数组来模拟队列这种数据结构,也可以用链表来模拟。
根据以上描述,队列可以可以有以下基本操作:1、创建初始化:按约定置队列为空状态。
《软件工程导论》实验指导书(2013版)
朱建凯何海江汪祥毛伟编《软件工程(导论)》实验指导书长沙学院计算机科学与技术系2013年9月前言《软件工程(导论)》是计算机类本科专业的重要专业基础课程,它是指导计算机软件开发和维护的一门科学,包含技术和管理两方面内容,是技术与管理紧密结合所形成的工程学科。
同时软件工程对实践经验要求非常高的,中间的很多经验都需要在实践中去体会和认识。
该实验指导书内容是在指导08、09、10三届学生的实验课程中不断总结完善,并按照2011版计科专业和软件工程专业的培养方案以及实验(实训)大纲重新对内容进行了组织和编排。
整个实验按照六个实验来设计,全部完成需要32学时,在具体的教学过程中,可以灵活调整。
在这六个实验中,全部以一个航空售票点售票软件的程序设计作为主线来贯穿全部设计过程,按照软件项目开发的自然过程安排实验(实训),首先从需求分析、再到系统分析设计、编码和单元测试,其中顾及到结构化程序设计方法和面向对象程序设计方法,在需求建模和程序设计方面安排学生分别用这两个方法对这个开发任务分析和设计各进行了一次。
通过这六个实验,基本了解和熟悉软件工程管理的几个主要过程,达到熟悉教材,理会软件工程管理理论的目的。
该实验指导书是根据2011版计算机科学与技术专业培养方案对《软件工程》课程的教学要求,以及软件工程专业培养方案对《软件工程导论实训》课程的要求编写的实验指导书,其中计科专业实验课时数是20学时,软工专业实训课时是32学时,因此本指导书只能按照32学时来设计,计科专业采用本实验指导书时必须适当调整内容。
计算机专业实验室从2013年下学期开始所有的实验(实训)课程都不再提交纸质的实验报告而全部在网络实验平台上提交实验报告。
报告的网址是:http://218.196.43.18:8888/login.aspx。
特别请同学们注意,每个实验之后都必须由指导教师现场在计算机上检查打分并录入系统之后,学生才能提交实验报告,然后老师再综合实验报告和现场检查的打分给每个实验项目打分。
Java实训指导书
Java程序设计实训指导书西京学院前言Java程序设计适用专业包括软件技术、计算机应用技术、计算机网络技术、软件技术(软件测试)、电子商务专业等专业。
通过实训使学生加深对JA V A基本理论知识的理解,巩固课堂教学内容。
以培养学生的实际操作能力为基本目标,学生经过一学期的系统训练后,能基本掌握Java语言的编程思想,能独立编写Java程序,并为后续课程的学习打下良好的基础。
目录实训一简单Java程序调试 (1)实训二 Java语言基础 (3)实训三分支语句 (8)实训四循环语句 (10)实训五数组 (12)实训六类与对象 (14)实训一简单Java程序调试一、实训目的1.掌握下载和安装JDK开发工具的方法。
2.熟悉JDK开发工具的使用。
3.学习编写简单的Java Application和Java Applet程序。
4.了解Java程序的基本组成结构;5.了解Java 语言的概貌、了解Java源代码、字节码文件、掌握Java程序的编辑、编译和运行过程。
6.为学习Java 语言和进行Java 程序的实验做好准备工作。
二、实训内容编写简单的Java Application和Java Applet程序,编译并运行这两个程序。
三、实训学时(4学时)四、实训步骤1.下载,安装JDK下载地址为JA V A官方站点:。
在这里我们也提供了JDK1.4.2的下载。
在Windows下,直接运行.exe文件,安装到一个目录,这里用C:\j2sdk1.4.2\作为例子。
安装完毕后,打开系统属性窗口,点“高级”,然后点击“环境变量”按钮,显示如下窗口:在系统变量这一栏里选定Path,然后点“编辑”按钮,在弹出的对话框1加入;C:\j2sdk1.4.2\bin,安确定退出,并重新启动计算机。
2.测试环境(1)用文本编辑器写一个简单的java程序:public class HelloWorld {public static void main(String args[]) {System.out.println("Hello World!");}}这个例子的功能就是显示“Hello World”。
《软件设计与体系结构》实验指导书
《软件设计与体系结构》实验指导书软件工程教研室前言软件设计与体系结构课程是计算机科学与技术专业(软件工程方向)的一门重要的专业课。
通过本课程的学习,使学生在已有的计算机软硬件基础知识、程序设计知识、数据库和计算机网络知识基础上,系统掌握软件设计的基本方法,并具有针对特定环境下的应用问题进行软件系统开发(包括系统分析,设计与实现)的能力。
通过学习本课程学生可以理解和掌握软件设计与体系结构的分析和设计方法,掌握面向对象系统分析和设计的UML标准建模语言,能够利用Rational Rose软件以某一信息系统为例进行系统分析和设计。
本实验主要包括:系统原理的基本概念、系统开发过程RUP、面向对象分析和面向对象设计的方法、面向对象分析和设计的UML标准建模语言等内容。
通过本课程的学习,学生掌握的知识、内容及掌握的程度要求为:1. 使学生理解面向对象的信息系统的开发过程、系统分析和设计的原则和方法;2. 使学生掌握UML语言的基础知识,以及UML在面向对象的软件系统分析和设计中的应用,并能使用UML工具建立系统模型;3. 使学生掌握在UML系统模型下应用高级语言建立应用系统的方法;4. 通过案例教学和实验,提高学生在应用面向对象技术开发软件方面的动手能力和解决问题的能力,并鼓励创新。
本实验所要求的建模工具为Rational Rose 7.5。
实验要求计算机软件建模技术现在越来越广泛的应用于软件工程、软件体系结构中。
本课程实验的目的是为了使学生在课程理论学习的同时,通过在一个实践的环境下,实际学习软件统一建模语言,对软件建模技术有一个初步的了解及认识。
通过本指导书中的各个实验,学习掌握对一般面向对象系统建模的方法与技术。
总之,通过实验环节,使学生加深了解和更好地掌握《软件设计与体系结构》课程教学大纲要求的内容。
在《软件设计与体系结构》的课程实验过程中,要求学生做到:(1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的问题提前做出思考和分析。
软件工程实验(共五次)
软件工程课程实验指导书软件工程是随着计算机系统的发展而逐步形成的计算机科学领域中的一门新兴学科。
通过软件工程课程的学习,能够达到正确的安排软件的结构,合理组织、管理软件的生产的教学目的。
教学的实践环节是本课程的重要部分,通过实验例证理解掌握软件工程各阶段的任务和完成后的文档是什么及完成方法。
本课程实验环节安排10学时,主要完成需求分析、模块设计、数据库设计、详细设计和测试分析六个部分。
具体安排如下:课时分配:内容实验一实验二实验三实验四实验五课时 2 2 2 2 2实验一编写系统需求说明书一、实验题目对系统进行需求分析。
并编写系统需求分析说明书。
二、实验目的通过对选定系统进行系统分析和编写需求说明书,掌握系统需求分析的步骤和方法,明确需求说明书内容和格式。
通过对visio2003的熟悉应用,把系统的逻辑模型画出来。
三、预习1、系统的数据描述、功能描述方法;2、需求分析工具(业务流程图、数据流图、数据字典);3、系统需求分析步骤和内容;四、实验设备与环境1、运行和使用visio2003;2、收集整理资料的资料室和虚拟用户或实际用户。
五、实验内容选定系统后,进行系统分析,然后按如下编写提示撰写需求说明书。
1、引言⑴编写目的说明编写软件需求说明的目的,指出预期的读者。
⑵背景说明说明待开发的软件系统的名称;本项目的任务提出者、开发者、用户及实现该软件的计算机中心或网络中心;该软件系统同其他系统或其他机构的基本的相互来往关系。
⑶定义列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
⑷参考资料列出有关的参考资料及资料的来源。
2、任务概述⑴目标叙述该软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。
解释被开发软件与其他有关软件之间的关系。
如果本系统是一项独立的软件,而且全部内容自含,则说明这一点。
如果所定义的系统是一个更大的系统的组成部分,则应说明本系统与该系统中其他各组成部分的关系,用方框图来说明该系统的组成和本系统同其他各个部分的联系和接口。
计算机软件技术基础_实验指导书
《计算机软件技术基础》实验指导书编写:XXX适用专业:电器工程与自动化通讯工程电子信息工程安徽建筑工业学院电子与信息工程学院2007年9月实验一:线性链表的建立、查找、插入、删除实验实验学时:2实验类型:验证实验要求:必修一、实验目的通过本实验的学习,要求学生能够通过单链表的存储结构,掌握单链表的基本操作,包括单链表的建立、查找、插入、删除、输出等操作。
通过本实验可以巩固学生所学的线性表知识,提高编程能力,为后继课程的学习奠定基础。
二、实验内容1、为线性表{10,30,20,50,40,70,60,90,80,100}创建一个带头结点的单链表;2、在该链表上查找值为50,65的结点,并返回查找结果(找到:返回在县新链表中的位置);3、在该链表上值为50的结点后,插入一个值为120的结点;4、删除该链表上值为70的结点。
写出各操作的实现函数,并上机验证。
三、实验原理、方法和手段使用带头结点的单链表的表示线性表,通过实验,熟悉链表的创建、查找、插入、删除、输出等是链表的基本操作。
具体如下:(1)首先定义单链表的节点结构;(2)在单链表创建过程中,首先初始化一个带头结点的空链表,对线性表中的各元素依次通过键盘输入、建立该元素结点、插入到单链表中,实现单链表的创建过程;结点的插入有头插入和尾插入两种方法,采用不同方法时应注意元素的输入顺序。
(3)查找过程可以从头结点开始,将待查找的数据依次与每个结点的数据域比较,匹配及查找成功,弱链表访问完未找到匹配的元素,则查找不成功。
为能够返回查找成功的结点位置,在链表的搜索过程中,应设置一个计数器,记录搜索结点的序号;(4)插入结点时,首先要通过查找算法,找到带插入结点的前驱结点,然后为带插入元素建立结点,通过指针的修改,将结点插入。
(5)删除结点时,首先要通过查找算法,找到待删除结点的前驱,然后通过指针的修改,将待删除结点从链表中卸下,释放该结点。
(6)以上操作的正确性,均可以通过链表的输出结果来验证。
软件工具与应用实验指导书
软件工具与应用实验指导书一、实验平台VisualC++是Microsoft公司为开发Windows应用程序而创建的一种新的编程工具,它是生产效率最高的C++工具,用于创建性能最高的Windows应用程序和Web程序。
儿乎所有的世界级软件,从领先的Web浏览器到以任务为主的应用程序,都是用MiCrOSOflViSUaIC++开发系统创建的。
ViSUalC++6.0给C++带来了高水准的生产效率,并具有使用灵活、性能强大和控制简单等优点。
它的高性能及高度集成的开发环境,可使用户比从前更方便、快捷地创建、修改和调试WindOWS应用程序,而无需手工编制程序语句。
VisualC++6.0与以前的版本相比有了多方面的改进。
它的编译器、调试器、连接器、编辑器、资源编辑器都有所加强,在编辑器中还提供了自动语句生成功能,编辑器会像VisualBasic一样自动提示函数的参数、对象的成员。
另夕卜,VisualC++6.0还提供了很多向导。
MFC提供了一些新的类,提供了更强大的数据访问功能。
用户可利用ViSUalC++6.0以两种方式编写Win32应用程序,一种方式是基于WindowsAPI的编程方式,另一种是基于MFC的编程方式。
二、实习目的和要求软件工具与应用是一门实际技术课程,有很强的实践性。
通过实验教学环节,对学生进行实践技能和科学研究方法的训练,巩固其在课堂上所学书本知识,加深印象、熟练掌握。
实验中,一是理解使用ViSUalC++进行面向对象与可视化程序设计的基本原理和方法;二是掌握使用API函数进行可视化编程、使用MFC进行可视化编程和VisualC++高级编程的技能;三是锻炼对前后章节知识的综合运用的能力,逐步全面掌握面向对象与可视化编程技术,为实际的软件开发打下基础。
三、实验实验一:ViSlIaIC++基础及开发环境实验目的:让学生熟悉VisualC++开发环境。
实验内容和要求:通过上机实习熟悉ViSUalC++开发环境及其各个成分的使用方法:菜单、工具栏、项目工作区窗口、文档窗口、输出窗口。
《程序设计基础(C语言)》实验指导书
《程序设计基础(C语言)》目录第1 章概述 (1)1.1 课程简介 (1)1.2 实验环境选择 (1)第 2 章实验要求 (1)2.1 实验过程要求 (1)2.2 考核及评分标准 (1)第 3 章实验内容 (2)3.1 实验1 熟悉C语言运行环境 (2)3.2 实验2 数据类型 (3)3.3 实验3 运算符和表达式 (4)3.4 实验4 顺序结构及输入和输出 (6)3.5 实验5 选择结构 (7)3.6 实验6 循环结构 (9)3.7 实验7 数组(1) (11)3.8 实验8 数组(2) (12)3.9 实验9 字符串及其操作 (13)3.10 实验10 函数 (14)3.11 实验11 结构体 (15)3.12 实验12 指针 (16)第 1 章概述1.1 课程简介《程序设计基础(C语言)》是软件工程各专业或其它相近专业学生的公共职业基础课,是软件类各专业的入门课程,直接影响学生后继职业技术课程的学习及可持续发展能力的培养。
通过本书,学习基本的程序设计概念和程序设计方法,学会使用C语言解决实际问题,进行初级的程序设计。
1.2 实验环境选择VC++6.0第 2 章实验要求2.1 实验过程要求本课程中,实验者必须服从指导教师和实验室工作人员的安排,遵守纪律与实验制度,爱护设备及卫生。
在指定的实验时间内,必须到机房内实验,其余时间可自行设计和分析。
本课程所涉及的程序代码,都要求有较高的可读性和效率,多文件表示。
2.2 考核及评分标准若实验者在指定上机时间三次不到课,取消考核资格。
请假,必须提前出具正式假条,不接受事后假条。
如果发现抄袭、篡改、伪造实验数据,或实验报告和设计报告雷同,涉及的所有学生的该课程成绩计为0 分。
本课程采用结构化评分,主要由指导教师灵活处理,可以是考勤等。
第 3 章实验内容3.1 实验1 熟悉C语言运行环境一、实验目的1.了解什么是C语言2.熟悉C语言程序开发环境二、实验内容和步骤1.大学生涯的第一个程序1)运行Microsoft Visual Studio 2008或者VC6.02)创建项目,选择win32控制台应用程序或者空项目,项目名为MyFirstApp3)新建项目,选择C++源文件,文件名为HelloWorld4)在程序编辑窗口,输入如下代码#include <stdio.h>/* 主程序*/void main(){printf("hello world\n");}5)执行程序,Ctrl+F56)观察输出结果,并记录2.修改程序1)增加语句,观察输出结果是否不同printf("hello world\n");printf("world is me\n");2)删除输出字符串中的“\n”,观察输出结果是否不同printf("hello world\n");3)进行换行输出,观察输出结果是否不同printf("hello, ");printf("world");printf("\n");4)将上个程序块中的printf("\n");去掉,观察输出结果是否不同3.用自己的语言,描述下对C语言程序的第一印象4.简单描述下,第二步骤中,输出结果相同与不同的原因;以及“\n”的用途3.2 实验2 数据类型一、实验目的1.掌握变量的命名规则和定义2.掌握C语言程序中的各种数据类型并使用它们二、实验内容和步骤1.定义3个变量numInt、numFloat、charInfo,他们的类型分别为整型,单精度类型,字符型;并分别初始化为2,2.0和‘A’,最后输出这三个变量的值。
《软件工程》实验指导书
《软件工程》实验指导书计算机学院2017年2月软件工程实验指导前言软件工程实验是为计算机相关专业本科《软件工程》课程配套设置的,是《软件工程》课程讲授中一个重要的、不可或缺的实践环节。
其目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理、软件需求分析、软件初步设计、软件详细设计、软件测试等阶段的方法和技术,通过该课程设计使学生进一步理解和掌握软件开发模型、软件生命周期、软件过程等理论在软件项目开发过程中的意义和作用,培养学生按照软件工程的原理、方法、技术、标准和规范,进行软件开发的能力,培养学生的合作意识和团队精神,培养学生对技术文档的编写能力,从而使学生提高软件工程的综合能力,提高软件项目的管理能力。
按该课程的特点,实验内容包括软件开发的两大方法学的专题训练,即结构化(生命周期学)的方法学和面向对象的方法学,通过对一个简单项目,要求学生利用结构化软件开发技术或面向对象的软件开发技术完成对该项目的开发。
因此设置五个实验项目,从项目发的准备工作,系统分析过程,系统设计过程,软件测试到系统实施,覆盖软件开发的整个过程,此外又引入我国国家《计算机开发规范》,以规范技术文档的书写标准,提高实验教学质量。
通过实验训练,达到如下目的:使学生进一步了解和掌握软件工程原理,提高对实际项目的分析和设计能力,通过实验课程,熟悉和基本掌握软件工程方法学、软件开发的过程,文档资料的编写格式及规范,全面领会和贯通所学习的理论知识,从而培养学生综合运用所学课程知识,分析解决问题的能力,培养学生理论联系实际作风,实事求是,严肃认真的科学态度和良好的工作作风,为今后从事科学研究工作打下基础。
实验要求软件工程实验具体要求如下:每个项目小组必须按照《软件工程实验指导书》附录中给定的文档规范标准提供项目文档;题目自定或采用附录二中的题目;软件开发的方法自定(结构化或面向对象的方法学)。
实验一用Visio进行功能分析和建模1. 实验目的掌握结构化分析的方法。
软件技术基础实验教学大纲.doc
《软件技术基础》实验教学大纲一、实验课程性质软件技术基础是工科非计算机类专业的一门技术基础课,涉及计算机操作系统、数据结构、数据库技术和软件工程四门课程的经典内容。
先行课程是计算机文化基础、程序设计语言。
二、实验教学目的从应用和实践的角度出发,使学生对本课程讲述的算法和程序有更深刻的理解,并能进行各类程序和算法的编制及上机调试,为进一步提高学生的动手和实践能力打下基础。
三、实验教学内容该课程内容包括数据结构、操作系统、软件工程和数据库技术。
包括下面实验:实验一线性表和队列的应用实验二排序与查找实验三进程调度实验四SQL的使用实验五综合课程设计四、实验总学时数30学时。
五、实验教学方式本课程实验采用编写程序并在计算机上调试进行的方式进行。
实验前学生必须编写相应的程序,禁止无准备上机。
实验时先由指导教师简要讲解实验目的、实验要求、实验内容、上机操作注意事项以及程序调试的方法等,然后学生在教师指导下自已动手做实验。
实验结束后,学生必须书写实验报告。
实验报告应包括实验者班级、学号和姓名、实验名称、实验目的、实验内容、实验步骤、程序框图和源程序(包括算法的主要思想、主要数据结构算法的基本实现),调试过程,实验结果和讨论。
六、面向专业电子信息工程专业。
七、实验项目及教学安排序号实验项目名称基本内容实验学时每组人数实验要求实验类型1线性表和队列的应用掌握线性表、队列的基本操作51必做验证性操作性2排序与查找熟练几种常用的排序与查找方法51必做验证性操作性3进程调度设计并实现进程调度功能61必做验证型操作性4SQL的使用掌握SQL语句的使用41必做验证型操作性5综合课程设计选择适当规模的设计问题,采用结构化或面向对象的方法设计一个数据库应用项目,完成整个分析设计过程。
101必做设计性八、考核方式、方法及实验成绩评定方法实验成绩采用百分制。
实验考核方式采用实作与实验报告综合评定相结合的考试方式,以反映学生实际实验操作和动手能力。
《软件技术基础》实验教学系统研究与设计
教 学 系统 , 提 高 教 学 手段 , 实 现 实 验 教 学 的
改革 。
1 实验 教学面 临的主要问题
随 着 科 学 技 术 的 发 展 和 对 教 学 效 果 要 求的提高 , 本课 程 的 实 验 教 学 仍 有 亟 待 改 进之处, 主要包括 : ( 1 ) 由于 该课 的 实验 教 学 历年 来 未 有大 的变革 , 常 规 的 授 课 方 法 难 以 有 效 地 展示 实验中数据结 构和算法的 抽象性 、 瞬 间 动 态特 性 、 算 法 的 运 行 和分 析 过 程 , 使得理 论 基 础
知识难以理解 。 ( 2 ) 上机学时少 , 学 生 只 侧 重 于 对 实 验 指导书列 出的程序进行验 证实验 , 缺 乏 足
够的程序设计和 调试方面 的练 习, 没 有 真 正掌握程序设计 的方法和 编程技巧 , 从而 无 法 体 会 到 该 门 课 程 的重 要 性 和 实 用 性 。
调试 , 运 行 结 果及 算 法 分 析 等 实 验教 学 活 模 块 实 验 目录 界 面 , 通 过 退 出按 钮 退 出 整 数 据 处 理 模块 主 要 包 括 排 序 动。 学 生 用 户 登录 后 可 针 对 某 一 特 定 实 验 个 实验 系统 。 项 目进 行 程 序 编 写 , 调试 , 仿真 , 观 察 和 分 和 查 找 算 法 的 验 证 型 实 验 项 目 。 排 序 主 要 析 实验 结 果 等 实验 活 动 。 通 过 实 际应 用 该 是 插 入 、 选择 、 交 换 和 归并 排 序 t 查 找 主 要 实验教 学系统取得 了较好的授课效果 , 并 是 线 性 表 的顺 序 、 折半、 分块 查 找 和 二 叉排 根据学 生 、 教 师使 用 后 反 馈 结 果 来 不 断 完 序 树 的 查找 。 授课时 , 教 师 可 以对 查 找 和 排 序 相 关 算 法 的 运 行过 程 进 行 动 态 演 示 和算 善 系统 功 能 。 并能 够 指 导 学 生调 用 C 语 言 编 写的 本 系 统 实 验 内容 主要 包 括 数 据结 构 实 法 分 析 , 验、 数 据 处 理 实验 和 综 合 实 验 三大 模 块 , 各 后 台源 程 序 , 进行程序调试和验证练 习。 个 模 块 下 面 还 可 根 据 实 验教 学 内容 要 求再 综合实验 主要 由选题 、 设 计 和 提 交 三 细分 , 系统 结 构 如 图 l 所示。 部 分组 成 。 学 生 可 以 通 过选 择 某 个 综 合 实 数据 结 构 模块 主 要 包 括 线 性 表 、 栈、 队 验 项 目 , 查 看 其 设 计 任务 书 , 进行 “ 审题” 一 列、 树 和 图 等数 据 结 构 的 验证 型实 验 项 目。 “ 分析 ” 一“ 解决” 一“ 最 后 程序 实 现 ” 一“ 调 整 个过 程 的 锻 炼 。 最后 , 可 以 从设 计 方 实验授课时 , 针 对某 一 数 据 结 构 , 教师 边 讲 试 ” 程 序 代码 和 程 序 运 行结 果 这 三 方 面 进 解边操 作演示 , 对 难 以 理 解 的 重 要 知 识 点 案 教 师根 据 学 生 提 交 的 设 通过简单 的动画生动 直观进行讲解 , 使 变 行 设 计 内容 提 交 。 给定分数。 得 明了 易 懂 , 将数 据 结 构 的算 法进 行 解 析 , 计 内容 进 行 批 阅 , 分 步 实 现 动 态 可视 化 。 在 上机 实验 过 程 中 , 本 实 验 系 统 能 够 供 学 生 课 外 反 复观 察 学 生 通 过 对 同 一 问题 的 不 同程 序 分 别 调试 体 会 , 增 强软 件 技 术 基 础 相 关 课 程 知 识 点 运行, 观 察 程 序 单 步 运行 时 的 变 化 情 况 , 进 的 理 解 和 应 用 能 力 。 在 课 外 时 间 进 行 综 合 缓 解 了课 内上 机 学 时 少 而总结 和分析各种算 法的优缺 点, 可 以 激 应 用 型 实 验 练 习 , 的矛盾 。 该 系 统 实 验 项 目从 调 整 教 学 内容 发 学 生 的 学 习积 极 性 , 提 高 学 习效 果 [ 2 ] 。 更侧 重 于 加 强 程 序 设 计 和 调 试 技 巧 单 链 表 结 点插 入 实 验 , 通 过 选 择 实 验 着 手 , 使 学 生 掌 握 程 序 设 计 的 基 项 目和 和 具 体 插 入 算 法 , 可 显 示 该 算 法 的 等 实 践 性 锻 炼 , 提 高学 生 编 程 技 巧 和 解 决 实 际 问 特定程序 代码 , 算 法 功 能框 中 显 示 所 选 择 本 思 想 , 算法详 细功能描述 , 动 画演 示 框 可 模 拟 出 题 的能 力 。 算法运行 结果 , 图 中还 设 置 了 一 些 程 序 运 行控制按 钮和实验控制按钮 。 运 行 控 制 按 3结语 钮可以设 定程序运行状态 , 观 察 程 序 的 整 总之 , 《 软件 技术基础 》 实 验 教学 系 统 个 执 行过 程时 , 可 选 择 全 速执 行 ; 观 察单 条 是 集 声音 、 图像 , 动 画和 文 字 为一 体 的 多媒 改善 了枯 燥 的教 学方 式 , 教 学 效 果 语句运行结果时, 可 以 选 择单 步执 行 ; 还 可 体 软 件 , 在演示过程 中进行暂停和停 止操作 。 实 验 直 观 形象 。 该 系 统 可 以对 抽 象 、 复 杂 的数 据 控制按钮 可对该实验过程 进行操作 , 点 击 结 构 和算 法 进 行 解 析 , 直观 、 动 态 的模 拟 程 实 验 按钮 可 对 实 验 项 目内容 、 代码 、 图 形等 序 运 算 过 程 , 对 学 生 理 解 和 掌 握 相 关 知 识 信息进行 修改 ; 可 通 过 上 一 页 和 下 一 页 来 起 到 了很 大 的 辅 助 作 用 , 提高 了教 学 质量 。 型 实 选择实验项 目; 还 可 通 过 返 回 按 钮 回 到 本 该 系 统还 能 供 学 生 课 外 进行 综 合 应 用 验练习, 着 重 挖 掘 学 生 的潜 能 , 培 养 学 生 创 新思维 , 使 学 生 从 被 动 应 付 实 验 转 变 为 主 动研究实验 , 促 进 学 生 的编 程 能 力 和 综 合 应用能力的全面提高 。
实验指导书-实验八:NS3基础仿真实验
计算机网络实验实验指导书实验名称NS3基础仿真实验一、实验目的1.了解网络仿真的意义2.熟悉NS-3的基本语句3.安装并熟悉使用NS-34.用NS-3搭建最基本的网络仿真场景二、实验背景(一)网络仿真技术近年来,随着计算机和网络通信技术的不断发展,网络技术的研究也进入到了一个飞速发展的时期。
研究人员不断开发出新的网络协议、算法和应用,以适应日益增长的网络通信需要。
然而由于网络的不可控、易变和不可预测等特性的存在,给新的网络方案的验证、分析和比较带来了极大的困难。
目前网络通信的研究一般分为以下3种方法。
1)分析方法:在理论和协议层面上对网络通信技术或系统进行研究分析,抽象出数学分析模型,利用数学分析模型对问题进行求解。
如采用数学建模、协议分析、状态机、集合论以及概率统计等对多种理论分析手段和方法对通信网络及其算法、协议、网络性能等各个方面进行研究。
2)网络模拟:即计算机模拟仿真算法。
网络模拟日益成为分析、研究、设计和改善网络性能的强大工具,它通过在计算机上建立一个虚拟的网络平台,来实现真实网络环境的模拟,网络技术研究人员在这个平台上不仅能对网络通信、网络设备、协议以及网络应用进行设计研究,还能对网络的性能进行分析和评价。
3)实验网方法:对网络协议、网络行为和网络性能采用建立实验室测试网络、网络测试平台(network testbed)和小规模商用实验网络的方式对网络进行实战检验。
就是设计出研究所需要的合理硬件和软件配置环境,建立测试床和实验室,在现实的网络上进行研究。
以上3种方法有利有弊,相辅相成并各有侧重点。
理论研究适用于早期研究与设计阶段,对新算法和新技术进行理论准备和验证,除了人力和知识,几乎不需要什么额外成本。
实验网方法是网络和系统在投入实际应用前的一次系统的演练,能够发现网络设计与用户需求之间的相合度以及检验网络实际使用的效用和性能。
该阶段建设成本很高,要求技术和设备开发相对成熟,网络系统基本成型,主要是对业务、系统稳定性能和服务性能的检验。
软件技术基础实验指导书(1)
软件技术基础实验指导书2014年9月1日目录实验一斐波那契数列的实现算法及分析 (3)实验二顺序表的实现与应用 (5)实验三链表的实现和应用 (7)实验四栈的实现和应用 (9)实验五队列 (11)实验六二叉树的创建和遍历 (12)实验七图 (15)实验八哈夫曼树及哈夫曼编码 (16)实验九查找算法的实现 (19)实验十内部排序算法的实现 (26)实验十一迷宫问题 (29)实验十二 B+树程序设计 (30)实验十三四叉树程序设计 (31)实验十四修路方案问题 (32)实验一斐波那契数列的实现算法及分析实验目的:1.掌握分别用递归和非递归方法计算斐波那契(Fibonacci)数列。
2.掌握算法性能测试的方法,并能进行算法分析和比较。
实验环境(硬/软件要求):Windows 2000, VisualC++ 6.0实验内容:二阶Fibonacci数列的定义如下:F0=1,F1=1, F2=2,F3=3,F4=5,。
,Fi=F(i-1)=F(i-2) (i>=1).试用递归法和非递归法两种方法写出计算Fn的函数。
实验要求:1.完成计算Fn的递归函数Fib-rec.2.完成计算Fn的非递归数列Fib-ite.3.当n=10,15,20,25,30,35,40,45时测试以上两种算法执行的时间,并把测试结果填写在附表1-1中。
附表1-1 测试表注:表格中填写的是测试时间,单位μm.4.试解释两种算法在执行时间上的不同,并对两种算法进行算法分析。
【C语言源程序】#include <stdio.h>#include <time.h>Long Fib-rec(int n){if(n==0||n==1)return(1);else return(Fib-rec(n-1) + Fib-rec(n-2) );}long Fib-ite(int n){long fib1,fib2,fib;int i;fib1=1;fib2=1;for (i=3;i<=n,i + + ){fib=fib1+fib2;fib1=fib2;fib2=fib;}return fib;}void main ( ){clock-t us1, us2;int n;printf(“请输入n:\n”);scanf(“%d,&n);us1=clock( );printf(“递归函数计算结果:%1d\n”,Fib-rec(n) ); us2=clock( );printf(“递归函数执行时间%1d毫秒\n”,us2-us1);us1=clock( );printf(“非递归函数计算结果:%1d\n”,Fib-ite(n) ); us2=clock( );printf(非递归函数执行时间%1d毫秒\n”,us2-us1);}实验二顺序表的实现与应用实验目的:1.掌握线性表的概念。
浅析软件技术基础课程的教学
第 4 第 2期 卷
Vo . o 2 14N .
读 与 写 毒 志
R e d nd W rt ro c l a a ie Pe i di a
2o o 7年 2月
F b u r 2 07 e r ay 0
浅析 软件技术 基础 课程 的教 学
师 指 导 实 验 的 劳 动 强 度 很 人 , 果 不 好 。“ 务 驱 动 ” 效 任 的教 学 模式 , 已越 来 越 广 泛 地 被 广 人 教 育 工 作 者 所 采 用 , 识及 技 知 能 的 传授 以完 成 典 型 “ 务 ” 主 , 在 计算 机 上 机 实 验 教 学 任 为 这
浙 江科技 学 院教育信 息技术 学 系 已经将 “ 务驱动 ” 任 模
式 与计 算 机 上 机 实 验 的特 点 进 行 有 机 地 整 合 , 究 开 发 了 一 研
套 以“ 任务 驱 动 ” 方式 进行 的计 算机 基础 课 实验 C I教 学 系 A 统, 有效 地改变 了传统 的实验 教学模 式 , 使得 实验任 务 明确 , 实验 效果不错 。我院采用 了 C语 言程 序设 计 C I系 统, 教 A 该 学系 统 的题 库采 用全 开放 的 W r o d文档 系统 及 帮助 系统 , 有
币 点 是 培 养 学 生 掌 握 程 序 设 计 的 的 基 础 课 程 ,应 当 如 何 引 导 学 生 突 破 传 统 的 思 维 方
中更 能体现 其优 点, 有利 于提高 学生利 用 计算机进 行 自主 学 爿和探索 的能力 。要使学 牛上机 实验 取得好 的效 果 , 设计 好 实验 任务 是关 键 , 它包 括任 务 的提 出 与分解 、 终达 到的 目 最
助 文件 中给出难 点提示及 必要 说明 , 由学 生 自行完成 课题 。 系统 吸取 了“ 任务 驱动 ” 学法 的特 点 , 任 务 驱动 ” 教 将“ 与计算机 实验 的特 点进行 有机地 整合 , 并应用 于 计算 机基础 课 程 的实 验教 学 , 生每次在 教师 事先有 目的地设定 好实验 学 任 务 驱动 的情 况下 , 为完 成一些 典 型“任务 ” 进行 实验 操 作 。
实验指导书-实验八:NS3基础仿真实验
计算机网络实验实验指导书实验名称NS3基础仿真实验一、实验目的1.了解网络仿真的意义2.熟悉NS-3的基本语句3.安装并熟悉使用NS-34.用NS-3搭建最基本的网络仿真场景二、实验背景(一)网络仿真技术近年来,随着计算机和网络通信技术的不断发展,网络技术的研究也进入到了一个飞速发展的时期。
研究人员不断开发出新的网络协议、算法和应用,以适应日益增长的网络通信需要。
然而由于网络的不可控、易变和不可预测等特性的存在,给新的网络方案的验证、分析和比较带来了极大的困难。
目前网络通信的研究一般分为以下3种方法。
1)分析方法:在理论和协议层面上对网络通信技术或系统进行研究分析,抽象出数学分析模型,利用数学分析模型对问题进行求解。
如采用数学建模、协议分析、状态机、集合论以及概率统计等对多种理论分析手段和方法对通信网络及其算法、协议、网络性能等各个方面进行研究。
2)网络模拟:即计算机模拟仿真算法。
网络模拟日益成为分析、研究、设计和改善网络性能的强大工具,它通过在计算机上建立一个虚拟的网络平台,来实现真实网络环境的模拟,网络技术研究人员在这个平台上不仅能对网络通信、网络设备、协议以及网络应用进行设计研究,还能对网络的性能进行分析和评价。
3)实验网方法:对网络协议、网络行为和网络性能采用建立实验室测试网络、网络测试平台(network testbed)和小规模商用实验网络的方式对网络进行实战检验。
就是设计出研究所需要的合理硬件和软件配置环境,建立测试床和实验室,在现实的网络上进行研究。
以上3种方法有利有弊,相辅相成并各有侧重点。
理论研究适用于早期研究与设计阶段,对新算法和新技术进行理论准备和验证,除了人力和知识,几乎不需要什么额外成本。
实验网方法是网络和系统在投入实际应用前的一次系统的演练,能够发现网络设计与用户需求之间的相合度以及检验网络实际使用的效用和性能。
该阶段建设成本很高,要求技术和设备开发相对成熟,网络系统基本成型,主要是对业务、系统稳定性能和服务性能的检验。
《软件工程》实验指导书(实验一)
实验1软件工程概念与相关工具1.1 软件工程的计算环境(实验估计时间:90 分钟)1.1.1 背景知识软件工程学主要研究如何以较少的代价获得高质量的软件,而要达到这个目的,就必须研究软件开发方法和软件开发工具。
软件开发方法就是开发软件的规范化方法。
软件工具是指能支持软件生存周期中某一阶段(如系统定义、需求分析、设计、编码、测试或维护等)的需要而使用的软件系统;软件开发环境则是面向软件整个生存周期,为支持各个阶段的需要,在基本硬件和宿主软件的基础上使用的一组软件系统。
软件工具和软件开发环境都是软件工程的重要支柱,对于提高软件生产率,改进软件质量,以及适应计算机技术的迅速发展有着越来越大的作用。
从20世纪70年代末开始,专家们就致力于软件开发自动化工具的研究,并逐步形成了应用于软件过程的集成的项目支撑环境(Integrated Project Support Environment)和计算机辅助软件工程(CASE,Computer-Aided Software Engineering)工具。
在此基础上建立集成式软件开发环境,全面支持软件开发过程,以期实现软件设计过程的自动化或半自动化。
1.1.2 实验目的1)理解软件工程的基本概念,熟悉软件、软件生存周期、软件生存周期过程和软件生存周期各阶段的定义和内容。
2)通过Internet 搜索与浏览,了解网络环境中主流的软件工程技术网站,掌握通过专业网站不断丰富软件工程最新知识的学习方法,尝试通过专业网站的辅助与支持来开展软件工程应用实践。
1.1.3 工具/准备工作在开始本实验之前,请预习教科书第一章的相关内容。
需要准备一台带有浏览器、能够访问因特网的计算机。
1.1.4 实验内容与步骤1)请查阅有关资料,给“软件”下一个权威性的定义:软件(中国大陆及香港用语,台湾作软体,英文:Software)是一系列按照特定顺序组织的计算机数据和指令的集合。
一般来讲软件被划分为编程语言、系统软件、应用软件和介于这两者之间的中间件。
实验报告 (1)c语言
main()
{
int a,b;
float x,y;
char c1,c2;
scanf(“a=%d,b=%d”,&a,&b);
scanf(“%f, %e”,&x,&y);
scanf(“%c %c”,&c1,&c2);
printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n”,a,b,x,y,c1,c2);
【作业】
1.参照例题,编写一个C程序,输出以下信息:
****************************
Hello,World!
***************************
2.编写一个C程序,输入a、b、c三个数,输出其中最大者。试想,如果求四个数中的最大者,则程序该如何编写。
(二)C语言的基础知识
scanf("%c",&c);//以字符的形式输入数字就是输入数字字符
a=c-'0';//将数字字符转换为数字或者a=c-48;
printf("a=%d",a);
}
数字和数字字符这是两个不同的概念,如:数字0和数字字符‘0’是不同的,因为他们的ASIIC码值不一样。
(三)一维数组
【目的与要求】
1.掌握一维数组的定义、赋值和输入输出的方法;
printf("Everyone has been waiting for.\n");
}
【例2】输入并运行程序,写出运行结果。
main()
{
int a,b,sum;
a=123;b=456;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一顺序表及其相关操作一、实验目的1.掌握线性表的逻辑结构及其特点,并理解物理结构与逻辑结构的关系2.掌握线性表的插入删除操作算法二、预习要求巩固结构体、函数、指针的应用(1)巩固C程序设计中结构体的定义与使用(2)练习指针函数的定义与应用三、实验原理1.顺序表的建立(1)建立一个长度为n的线性表L= (a0,a1,…,ai-1,ai,…a n-1),注意,在顺序表中,逻辑上相邻的结点其物理位置亦相邻。
其类型定义如下:#define ListSize 100//表空间的大小可根据实际需要而定,这里假设为100typedef int DataType;//DataType的类型可根据实际情况而定,这里假设为int型typedef struct {DataType data[ListSize]; //向量data用于存放表结点int length; //当前的表长度}SeqList;(2)建表算法如下:InitList(SeqList *L,int n){ int i;L->length=0;for(i=0;i<n;i++){ scanf(“%d”,&L->data[i]);L->length++; }}2.顺序表的插入(1)指在表的下标i(0≤i≤n-1)位置上,插入一个新结点x,使长度为n的线性表:(a0,…,ai-1,ai,…an-1)变成长度为n+1的线性表:(a0,…,ai-1,x,ai,…an)。
(2)算法描述:void insertList(SeqList *L,DataType x,int i){ //将新结点 x插入L所指的顺序表的第i个结点的位置上int j;if (i<0||i>L->length-1)Error("position error"); //非法位置,退出运行if (L->length>=ListSize)Error("overflow"); //表空间溢出,退出运行for(j=L->length-1;j>=i;j--)L->data[j+1]=L->data[j]; //结点后移L->data[i]=x; //插入xL->Length++; //表长加1}3.顺序表的删除指删除下标为i(0≤i≤n-1)的结点,使长度为n的线性表: (a0,…,ai-1,ai,…a n-1)变成长度为n-1的线性表(a0,…,ai-1,ai+1,…a n-1)。
请同学们自行考虑并实现。
四、实验内容通过C语言编程,实现线性表的建立、插入和删除操作。
五、实验报告要求1.按标准的实验报告格式填写实验报告(1)字迹工整,内容属实规范;(2)报告不得打印或复印,也不得抄袭或有雷同。
2.本实验为软件设计,报告中应先画程序流程图,再阐述你的设计思路和过程;3.避免纯粹的抄写源程序,应适当地填写一些调试情况以及问题的产生原因和处理办法;4.设计感想可包括你对本次实验的收获、启示以及不足和希望。
六、实验环境、条件1. P4、Windows操作系统、台式计算机每人一套;2. Turbo C/VC++ 软件编程环境;3. 学生自备实验报告纸一张,最好有磁盘用以备份自己的程序。
实验二 单链表的建立一、 实验目的1.掌握线性表的链式存储结构(1)线性表的链式存储原理(2)链式存储结构的优缺点2.掌握结构体的应用以及数据结点的生成(1)结构体的定义(2)动态存储分配函数的使用(3)强制类型转换的方法3.掌握指针的应用(1)巩固指针的含义和用法(2)结构体指针的使用二、 预习要求1.复习C 语言(1)巩固C 语言程序设计的基本方法(2)巩固在TC 或VC 环境中编写和调试C 程序2.复习指针和结构体两部分的知识(1)巩固指针的含义以及定义方式(2)理解结构体的定义以及其成员的赋值和引用3.理解课本关于单链表部分的知识(1)掌握单链表的生成原理和过程(2)在草稿纸上画出简单程序流程图三、 实验原理1.头插法建立单链表(1)算法原理:从一个空表开始,重复读入数据,生成新结点,将读入数据存放在新结点的数据域中,然后将新结点插入到当前链表的表头上,直到读入结束标志为止。
(2)算法示意图:若要建立L=(A ,B ,C ,D ,E )的单链表,则链表结构为:(3)算法描述://结点结构体定义struct node{char data;struct node *next;};//头插法建立n 个结点的单链表Lstruct node* CreateList(struct node *L,int n){int i;char ch;struct node *p;L=(struct node *) malloc(sizeof(struct node));L->data=n;LL->next=NULL;for(i=n;i>0;i--){p=(struct node *) malloc(sizeof(struct node));scanf("%c",&ch);p->data=ch;p->next=L->next;L->next=p;}return L;}2.尾插法建立单链表(1)算法原理:从一个空表开始,重复读入数据,生成新结点,将读入数据存放在新结点的数据域中,然后将新结点插入到当前链表的表尾上,直到读入结束标志为止。
(2)算法示意图:同上,若要建立L=(A ,B ,C ,D ,E )的单链表,则链表结构为:(3)算法描述://结点结构体定义如前所述//尾插法建立n 个结点的单链表Lstruct node* CreateList(struct node *L,int n){int i;char ch;struct node *p,*q;L=(struct node *) malloc(sizeof(struct node));L->data=n;L->next=NULL;q=L;for(i=n;i>0;i--){p=(struct node *) malloc(sizeof(struct node));scanf("%c",&ch);p->data=ch;q->next=p;p->next=NULL;q=p;}return L;}四、 实验内容1.通过C 语言编程,用函数实现不低于五个结点的单链表的建立:(1)要求编写功能函数实现单链表的建立,参考上述算法用两种方法实现;(2)链表中结点的数据类型为任意原子类型,以上算法假设的是字符型;(3)采用循环结构建表,请同学自定义循环结束标志,以上是次数循环,同学们可设计为输入某个键值结束,如字符‘Q’;(4)把建成的单链表顺序输出,该环节请在主程序中完成。
L2.用自己的方法测试一下自己的程序性能,如程序执行时间和执行空间等。
五、实验报告要求1.按标准的实验报告格式填写实验报告(1)字迹工整,内容属实规范;(2)报告不得打印或复印,也不得抄袭或有雷同。
2.本实验为软件设计,报告中应先画程序流程图,再阐述你的设计思路和过程;3.避免纯粹的抄写源程序,应适当地填写一些调试情况以及问题的产生原因和处理办法;4.设计感想可包括你对本次实验的收获、启示以及不足和希望。
六、思考题1.如果结点指针P指向链表中某一中间结点,问:如何用P表示P之后的每一个结点?2.单链表可以按随意顺序输出吗?3.单链表和顺序表所花的存储空间相同吗?七、注意事项1.算法和程序是不同的,课本上的算法不能直接拿来调试和运行,必须将其改写为程序;2.算法到程序的转变方法:(1)将变量类型具体化;(2)将每一个语句标准化;(3)补充主函数,实现变量定义、函数调用等功能。
八、实验环境、条件如实验一所述。
实验三 单链表的插入一、 实验目的1.充分理解“链”的含义(1)理解在一个单链表上寻找某一个结点的方法;(2)充分理解结点的“串联”原理。
2.掌握单链表的插入操作过程(1)掌握单链表中断开某结点的方法;(2)掌握用指针“链”入一个新结点的原理和方法。
二、 预习要求1.如实验一所述。
2.巩固C 语言中“内部函数和外部函数”一节,熟练外部函数的定义和用法。
三、 实验原理1.算法原理:在一个已有的单链表中(实验一的结果),在指定位置插入一个新的结点。
2.算法示意图:例如在实验一“头插法”建立单链表的基础上,要在3号位置插入一个数据域为w 的结点,则链表结构变为:3.算法描述://结点结构体定义如实验一所述//在第i 个位置上插入一个新结点xstruct node * insert(struct node * L,int i){p=L;j=0;while(p->next!=NULL && j<i-1){p=p->next;j++;}if(j!=i-1){printf("i is invalid!\n");exit(0);}t=(struct node *)malloc(sizeof(struct node));scanf("%c",&x);t->data=x;t->next=p->next;p->next=t;return L;}四、 实验内容1.通过C 语言编程,在实验一的基础上实现单链表的插入。
L(1)要求编写功能函数实现单链表的插入算法;(2)插入结点的数据类型与原链表中的数据类型一致;(3)插入位置信息必须由键盘输入;(4)将插入后的单链表顺序输出。
2.用自己的方法测试一下自己的程序性能,如程序执行时间和执行空间等。
五、实验报告要求如实验一所述。
六、思考题1.无论是头插法还是尾插法建立单链表,其插入算法一样吗?2.如何定义和使用外部函数?请在实验一和实验二上练习。
七、注意事项1.设计程序时,注意考虑其算法的纠错能力,如输入的位置超界、出错时的处理;2.注意函数的返回值,应该如何确定和使用。
八、实验环境、条件如实验一所述。
实验四矩阵运算一、实验目的1.了解矩阵加减乘除的运算规则2.掌握矩阵的乘法、转置运算的编程技术3.能够正确高效率编写矩阵的乘法、转置程序二、预习要求1.查询数学中矩阵运算的相关规则。
2.巩固C语言中数组和循环的程序编写。
三、实验原理1.矩阵相乘矩阵A有M*L个元素,矩阵B有L*N个元素,则矩阵C=A*B有M*N个元素。
2.算法描述//自行定义M、L、N的大小,注意规则。
void mv(int a[M][L], int b[L][N], int c[M][N]){ int i, j, k;for(i=0; i<M; i++)for(j=0; j<N; j++){ c[i][j]=0;for(k=0; k<L; k++)c[i][j]+=a[i][k]*b[k][j];}}3.矩阵转置将矩阵A的行列交换。