《软件技术基础》上机安排
- 格式:doc
- 大小:38.50 KB
- 文档页数:4
《软件技术基础》实验指导书电子商务教研室2009年9月实验三队列的应用◆实验目的与基本要求1、掌握队列的顺序存储和链式存储结构。
2、掌握队列的特点。
3、掌握队列的基本运算。
◆实验条件1、硬件:一台微机2、软件:操作系统和C语言系统◆实验方法确定存储结构后,上机调试实现队列的基本运算。
◆实验内容1、写出队列的出队和入队算法。
2、设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚,依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已停放n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。
每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆次序。
编制一个程序模拟该停车场的管理。
◆性质:必做◆类型:验证◆2h队列是从日常排队现象抽象出来的一种数学模型。
当然数据结构中的队列远没有生活中的排队灵活。
数据结构中的队列规定:数据只能从队尾进,从队首出来。
已经进入队列的数据次序不能再做改变。
这就叫做“先进先出”(FIFO)或者说“后进后出”(LILO)。
允许插入的一端称为队尾,通常用一个称为尾指针(rear)的指针指向队尾元素,即尾指针总是指向最后被插入的元素;允许删除的一端称为队首,通常也用一个队首指针(front)指向队首元素的前一个位置(当然也可以直接指向队首元素,只是许多数据结构的书上都习惯这么定义)。
与队列类似,我们可以用一维数组来模拟队列这种数据结构,也可以用链表来模拟。
根据以上描述,队列可以可以有以下基本操作:1、创建初始化:按约定置队列为空状态。
实验报告的总结怎么写实验报告是实验过程的总结与提升,也是实验的一个重要环节,但其重要性往往被忽略,特别是实验数据的总结,今天店铺给大家整理了实验报告的总结怎么写,谢谢大家对小编的支持。
实验报告的总结怎么写篇一本学期我们生科专业开设了3门实验课,在实验课中,我学到了很多在平时的学习中学习不到的东西,尤其是物理光学实验。
它教会我更多的应该是一种态度,对待科学,对待学习。
为期七周的的大学物理实验就要画上一个圆满的句号了,回顾这七周的学习,感觉十分的充实,通过亲自动手,使我进一步了解了物理实验的基本过程和基本方法,为我今后的学习和工作奠定了良好的实验基础。
我很感谢能够有机会学习物理实验,因为每一位老师都教会了我很多。
每次上实验课,老师都给我们认真的讲解实验原理,轮到我们自己动手的时候,老师还常常给予我们帮助,不厌其烦地为我们讲解,直到我们做出来。
有的同学在实验过程中出现了问题,就耽误了时间,老师也总是陪着我们直到最后一名同学做完实验。
在大学物理实验课即将结束之时,我对在这一年来的学习进行了总结,总结这一年来的收获与不足。
取之长、补之短,在今后的学习和工作中有所受用。
下面我就对我这一年所学到的东西做一个概述:1、实验课的基本程序1.1、课前预习:对于每一次将要进行的实验,我们都要做好预习,通过阅读实验教材,上网搜索资料,自己翻阅其他辅导书,弄清本次实验的目的、原理和所要使用的仪器,明确测量方法,了解实验要求及实验中特别要注意的问题等。
这一步至关重要,它是实验成败的关键。
我觉得我对于这一点还是做的不错的,因此每一次实验都能够很顺利地完成。
而且我发现我准备地越充分,实验就会越顺利。
因为前期的准备可以使我在实验的时候避免手忙脚乱,充分的预习也使我充满了信心。
因为我做了充分的预习,在实验中就不会遇到突发状况就不知该如何是好。
就这样一步一个脚印,就不必“从头再来”,节省了时间。
1.2、实验操作我们做实验是在每周周二的下午,先由实验辅导老师对实验进行讲解,老师的讲解很重要,一定要认真地听。
《软件技术基础2》实验报告3学院机械学院专业能源与动力工程年级2015姓名666任课教师葛卫民实验指导葛卫民2016年10月日实验三一、实验目的通过本试验,使学生理解数组、指针的概念及基本用法;掌握数组与指针程序的设计方法;掌握求最大最小、排序、字符串处理等基本算法的思想和使用方法。
二、实验内容1.通过程序实例,理解数组及指针的概念及基本语法。
2.编写教材第三章习题3中1、2、3、5、6、7要求的程序,并完成上机调试的实验任务。
其中第3题的第7小题需要分别用数组、指针结合动态内存分配两种方法来实现。
三、实验准备1.复习第三章的内容,重点是3.1、3.2、3.5节的内容及相关例题;2.编写教材第三章习题3中1、2、3、5、6、7要求的程序。
四、实验任务任务一:第1小题1.内容:向数组a中输入十个整数,求其中最大值,最小值和十个数的算术平均值。
2.源程序:#include <iostream.h>void main( ){int a[10],amax,amin,sum(0);double ave;cout<<"输入10个数:";for (int i=0; i<10; i++) cin>> a[i];for(i=0;i<10;i++) sum+=a[i];ave=sum/10.0;amax=amin=a[0];i=1;while(i<10){ if(a[i]>amax) amax=a[i];if(a[i]<amin) amin= a[i];i++;}cout<<"算术平均值="<<ave<<endl;cout<<"最大值="<<amax<<endl;cout<<"最小值="<<amin<<endl;}3.运行结果:4.实验中遇到的主要问题及解决方法无任务二:第2小题1.内容:输入十个学生一门课的成绩,分别统计大于平均值的人数和小于60分的人数。
说明每个实验题目含有一个main函数和一些函数, 与实验题目相关的基本运算的函数定义和main函数定义的代码在附录以及对应的文件夹中给出, 供上机实验参考使用。
对于每个题目, 只需要根据题目要求设计算法, 补充函数定义, 然后对程序进行编译、调试。
实验一线性表一、实验目的1.熟悉线性表的顺序和链式存储结构2.掌握线性表的基本运算3.能够利用线性表的基本运算完成线性表应用的运算二、实验内容设有一个线性表E={e1, e2, …, en-1, en}, 设计一个算法, 将线性表逆置, 即使元素排列次序颠倒过来, 成为逆线性表E’={ en , en-1 , …, e2 , e1 }, 要求逆线性表占用原线性表空间, 并且用顺序表和单链表两种方法表示, 分别用两个程序来完成。
(文件夹: 顺序表逆置、单链表逆置)已知由不具有头结点的单链表表示的线性表中, 含有三类字符的数据元素(字母、数字和其他字符), 试编写算法构造三个以循环链表表示的线性表, 使每个表中只含有同一类的字符, 且利用原表中的结点空间, 头结点可另辟空间。
(文件夹: 分解单链表)实验二栈和队列一、实验目的1.熟悉栈和队列的顺序和链式存储结构2.掌握栈和队列的基本运算3.能够利用栈和队列的基本运算完成栈和队列应用的运算二、实验内容1.设单链表中存放有n个字符, 试编写算法, 判断该字符串是否有中心对称的关系, 例如xyzzyx是中心对称的字符串。
(提示: 将单链表中的一半字符先依次进栈, 然后依次出栈与单链表中的另一半字符进行比较。
)(文件夹: 判字符串中心对称)假设以数组sequ[m]存放循环队列的元素, 同时设变量rear和quelen 分别指示循环队列中队空的条件:sq->quelen==0;队满的条件:sq->quelen==m。
(文件夹:循环队列)实验三串一、实验目的1.熟悉串的顺序存储结构2.掌握串的基本运算及应用二、实验内容1. 串采用顺序存储结构, 编写朴素模式匹配算法, 查找在串中是否存在给定的子串。
《计算机软件技术基础》实验报告专业_____________年级_____________学号_____________学生姓名_____________指导老师_____________南华大学计算机学院编I 实验要求1.每次实验中有若干习题,每个学生至少应该完成其中的两道习题。
2.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率。
3.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。
4.上机结束后,应整理出实验报告。
书写实验报告时,重点放在调试过程和小节部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力的目的。
实验一线性表【实验目的】1.熟悉VC环境,学习如何使用C语言实现线性表的两种存储结构。
2.通过编程、上机调试,进一步理解线性表的基本概念,熟练运用C语言实现线性表基本操作。
3.熟练掌握线性表的综合应用问题。
【实验内容】必做:1.一个线性表有n个元素(n<MAXSIZE, MAXSIZE指线性表的最大长度),且递增有序。
(1)现有一元素x要插入到线性表的适当位置上,并保持线性表原有的顺序不变。
采用链式存储表示方法实现,设计程序实现(2)从单链表中删除指定的元素x,若x在单链表中不存在,给出提示信息。
要求:①指定的值x由键盘输入;②程序能处理空链表的情况。
选做:3.设有头结点的单链表,编程对表中的作一值只保留一个结点,删除其余值相同的结点。
要求:①该算法用函数(非主函数)实现;②在主函数中调用创建链表的函数创建一个单链表,并调用该函数,验证算法的正确性。
4.已知非空单链表第一个结点由head指出,请写一算法,交换p所指结点与其下一个结点在链表中的位置。
要求:①该算法用函数Reverse(head,p)实现,其中head为表头指针,p指向要交换的结点;②在主函数中调用创建链表的函数创建一个单链表,并调用该函数,验证算法的正确性。
《软件技术基础》上机实验报告2018至2019学年,第1学期学生姓名:***班级:***学号:***授课教师:***指导教师:***报告完成时间:2018年12月9日实验一:链式二叉排序树的创建和遍历一.实验目的和要求1.加深理解数据结构的目的和概念,以及逻辑结构和物理结构的关系;2.练习数据结构操作算法的编程实现;3.练习链表的程序设计,掌握二叉链表的设计技术;4.练习递归函数的设计方法;5.巩固二叉排序树的概念;6.熟悉软件功能的分析设计方法。
二.功能分析与设计利用C或C++,设计程序,定义二叉链表,存储二叉排序树,声明并定义相应的函数,实现链式二叉排序树的下列操作:1. 输入数据个数DataCount(要求在10和20之间)和数据最大值MaxData(在50和100之间)。
算法实现:该任务需要限制输入的DataCount在10和20之间,MaxData在50和100之间,只有当两者均满足要求时,程序才会向下执行。
若不满足时,会提示“输入不正确,请重新输入!”,并继续输入DataCount和MaxData,直至满足要求。
这里用while(1)死循环,不得到正确输入不退出。
部分代码如下:while(1){printf("请输入DataCount:");scanf("%d",&DataCount);printf("请输入Maxdata:");scanf("%d",&Maxdata);if(DataCount>=10&&DataCount<=20&&Maxdata>=50&&Maxdata<=100) break;printf("输入不正确,请重新输入! \n");fflush(stdin); //清空输入}2. 在0和MaxData之间,随机产生DataCount个不重复的整数,按产生先后顺序形成一个数据序列,并输出该序列。
三一文库()/工作报告/实验报告上机实验内容及实验报告要求
上机实验内容及实验报告要求
一、《软件技术基础》上机实验内容
1.顺序表的建立、插入、删除。
2.带头结点的单链表的建立(用尾插法)、插入、删除。
二、提交到个人10M硬盘空间的内容及截止时间
1.分别建立二个文件夹,取名为顺序表和单链表。
2.在这二个文件夹中,分别存放上述二个实验的相关文件。
每个文件夹中应有三个文件(.C文件、.OBJ文件和.EXE文件)。
3.截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。
三、实验报告要求及上交时间(用A4纸打印)
1.格式:
《计算机软件技术基础》上机实验报告
用户名se××××学号姓名学院
①实验名称:
②实验目的:
③算法描述(可用文字描述,也可用流程图):
④源代码:(.C的文件)
⑤用户屏幕(即程序运行时出现在机器上的画面):
2.对C文件的要求:
程序应具有以下特点:A可读性:有注释。
B交互性:有输入提示。
C结构化程序设计风格:分层缩进、隔行书写。
3.上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。
请注意:过时不候哟!
四、实验报告内容
0.顺序表的插入。
1.顺序表的删除。
2.带头结点的单链表的插入。
3.带头结点的单链表的删除。
软件技术基础教程课程设计课程介绍本课程为软件工程专业必修课程,旨在使学生全面掌握及应用软件技术基础知识,培养软件工程专业的系统思维、工程素质和创新能力,为学生日后从事软件工程领域打下坚实的基础。
课程目标基础知识1.掌握软件工程的基本概念和方法;2.了解软件工程的各个阶段的目标和工作内容;3.初步理解软件工程中涉及的技术和工具。
实践能力1.能够使用至少一种面向对象编程语言进行程序设计和实现;2.能够运用一定的软件开发方法和工具,实现软件需求分析、设计、实现、测试、维护等各个阶段的工作;3.能够承担和参与工程项目的开发工作。
课程内容第一阶段:软件工程概论1.软件工程基本概念–软件、软件危机2.软件开发生命周期–需求分析、设计、编码、测试、维护3.软件项目管理–项目计划、团队协作、进度控制、风险管理第二阶段:程序设计基础1.程序设计基础知识–数据类型、流程控制、函数、数组2.面向对象编程基础–类和对象、继承、多态、封装第三阶段:软件开发工具和方法1.需求分析–用例建模、用户故事、面向对象分析2.设计与实现–UML建模、设计原则、代码规范、测试驱动开发3.软件测试–单元测试、集成测试、系统测试课程设计设计目的本课程的设计旨在培养学生的实践能力。
因此,在课程设置中加入了一些实践环节,使学生在课堂上能够亲自进行程序设计和开发,理论与实践相结合。
设计方案1.在第一阶段,教师将介绍软件工程的基本概念,学生将自学软件项目管理知识,并安排小组进行一次小型项目仿真。
要求学生根据项目需求,自行进行团队合作、任务分配和进度控制,并在课堂上展示项目成果。
2.在第二阶段,教师将结合面向对象编程内容进行代码编写实践。
学生将自行完成一个小规模的程序设计,并使用面向对象的编程方法进行代码优化和重构,达到提高代码质量的目的。
3.在第三阶段,教师将进行软件测试的介绍,学生将根据课堂提供的测试用例,通过软件测试工具进行测试,并对出现的问题进行修复和改进。
电子科技大学通信与信息工程学院标准实验报告(实验)课程名称软件技术基础实验电子科技大学教务处制表电子科技大学实验报告一、实验室名称:校公共机房二、实验项目名称:查找与排序三、实验学时:4学时四、实验原理:使用VS2010等C语言集成开发环境(IDE),在微型计算机上对程序进行编辑、编译、连接与运行。
通过上机练习掌握顺序查找、二分查找函数、简单选择法、直接插入法、冒泡法排序、快速排序等方法、过程和实际应用。
五、实验目的:1.熟练掌握顺序查找、二分查找函数、简单选择法、直接插入法、冒泡法排序、快速排序等算法方法并实现。
2.掌握课程平台使用方法。
六、实验内容:ex5_1:查找设有序序列的数据元素为:(3,10,13,17,40,43,50,70)1)编写顺序查找函数2)编写二分查找函数3)在主程序中输入关键字(43和5),分别调用两种查找函数,输出结果。
//第一题#include <stdio.h>#define maxnum 20typedef struct{int data[maxnum];int length;}list_type;void create(list_type *l){l->length=8;l->data[0]=3;l->data[1]=10;l->data[2]=13;l->data[3]=17;l->data[4]=40;l->data[5]=43;l->data[6]=50;l->data[7]=70;}void shunxucz(list_type *l,int a1,int a2){int i,flag=0;printf("-----------------------------------------------\n");printf("顺序查找法:\n");for(i=0;i<l->length;i++){if(a1==l->data[i]){printf("%d是第%d个元素\n",a1,(i+1));flag=flag+1;} }if(flag==0) printf("表中没有大小为%d的元素\n",a1);flag=0;for(i=0;i<l->length;i++){if(a2==l->data[i]){printf("%d是第%d个元素\n",a2,(i+1));flag=flag+1;} }if(flag==0) printf("表中没有大小为%d的元素\n",a2);}void erfencz(list_type *l,int a1,int a2){printf("-----------------------------------------------\n");printf("二分查找法:\n");int low,h,m,flag=0,i;low=0;h=l->length-1;for(i=0;i<l->length;i++){m=(low+h)/2; //如果有小数就向小的数字取值9/2=4if(l->data[m]==a1){printf("%d是第%d个元素\n",a1,(m+1));flag=1;break;}else if(l->data[m]<22) low=m+1;else if(l->data[m]>22) h=m-1;}if(flag!=1)printf("表中没有大小为%d的元素\n",a1);flag=0;low=0;h=l->length-1;for(i=0;i<l->length;i++){m=(low+h)/2; //如果有小数就向小的数字取值9/2=4if(l->data[m]==a2){printf("%d是第%d个元素\n",a2,(m+1));flag=1;break;}else if(l->data[m]<22) low=m+1;else if(l->data[m]>22) h=m-1;}if(flag!=1)printf("表中没有大小为%d的元素\n",a2);}int main(){int flag1=43,flag2=5;list_type list,list1,list2;create(&list);create(&list1);create(&list2);shunxucz(&list1,flag1,flag2);erfencz(&list1,flag1,flag2);printf("-----------------------------------------------\n");}ex5_2:排序1)编写简单选择法函数2)编写直接插入法函数3)编写冒泡法排序函数4)编写快速排序函数5)在主程序中输入一组数据元素(513,87,512,61,908,170,897,275,653,462),分别调用4种排序函数,输出每趟排序结果。
高职“软件技术基础”面向应用教学模式探索摘要:针对高职学校和“软件技术基础”课程的特点,按照面向应用的原则,在高职“软件技术基础”课程的教学实践中积极探索,采取了模块化、项目驱动和学生自主学习相结合的教学方法,取得了较好的教学效果。
关键词:软件技术;面向应用;模块化中图分类号:g42 文献标识码:a文章编号:1009-0118(2012)09-0055-02一、引言“软件技术基础”课程原本是本科院校非计算机专业学生在学习完计算机基础和vb、c等程序设计课程之后,为提高其利用计算机软件技术解决所处专业领域实际问题的能力而开设的一门软件技术综合课程,淮南联合大学是一所高职高专类院校,考虑到高职高专类学校学制时间短、专业课程多等实际情况,目前“软件技术基础”课程的开设主要限于我校计算机系相关专业二年级的学生,其目的是在较短时间内培养学生计算机软件方面的综合素养,提高他们的软件应用开发能力。
技能教育是高职教育的主要特点之一,面向应用的教学方式是提高学生实际应用技能的有效途径,为此我们在“软件技术基础”教学实践中,面向应用、积极探索,采取了一种模块化、项目驱动和学生自主学习相结合的教学模式。
二、教学内容根据工科计算机基础课程教学指导委员会制定的计算机软件技术基础教学要求,《软件技术基础》的教学内容中包括程序设计语言、算法与数据结构、软件开发与软件工程、多媒体与用户界面、操作系统、数据库、网络、工具与环境等,内容庞杂知识面广,如何针对我校计算机系的专业特点和学生情况,从面向应用的角度选择合适的教学内容是一个需要思考的问题。
我校计算机系相关专业学生在学习“软件技术基础”这门课程之前,已经学习过的计算机方面的课程仅包括计算机文化基础、c语言,vb等,而计算机软件技术基础教学要求的其他方面的内容基本没有涉及,在此基础上学习“软件技术基础”,如果简单采取“黑板”+上机传统教学方法,全面介绍“软件技术基础”教学要求的内容,虽然可以使学生系统地掌握软件技术的有关知识,但时间短、任务重,即使能够完成,也只能泛泛地学习,教学质量难以保证,更不用说培养软件开发技能了。
《软件技术基础》上机实验安排
一、实验教学计划
实验学时:20学时
共安排五次上机实验,4学时/次;
二、实验内容安排:
实验一:指针和结构体部分
1、从键盘上输入10个整数,将其中最小的数与第一个数交
换,把最大的数与最后一个数交换,并将交换之后的序列
打印出来。
(提示:用指针实现,参考教材习题10.3)
2、要求在主函数输入一串文字,并编写一个函数计算该文字
串中的大写字母,小写字母,数字以及其它字符的个数,
并在主函数中将文字串和以上计算结果打印出来。
参考教
材习题10.8。
3、已知一个班有10名同学英语考试成绩为{88.5,76, 83.5,
92,96.5,80,62,85.5,74,87.5},平时成绩为{4.0,3.5,4.5,2.0,
3.0,3.5,
4.0,2.5,3.5,4.0},主函数中用C的指针分配函数:
malloc()分配两块连续的存储单元存放以上的考试成绩和
平时成绩,用一个函数计算该班同学的考试平均成绩和
各同学的最终成绩(考试成绩+平时成绩),在主函数中
将以上计算结果打印出来。
注意:本题选作。
4、 编写一个函数input ,输入学生的成绩,包含3个学生的
数据即学号(num ),姓名(name )和三科成绩score[3]。
再编写一个函数print ,打印学生的信息。
编写一个主函数实现学生成绩的输入和输出。
实验二、顺序表的相关操作
1、 有序的一组整数,1-2-3-4-6-5-9-19设计顺序表并实现以
下操作:A.初始化线性表;B.添加上述一组数;C.删除第四个数据元素; D.显示B,C 操作后的结果。
2、 教材P74页,习题9。
3、 图书资料管理问题,设一本书有编号、书名、作者、价格
等信息,如下表
设计顺序表并实现以下操作;A、初始化线性表;B 、添
加表1中的记录;C 、删除第三条记录。
本题选作。
提示:图书资料的数据的C 语言描述
typedef struct
{ long int num;
char name[50];
char author[20]; 23.00 zhao delphi 4 18.00
wang
C
3 20.00 li VB 2 15.00 zhang Basic 1 价格
作者 书名 编号
float price;
} bookinfo;
设计的顺序表点C语言描述
typedef struct
{ bookinfo data[MAXNUM];
int num;
} listtype;
实验三、单链表的相关操作
1、现有有序的一组整数的集合:1-2-2-3-4-6-6。
设计单链表,
分别编写函数实现以下操作:A.初始化链表。
B.添加上述一组数(结点),生成该链表。
C.统计该链表的长度。
D.在表中查找数据为3和7的结点,并返回其位置(若找不到返回-1)。
E.删除中间重复结点,使链表变为1-2-3-4-6。
F.显示经B,E操作后,链表的状况。
2、教材P74,习题10,选作。
实验四、查找相关操作
1、教材P76,习题26,要求采用二分查找的方法,编程实现。
2、要求创建一个单链表,表中的元素为{55,3,2,96,42,
67,111,15},并以顺序查找的方法,编程实现查找其中
的某一个元素,查找成功返回该元素,失败返回一个错误
的标志。
实验五、排序的相关操作
1、对教材P77,习题28给出的关键字序列,以简单插入排
序方法,编程实现其排序。
2、对教材P77,习题28给出的关键字序列,以简单选择排
序方法,编程实现其排序。
对教材P67,习题28给出的
关键字序列,以冒泡排序方法,编程实现其排序。
三、实验内容安排:
每次实验完成后提交实验报告。