欢迎来到天天文库
浏览记录
ID:45746557
大小:80.83 KB
页数:45页
时间:2019-11-17
《《数据结构与算法实验》实验指导》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、湖北汽车工业学院实验报告班号序号姓名课程名称数据结构与算法实验笫1号实验完成FI期年月_日—午实验一线性表操作一、实验目的1.掌握用C语言调试程序的基本方法。2.掌握结构体类型的基本用法。3.掌握线性衣的基本运算,包括顺序衣和链衣的基本操作,如插入、删除等。二、实验内容1.利用顺序表完成一个班级的一个学期的所有课程的管理:能够增加、删除、修改学生的成绩记录。2.建立一个单链表,同时对该链表实现指定位置的插入、删除操作。三、实验操作(在空白处填上合适的代码)(一)利用顺序表完成一个班级学生课程成绩的简单管理1、预定义以及顺序表结构类型的定义(1)#defineListS
2、ize(2)typedefstructStu{intnum;charname[10];floatwuli;floatshuxue;floatyingyu;}STUDENT;//根据需要自己设定一个班级能够容纳的最人学生数〃学生的学号〃学生的姓名〃物理成绩〃数学成绩〃英语成绩〃存放单个学牛信息的结构体类型typedefstructList{stu[ListSize];intlength;}LIST;〃存放学生的数组定义,静态分配空间//记录班级实际学牛个数〃存放班级学生信息的顺序表类型2、建立班级的学生信息voidlistcreate(LIST*Li,intm)//m为
3、该班级的实际人数Li->length=O;for(i=0;i4、fr%f);//输入第i个学生的英语成绩Li->length++;〃学生人数加13、插入一个学生信息intlistinsert(LIST*Li,inti)//将学生插入到班级Li的第i个位置。{intj;STUDENTe;if()〃测试存储空间是否被占满{printfC'无更多的存储空间!");return0;}if()〃插入位置检验,如果错课就返冋0退出程序。return0;elseprintf("请输入插入的学生信息:〃);printf("num二〃);scanf("%d",&e.num);printf("name=");scanf("%s",e.name)5、;printf("wuli=");scanf&e.wuli);printf("shuxue=");seanf(“%f:&e.shuxue);printf("yingyu二");seanf("%f",&e.yingyu);for(j=;j>=;j~)//从i位置到最后的元素依次往后移动Li->stu[j+l]=Li->stu[j];二e;Li->length++;return1;//学牛e放入到i位置〃学生实际人数加1//删除第i个学生的信息4、删除一个学生信息int1istdel(LTST*Li,inti){intj;if()〃删除位置检验,如果错课就返冋0退出程序。6、return0;else{for(j=;j<;j++)〃从删除位置后一个到最后的元素依次往前移动Li-〉stu[j-l]=Li->stu[j];Li->length--;return1;}}5、显示所有学生信息voidlistdisplay(LISTL){inti;printf("班级学生信息如-F:");for(i=0;i<;i++)printf(〃%10d[学号]%10s[姓名]%10.2f[物理成绩]%10.2f[数学成绩]%10.2f[英语成绩]rT,L・stu[i].num,L.stu[i]・name,L.stu[i].wuli,L.stu[i].sh7、uxue,L.stu[i].yingyu);}6、编写主函数main,要求测试以上所编写的listcreat>listinsert>listdel和listdisplayvoidmain()//自己设计主函数完成(-)利用单链表完成一个班级学生课程成绩的简单管理1、单链表结构体类型的定义typedefstructStu{intnum;//学生的学号charname[10];//学生的姓名floatwuli;floatshuxue;floatyingyu;//物理成绩〃数学成绩〃英语成绩}STUDENT;//存放单个学牛信息的结构体类型STUDENTd
4、fr%f);//输入第i个学生的英语成绩Li->length++;〃学生人数加13、插入一个学生信息intlistinsert(LIST*Li,inti)//将学生插入到班级Li的第i个位置。{intj;STUDENTe;if()〃测试存储空间是否被占满{printfC'无更多的存储空间!");return0;}if()〃插入位置检验,如果错课就返冋0退出程序。return0;elseprintf("请输入插入的学生信息:〃);printf("num二〃);scanf("%d",&e.num);printf("name=");scanf("%s",e.name)
5、;printf("wuli=");scanf&e.wuli);printf("shuxue=");seanf(“%f:&e.shuxue);printf("yingyu二");seanf("%f",&e.yingyu);for(j=;j>=;j~)//从i位置到最后的元素依次往后移动Li->stu[j+l]=Li->stu[j];二e;Li->length++;return1;//学牛e放入到i位置〃学生实际人数加1//删除第i个学生的信息4、删除一个学生信息int1istdel(LTST*Li,inti){intj;if()〃删除位置检验,如果错课就返冋0退出程序。
6、return0;else{for(j=;j<;j++)〃从删除位置后一个到最后的元素依次往前移动Li-〉stu[j-l]=Li->stu[j];Li->length--;return1;}}5、显示所有学生信息voidlistdisplay(LISTL){inti;printf("班级学生信息如-F:");for(i=0;i<;i++)printf(〃%10d[学号]%10s[姓名]%10.2f[物理成绩]%10.2f[数学成绩]%10.2f[英语成绩]rT,L・stu[i].num,L.stu[i]・name,L.stu[i].wuli,L.stu[i].sh
7、uxue,L.stu[i].yingyu);}6、编写主函数main,要求测试以上所编写的listcreat>listinsert>listdel和listdisplayvoidmain()//自己设计主函数完成(-)利用单链表完成一个班级学生课程成绩的简单管理1、单链表结构体类型的定义typedefstructStu{intnum;//学生的学号charname[10];//学生的姓名floatwuli;floatshuxue;floatyingyu;//物理成绩〃数学成绩〃英语成绩}STUDENT;//存放单个学牛信息的结构体类型STUDENTd
此文档下载收益归作者所有