- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
家电管理系统代码说明
家电管理系统
一:算法描述
建立一个链表,链表结点的数据域包括家电名称、品牌、单价和数量,以单价的升序体现链表的有序性。链表的节点如下:
struct node{
char JDname[15];
char JDbrand[15];
char prize[15];
char amount[15];
struct node *next;
};
typedef struct node nodetype;
字符串的长度为15个字符。
程序的主要操作有建立一个链表,插入数据,更新数据,删除数据,查询数据以及文件的读入与保存。实际上就是链表的基本操作。
程序功能包括:创建表、营业开始(读入文件恢复链表数据)、进货(插入)、提货(更新或删除)、查询信息、更新信息、营业结束(链表数据存入文件)等。
二:代码分析
1.主函数首先输出提示信息,提示用户输入自己想要操作的内容,然后读入数据,进行相应的操作。
界面效果如下所示:
2.链表的建立
用户选择c创立一个链表,提示用户输入数据,包括家电的名称(JDname),家电的品牌(JDbrand),家电的价格(prize),家电的数量(amount),然后存入所建立的链表中。其中节点的建立关键代码如下:
for(i=1;i=n;i++)
{ s=(nodetype *)malloc(sizeof(nodetype));
printf(第%d个家电的名字是(英文):,i);
scanf(%s,s-JDname);
j=0;
while(s-JDname[j]!=\0)
j++;
for(k=j+1;k=14;k++)
s-JDname[k]= ;
printf(第%d个家电的品牌是(英文):,i);
scanf(%s,s-JDbrand);
j=0;
while(s-JDbrand[j]!=\0)
j++;
for(k=j+1;k=14;k++)
s-JDbrand[k]= ;
printf(第%d个家电的单价是:,i);
scanf(%s,s-prize);
j=0;
while(s-prize[j]!=\0)
j++;
for(k=j+1;k=14;k++)
s-prize[k]= ;
printf(第%d个家电的数量是:,i);
scanf(%s,s-amount);
j=0;
while(s-amount[j]!=\0)
j++;
for(k=j+1;k=14;k++)
s-amount[k]= ;
p-next=s;
p=s;
p-next=NULL;
}
节点信息的输出
当用户输入V需要查看存入的信息是,程序需要输出结果,当链表不到表尾时,输出数据,由于在建立节点的过程中,保证每个字符的长度小于15,故输出代码如下:while(p!=NULL)
{
printf(No.%d ,i);
for(j=0;j=14;j++)
printf(%c,p-JDname[j]);
for(j=0;j=14;j++)
printf(%c,p-JDbrand[j]);
for(j=0;j=14;j++)
printf(%c,p-prize[j]);
for(j=0;j=14;j++)
printf(%c,p-amount[j]);
printf(\n);
p=p-next;
i++;
}
节点的删除
定义一个新节点,用户输入数据要删除哪一个节点,让前一节点的指针指向待删除节点的下一节点,即可删除当前的节点。删除节点的代码如下:
while(q!=NULL)
{
q=q-next;
j++;
}
if(i1||ij)
printf(error\n);
else
{for (j=1;ji;j++)
p=p-next;
q=p-next;
p-next=q-next;
free(q);
}
插入数据
用户输入需要在
文档评论(0)