家电管理系统代码说明

上传人:第*** 文档编号:34093162 上传时间:2018-02-20 格式:DOC 页数:6 大小:52KB
返回 下载 相关 举报
家电管理系统代码说明_第1页
第1页 / 共6页
家电管理系统代码说明_第2页
第2页 / 共6页
家电管理系统代码说明_第3页
第3页 / 共6页
家电管理系统代码说明_第4页
第4页 / 共6页
家电管理系统代码说明_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《家电管理系统代码说明》由会员分享,可在线阅读,更多相关《家电管理系统代码说明(6页珍藏版)》请在金锄头文库上搜索。

1、家电管理系统一:算法描述建立一个链表,链表结点的数据域包括家电名称、品牌、单价和数量,以单价的升序体现链表的有序性。链表的节点如下:struct nodechar JDname15;char JDbrand15;char prize15;char amount15;struct node *next;typedef struct node nodetype;字符串的长度为 15 个字符。程序的主要操作有建立一个链表,插入数据,更新数据,删除数据,查询数据以及文件的读入与保存。实际上就是链表的基本操作。程序功能包括:创建表、营业开始(读入文件恢复链表数据) 、进货(插入) 、提货(更新或删除)

2、、查询信息、更新信息、营业结束(链表数据存入文件)等。二:代码分析1.主函数首先输出提示信息,提示用户输入自己想要操作的内容,然后读入数据,进行相应的操作。界面效果如下所示:2.链表的建立用户选择 c 创立一个链表,提示用户输入数据,包括家电的名称(JDname ),家电的品牌(JDbrand) ,家电的价格( prize),家电的数量(amount),然后存入所建立的链表中。其中节点的建立关键代码如下: for(i=1;iJDname); j=0;while(s-JDnamej!=0)j+;for(k=j+1;kJDnamek= ;printf(第%d 个家电的品牌是(英文):,i);sca

3、nf(%s,s-JDbrand);j=0;while(s-JDbrandj!=0)j+;for(k=j+1;kJDbrandk= ;printf(第%d 个家电的单价是:,i);scanf(%s,s-prize);j=0;while(s-prizej!=0)j+;for(k=j+1;kprizek= ;printf(第%d 个家电的数量是:,i);scanf(%s,s-amount);j=0;while(s-amountj!=0)j+;for(k=j+1;kamountk= ;p-next=s;p=s;p-next=NULL;3.节点信息的输出当用户输入 V 需要查看存入的信息是,程序需要输出

4、结果,当链表不到表尾时,输出数据,由于在建立节点的过程中,保证每个字符的长度小于 15,故输出代码如下:while(p!=NULL)printf(No.%d ,i);for(j=0;jJDnamej);for(j=0;jJDbrandj);for(j=0;jprizej);for(j=0;jamountj); printf(n);p=p-next;i+;4.节点的删除定义一个新节点,用户输入数据要删除哪一个节点,让前一节点的指针指向待删除节点的下一节点,即可删除当前的节点。删除节点的代码如下:while(q!=NULL)q=q-next;j+;if(ij)printf(errorn);else

5、for (j=1;jnext;q=p-next;p-next=q-next;free(q);5.插入数据用户输入需要在第几个数据后插入节点,找到带插入的节点位置,提示用户输入家电的各项信息(名称,品牌,价格,数量) ,让待插节点指向当前节点的下一节点,即可完成插入程序。关键代码如下:for (j=1;jnext;q=(nodetype *)malloc(sizeof(nodetype);printf(第%d 个家电名称是:,i);scanf(%s,q-JDname);while(q-JDnamem!=0)m+;for(k=m+1;kJDnamek= ;printf(第%d 个家电品牌是:,i)

6、;scanf(%s,q-JDbrand);m=0;while(q-JDbrandm!=0)m+;for(k=m+1;kJDbrandk= ;printf(第%d 个家电价格是:,i);scanf(%s,q-prize);m=0; while(q-prizem!=0)m+;for(k=m+1;kprizek= ;printf(第%d 个家电数量是:,i);scanf(%s,q-amount);m=0;while(q-amountm!=0)m+;for(k=m+1;kamountk= ;q-next=p-next;p-next=q;printf(n);6.数据的更新找到待修改的节点,提示用户修改节

7、点的信息,重新存入链表。7.数据的查找用户输入想要查找的家电所在的位置,定义一个指针,找到当前的节点,输出节点中数据的信息即可。在信息输出的基础上加上了找到当前数据的程序。关键代码如下:void search_linklist(nodetype *l)int j=0,i;nodetype *p;printf(Which line do you want to search?n);scanf(%d,p=l-next;while(p!=NULL)p=p-next;j+;p=l-next;if(ij)printf(error!n);elsefor(j=1;jnext;if(p=NULL)printf

8、(errorn);else printf(序号 家电名称 家电品牌 价格 数量n);printf(No.%d ,i);for(j=0;jJDnamej);for(j=0;jJDbrandj);for(j=0;jprizej);for(j=0;jamountj);printf(n);8.文件的写入首先以二进制写的方式打开文本文件,如果文件打开失败,则输出打开失败,否则以按数据块写入的方式把当前链表中的节点的信息存入文本文件中。关键代码如下:if(fp=fopen(a.txt,wb)=NULL)printf(cannot open filen);elsewhile(p!=NULL)if(fwrit

9、e(p,sizeof(nodetype),1,fp)!=1)printf(errorn);p=p-next;printf(存储完毕!n);fclose(fp);9.数据的载入首先以二进制读的方式打开文本文件,如果文件打开失败,则输出打开失败,否则以按数据块读入的方式把当前链表中的节点的信息存入文本文件中。与写入不同的是还需要返回文件中数据的信息。关键代码如下:if(fp=fopen(a.txt,rb)=NULL)printf(cannot open filen);elsewhile(feof(fp)=0)q=(nodetype *)malloc(sizeof(nodetype); q-next=NULL;if(fread(q,sizeof(nodetype),1,fp)=1)if(feof(fp)fclose(fp);p-next=NULL;printf(%s,l-next-JDname);return(l);以上就是家电管理系统的主要的思路以及主要过程代码的实现。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

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