资源描述:
《软件技术基础》实验指导书》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《软件技术基础》实验指导书太原理工大学信息工程学院信息与通信工程系2004-2005学年第1学期《软件技术基础》实验教学大纲一、实验课程的性质、目的和任务1.培养学生利用所学数据结构、查找排序技术及数据库技术解决问题的能力,掌握对问题分析建模、设计算法、编程调试并实现的方法与技术。2.对教材上所给出的算法,用C语言编程并上机调试,必要时做改进并在计算机上实现。《软件技术基础》实验教学大纲一、实验课程的内容、要求及学时分配1.内容及学时分配实验一线性顺序表的插入与删除(2学时)实验二顺序栈的入栈与退栈及读栈顶元素(2学时)实验三规
2、则矩阵的压缩存储(2学时)实验四有序表的对分查找(2学时)实验五顺序表的冒泡排序(2学时)《软件技术基础》实验教学大纲基本要求学生最后提交实验报告和程序源码。实验报告应包含以下内容:(1)问题描述、分析。(2)解决问题的算法描述。(3)程序源码,且必须有必要的注释语句。实验报告可以提交电子版或书面版,程序源码提交电子版(磁盘)。《软件技术基础》实验教学大纲三、考核以学生的《实验报告》、程序源码以及上机出勤作为考核依据。四、参考资料教材、《C语言程序设计》、《数据结构》等参考书。实验一线性顺序表的插入与删除实验目的与要求:理解和掌
3、握线性表的顺序存储结构,使用C语言根据相应算法编写一个程序,实现线性顺序表的插入与删除。要求仔细阅读下面的内容,编写C程序,上机通过,并观察其结果,写出实验报告书。实验内容:建立一个长度为n的线性表,在第i个元素前面插入一个新元素b,得到一个长度为(n+1)的线性表;然后再删除第i个元素,得到长度为n的线性表。实验一线性顺序表的插入与删除具体要求:l根据线性顺序表的插入与删除的算法编写C程序,并上机调试。l编写的C程序要求建立一个长度不小于10的线性表,输出原始线性表,输出完成插入运算后的线性表,输出删除某个元素后的线性表。l实
4、验完成后,写出实验报告书。实验一线性顺序表的插入与删除算法:1.建立一个空线性表的顺序存储空间的C语言描述:#include“stdlib.h”voidinitsl(v,m,n)ET*v;intm,*n;{v=malloc(m*sizeof(ET));*n=0;return;}实验一线性顺序表的插入与删除2.在长度为n的线性表中的第i个元素前插入新元素bvoidinsl(v,m,n,i,b)intv[];intm,*n,i;{intj;if(*n==m)printf(“overflow”;return;}if(i>*n)i=
5、*n+1;If(i<1)i=1;For(j=*n;j>=i;j--)v[j]=v[j-1];v[i-1]=b;*n=*n+1;return;}实验一线性顺序表的插入与删除3.在长度为n的线性表中删除第i个元素voiddesl(v,m,n,i)intv[];intm,*n,i;{intj;if(*n==0)printf(“Underflow”;return;}if((i<1)
6、
7、(i>*n))printf(“Notthiselementinthelist”);return;}for(j=i;j<=*n-1;j++)v[j-
8、1]=v[j];*n=*n-1;return;}#include"stdio.h"#include"stdlib.h"#include"conio.h"voidinsl(intv[],intm,int*n,inti,intb)/*shangji1,xianxingbiaocharuP32*/{intj;if(*n==m){printf("overflow!");return;}if(i>*n)i=*n+1;if(i<1)i=1;for(j=*n;j>=i;j--)v[j]=v[j-1];v[i-1]=b;*n=*n+1;re
9、turn;}main(){inta[15]={1,2,3,4,5,6,7,8,9,10};intn=6;inti;insl(a,15,&n,4,99);/*zhuyi&dizhiyunsuanfu*/printf("");for(i=0;i10、读下面的内容,编写一个C程序,上机调试通过,并观察其结果,写出实验报告书。实验二顺序栈的入栈与退栈及读栈顶元素实验内容:建立一个容量为m的顺序栈,首先在其中压入5个元素,然后作退栈运算和读栈顶元素。实验二顺序栈的入栈与退栈及读栈顶元素具体要求:l根据顺序栈的入栈