软件技术基础上机实验_第一次
《软件工程》第一次实验报告
《软件工程》第一次实验报告学院实验报告(全文结束》》 /全文结束》》学年第1学期)课程名称软件工程实验名称实验1: 软件需求规格说明书的设计和撰写实验时间xx年11月16日指导单位物联网学院指导教师赵莎莎学生姓名汤勇班级学号学院(系)物联网学院专业物联网工程实验名称实验1: 软件需求规格说明书的设计和撰写指导教师赵莎莎实验类型上机实验学时2实验时间xx-11-16一、实验目的1、熟练掌握软件需求规格说明书的编制2、学会软件的可行性分析3、学会绘制用例图4、学会绘制UML活动图(泳道图)5、学会绘制ERD图6、学会绘制类图二、实验环境(实验设备)1、每位学生配备计算机一台2、计算机需安装文字处理系统(word)、绘图软件(visio)或UML 建模工具(ArgUML)等三、实验内容为满足毕业论文工作的要求,南京邮电大学教务处需要你公司开发一套本科毕业设计(论文)网上选题系统。
作为一名软件公司的工程主管,你与学校教务处经过反复交流以后,明确了系统的基本需求,请你编制一份《南京邮电大学本科毕业设计(论文)网上选题系统需求说明书》。
1、系统需求概述主要功能:教师、学生可以通过用户名和密码认证进入该系统,学生可以自由选择教师公布的课题。
性能要求:所有数据实时更新保持同步,且定时备份。
输出要求:简单、快捷、实时。
输入要求:及时的修改和更新学生、教师基本的信息。
安全与保密要求:系统本身配备一定的安全机制,保证各项数据的完整、正确。
每类用户进入系统时,均需输入唯一的用户名和密码;教师有权对已添加课题进行修改或删除;学生有权对选修课题进行修改;管理员有权对学生信息、所选课题、最终成绩进行管理、修改2、可行性分析2、1技术可行性就目前使用的开发技术来说,系统的功能目标能够达到;利用现有的技术在规定的期限内开发工作基本能够完成。
2、2经济可行性在系统上投入的人力,设备,空间,材料,等等与其他的一系列支持性服务越来越大,导致开发费用支出巨大,严重影响系统的可用性,急需改进。
计算机软件基础实验1
6 5 4 3 2 1 输出参数 无 1 2 3 4 5 1 2 3 4 1 2 3 4 输出参数 无 1 3 4 5 6 7 2 4 5 6 8 9 3 4 5 6 7 8
无 存在问题 无 无 无 无 存在问题 无 无 无 无
删除相同元素
测试项 空表 有1组相同元素 有2组相同元素 有3组相同元素
L.Data[k+1]=L.Data[k]; L.Data[k]=L.Data[k+1]; scanf(%d,&data) scanf("%d",&data)
(2)运行出现的主要问题及解决方法
5. 运行结果分析
(1) 运行结果 逆置:
删除多余元素:
插入:
合并:
(2) 运行结果分析
逆置
测试项 空表 表长=5(奇数) 输入参数 无 1 2 3 4 5 输出参数 无 5 4 3 2 1 存在问题 无 无
void unit(struct SList L,struct SList L1,struct
SList L2) { int i=0,j=0,k=0,m=0; while(i<=st&&j<=st) { if(L1.Data[i]<L2.Data[j]) L.Data[k++]=L1.Data[i++]; else L.Data[k++]=L2.Data[j++]; } while(i<=st) { L.Data[k++]=L1.Data[i++]; } while(j<=st) { L.Data[k++]=L2.Data[j++]; } st=k-1; for(m=0;m<=st;m++) { printf("%d ",L.Data[m]); } printf("\n"); } 7) 流程图:
软件技术基础实验指导及报告
太原理工大学现代科技学院软件技术基础课程实验报告专业班级通信14-1学号2014101596姓名王晓振指导教师范俊杰软件技术基础实验指导及报告实验说明:1、共5次实验,每次实验完成1个内容。
2、实验报告命名统一为:软件_专业班级_学号_姓名3、自备U盘,在实验前认真阅读实验要求,在实验中及时记录保存实验结果和调试过程,并填写到实验报告对应位置,实验结束后将该实验报告电子版在指定时间内提交给各班学习委员。
实验一顺序线性表的插入与删除1、实验目的:理解和掌握线性表的顺序存储结构,使用C语言根据相应算法编写程序,实现线性表的创建、插入和删除。
2、实验内容:编写C程序实现先建立一个长度不小于n = 8的线性表,输出原始线性表;然后进行插入运算,在第3个元素前面插入一个新元素b(值为学号后3位),得到一个长度为(n+1)的线性表,输出插入后的线性表;最后进行删除运算,删除第5个元素,得到长度为n的线性表,输出删除后的线性表。
3、参考程序:#include <stdio.h>#define MAXSIZE 20typedef struct{int data[MAXSIZE];int last;}List;void Init(List *pt){int i = 0;for(i=1;i<11;i++){pt->data[i] = i;pt->last = i;}}void Output(List *pt){int i,max=pt->last;printf("List have %d: \n",pt->last);for(i=1;i<=max;i++)printf("List %d Value is:%d \n",i,pt->data[i]);printf("\n");}void InsertL(List *pt, int i, int x){int k;if(i<1 || i>MAXSIZE-1){printf("插入位置不合适!\n");}else if(pt->last>=MAXSIZE-1){printf("线性表已满!\n");}else{for (k=pt->last;k>=i;k--)pt->data[k+1]=pt->data[k];pt->data[i]=x;pt->last++;}}void Insert(List *pt){int position,x;printf("please input insert position and value:");scanf("%d,%d",&position,&x);InsertL(pt, position, x);}void DeleteL(List *pt, int i){int k;if(i<1 || i>pt->last){printf("删除位置不合适!\n");}else{for(k=i+1;k<=pt->last;k++)pt->data[k-1]=pt->data[k];pt->last--;}}void Delete(List *pt){int position;printf("please input delete position:");scanf("%d",&position);DeleteL(pt, position);}int main(){int int_Insert,int_Delete;List L,*pt;pt = &L;Init(pt);Output(pt);Insert(pt);Output(pt);Delete(pt);Output(pt);return 0;}4、实验结果:将程序运行结果截屏粘贴至此处。
【参考文档】《软件技术基础》实验报告 (1000字)-精选word文档 (16页)
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==《软件技术基础》实验报告 (1000字)《软件技术基础》实验报告学院:XXXXXXXXX班级: XXXXXXX学号:XXXXXXXXXX姓名: XXXXXX指导老师: XXXXXX实验一顺序表的操作班级 XXXXX 学号 XXXXXXX 姓名 XXXX第 X 周星期 X 、 XXX 节成绩一、实验目的:1、掌握顺序表结构的实现方式;2、掌握顺序表常用算法的实现;3、熟悉利用顺序表解决问题的一般思路;4、参照给定的顺序表的程序样例,验证给出的顺序表的常见算法,领会顺序表结构的优点和不足。
二、实验内容:1、设计一个静态数组存储结构的顺序表,要求编程实现如下任务:(1)建立一个顺序表,首先依次输人整数数据元素(个数根据需要键盘给定)。
(2)删除指定位置的数据元素(指定元素位置通过键盘输入),再依次显示删除后的顺序表中的数据元素。
(3)查找指定数据的数据元素(指定数据由键盘输入),若找到则显示位置,若没有找到则显示0。
2、使用顺序表实现一个电话本的管理程序,电话本中的每条记录包括学号、姓名、手机号码和固定电话四项。
要求实现菜单、初始化、添加、删除和显示等功能。
三、实验结果:四、实验中遇到的问题及解决方法:相关函数书上都有一样的或类似的,因此并未遇到什么问题。
五、实验心得体会:书上的例程是含有两个元素的,改为一个元素的时候花了一些时间。
参考了书本,对书上的函数有了比较深刻的理解。
附:部分源程序#include<iostream.h>const int maxsize=100;struct stu{int id;char name[20];};struct SeqList{stu data[maxsize];int length;};//主函数int main(){SeqList L;L.length=0;stu s;cout<<"请输入三个学生的学号、姓名:\n";} for(int i=0;i<3;i++) { cin>>s.id>>; Insert(&L,s); }cout<<endl; Display(&L); int ID; cout<<"请输入要删除的学生的学号"; cin>>ID; Delete(&L,ID); cout<<endl; Display(&L); return 0;实验二链表的操作(一)班级 XXXXX 学号 XXXXXXX 姓名 XXXX第 X 周星期 X 、 XXX 节成绩一、实验目的:1、掌握单链表结构的实现方式;2、掌握单链表常用算法的实现。
计算机软件基础上机实验报告
计算机软件基础上机实验报告诚然的说以前从来没有老师以这种方式授过课。
我能感受的到,我不仅仅学习到了课本上的知识,更提高了团队合作,有效沟通,当众演说等其他方面的综合素质。
首先,上课的教材采用英文版本就让我们耳目一新,诚然以我个人的英语水平还不能完全理解教材。
经过在课堂上老师的重点剖析,能理解计算方法的基本算法思想,并能独立的编写每一个程序。
英语教材的使用也让我再次意识到英语水平的不足,以及英语学习的重要性和迫切性。
然后老师采取分组的方式进行交流,的确很契合大多数场合集体交流探讨的需要,让我们意识到团队的重要性,对今后我们的工作实践有了较好的启蒙基础,在小组内积极讨论还锻炼了我们的团队协作能力,增进了大家的情感交流,学习了不同同学好的算法思路。
采取小组回报的方式,给我们提供了一个上台发言的平台,让我们尝试着在更多人面前讲话,做PPT展示,克服胆怯的心里,锻炼了交际能力,灵活的应变能力,对今后的学习工作都有启蒙意义。
总的来说,在计算方法这门课上,我学到的东西着实很多,在上课时,积极围绕着老师的讲解思考问题,有时老师一些发人肺腑的话,也让人受益匪浅;课下我积极编程实现算法,提高了动手能力,也进一步的理解了算法的核心思想;在小组内讨论时,积极帮同学解决困惑,积极思考同学提出的新的算法思路,这些都让我受益匪浅;经过全组同学的共同努力,在小组汇报时,我抱着锻炼自己的心态积极参
加小组汇报!。
计算机软件技术基础实验报告
《计算机软件技术基础》实验报告专业_____________年级_____________学号_____________学生姓名_____________指导老师_____________南华大学计算机学院编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指向要交换的结点;②在主函数中调用创建链表的函数创建一个单链表,并调用该函数,验证算法的正确性。
计算机软件技术基础实验报告
学院:信电学院班级姓名:学号:课程:计算机软件技术基础实验日期:2013年11月24日成绩:实验九建立结构图和程序流程图一、实验目的1、掌握Microsoft visio环境。
2、掌握4种类型的模块;3、掌握建立系统结构图;4、掌握程序流程图的建立。
二、实验用软件和工具1.计算机。
2.VISIO软件。
三、实验步骤1 Microsoft OfficeVisio 环境和使用。
(1)模板:通过打开一个模板来开始创建Microsoft Office Visio图表。
模板在绘图页的左侧打开一个或多个模具。
模具包含创建图表所需的形状。
模板还包括创建特定的图表类型所需的所有样式、设置和工具。
(2)模具和形状:打开模板后,从模具中将形状拖到绘图页上来创建您的图表。
模具上的形状专门用于特定的绘图类型,并且其中的许多形状是“智能”的 - 它们具有感知绘图环境的内置行为。
(3)绘图环境:打开模板后,您将看到 Microsoft Office Visio 绘图环境,它包括菜单、工具栏、包含形状的模具、绘图页和位于绘图页右侧的任务窗格。
您在绘图页上创建绘图,所创学院:信电学院班级姓名:学号:课程:计算机软件技术基础实验日期:2013年11月24日成绩:建的绘图表示打印页面,并包含帮助调整形状位置的网格。
Visio 菜单和工具栏与其他Microsoft Office 系统程序中的菜单和工具栏类似,因此您可以用熟悉的方法打开、打印和保存图表。
(4)开始创建图表:1)打开模板:在“文件”菜单上,指向“新建”,然后单击“选择绘图类型”。
在“选择绘图类型”窗口的“类别”下,单击“软件”。
在“模板”下,单击“数据流模型图”。
2)添加形状:通过将“形状”窗口中模具上的形状拖到绘图页上,可以将形状添加到图表中。
把进程,接口,数据存储和数据流拖动到绘图页上。
3)删除形状:删除形状很容易。
只需单击绘图页上形状,然后按 DELETE 键。
单击图表中的最后一个“进程”形状,然后按 DELETE 键。
软件上机作业
实验二:链表(续)
ex2_2:
1)创建一个单链表,其数据元素为整数,从键盘输 入,输入0结束(注意0不放到链表内); 2)从键盘任意输入一个整数,在单链表中查询该数, 如果单链表中已经存在这个数,就调用删除函数,删 除该元素所在结点,并将单链表在删除前后的数据元 素依次输出到屏幕上; 如果单链表中不存在这个数,就调用插入函数,将这 个数插入到单链表尾,并将单链表在插入前后的数据 元素依次输出到屏幕上。
提示:创建顺序表函数 /*create a list:input data from keyboard,end by -1*/ void createlist(list_type *lp) { int i, elem; lp->length=0; printf("\nplease input datas of the list\n"); for(i=0; i< MAXNUM; i++) { scanf(" %d", &elem); if(elem== -1) break; lp->data[i]=elem; lp->length++; } }
提示:插入函数,成功返回true,反之返回false。
int insertlist(list_type *lp, int new_elem, int i) { int j; if(lp->length>=MAXNUM) { printf("the list is full,can not insert."); return(false); } if(i<1 || i>lp->length+1) { printf("\n%d is invalid value",i); return(false); } for(j=lp->length-1; j>=i-1; j--) lp->data[j+1]=lp->data[j]; lp->data[i-1]=new_elem; lp->length++; return(true); }
南京航空航天大学软件技术基础数据结构上机实验报告
南京航空航天大学计算机软件技术基础实践实验报告课程名称:计算机软件技术基础专题:数据结构上机实践姓名:xxx学号:xxx学院:自动化学院专业:自动化班级:xxx2013年10月目录(程序和流程图)实验一------------------------------------4第一种算法---------------------------4第二种算法---------------------------7实验二------------------------------------9线性表------------------------------9单链表------------------------------11顺序栈------------------------------14链栈---------------------------------15链列---------------------------------18实验三------------------------------------20二叉树----------------------------20实验四------------------------------------22顺序查找------------------------22二分查找------------------------24插入排序------------------------26选择排序------------------------28冒泡排序------------------------30大作业------------------------------------32通讯录---------------------------32一、实验一实验对象:顺序表。
实验目的:实现两个顺序表的合并。
实验要求:将共同拥有的元素只存其一。
思路清晰,编程正确,并将数据元素显示出来。
2017西电电院软件技术基础上机大作业答案
1.若在矩阵Am×n中存在一个元素A[i][j],其满足A[i][j]是第i行元素中最小值,且又是第j列元素中最大值,则称此元素为该矩阵的一个马鞍点。用二维数组存储矩阵Am×n,设计算法求出矩阵中所有马鞍点。(文件夹:找马鞍点)
2.A和B是两个n×n阶的对称矩阵,以行为主序输入对称矩阵的下三角元素,压缩存储存入一维数组A和B,编写一个算法计算对称矩阵A和B的乘积,结果存入二维数组C。(文件夹:对称矩阵相乘)
2.采用二叉链表结构存储一棵二叉树,编写一个算法统计该二叉树中结点总数及叶子结点总数。(文件夹:统计二叉树结点)
实验六图
一、实验目的
1.熟悉图的邻接矩阵和邻接表的存储结构
2.熟悉图的邻接矩阵和邻接表的建立算法
实验五树
一、实验目的
1.熟悉二叉树的链式存储结构
2.掌握二叉树的建立、深度优先递归遍历等算法
3.能够利用遍历算法实现一些应用
二、实验内容
1.已知二叉树采用二叉链表存储结构,如果左、右子树非空,且左子树根结点大于右子树根结点,则交换根结点的左、右子树。即按要求交换二叉树及子树的左、右子树。(文件夹:交换左右子树)
二、实验内容
1.串采用顺序存储结构,编写朴素模式匹配算法,查找在串中是否存在给定的子串。(文件夹:模式匹配)
思路6:朴素模式匹配对于字串和子串逐个字符进行匹配,在某一位置如果该字符与子串中的字符不相等时,那么进行回溯,子串到开始位置,字串到下一位置重新开始遍历,直到遍历结束,判断在该字串中是否存在给定的子串。
上机实训(一)教案 上海交大版中职计算机网络技术基础
课题上机实训(一)课时2课时(90 min)教学目标知识技能目标:(1)掌握Packet Tracer的安装方法和简单设置。
(2)掌握使用Packet Tracer建立网络拓扑的方法。
(3)掌握网络设备的简单配置。
(4)熟悉抓包软件WireShark的安装和界面。
(5)掌握使用WireShark捕获数据包的方法。
(6)了解数据包的首部明细内容。
思政育人目标:通过上机实训,使学生将所学知识应用到实践中,并在实践中深化认识,达到学以致用的目的;通过上机实训,使学生感受成功的乐趣,增强学生的自信心;通过上机实训,培养学生的钻研精神和探索精神;通过上机实训,使学生认识到网络技术对社会发展的重要性,自己应该努力学习网络技术,为社会主义建设做好准备。
教学重难点教学重点:Packet Tracer模拟器的使用、抓包软件WireShark的使用教学难点:使用Packet Tracer建立网络拓扑、使用WireShark 捕获数据包教学方法讲授法、演示法、实操法、问答法教学用具电脑、投影仪、多媒体课件、教材、文旌课堂APP教学设计第1节课:考勤(2 min)→传授新知(15 min)→上机实训(20 min)→实训总结(8 min)第2节课:传授新知(10 min)→上机实训(25 min)→实训总结(5 min)→课堂小结(3 min)→任务布置(2 min)教学过程主要教学内容及步骤设计意图第一节课考勤(2 min)n 【教师】使用文旌课堂APP进行签到n 【学生】按照老师要求签到培养学生的组织纪律性,掌握学生的出勤情况传授新知(15 min)实训1:Packet Tracer模拟器的使用n 【教师】介绍Packet Tracer的概况,及其安装和使用方法1.安装Packet TracerPacket Tracer是由Cisco公司发布的一个辅助学习工具,是为思科网络课程初学者设计、配置、排除网络故障提供的一个网络模拟环境。
软件工程上机实验报告(1-10)
SHANGHAI UNIVERSITY<软件工程>实验总结学院计算机工程与科学学院学号10122050姓名王杰指导老师陈圣波日期2014.03实验一软件工程标准化文档一、实验目的1.了解国家标准GB/T8567-20062.熟悉软件产品开发文件的基本内容二、实验内容1.搜索和下载国家标准GB/T8567-2006。
2.通过阅读国家标准GB/T8567-2006,将以下文字填写完整:3.通过阅读国家标准GB/T8567-2006,填写以下表格:实验2 数据流分析【说明】某直达列车车票预售系统接受顾客的订票和取票业务。
1.顾客为了提前订票,可向系统提供个人信息及其预订购的车次和日期,系统根据个人信息是否齐全和车次是否正确来判断订票单是否合格。
对于合格的订票单,系统通过查找座位表审核相应的车次是否有剩余票。
如果有剩余票,则记录顾客个人信息以及订票信息,并向顾客提供取票单。
2.到了可以取票的时间,顾客向系统提供取票单,在检查单据合格的情况下,系统想顾客提供火车票。
3.售票员可以利用系统查询各车次车票的已订购、已售出和剩余情况。
【问题1】画出系统的顶层数据流图。
【问题2】对问题1的结果进行分解,画出0层和1层数据流图。
(1) 系统的顶层数据流图直达列车车票预售系统顾客不合格订票单取票单(2)0层数据流图1订票2取票订票信息表旅客信息表列车时刻表订票单取票通知无票通知火车票取票单3.查询工作人员各车次车票的已订购、已售出和剩余情况车次车票信息1层数据流图实验三下面为模块“产生毕业典礼学生表”的功能描述,请画出该模块的程序流程图和PAD 图。
记录StudentRecord 给出即将大学毕业的学生的姓名和平均分(GPA )。
我们的目的是建立一个参加毕业典礼的学生表。
候选毕业的学生表从文件”StudRecs”读入。
因为学校规定:GPA 低于minGPA 的学生不能毕业,因此那些平均分低于minGPA 的学生不参加毕业典礼。
上机实验内容及实验报告要求标准范本
报告编号:LX-FS-A51995上机实验内容及实验报告要求标准范本The Stage T asks Completed According T o The Plan Reflect The Basic Situation In The Work And The Lessons Learned In The Work, So As T o Obtain Further Guidance From The Superior.编写:_________________________审批:_________________________时间:________年_____月_____日A4打印/ 新修订/ 完整/ 内容可编辑上机实验内容及实验报告要求标准范本使用说明:本报告资料适用于按计划完成的阶段任务而进行的,反映工作中的基本情况、工作中取得的经验教训、存在的问题以及今后工作设想的汇报,以取得上级的进一步指导作用。
资料内容可按真实状况进行条款调整,套用时请仔细阅读。
上机实验内容及实验报告要求一、《软件技术基础》上机实验内容1.顺序表的建立、插入、删除。
2.带头结点的单链表的建立(用尾插法)、插入、删除。
二、提交到个人10M硬盘空间的内容及截止时间1.分别建立二个文件夹,取名为顺序表和单链表。
2.在这二个文件夹中,分别存放上述二个实验的相关文件。
每个文件夹中应有三个文件(.C文件、.OBJ文件和.EXE文件)。
3.截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。
三、实验报告要求及上交时间(用A4纸打印)1.格式:《计算机软件技术基础》上机实验报告用户名se××××学号姓名学院①实验名称:②实验目的:③算法描述(可用文字描述,也可用流程图):④源代码:(.C的文件)⑤用户屏幕(即程序运行时出现在机器上的画面):2.对C文件的要求:程序应具有以下特点:A 可读性:有注释。
上机实验内容及实验报告要求
上机实验内容及实验报告要求本文是关于上机实验内容及实验报告要求,仅供参考,希望对您有所帮助,感谢阅读。
上机实验内容及实验报告要求一、《软件技术基础》上机实验内容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.每个人只需在实验报告中完成上述4个项目中的一个,具体安排为:将自己的序号对4求余,得到的数即为应完成的项目的序号。
例如:序号为85的同学,85%4=1,即在实验报告中应完成顺序表的删除。
2.实验报告中的源代码应是通过编译即可运行的。
3.提交到个人空间中的内容应是上机实验中的全部内容。
《软件技术基础》实验指导(含答案)
《软件技术基础》实验指导(含答案)说明每个实验题目含有一个main函数和一些函数,与实验题目相关的基本运算的函数定义和main函数定义的代码在附录以及对应的文件夹中给出,供上机实验参考使用。
对于每个题目,只需要根据题目要求设计算法,补充函数定义,然后对程序进行编译、调试。
1实验一线性表一、实验目的1.熟悉线性表的顺序和链式存储结构 2.掌握线性表的基本运算3.能够利用线性表的基本运算完成线性表应用的运算二、实验内容1.设有一个线性表E={e1, e2, … , en-1, en},设计一个算法,将线性表逆置,即使元素排列次序颠倒过来,成为逆线性表E’={ en , en-1 , … , e2 , e1 },要求逆线性表占用原线性表空间,并且用顺序表和单链表两种方法表示,分别用两个程序来完成。
(文件夹:顺序表逆置、单链表逆置)2.已知由不具有头结点的单链表表示的线性表中,含有三类字符的数据元素(字母、数字和其他字符),试编写算法构造三个以循环链表表示的线性表,使每个表中只含有同一类的字符,且利用原表中的结点空间,头结点可另辟空间。
(文件夹:分解单链表)实验二栈和队列一、实验目的1.熟悉栈和队列的顺序和链式存储结构 2.掌握栈和队列的基本运算3.能够利用栈和队列的基本运算完成栈和队列应用的运算二、实验内容1.设单链表中存放有n个字符,试编写算法,判断该字符串是否有中心对称的关系,例如xyzzyx是中心对称的字符串。
(提示:将单链表中的一半字符先依次进栈,然后依次出栈与单链表中的另一半字符进行比较。
)(文件夹:判字符串中心对称)2.假设以数组sequ[m]存放循环队列的元素,同时设变量rear和quelen 分别指示循环队列中队尾元素的位置和内含元素的个数。
编写实现该循环队列的入队和出队操作的算法。
提示:队空的条件:sq->quelen==0;队满的条件:sq->quelen==m。
(文件夹:循环队列)实验三串一、实验目的1.熟悉串的顺序存储结构 2.掌握串的基本运算及应用二、实验内容1.串采用顺序存储结构,编写朴素模式匹配算法,查找在串中是否存在给定的子串。
计算机软件基础上机实验报告
计算机软件基础上机实验报告实验目的:通过本次实验,掌握计算机软件的基本操作、基本编程概念以及实现方法,并能对实验结果进行分析和总结。
实验设备:计算机硬件平台和软件平台。
实验内容:1.学习使用计算机软件的基本操作。
2.学习使用计算机软件进行编程。
3.编写一个简单的计算机软件,并进行测试。
实验步骤:1.打开计算机软件,并学习基本的操作方法。
包括如何创建、保存和打开文件,如何设置字体、颜色和格式等。
2.学习基本的编程概念和语法,包括变量、函数、条件语句和循环语句等。
3.编写一个简单的计算机软件,并进行测试。
假设我们要编写一个求解一元二次方程的软件。
首先,定义一个函数来计算方程的根。
然后,在主函数中输入方程的系数,并调用函数进行计算。
最后,输出结果。
实验结果分析:通过本次实验,我学会了如何使用计算机软件进行操作和编程。
在编写一元二次方程求解软件的过程中,我遇到了一些问题,如如何处理方程无解和有多个解的情况等。
为了解决这些问题,我添加了对方程判别式的计算和判断逻辑,从而得到了正确的结果。
实验总结:本次实验让我更加深入地了解了计算机软件的基本操作和编程概念。
通过编写一个简单的计算机软件,我不仅巩固了所学的知识,还锻炼了分析和解决问题的能力。
在今后的学习和工作中,我将继续深入学习和应用计算机软件,为实现更多的功能和创造更大的价值做出贡献。
此外,我还意识到在软件开发过程中应注重错误处理和逻辑判断,确保软件的稳定性和可靠性。
以上是本次计算机软件基础上机实验的报告,通过本次实验,我对计算机软件的基本操作和编程有了更深入的了解,并在实践中掌握了一些基本的编程技巧和方法。
这将为我今后的学习和工作奠定坚实的基础。
软件技术基础上机作业
1)实验项目简介:《软件技术基础实验》是与理论课程《软件技术基础》配套开出的,主要包含一个C程序部分的综合测试上机实验,和四个数据结构部分的基本上机实验,着重培养同学进行软件设计的基本能力。
2)实验内容:实验一:C程序设计综合上机实验 4学时实验目的:回顾C程序部分的相关知识,加强同学对指针、函数和结构体等的软件技术基础课程中需要大量使用的C语言知识的巩固和掌握。
实验内容:1、从键盘上输入5个同学的基本信息,包含同学的姓名(用拼音字母表示),班级,年龄,性别,身高。
把年龄最小的一个同学的信息同排在第一个位置的同学的信息交换,把年龄最大的一个同学的信息和最后一个元素交换,并将交换前后的结果打印出来。
2、已知一个班中5名同学的英语成绩为{88,76,83,89,86,80,62,85,74,87},平时成绩为{8,9,7,8,6,9,10,8,9,10},主函数中用C的指针分配函数:malloc()分配两块连续的存储单元存放以上的考试成绩和平时成绩,用一个函数计算该班同学的考试平均成绩和各同学的最终成绩(考试成绩+平均成绩),在主函数中将以上计算结果打印出来。
3、要求在主函数输入一串文字,并编写一个函数计算该文字串中的大写字母,小写字母,数字以及其它字符的个数,并在主函数中将文字串和以上计算结果打印出来。
本题选作。
实验要求:本实验是软件技术基础课程的第一次上机实验,要求同学从本次实验开始遵守以下基本实验要求:1)上机之前必须在书面编好以上程序;2)上机是在老师的指导下完成程序的编译、调试和测试;3)实验完成后完成实验报告。
实验二:顺序表基本操作上机实验 4学时实验目的:掌握顺序表的基本概念,基本操作和其C语言实现,同时进一步强化C程序设计的基本方法和能力。
实验内容:1、有序的一组整数{1,2,3,4,6},设计顺序表并实现以下操作:A.初始化线性表;B.添加上述一组数;C.删除第四个数据元素;D.显示B,C操作后的结果。
实验报告 (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.掌握线性表的基本操作:插入、删除、查找以及线性表的合并等运算。
4.掌握运用C语言上机调试线性表的基本方法。
二、实验条件1.硬件:一台微机2.软件:操作系统和C语言系统三、实验方法确定存储结构后,上机调试实现线性表的基本运算。
四、实验内容1.试编写在无头结点的单链表上实现线性表基本运算LOCATE(L,X),INSERT (L,X,1)和DELETE(L,1)的算法。
2.假设有两个按数据元素值递增有序排列的线性表A和B,均以单链表作为存储结构。
编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许值相同)排列的线性表C,并要求利用原表(即A表和B表)结点空间存放表C。
3.将一个线性表中的值就地逆置。
4.在线性表的顺序存储结构的第一个位置上插入一个元素。
(注意区分链表和顺序表)实验代码:#include"stdlib.h"#include"stdio.h"struct node //定义结构体{int d;struct node *next;};struct node *head1,*head2,*p,*q;void pre(struct node *head) //打印数据{printf("链表中的数据为:\n");p=head;while(p!=NULL){printf("%5d",p->d);q=p;p=p->next;}printf("\n");}struct node *creat() //建立链表{struct node *head;int x;printf("输入你要储存的数据:\n");head=NULL;q=NULL;scanf("%d",&x);while(x>0){p=(struct node *)malloc(sizeof(struct node));p->d=x;p->next=NULL;if(head==NULL) head=p;else q->next=p;q=p;scanf("%d",&x);getchar();}pre(head);return (head);}void locate(struct node *head,int x) //查找链表中的数据{int u=1;p=head;while (p->next!= NULL){if (p->d==x)break;else{ p=p->next;u++;}}if(p->d!= x)printf("无此结点");printf("在链表中的位置为:");printf("%d",u);}void insert(struct node *head,int x, int i) //插入数据{ p = head;int j=1;q=(struct node *)malloc(sizeof(struct node));q->d=x;if(i==1){ q->next=head;head=q;}else{while((j<i-1)&&(p->next !=NULL)){j++;p=p->next;}q->next=p->next;p->next=q;}}void delet(struct node *head,int i) //删除数据{ p=head;int j=1;if(i<0) printf("无此位置");if(i==1){q=head; head=head->next; free(q);}else{while((j<i-1) && (p->next != NULL)){ p=p->next;j++;}q=p->next;p->next=q->next;free(q);}}void hebing(struct node *x,struct node *y) //合并两个链表{p=x;q=y;while(p->next!=NULL)p=p->next;p->next=q;pre(x);}void paixu(struct node *head) //对链表中的数据进行排序{int m,n,i=1,t;p=head;while(p->next!=NULL){p=p->next;i++;}p=head;for(n=i;n>1;n--){p=head;for(m=1;m<n;m++){q=p->next;if(p->d<q->d){t=p->d;p->d=q->d;q->d=t;}p=p->next;}}}void caozuo(struct node *head) //操作界面{int m,n;char t;printf("输入你要的操作:,查找 2,插入 3,删除\n");scanf("%c",&t);switch(t){case'1':{printf("输入你要查找的元素的值:\n");scanf("%d",&m);locate(head,m);}break;case'2':{printf("输入你要插入的元素的值和位置:\n");scanf("%d",&m);scanf("%d",&n);insert(head,m,n);pre(head);}break;case'3':{printf("输入你要删除的元素的位置:\n");scanf("%d",&m);delet(head,m);pre(head);}break;default:printf("error\n");}}void main() //主函数{char frag='y',n=NULL;printf("输入你要建立的第A链表中的元素:\n");head1=creat();printf("输入你要建立的第B链表中的元素:\n");head2=creat();do{printf("选择你要操作的链表A/B或者合并排序操作C:\n"); //选择操作scanf("%c",&n);getchar();switch(n){case'A':{caozuo(head1);}break;case'B':{caozuo(head2);}break;case'C':{hebing(head1,head2);paixu(head1);pre(head1);}break;default:printf("error\n");}printf("\n是否继续y/n:\n");scanf("%c",&frag);getchar();}while(frag=='y');}实验2 栈和队列的基本操作一、实验目的与基本要求1.掌握栈和队列的顺序存储和链式存储结构2.掌握栈和队列的特点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 顺序表和单链表的操作
1 实验目的
掌握线性结构中顺序表和链表的基本概念、基本操作和应用。
2 实验内容
2.1 顺序表的插入、删除操作
1、在已经创建的顺序表中插入一个元素。
从键盘读入元素值和插入位置,在指定的位置前插入。
(参考附后程序:insert.c)
2、在已经创建的顺序表中删除一个元素。
从键盘读入欲删除的元素位置,在指定的位置删除元素。
(参考附后程序:delete.c)
2.2 单链表的插入与排序
1、使用单链表,把一个数组的各个元素插入到链表中,并以升序排列。
2、排序完成后,对通过键盘输入的数据可插入到链表的适当位置,并保持链表的有序性。
3、屏幕打印这个单链表的所有元素。
(注:初始数组元素数据类型可以是整数型,个数不少于10个。
参考附后程序:list.c)
实验二 栈和队列的操作
1 实验目的
掌握栈的运算、队列中的进队和出队运算。
2 实验内容
2.1 顺序栈运算的实现
编写程序实现顺序栈的运算,包括以下函数:
1、初始化栈;
2、建立栈;
3、打印栈中的栈元素;
4、取栈顶元素;
5、进栈;
6、出栈。
在主函数中输出菜单,调用上述函数。
(参考附后程序stack.c)
2.2 队列中的进队和出队运算
顺序存储一个循环队列,编写下列函数:
1、初始化队列;
2、进队;
3、出队;
4、打印队列中的元素。
在主函数中提供调用上列函数的菜单。
(参考附后程序附后queue.c)
2.3 栈的应用
试编写一程序,运用栈结构实现编译系统中中缀表达式到后缀表达式的变换,要求可处理带括号的表达式。
(注:此题选做。
参考附后程序express.c)。