顺序表-链表实验报告.总结(共28页)_第1页
顺序表-链表实验报告.总结(共28页)_第2页
顺序表-链表实验报告.总结(共28页)_第3页
顺序表-链表实验报告.总结(共28页)_第4页
顺序表-链表实验报告.总结(共28页)_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上实验报告实验目的:学生管理系统(顺序表)实验要求: 1.建表 2.求表长 3.插入 4.查找 5.删除 6.列表 7.退出源程序:#include #include #include #define MaxSize 1000typedefstruct char xh40;char xm40;int cj;DataType; /学生的结构 typedef struct DataType dataMaxSize; /定义表的数据类型 int length; /数据元素分别放置在data0到datalength-1当中 SqList; /表的结构 void liebiao(

2、SqList *L) /建立表格 int k,n;char q; printf(请输入,输入学生的个数:n);fflush(stdin); scanf(%d,&n); for(k=0;kdatak.xh);printf(请输入学生名字n);scanf(%s,L-datak.xm);printf(请输入学生成绩n);scanf(%d,&L-datak.cj); L-length=n; void qb(SqList *L) /全部输出 int k,w;for(k=0;klength;k+)w=k+1;printf(第%d位学生:,w); printf(%s %s %dn,L-datak.xh,L-

3、datak.xm,L-datak.cj);int cr(SqList *L,DataType *xs,int i) /插入信息 int j; if(L-length=MaxSize) printf(没有!); return 0; else if(iL-length) printf(程序溢出,不符合); return 0; else for(j=L-length-1;j=i;j-) strcpy(L-dataj+1.xh,L-dataj.xh); strcpy(L-dataj+1.xm,L-dataj.xm); L-dataj+1.cj=L-dataj.cj; strcpy(L-datai.xh

4、,xs-xh); strcpy(L-datai.xm,xs-xm); L-datai.cj=xs-cj; L-length=L-length+1; return 0; int cz(SqList *L) /查找信息 char xh40;char xm40;int cj;int i=0,u; printf( 1、按学号查询 n); printf( 1、按姓名查询 n);printf( 1、按成绩查询 n); printf(请选择:);fflush(stdin); scanf(%d,&u); if (u=1) printf(请输入要查找学生的学号:); scanf(%s,xh); for(i=0;

5、ilength;i+) if(strcmp(L-datai.xh,xh)=0) return i; if (u=2) printf(请输入要查找学生的姓名:); scanf(%s,xm); for(i=0;ilength;i+) if(strcmp(L-datai.xm,xm)=0) return i; if (u=3) printf(请输入要查找学生的成绩:); scanf(%s,cj); for(i=0;ilength;i+) if(L-datai.cj,&cj) return i; return -1;/*如果没找到,返回-1 int cz2(SqList *L) /删除查找的函数 ch

6、ar xh40;char xm40;int i=0,h; printf( 1、按 学 号 删除 n); printf( 2、按 姓 名 删除 n); printf(请选择:);fflush(stdin); scanf(%d,&h); if (h=1) printf(请输入要删除学生的学号:); scanf(%s,xh); for(i=0;ilength;i+) if(strcmp(L-datai.xh,xh)=0) /判断输入和已知学号一样不return i; else if (h=2) printf(请输入要删除学生的姓名:); scanf(%s,xm); for(i=0;ilength;i

7、+) if(strcmp(L-datai.xm,xm)=0) /判断输入姓名和已知姓名一样不 return i; return -1; void sc(SqList *L) /删除函数 int i,j; printf(请先选择您要删除的学生信息的方式:n);scanf(%d,&j); i=cz2(L); if(i=-1) printf(没有查到要删除的学生信息); return; for(j=i;jlength;j+) / 要删除学生以后的学生整体上调一位 L-dataj.cj=L-dataj+1.cj; /就是后一个覆盖了前一个 strcpy(L-dataj.xh,L-dataj+1.xh)

8、; strcpy(L-dataj.xm,L-dataj+1.xm); L-length-; printf(该学生信息已被删除!n); int bc(SqList *L)return (L-length);int main() /主体大函数 int i,k; SqList *L; /定义顺序表的指针 DataType *xs; L=(SqList *)malloc(sizeof(SqList)*MaxSize); char q; ee: rewind(stdin); printf( 学生管理系统 n); /函数的各个结构 printf( n); printf( n); printf( n); p

9、rintf( 建立表格请输入1 n); printf( 求表长 请输入2 n); printf( 插入 请输入3 n); printf( 查找 请输入4 n); printf( 删除请输入5 n); printf( 列表请输入6 n); printf( 退出请按0 n); printf( 请输入); scanf(%c,&q);if(q=1)rewind(stdin);liebiao(L);goto ee;if(q=2)rewind(stdin);bc(L);printf(共%d个学生n,L-length);goto ee;if(q=3)rewind(stdin); printf( 插 入 n)

10、;printf(tt 请 输 入 要 添 加 的 学 生 信 息: n);xs=(DataType *)malloc(sizeof(DataType); printf(请输入学生学号n);scanf(%s,xs-xh);printf(请输入学生名字n);scanf(%s,xs-xm);printf(请输入学生成绩n);scanf(%d,&xs-cj);printf(请输入要插入的位置:n);rewind(stdin); scanf(%d,&i); cr(L,xs,i); goto ee;if(q=4)rewind(stdin);printf( 查 找 n);printf( 查 询 学 生 信

11、息 n); i=cz(L); if(i!=-1) printf(%s %s %dn,L-datai.xh,L-datai.xm,L-datai.cj); else printf(信息不存); goto ee;if(q=5)rewind(stdin);printf( 删 除 n);printf( 删 除 学 生 信 息 n); sc(L);goto ee; if(q=6) rewind(stdin);printf( 列表 n);qb(L);goto ee; if(q=0) printf(谢谢使用n); if(!(q=1|q=2|q=3|q=4|q=5|q=5|q=0) goto ee; syst

12、em (pause); return 0; 输入1-6主程序: 建表 n=1 求表长 n=2 插入 n=3 查找 n=4 删除 n=5 列表 n=6退出输入学生个数n, 变量k建表: k=0; k=n-1; 是 否 输入学号,姓名,成绩 k=k+1 结束输入查找学号n,变量k查找: k=0 n=k 是 否 k=k+1 输出输入插入位置n表长L变量k插入:输入错误 ndataj+1.xh,L-dataj.xh); strcpy(L-dataj+1.xm,L-dataj.xm); L-dataj+1.cj=L-dataj.cj 结束输入删除的位置n变量k表长L删除:输入错误 ndataj.xh,L

13、-dataj-1.xh); strcpy(L-dataj.xm,L-dataj-1.xm); L-dataj.cj=L-dataj-1.cj 结束 输入表长L变量k列表: k=L 是 否输出学号,姓名,成绩 k=k+1 结束实验目的:学生管理系统(链表)实验要求:1.建表2.删除3.列表4.退出源程序:#include#include#includestruct xuesheng char xh7; char xm40; int cj; struct xuesheng *next; ;struct xuesheng *cha_ru(struct xuesheng *x) struct xues

14、heng *p,*q; int c; do if(x=0) x=(struct xuesheng *)malloc(sizeof(struct xuesheng); printf(input xh:); scanf(%s,(*x).xh); printf(input xm:); scanf(%s,(*x).xm); printf(input cj:); scanf(%d,&(*x).cj); (*x).next=0; else p=x; while(*p).next!=0)p=(*p).next; q=(struct xuesheng *)malloc(sizeof(struct xueshe

15、ng); printf(input xh:); scanf(%s,(*q).xh); printf(input xm:); scanf(%s,(*q).xm); printf(input cj:); scanf(%d,&(*q).cj); (*p).next=q; (*q).next=0; printf(ni hai ji xu me? 1/2:); scanf(%d,&c); while(c=1); return(x); int link_len(struct xuesheng *x) struct xuesheng *p; int l=0; p=x; if(p!=0)do l=l+1; p

16、=p-next; while(p!=0); return(l); struct xuesheng *shan_chu(struct xuesheng *x) struct xuesheng *p,*q,*t; int k,l,i; p=x; q=x; l=link_len(x); printf(input shan chu jie dian xu hao :); scanf(%d,&k); if(kl)printf(error data!n); if(k=1) x=p-next; t=p; free(t); if(k1&k=l) for(i=1;inext; t=p-next; for(i=1

17、;inext; p-next=q; free(t); printf(vvvvvvv shan chu wan bi ! vvvvvvvn); return(x); void lie_biao(struct xuesheng *x) struct xuesheng *p; int l; p=x; if(p=0) printf(gai biao wei kong!n); else do printf(%20s% 20s%7dn,(*p).xh,(*p).xm,(*p).cj); p=(*p).next; while(p!=0); l=link_len(x); printf( l=%dn,l); m

18、ain() struct xuesheng *s_head; int n; s_head=0; do printf(1:cha run); printf(2:cha zhaon); printf(3:shan chun); printf(4:lie biaon); printf(5:tui chun); printf(input 1-5:); scanf(%d,&n); switch(n) case 1: s_head=cha_ru(s_head);break; /* case 2: cha_zhao(s_head);break;*/ case 3: s_head=shan_chu(s_hea

19、d);break; case 4: lie_biao(s_head);break; while(n=1|n=3|n=4); printf(n); return 0; 框图: 输入n(1-4)主函数:1.建表 n=1 输入错误4.退出3.列表 n=3 n=22.删除 是 否 是 否 是 否 否 p.next=q q.next=0 p=p.next p-=0输入学号,姓名,成绩建表: 结束 是否继续 否 是 是 否定义表长L,k,i删除: 此表为空 k0 否k=1 是 是 否输入错误x=p-next;t=p;free(t); L=k 否 i=1; i=k-2; 是 是 否 inext; t=p-next;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论