欢迎来到天天文库
浏览记录
ID:34401164
大小:77.63 KB
页数:6页
时间:2019-03-05
《数据结构实验安排》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构实验安排(供08信管、08网工使用)温州大学计算机学院吴文国实验一熟悉VC环境(2周)[目的]熟悉VC环境,巩固C语言结构体的使用方法。[说明] 某一个班级有若干同学(假设不超过20人),每个同学有学号,姓名,语文,数学、物理三门功课成绩有总分及名次等信息。程序的结构如下所示。完成该程序并在上机运行测试。[附录]程序的大致结构如下#include#defineMaxNum20typedefstructstudInfo{ intnumber; charname[20]; intchinese;//项,域 intmath; intPhy
2、sics; inttotalScore; intorder;}STUDINFO;main(){intNum;//实际人数STUDINFOstud[MaxNum];inti;printf("请输入学生人数(要小于等于%d)",MaxNum);scanf("%d",&Num);for(i=0;i3、*1.输入Num个同学的各门功课的成绩注释语句,计算机不执行,供用户阅读*//*2.求各同学的总分*//*3.求名次*//*4.把数据输出*/}[思考题]1.当输入学生人数大于MaxNum时,会出现错误,如何处理这个错误?如果要求用户再次输入,怎么实现?2.有时事先不知道实际人数,在操作过程中才知道人数。怎么办?可能在输入过程中,当输入的学号是一个非正常数时,表示输入结束,如何实现?3.如果1,2,3,4都用函数实现,如何实现?实验二性线表的插入与删除操作--数组实现[目的]巩固线性概念和基本操作,学会用数组实现线性表。[说明]数据结构及定义与实验一一样。最初输入若干个4、同学了,在处理过程中,有些同学被删除,有些同学插入,根据输入学号输出学生信息。要求有以下的功能都用单独一个函数实现:1.输入若干个学生的数据2.插入某一个同学的数据3.删除某一个同学的数据4.输入学号查找某一个同学5.输出整个表格。实验二的程序结构#includetypedefstructstudInfo{intnumber;charname[20];intchinese;//项,域intmath;intPhysics;inttotalScore;intorder;}STUDINFO;#defineListSize100typedefSTUDINFOD5、ataType;typedefstruct{DataTypedata[ListSize];intLength;}SeqList;intInsertList(SeqList*L,DataTypex,inti)//返回是1表示插入成功0表示不成功{//将新结点x插入L所指的顺序表的第i个结点ai的位置上intj;if(i<16、7、i>L->length+1){//Error("positionerror");//非法位置,退出运行printf("插入位置出错:"); return0; }if(L->length>=ListSize){//Error("overflow")8、;//表空间溢出,退出运行printf("线性表已满,不能再插入");return0;}for(j=L->length-1;j>=i-1;j--)L->data[j+1]=L->data[j];//结点后移L->data[i-1]=x;//插入xL->Length++;//表长加1return1;}main(){intNum;inti; intpos; intselect; //STUDINFOs1; SeqListstud;//初始化 stud.Length=0;printf("请输入学生人数(要小于等于%d)",MaxNum);scanf("%d"9、,&Num);/*建立一个输入函数,其功能是专门用来Num个同学的数据 */ while(1) { printf("请选择:0(退出)1(插入),2(删除)3(查找):"); scanf("%d",&select); switch(select) {case1: printf("输入要插入的位置"); scanf("%d",&pos); /*输入一个同学的数据:学号,姓名,成绩等放在s1*/ /*写一个函数实现插入算法,基本与书上的相似,但是要做少些改变*/if(InsertL
3、*1.输入Num个同学的各门功课的成绩注释语句,计算机不执行,供用户阅读*//*2.求各同学的总分*//*3.求名次*//*4.把数据输出*/}[思考题]1.当输入学生人数大于MaxNum时,会出现错误,如何处理这个错误?如果要求用户再次输入,怎么实现?2.有时事先不知道实际人数,在操作过程中才知道人数。怎么办?可能在输入过程中,当输入的学号是一个非正常数时,表示输入结束,如何实现?3.如果1,2,3,4都用函数实现,如何实现?实验二性线表的插入与删除操作--数组实现[目的]巩固线性概念和基本操作,学会用数组实现线性表。[说明]数据结构及定义与实验一一样。最初输入若干个
4、同学了,在处理过程中,有些同学被删除,有些同学插入,根据输入学号输出学生信息。要求有以下的功能都用单独一个函数实现:1.输入若干个学生的数据2.插入某一个同学的数据3.删除某一个同学的数据4.输入学号查找某一个同学5.输出整个表格。实验二的程序结构#includetypedefstructstudInfo{intnumber;charname[20];intchinese;//项,域intmath;intPhysics;inttotalScore;intorder;}STUDINFO;#defineListSize100typedefSTUDINFOD
5、ataType;typedefstruct{DataTypedata[ListSize];intLength;}SeqList;intInsertList(SeqList*L,DataTypex,inti)//返回是1表示插入成功0表示不成功{//将新结点x插入L所指的顺序表的第i个结点ai的位置上intj;if(i<1
6、
7、i>L->length+1){//Error("positionerror");//非法位置,退出运行printf("插入位置出错:"); return0; }if(L->length>=ListSize){//Error("overflow")
8、;//表空间溢出,退出运行printf("线性表已满,不能再插入");return0;}for(j=L->length-1;j>=i-1;j--)L->data[j+1]=L->data[j];//结点后移L->data[i-1]=x;//插入xL->Length++;//表长加1return1;}main(){intNum;inti; intpos; intselect; //STUDINFOs1; SeqListstud;//初始化 stud.Length=0;printf("请输入学生人数(要小于等于%d)",MaxNum);scanf("%d"
9、,&Num);/*建立一个输入函数,其功能是专门用来Num个同学的数据 */ while(1) { printf("请选择:0(退出)1(插入),2(删除)3(查找):"); scanf("%d",&select); switch(select) {case1: printf("输入要插入的位置"); scanf("%d",&pos); /*输入一个同学的数据:学号,姓名,成绩等放在s1*/ /*写一个函数实现插入算法,基本与书上的相似,但是要做少些改变*/if(InsertL
此文档下载收益归作者所有