线性表应用实例(数据结构)

上传人:jiups****uk12 文档编号:40017887 上传时间:2018-05-22 格式:DOC 页数:29 大小:335.50KB
返回 下载 相关 举报
线性表应用实例(数据结构)_第1页
第1页 / 共29页
线性表应用实例(数据结构)_第2页
第2页 / 共29页
线性表应用实例(数据结构)_第3页
第3页 / 共29页
线性表应用实例(数据结构)_第4页
第4页 / 共29页
线性表应用实例(数据结构)_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《线性表应用实例(数据结构)》由会员分享,可在线阅读,更多相关《线性表应用实例(数据结构)(29页珍藏版)》请在金锄头文库上搜索。

1、数据结构实例程序数据结构实例程序线性表的应用线性表的应用一、图书管理程序一一、图书管理程序一 二、图书管理程序二二、图书管理程序二 三、学生管理程序三、学生管理程序 四、学生成绩管理程序四、学生成绩管理程序 五、工资管理程序五、工资管理程序 六、汽车管理程序六、汽车管理程序一、图书管理程序一一、图书管理程序一#include #include #include #include #include #define len sizeof(Book) typedef struct Book char no8; /8 位书号 char name20; /书名 char price8; /定价 stru

2、ct Book *next; Book; Book *L; int b1,n1; void CreateList() int i,n; Book *p,*q; if(!b1) L=(Book*)malloc(len); L-next=NULL; /生成只包含头结点的空链表 b1=1; n1=0; p=L; printf(“要输入的图书数为:“); scanf(“%d“, for(i=1;ino); printf(“书名:“); scanf(“%s“,q-name); printf(“定价:“); scanf(“%s“,q-price); q-next=L-next;L-next=q; n1=n

3、1+1; else printf(“已输入完毕,请插入信息!“); /每次执行程序只能生成一次链表,之后只能进行插 入、删除操作 getch(); void FindBook() char ch20; int s2=0; Book *p; p=L-next; printf(“请输入图书名:“); scanf(“%s“,ch); while(p) if(strcmp(p-name,ch)=0) /判断和查询图书名是否相等 printf(“图书名:%-12.9s 书号:%-12.10s 定价:%s“,p-name,p-no,p-price); /控制字符 串输出的长度、格式 s2=1; getch

4、(); p=p-next; if(!s2) printf(“没有该图书信息!“); getch(); void Getlocation() Book *p ; int i,j; p=L-next; /初始化,p 指向第一个结点 j=1;/ j 为计数器 printf(“请输入位置:“); scanf(“%d“, while(p +j; if(!p|ji) printf(“ERROR“); /i 大于表长或小于 1 printf(“图书名:%-12.9s 书号:%-12.10s 定价:%s“,p-name,p-no,p-price); getch(); void ListInsert() int

5、 j,i; Book *p,*s; p=L;j=0; printf(“请输入位置:“); scanf(“%d“, while (p+j; if(!p|ji-1) printf(“error“); s=(Book*)malloc(len); /生成新结点 printf(“请输入新的图书信息:n“); printf(“书号:“); scanf(“%s“,s-no); printf(“书名:“); scanf(“%s“,s-name); printf(“定价:“); scanf(“%d“,s-price); s-next=p-next; p-next=s; printf(“插入成功!“); getc

6、h(); void ListDelete() int i,n; Book *p,*q; p=L; printf(“请输入删除图书位置“); scanf(“%d“, if(nn1|nnext ; q=p-next; p-next=q-next; free(q); /删除指定位置的学生信息 n1-; printf(“已将原表中第%d 个 图书信息删除!“,n); getch(); void ListLength() Book *p; int i; p=L-next; i=0; while(p)i+; p=p-next ; printf(“图书个数为:%d“,i); getch(); void ma

7、in() char c; while(1) system(“cls“); printf(“* 欢迎使用图书信息查询系统! *n“);/菜单选项 printf(“n“); printf(“(1)输入图书信息;n“); printf(“(2)根据图书名进行查找;n“); printf(“(3)根据指定位置进行查找;n“); printf(“(4)插入图书信息到指定位置;n“); printf(“(5)删除指定位置的图书记录;n“); printf(“(6)统计表中图书数;n“); printf(“n“); c=getch(); switch(c) case 1:CreateList();break

8、; case 2:if(b1)FindBook(); /通过 b1 的值,控制先执行(1)的操作,即生成链表 else printf(“请先输入图书信息!“); getch();break; case 3:if(b1)Getlocation(); /通过 b1 的值,控制先执行(1)的操作,即生成链表 else printf(“请先输入图书信息!“); getch();break; case4:if(b1)ListInsert(); /通过 b1 的值,控制先执行(1)的操作,即生成链表 else printf(“请先输入图书信息!“); getch();break; case 5:if(b1

9、)ListDelete(); /通过 b1 的值,控制先执行(1)的操作,即生成链表 else printf(“请先输入图书信息!“); getch();break; case 6:if(b1)ListLength(); /通过 b1 的值,控制先执行(1)的操作,即生成链表 else printf(“请先输入图书信息!“); getch();break; default :printf(“输入错误,请重新选择!“); 二、图书管理程序二二、图书管理程序二#include #include #include struct BOOK int id,usr10,total,store,days10

10、; char name30,author20; books100; void page_title(char *menu_item) printf(“*图书管理系统 0) printf(“请输入借书证号:“); scanf(“%d“, printf(“请输入可借天数:“); scanf(“%d“, for(l=0;l #include #include #include #define MAXSIZE 100typedef structchar num10;char name20;char sex5;int score; DataType;typedef struct DataType stu

11、MAXSIZE;int length; sequenlist;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“);

12、for(;) scanf(“%d“,if (sn5)printf(“输入错误,重选 0-5n“);elsebreak; return sn; void createList(sequenlist *L) int n,i; printf(“有几位学生?请输入:n“); fflush(stdin); scanf(“%d“, printf(“请输入这%d 位学生的信息:n“,n); for(i=1;istui.num,L-stui.name,L-stui.sex, L-length=n; void printList(sequenlist *L) int i; printf(“n 学生 姓名 性别

13、成绩n“); printf(“-n“); for(i=1;ilength;i+) printf(“第%d 位学生:“,i); printf(“%s,%s,%s,%dn“,L-stui.num,L-stui.name,L-stui.sex,L-stui.score); printf(“-n“); int insert(sequenlist *L,DataType *student,int i) int j; if(L-length=MAXSIZE) printf(“overflow!“);return 0; else if(iL-length) printf(“error,please input the right i“);return 0; elsefor(j=L-length-1;j=i;j-)strcpy(L-stuj+1.num,L-stuj.num);strcpy(L-stuj+1.name,L-stuj.name);strcpy(L-stuj+1.sex,L-stuj.sex);L-stuj+1.score=L-stuj.score;strcpy(L-stui.num,student-num); strcpy(L-stui.name,student-name); strcpy(L-stui.sex,stud

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号