




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include #include #include #include#define TURE 1#define FALSE 0#define OK 1#define ERROR 0#define SEPARATE printf(nnnt -*-*-*-*-*-*-*-*-nnn)#define CHOOSE printf(您是否继续(1/0): )#define UPDATE printf(将其更新为:)typedef int Status;typedef struct sheetint number;/产品编号char name20;/产品名称char pattern20;/产品型号int price;/产品价格int inventory;/目前产品库存sheet;/存储产品数据的结构体typedef struct LNodesheet date;/产品数据域struct LNode *next;/链表指针域LNode,*List;/链式结构存储Status Init(LNode *L)/初始化链表*L=(LNode *)malloc(sizeof(LNode);/开辟头结点空间(*L)-next=NULL;/头指针指向空(*L)-date.price=0;/预设头结点中价格为0,方便价格排序return OK;Status Insert(LNode *L,LNode *N)/在链表中插入数据为e的新产品数据LNode *New;LNode *pre,*p;p=*L;pre=*L;New=(LNode *)malloc(sizeof(LNode);/开辟新结点空间New-date=N-date;New-next=NULL;/新结点初始化while(p)/寻找新产品该插入的位置并插入L中if(p-date.pricedate.price)pre=p;p=p-next;if(!p)pre-next=New; elseNew-next=pre-next;pre-next=New;p=NULL;return OK;Status Delete(LNode *L,int i)/寻找该产品的位置并删除产品数据LNode *p,*q;p=*L;q=p-next;while(q-next&q-date.number!=i)p=p-next;q=p-next;/寻找该产品的位置if(!q)return ERROR;p-next=q-next;/删除产品数据free(q);return OK;Status Printdate(sheet e)/打印某产品数据printf(编号: %dn名称: %sn型号: %sn价格: %dn库存: %dn,e.number,,e.pattern,e.price,e.inventory);printf(-*-*-*-n);return OK;Status Updatenumber(LNode *L,int i)/更新编号为i的产品编号LNode *p=(*L)-next;int j;sheet e;UPDATE;scanf(%d,&j);while(p&p-date.number!=i)p=p-next;/寻找该产品的位置if(!p)return ERROR;p-date.number=j;/更新产品编号e=p-date;printf(nn*产品数据更新*n);Printdate(e);/打印新产品数据return OK;Status Updatename(LNode *L,int i)/更新编号为i的产品名称LNode *p=(*L)-next;char j20;sheet e;UPDATE;scanf(%s,j);while(p&p-date.number!=i)p=p-next;/寻找该产品的位置if(!p)return ERROR;strcpy(,j);/更新产品名称e=p-date;printf(nn*产品数据更新*n);Printdate(e);/打印新产品数据return OK;Status Updatepattern(LNode *L,int i)/更新编号为i的产品型号LNode *p=(*L)-next;char j20;sheet e;UPDATE;scanf(%s,j);while(p&p-date.number!=i)p=p-next;/寻找该产品的位置if(!p)return ERROR;strcpy(p-date.pattern,j);/更新产品型号e=p-date;printf(nn*产品数据更新*n);Printdate(e);/打印新产品数据return OK;Status Updateprice(LNode *L,int i)/更新编号为i的产品价格LNode *p=(*L)-next;int j;sheet e;UPDATE;scanf(%d,&j);while(p&p-date.number!=i)p=p-next;/寻找该产品的位置if(!p)return ERROR;p-date.price=j;/更新产品价格e=p-date;printf(nn*产品数据更新*n);Printdate(e);/打印新产品数据return OK;Status Updateinventory(LNode *L,int i)/更新编号为i的产品库存LNode *p=(*L)-next;int j;sheet e;printf(库存改变量为: );scanf(%d,&j);while(p&p-date.number!=i)p=p-next;/寻找该产品的位置if(!p)return ERROR;p-date.inventory=p-date.inventory+j;/更新产品库存e=p-date;printf(nn*产品数据更新*n);Printdate(e);/打印新产品数据return OK;Status Cheekdate(LNode *L,int i)/查询编号为i的产品是否存在LNode *p=L-next;while(p&p-date.number!=i)p=p-next;if(!p)return ERROR;return OK;Status PrintList(LNode *L)/打印整个数据表LNode *p=L-next;sheet e;while(p)e=p-date;Printdate(e);p=p-next;/边遍历边打印数据return OK;void operate1(LNode *L)/辅助初始化Init(&(*L);printf(nt-初始化完成-n);void operate2(LNode *L)/辅助插入,实现确认新信息再插入。LNode *N;int choose;N=(LNode *)malloc(sizeof(LNode);SEPARATE;printf(t*新产品信息*n);printf(n编号:);scanf(%d,&N-date.number);printf(n名称:);scanf(%s,N-);printf(n型号:);scanf(%s,N-date.pattern);printf(n价格:);scanf(%d,&N-date.price);printf(n库存:);scanf(%d,&N-date.inventory);printf(t*您要插入的新数据*n);printf(编号: %dn名称: %sn型号: %sn价格: %dn库存: %dn,N-date.number,N-,N-date.pattern,N-date.price,N-date.inventory);CHOOSE;scanf(%d,&choose);/确认信息if(choose)Insert(&(*L),N);/插入printf(nt-插入完成-nn);else printf(nt-插入失败-nn);SEPARATE;void operate3(LNode *L)/辅助删除,以编号为索引。int i,j,choose;sheet e;SEPARATE;printf(您要删除的产品编号:);scanf(%d,&i);j=Cheekdate(*L),i);/检查数据是否存在if(j)printf(nnt*您要删除的数据*n);LNode *p=(*L)-next;while(p-date.number!=i)p=p-next;e=p-date;Printdate(e);CHOOSE;scanf(%d,&choose);/确认信息if(choose)Delete(&(*L),i);/删除printf(t-删除完成-n);else printf(t-退出删除-n);else printf(t-数据不存在,删除失败-n);SEPARATE;void operate4(LNode *L)/辅助更新,以编号为索引,实现选择性更新。int i,content,choose;SEPARATE;printf(您要更新的产品编号:);scanf(%d,&i);printf(-*-*-*-n);if(Cheekdate(*L),i)printf(ntt1.产品编号 t2.产品名称t3.产品型号tntt4.产品价格t5.产品库存t6.取消更新ttn);loop:printf(您要更新的产品内容:);scanf(%d,&content);switch(content)case 1: Updatenumber(&(*L),i);break;case 2: Updatename(&(*L),i);break;case 3: Updatepattern(&(*L),i);break;case 4: Updateprice(&(*L),i);break;case 5: Updateinventory(&(*L),i);break;case 6: break;default:printf(对不起,没有这项操作。n);CHOOSE;scanf(%d,&choose);if(choose)goto loop;/可选择继续更新/选择不同内容更新else printf(对不起,没有这个编号。n);printf(t-更新完毕-nn);void operate5(LNode *L)/辅助打印printf(t-家电数据表-nn);PrintList(L);SEPARATE;void operate6(LNode *L)/辅助查询,以编号为索引。int i,j;sheet e;printf(您要查询的产品编号:);scanf(%d,&i);j=Cheekdate(L,i);/检查数据是否存在if(j)LNode *p=L-next;while(p-date.number!=i)p=p-next;e=p-date;printf(t-产品数据-n);Printdate(e);/打印产品数据else printf(对不起,没有此编号信息。);SEPARATE;void main()/以链式结构的有序表表示某商厦家电部的库存模型,日常的维护包括初始化、插入、删除、更新、打印、查询。int operate=1;LNode *L;printf(ttt $家电数据库$nn);Init(&L);while(operate)printf(ntt1.初始化 t2.插入数据t3.删除数据tntt4.更新数据t5.打印链表t6.查询数据ntt0.退出程序n);printf(您所要执行操作编号:);scanf(%d,&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工装设计合同范本5篇
- 瑞丽风情课件
- 阜阳改造工程方案公示(3篇)
- 理想立志课件
- 农业灌溉智能化系统在农田土壤水分监测中的应用研究报告
- 广西百菲乳业股份有限公司年产90000吨水牛奶制品生产线扩建项目(非辐射类)环境影响报告表
- 安全教育规程培训心得课件
- 基于核心素养培育的整本书阅读教学与实践
- 狼牙山五壮士课件
- 狐狸分奶酪课件
- 2025年全国中小学校党组织书记网络培训示范班在线考试题库及答案
- 假性软骨发育不全综合征介绍演示培训课件
- 他们创造了数学:50位著名数学家的故事
- 财务管理-企业筹资方式
- 07K103-2 防排烟系统设备及附件选用及安装
- (完整)消化性溃疡PPT课件ppt
- (完整word版)A3试卷模板
- 疫苗针对性疾病暴发疫情处置课件
- 《胆囊癌诊断和治疗指南》(2023年版)解读
- GB/T 9573-2013橡胶和塑料软管及软管组合件软管尺寸和软管组合件长度测量方法
- GB/T 13173-2021表面活性剂洗涤剂试验方法
评论
0/150
提交评论