资源描述:
《实验一 线性表的实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.实验一线性表的实验实验课程名:C语言程序设计专业班级:学号:姓名实验时间:实验地点:指导教师:一、实验目的及要求1、掌握用VisualC++6.0调试顺序表的基本方法。2、掌握顺序表的基本操作,插入、删除、查找、以及有序顺序表的合并等算法的实现。3、掌握用VisualC++6.0上机调试单链表的基本方法。4、掌握单链表的插入、删除、查找、求表长以及有序单链表的合并算法的实现。5、进一步掌握循环单链表的插入、删除、查找算法的实现。二、实验内容1、任务一:用顺序表实现通讯录管理(2)构建如表1所示的顺序表并输出检验,实现
2、表1。(3)增加插入记录的功能并输出检验,实现表2。(4)增加按学号查找的功能并运行验证。(5)增加删除记录的功能并运行验证。表1学号姓名性别手机号码QQ号2013001张珊女1380000191934578表22013002李思女1391012197887965322013003陈琪女1378945001237891232013004王强男1363456785665437832013005赵括男1353440897656792013006刘刚男1338654321198315注意:用结构化程序设计的方法实现即(其中的
3、)把单一功能设计成一个独立的函数。如构建顺序表设计成一个函数,同样插入、查找、删除、输出也设计成独立的函数。解答:(1)源代码:#include#include#include#defineMaxSize10typedefstruct{charxuehao[14];//学号charname[20];//姓名intsex;//性别chartel[14];//联系电话charqq[12];//QQ号}ElemType;typedefstruct{ElemType*l
4、ist;intlength;intsize;....}SeqList;voidInitSeqList(SeqList*L){charflag;inti,n;ElemType*p;L->list=(ElemType*)malloc(MaxSize*sizeof(ElemType));L->length=0;L->size=MaxSize;printf("是否输入初始数据?(Y/N)");scanf("%c",&flag);if(flag=='N'
5、
6、flag=='n')return;printf("请输入初始化数据的个数
7、:");scanf("%d",&n);if(n>L->size){printf("数据太多,不足以存储!");return;}p=L->list;L->length=n;for(i=0;ixuehao,p->name,&p->sex,p->tel,p->qq);p++;}return;}voidPrintSeqList(SeqList*L){inti;printf("
8、学号姓名性别联系电话QQ号");for(i=0;ilength;i++){printf("%st%st",L->list[i].xuehao,L->list[i].name);if(L->list[i].sex)printf("男");elseprintf("女");printf("t%st%6s",L->list[i].tel,L->list[i].qq);}....}/*intmain(){SeqListL;InitSeqList(&L);PrintSeqList(&L);return0;}
9、*/intInsertSeqList(SeqList*L,inti,ElemType*e){ElemType*q,*p;if(L->length+1>L->size){printf("表满,失败!");return0;}if(i<1
10、
11、i>L->length+1){printf("插入位置错误,失败!");return0;}q=&(L->list[i-1]);for(p=&(L->list[L->length-1]);p>=q;p--)*(p+1)=*p;*(p+1)=*e;L->length++;return1;}/
12、*intmain(){ElemTypee;SeqListL;InitSeqList(&L);PrintSeqList(&L);printf("请输入要插入的数据(学号姓名性别(0或1)联系电话QQ号):");scanf("%s%s%d%s%s",e.xuehao,e.name,&e.sex,e.tel,e.qq);printf