顺序表链表情况总结实验报告.doc





《顺序表链表情况总结实验报告.doc》由会员分享,可在线阅读,更多相关《顺序表链表情况总结实验报告.doc(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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(SqList *L)
2、/建立表格 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-datak.xm,L-
3、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,xs-xh); st
4、rcpy(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;ilength;i+)
5、 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) /删除查找的函数 char xh40;cha
6、r 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+) if(strcm
7、p(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); strcpy(L-
8、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); printf( 建立表格
9、请输入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);printf(tt
10、请 输 入 要 添 加 的 学 生 信 息: 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( 查 询 学 生 信 息 n); i=cz(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 顺序 表链 表情 总结 实验 试验 报告 讲演 呈文

限制150内