




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构实验报告实验一、顺序表的应用 专 业 电子商务 班 级 102班 学 号 10106020209 学生姓名 王立新 指导老师 米晓红 河南科技大学管理学院2011年10月23日一.实验目的熟练掌握线性表链式存储结构的建立方法及基本操作算法,并根据实际问题的要求,灵活运用。二.实验内容本次实验要求以班级学生信息作为管理对象,根据实验一建立班级学生信息线性表的链式存储结构,并练习使用单链表的基本操作算法,实现对班级学生信息的管理,包括学生信息的插入、学生信息的删除、学生信息的查询和学生信息线性表的输出。三完成情况依照实验内容编写的程序代码:7#include #include #include typedef struct student char num8;/*学号*/ char name9;/*姓名*/ char gender3;/*性别*/ int score;/*成绩*/ struct student *next; int length; LinkList;LinkList *L;int menu_select()int sn;printf(n 学生信息管理系统n);printf(=n);printf( 1.学生信息线性表的建立n);printf( 2.插 入 学 生 信 息n);printf( 3.查 询 学 生 信 息n);printf( 4.删 除 学 生 信 息n);printf( 5.输 出 所有学生信息n);printf( 0.退 出 管 理 系 统n);printf(=n);printf(请选择0-5:n);for(;)scanf(%d,&sn);if (sn5) printf(nt输入错误,重选0-5n);else break;return sn;void createList(LinkList *L) LinkList *p; LinkList *q; int i,n;q=(LinkList *)malloc(sizeof(struct student);printf(有几位学生?请输入:n);fflush(stdin);scanf(%d,&n);printf(以下请输入这%d位学生的信息:n,n); q=L;for(i=0;inum,p-name,p-gender,&p-score); q-next=p;q=p;q-next=NULL;void printList(LinkList *L)int i=1;LinkList *p;p=(LinkList *)malloc(sizeof(struct student);printf(n学号(8) 姓名(8) 性别 成绩n);printf(-n);p=L-next;if(p!=NULL)do printf(第%d位学生:,i); printf(%s,%s,%s,%dn,p-num,p-name, p-gender,p-score); printf(-n); p=p-next; i+;while(p);int insert(LinkList *L,LinkList *s,int k) int j=0;LinkList *p=L; while(p&jnext; +j; s-next=p-next;p-next=s;int findList(LinkList *L) LinkList *P=L-next;char num8;char name9;int i=0,xz;printf(n);printf(1、按学号查询n);printf(2、按姓名查询n);printf(=n);printf( 请选择: );fflush(stdin);scanf(%d,&xz);if (xz=1)printf(请输入要查找学生的学号:); scanf(%s,num); while(P!=NULL&(strcmp(P-num,num)!=0) P=P-next; if(P=NULL) printf(没有您要查询的学生信息!); return (NULL); else return P; else if (xz=2) printf(请输入要查找学生的姓名:); scanf(%s,name); while(P!=NULL&(strcmp(P-name,name)!=0) P=P-next;if(P=NULL) printf(没有您要查询的学生信息!);return (NULL); else return P; void delNode(LinkList *L)int i,j;LinkList *p,*q,*p1; p1=(LinkList *)malloc(sizeof(struct student);printf(请先查找您要删除的学生信息:n);p1=findList(L);if(p1=NULL) printf(没有查到要删除的学生信息); while(L-next!=p1) L=L-next; L-next=p1-next; printf(该学生信息已被删除!n);void main() LinkList *L,*p,*s,*P; int i,k; while(1) switch(menu_select() case 1: printf(*n); printf( 学生信息线性表的建立 n); printf(*n);L=(LinkList *)malloc(sizeof(struct student);createList (L); break; case 2: printf(*n); printf(添加学生信息n); printf(请输入要添加的学生信息:n);printf(n学号(8) 姓名(8) 性别 成绩n); printf(*n); s=(LinkList *)malloc(sizeof(struct student); fflush(stdin);scanf(%s%s%s%d,s-num,s-name,s-gender,&s-score); printf(请输入要插入的位置:n); fflush(stdin); scanf(%d,&k); insert(L,s,k); break; case 3: printf(*n); printf(查询学生信息n); printf(*n); p=findList(L); if(p!=NULL)printf(您要查的学生为:n学号(8) 姓名(8) 性别 成绩n); printf(-n); printf(%s,%s,%s,%dn,p-num,p-name,p-gender,p-score); printf(-n); else printf(没有您要查询的学生信息!); break; case 4: printf(*n); printf(删除学生信息n); printf(*n); delNode(L); break; case 5: printf(*n); printf(输出所有学生信息n); printf(*n); printList(L); break; case 0:printf(再见!n);getchar(); return; 四.实验结果1. 学生信息表的建立2. 插入学生信息3.查询学生信息4.删除学生信息5.输出所有学生信息6.退出管理系统五.问题与解决1. 学生信息表不能正确的建立,学生信息不能正确的插入,而插入的是乱码?未正确的定义指针变量,或是定义了变量但没有申请动态存储空间。这就不能插入学生信息或插入的是乱码。2. 不能正确的删除学生信息,删除是指定位置的下一个学生信息?程序中循环使用了while,使循环多了一次,造成删除下一学生信息的情况发生。3. 错误提示某一个变量未指向结构体变量?原因是定义的变量在申请动态存储空间时,没有指向结构体变量。六.实验总结实验体会:线性表的链式存储结构是用一组任意的存储单元存储线性表的数据元素的。每个结点包括两个域:其中存储数据元素信息的域为数据域;存储直接后继的域为指针域。程序中若是需要有返回值时,被调用的函数一定要有return语句,把相应的信息返回到主函数中。也可以通过定义一个外部全局变量解决。指针变量在定义时类型要一致,且要有动态申请存储空间的语句,并指向结构体中定义变量。在使用while循环时,没有正确的理解该函数判断结束的条件,及结束后的情况,使信息在输出时多向下输出了一次,造成输出信息错误。对这个问题可以利用do-while循环解决多一次循环的弊端。试验收获:通过本次上机试验,独立对学生信息管理系统程序进行了编译。在编译过程中发现了很多的问题,也也遇到了不少的困难。在解决这些困难的过程中,查询了不少的相关知识,进一步加深了对链式存储结构的理解,对以后更加深入的学习奠定了基础。只有不断的实际操作,发现问题,解决问题,才能真正的提高实战能力。实验成绩评价项目评分等级独立完成完整的实验内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程运营委托协议书
- 工地工人聘用协议书
- 对口合作框架协议书
- 工程产品追加协议书
- 工程抹灰施工协议书
- 市场代理保护协议书
- 工厂铁笼转让协议书
- 小麦寄卖合同协议书
- 工厂线路安装协议书
- 注塑车间协议书
- 《十万个为什么》(米伊林)分享课课件
- DB11-T 584-2022 薄抹灰外墙外保温工程技术规程
- 2024秋期国家开放大学本科《经济学(本)》一平台在线形考(形考任务1至6)试题及答案
- 2024秋期国家开放大学《当代中国政治制度》一平台在线形考(任务一至四)试题及答案
- 2025年中考历史复习专项训练:中国近代史材料题40题(原卷版)
- 2024届重庆市南开中学高三第四次质量检测英语试题及答案
- 科研结余经费管理办法
- 升职晋级与薪资调整管理制度
- 2024年山东省高考物理+化学+生物试卷(真题+答案)
- DL∕T 1829-2018 火电厂袋式除尘器荧光粉检漏技术规范
- 江苏省连云港市2024年中考物理试题(含答案)
评论
0/150
提交评论