文档介绍:《软件开发技术基础》实验报告学院:XX学院班级:XX:XX学号:XX《软件开发技术基础》实验报告实验名称:实验一顺序表的操作班级学号姓名第周星期节成绩一、实验目的:1、掌握顺序表结构的实现方式;2、掌握顺序表常用算法的实现;3、熟悉利用顺序表解决问题的一般思路;4、参照给定的顺序表的程序样例,验证给出的顺序表的常见算法,领会顺序表结构的优点和不足。二、实验要求:1、掌握顺序表的特点及常见算法。2、提交实验报告,报告内容包括:目的、要求、算法描述、程序结构、主要变量说明、程序清单、调试情况、设计技巧、心得体会。三、实验内容:1、设计一个静态数组存储结构的顺序表,要求编程实现如下任务:(1)建立一个顺序表,首先依次输人整数数据元素(个数根据需要键盘给定)。(2)删除指定位置的数据元素(指定元素位置通过键盘输入),再依次显示删除后的顺序表中的数据元素。(3)查找指定数据的数据元素(指定数据由键盘输入),若找到则显示位置,若没有找到则显示0。2、使用顺序表实现一个电话本的管理程序,电话本中的每条记录包括学号、、手机号码和固定电话四项。要求实现菜单、初始化、添加、删除和显示等功能。四、程序要求:1、采用顺序表实现,假设该顺序表的数据元素个数在最坏情况下不会超过50个。2、写出完整的程序并能调试运行。五、实验结果:1、顺序表的结果:2、电话簿的结果:六、实验中遇到的问题及解决方法:?解决方法:用while进行判断。,删除函数中的l是指针,所以用->指向,而在主函数中l是结构体,用“.”。,而这个返回值是指针,所以在写查找函数的时候要把返回值类型写上。七、实验心得体会:一开始不知所措,首先应该有一个大的方向,把主程序编号,再逐步求精,落实到每一个函数的编写。对于c语言要熟练掌握,要熟悉循环等得操作,要熟练掌握顺序表中的插入,删除,查找,的基本函数。在此的基础上灵活使用。附:顺序表的程序:#include<>#include<>#include<>#include<>#defineMAXSIZE50structSeqlist{ intdata[MAXSIZE]; intlength;};Seqlist*init(){ Seqlist*p; p=(Seqlist*)malloc(sizeof(Seqlist)); p->length=0; returnp;}voidinsert(Seqlist*p){ intnum=0; printf("请输入要键入的个数:"); scanf("%d",&num); if(num<1) printf("键入的数据个数错误!\n"); else { printf("键入数据为:\n"); for(;num>0;num--) { p->length++; scanf("%d",p->data+p->length-1); if(p->length==MAXSIZE) { printf("数组已满\n"); break; } } } getchar();}voiddeletee(Seqlist*p){ inti=0; printf("请输入要删除元素的位置:"); scanf("%d",&i); if(i<1||i>p->length) printf("表中没有第%d个元素!\n",i); else { for(intj=i;j<=p->length-1;j++) p->data[j-1]=p->data[j]; p->length--; } getchar();}intfind(Seqlist*p){ intx; printf("请输入要查找的数据:"); scanf("%d",&x); for(inti=0;i<p->length;i++) { if(p->data[i]==x) { printf("此数据位于第%d个位置\n",i+1); returni+1; } } if(i>=p->length) printf("数组中没有此数据!\n"); getchar(); return0;}voiddisplay(Seqlist*p){ for(inti=0;i<p->length;i++) printf("%-5d",p->data[i]); putchar('\n'); getchar();}intmain(void){ Seqlist*p; p=init(); charflag; printf("1-插入2-删除3-查找4-显示0-退出\n"); while(1) { printf("请输入操作:"); switch(flag=getchar()) { cas