- 48.00 KB
- 2022-05-16 18:34:19 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
#include#include#include#defineLENsizeof(structscorenode)#defineDEBUG#includestructscorenode{intnumber;/*编号*/charname[10];/*物品名*/intwpgs;/*物品个数*/floatwpjj;/*物品进价*/floatwpxsj;/*物品销售价*/structscorenode*next;};typedefstructscorenodescore;intn,k;/*n,k为全局变量,本程序中的函数均可以使用它*//*==============================================================================================*//*==============================================================================================*/score*add2311(score*head,score*stu)/*函数add2311,功能:追加物品资料,并且将所有物品资料按编号排序*/{score*p0,*p1,*p2,*p3,*max;inti,j;floatfen;chart[10];p3=stu=(score*)malloc(LEN);/*开辟一个新单元*/printf("输入要增加的物品的资料!n");repeat4:printf("请输入物品编号(编号应大于0):");scanf("%d",&stu->number);/*输入编号,物品编号应大于0*//******************************************************/if(stu->number==0)gotoend2;/*当输入的物品编号为0时,转到末尾,结束追加*/else{p3=head;if(n>0){for(i=0;inumber!=p3->number)p3=p3->next;
else{printf("物品编号重复,请重输!n");gotorepeat4;/*当输入的物品编号已经存在,程序报错,返回前面重新输入*/}}}}/******************************************************/printf("输入物品名:");scanf("%s",stu->name);/*输入物品名*/printf("请输入物品个数:");scanf("%f",&stu->wpgs);/*输入个数*/printf("请输入物品进价:");scanf("%f",&stu->wpjj);/*输入物品进价*/printf("请输入物品销售价):");scanf("%f",&stu->wpxsj);/*输入物品销售价*/p1=head;p0=stu;if(head==NULL){head=p0;p0->next=NULL;}/*当原来链表为空时,从首结点开始存放资料*/else/*原来链表不为空*/{if(p1->next==NULL)/*找到原来链表的末尾*/{p1->next=p0;p0->next=NULL;/*将它与新开单元相连接*/}else{while(p1->next!=NULL)/*还没找到末尾,继续找*/{p1=p1->next;}p1->next=p0;p0->next=NULL;}}n=n+1;
p1=head;p0=stu;for(i=1;inext;if(max->number>p1->number){k=max->number;max->number=p1->number;p1->number=k;/*交换前后结点中的编号值,使得编号大者移到后面的结点中*/strcpy(t,max->name);strcpy(max->name,p1->name);strcpy(p1->name,t);/*交换前后结点中的物品名,使之与编号相匹配*/fen=max->wpgs;max->wpgs=p1->wpgs;p1->wpgs=fen;/*交换前后结点中的物品个数,使之与编号相匹配*/fen=max->wpjj;max->wpjj=p1->wpjj;p1->wpjj=fen;/*交换前后结点中的物品进价,使之与编号相匹配*/fen=max->wpxsj;max->wpxsj=p1->wpxsj;p1->wpxsj=fen;/*交换前后结点中的物品销售价,使之与编号相匹配*/}}max=head;p1=head;/*重新使max,p指向链表头*/}end2:printf("现在的物品个数为:%d个!n",n);return(head);}
/*==============================================================================================*//*==============================================================================================*/score*search2311(score*head)/*函数search2311,功能:查询物品资料*/{intnumber;score*p1,*p2;printf("输入要查询的物品的编号,");scanf("%d",&number);while(number!=0){if(head==NULL){printf("n没有任何物品资料!n");return(head);}printf("-----------------------------------------n");printf("|编号t|物品名tt|个数t|进价t|销售价t|n");printf("-----------------------------------------n");/*打印表格域*/p1=head;while(number!=p1->number&&p1->next!=NULL){p1=p1->next;}if(number==p1->number){printf("|%dt|%st|%ft|%.1ft|%.1ft|n",p1->number,p1->name,p1->wpgs,p1->wpjj,p1->wpxsj);printf("-----------------------------------------n");}/*打印表格域*/elseprintf("%d不存在此物品!n",number);printf("输入要查询的物品的编号,");scanf("%d",&number);}printf("已经退出了!n");return(head);}/*==============================================================================================*//*==============================================================================================*/voidprint2311(score*head)/*函数print2311,功能:显示物品资料*/{score*p;
if(head==NULL){printf("n没有任何物品资料!n");}else{printf("%dn",n);printf("-----------------------------------------n");printf("|编号t|物品名t|个数t|进价t|销售价t|n");printf("-----------------------------------------n");/*打印表格域*/p=head;do{printf("|%dt|%st|%.1ft|%.1ft|%.1ft|n",p->number,p->name,p->wpgs,p->wpjj,p->wpxsj);printf("-----------------------------------------n");/*打印表格域*/p=p->next;}while(p!=NULL);/*打印完成了*/}}/*==============================================================================================*//*==============================================================================================*/score*taxis2311(score*head)/*定义排序函数。此函数带回一个指向链表头的指针*/{score*p,*max;inti,j,x;floatfen;chart[10];if(head==NULL){printf("n没有任何物品资料,请先建立链表!n");return(head);}/*链表为空*/max=p=head;for(i=0;i<80;i++)printf("*");printf("1按物品编号排序t0返回n");for(i=0;i<80;i++)printf("*");printf("请选择操作:");scanf("%d",&x);/*选择操作*/getchar();switch(x)/*用switch语句实现功能选择*/{case1:for(i=1;inext;if(max->number>p->number){k=max->number;max->number=p->number;p->number=k;/*交换前后结点中的编号值,使得编号大者移到后面的结点中*/strcpy(t,max->name);strcpy(max->name,p->name);strcpy(p->name,t);/*交换前后结点中的物品名,使之与编号相匹配*/fen=max->wpgs;max->wpgs=p->wpgs;p->wpgs=fen;/*交换前后结点中的物品个数,使之与编号相匹配*/fen=max->wpjj;max->wpjj=p->wpjj;p->wpjj=fen;/*交换前后结点中的物品进价,使之与编号相匹配*/fen=max->wpxsj;max->wpxsj=p->wpxsj;p->wpxsj=fen;/*交换前后结点中的物品销售价,使之与编号相匹配*/}}max=head;p=head;/*重新使max,p指向链表头*/}print2311(head);break;/*打印值排序后的链表内容*/}return(0);}/*==============================================================================================*//*==============================================================================================*/intmenu2311(intk)/*函数menu2311,功能:菜单选择界面*/{
inti;printf("tttThesuppliesmanagementsystemn");for(i=0;i<80;i++)printf("*");printf("(1)Searchtheproductn(2)Increasetheproductn(3)Showtheproductn(4)Carryonlininguptheprefacetothedatan(0)Exitn");/*菜单选择界面*/for(i=0;i<80;i++)printf("*");printf("Welcomeintothesuppliesmanagementsystem,Pleasechoosetheoperationthatyouwant(Choice(0)Exit):");scanf("%d",&k);/*选择操作*/getchar();return(k);}/*==============================================================================================*//*==============================================================================================*/voidmain()/*主函数main,功能:通过调用creat,search,del,add,print,ststistics,save,taxis等函数,实现物资管理系统功能*/{score*head=0,*stu=0;while(1){k=menu2311(k);switch(k)/*用switch语句实现功能选择*/{case1:head=search2311(head);break;/*调用物品资料查询函数*/case2:head=add2311(head,stu);break;/*调用追加物品资料函数*/case3:print2311(head);break;/*调用显示物品资料函数*/case4:taxis2311(head);break;/*调用排序函数*/case0:exit(0);/*退出系统,返回主界面*/default:printf("输入错误,请重试!n");}}}