C语言超市管理系统源程序

合集下载

(完整word版)c语言程序设计超市管理系统

(完整word版)c语言程序设计超市管理系统

实验题目:超市管理系统一、实验目的1.熟悉 c 语言的编译连接和运行过程。

2.掌握 c 语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。

3.掌握if 语句及switch 语句的运用方法及嵌套应用方法。

4.掌握实现循环结构的三种语句while 、do-while. 、for 的使用。

5.掌握函数的定义方法和调用方法。

6.能够采用模块化思想调试程序。

二.实验内容1.编写程序并进行调试运行。

2.输入商品资料,并保存于文件。

每件商品包含信息如:商品号、商品名、商品类别、商品总量、商品上限和下限、商品价格、进货日期、生产日期、保质期等。

3.对已存入的商品信息进行更新操作,包括添加一件商品信息、删除某件商品信息和修改商品信息。

4.通过按商品名、商品种类、商品进货量的方式查询商品信息。

5.输入某商品号后对其利润进行统计、对进货价格相同的商品进行统计。

6 对商品的库存量和利润进行排序。

7.最后输出商品信息,供需要时打印。

二、需求分析1.该程序可用于对商品的基本信息的存储、更新、查询、输出、统计、排序等操作,以实现管理者对商品的管理和消费者对商品的了解。

2.其中更新功能包括:添加信息、删除信息、修改信息、可根据需要添加一个或多件商品信息,也可对个别商品信息进行适当的删除或修改。

以便随时更新商品信息。

3.程序中设计的查询功能可根据需要从若干数据中查询某件商品信息,并且可根据三种不同的方法查询:按商品名查询、按商品种类查询和按商品进货量查询。

以满足不同的需要。

四、概要设计1、方案设计对系统进行分析,给出结构图分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计—自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计结构图如下:超市管理管理系统查询模块排序模块退出系统退出系统查询模块排序模块统计模块*更新模块*输出信息¥录入信息按商品名查询利润排行库存量排行退出系统第二类商品第一类商品退出系统2 •功能模块说明:对各个模块进行功能的描述(1).输入模块:录入需要管理的商品信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。

超市商品管理系统C语言源代码

超市商品管理系统C语言源代码

超市商品管理系统C语言源代码SANY GROUP system office room 【SANYUA16H-SANYHUASANYUA8Q8-#include <stdio.h>#include <math.h>#include <string.h>#include<conio.h>#include<stdio.h>#include<string.h>#define MAX 20#define PRINT1 printf("---------------------------------------------------------\n")#define PRINT2 printf("商品号--商品名称--商品种类--销售价格--生产日期(年-月-日)--保质期\n")#define PRINT3 printf("M%8s%8s崓----M\n",goods[i].num,goods[i].name,goods[i].kind,goods[i].out_price,goods[i ].pro_time.year,goods[i].pro_time.month,goods[i].pro_time.day,goods[i].s ave_day)int sum;struct date{int year;int month;int day;};struct goods_type /*定义结构体*/{int num;char name[10];char kind[10];int amount;int in_price;int out_price;struct date pro_time;int save_day;int profit;}goods[MAX];Save_Message(int sum); /*函数声明*/void Inquire_message(void);void Inquire_goodskind(void);void Inquire_goodsname(void);int Read_Message(void);void Renew_Messahe(void);void Revise_Message(void);void Delete_Message(void);void Insert_Message();void Show_Message(void);int Input_Message(void);void Count_Message();long Count_Profit();long Count_Amount();void Sort_amount(void);void Sort_Message(void);void Sort_Message(void){int choice;do{clrscr();printf("\n\n\n *******商品信息排行********\n\n");printf(" 1:按库存量排行\n\n");printf(" 0:返回主菜单\n\n");printf(" 请选择(0-1): ");scanf("%d",&choice);switch(choice){case 1:Sort_amount();break;case 0:break;}}while(choice!=0);}void Sort_amount(void) /*库存量排序*/{struct goods_type *p,*q[MAX];int i,j,k;clrscr();printf(" 库存排行");PRINT1;printf("\n\n排名商品号商品名称商品类别库存量\n\n"); p=goods;for(i=0;i<sum;i )q[i]=p ;for(i=0;i<sum;i ){k=i;for(j=i 1;j<sum;j )if(q[k]->amount<q[j]->amount)k=j;if(k!=i){p=q[i];q[i]=q[k];q[k]=p;}}for(i=0;i<sum;i ){printf(" %d ",i 1);printf(" %d ",q[i]->num);printf(" %s ",q[i]->name);printf(" %s ",q[i]->kind);printf(" %d \n ",q[i]->amount);}bioskey(0);}long Count_Amount() /*统计库存量*/ {int i,j=0,choice,count_num,Amount;char inquire_name[10];clrscr();printf("\n 请输入想要统计的商品号: "); scanf("%d",&count_num);for(i=0;i<sum;i )if(goods[i].num==count_num){Amount=goods[i].amount;printf("-------------------------"); printf(" 商品号库存量");printf("\n崓",goods[i].num,Amount); }elsej ;if(j==sum)printf("该商品信息不存在!!!");bioskey(0);}long Count_Profit() /*统计利润模块*/{int i,choice,j=0,count_num,profit;clrscr();printf("\n 请输入想要统计的商品号: ");scanf("%d",&count_num);for(i=0;i<sum;i )if(goods[i].num==count_num){profit=goods[i].out_price-goods[i].in_price;printf("\n 商品利润");printf("\n -------------------------------");printf("\n 商品号利润");printf("\n 崓\n",&goods[i].num,&profit);}elsej ;if(j==sum)printf("\n 该商品不存在!!!");printf("\n 按任意键返回主菜单!!");bioskey(0);}void Count_Message(void) /*统计模块*/{int choice;do{clrscr();printf("**************统计商品信息*************\n\n\n");printf("******* 1:统计库存量 ************\n\n\n"); printf("******* 2:统计利润 ************\n\n\n");printf("******* 0:返回主菜单 ************\n\n\n");printf("******* 请选择(0-2): ************\n\n\n");scanf("%d",&choice);switch(choice){case 1:Count_Amount();break;case 2:Count_Profit();break;case 0:break;}}while(choice!=0);}int Input_Message(void) /*输入模块*/{int i=0,s=MAX;char bd;clrscr();printf("开始输入商品信息.\n");printf("\n\n 商品信息:(最多 %d) \n",s);printf(" ===============================\n");do{printf("\n 第 %d 商品",i 1);printf("\n 商品号: ");scanf("%d",&goods[i].num);if(goods[i].num==0) break;printf("\n 商品名称: ");scanf ("%s",goods[i].name);printf("\n 商品种类: ");scanf ("%s",goods[i].kind);printf("\n 商品库存量: ");scanf ("%d",&goods[i].amount);printf("\n 进货价格: ");scanf ("%d",&goods[i].in_price);printf("\n 销售价格: ");scanf ("%d",&goods[i].out_price);printf("\n 生产日期(yyyy-mm-dd): ");scanf ("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pro_time. day);printf("\n 保质期: ");scanf ("%d",&goods[i].save_day);printf("继续输入信息,y or n ??");fflush(stdin);scanf("%c",&bd);if(bd=='y')i ;elsebreak;}while(i<MAX);printf("\n--%d 所有商品录入完毕!--\n\n\n",i 1);getch();printf(" 按任意键返回主菜单.");sum=i;printf("输入回车返回主菜单!!!");bioskey(0);}void Show_Message(void) /*显示输出模块*/{int i=0,j=0,count,page=7;clrscr();printf("\n\n --商品信息-- 在第 %d 页\n\n",page);PRINT2;PRINT1;do{if(goods[i].num!=0){j ;if(j%page!=0){PRINT3;PRINT1;}else{PRINT3;PRINT1;if(goods[i 1].num!=0){printf("按任意键继续!");bioskey(0);clrscr();printf("\n\n --------商品信息--------在第 %d 页\n\n", page);PRINT2;PRINT1;}}}i ;}while(goods[i].num!=0);printf("按任意键返回主菜单!!!!!");bioskey(0);}void Insert_Message(void)/*添加商品信息模块*/{int i=sum,j,flag=0;char choice;clrscr();printf("\n\n 添加一种新商品\n\n ");printf("\n-------------------------------------------------\n");do{goods[i].num= sum;printf("\n 新商品号:%d",goods[i].num);printf("\n 新商品名: ");scanf("%s",goods[i].name);printf("\n 新商品种类: ");scanf("%s",goods[i].kind);printf("\n 新商品数量: ");scanf("%d",&goods[i].amount);printf("\n 进价: ");scanf("%d",&goods[i].in_price);printf("\n 售价: ");scanf("%d",&goods[i].out_price);printf("\n 生产日期(yyyy-mm-dd): ");scanf("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pro_time. day);printf("\n 保质期: ");scanf("%d",&goods[i].save_day);i ;printf("\n\n 想继续添加商品吗?(Y/N)");fflush(stdin);choice=getch();if(choice=='y'||choice=='Y'){printf("继续");flag=1;}elseflag=0;}while(flag==1);printf("\n\n\n 按任意键返回主菜单.........");bioskey(0);}void Delete_Message(void)/*删除商品信息模块*/ {int i,j,numberkey,flag=0;char choice;printf("开始删除......\n\n");do{clrscr();printf("请输入你要删除的商品号: \n");scanf("%d",&numberkey);for(i=0;i<sum;i ){if(goods[i].num==numberkey){for(j=i;j<sum;j )goods[j]=goods[j 1];sum--;flag=1;printf("删除成功!!\n\n\n");break;}}if(flag==0){printf("不存在该商品信息!!!"); bioskey(0);}printf("\n\n是否继续输入(y/n)?\n");getchar();scanf("%c",&choice);}while(choice=='y'||choice=='Y');printf("\n按任意键返回");bioskey(0);}void Revise_Message(void)/*修改商品信息模块*/ {int i,j,flag,choice,revise_num;char ch;do{clrscr();printf("\n\n 开始修改...");printf("\n\n 请输入你想输入的商品号:\n");scanf("%d",&revise_num);for(i=0;i<sum;i ){if(goods[i].num==revise_num){printf("确定修改此商品信息吗?(y/n)");PRINT1;PRINT2;PRINT3;getchar();ch=getchar();if(ch='y'){printf("\n\n\n修改商品信息的哪一项?");printf("\n\n 1:商品名称");printf("\n\n 2:商品类型");printf("\n\n 3:销售价格");printf("\n\n 4:生产日期");printf("\n\n 5:保质期");printf("\n\n 请选择(0-5)\n");scanf("\n %d",&choice);switch(choice){case 1:printf("请输入修改后的商品名\n");scanf("%s",&goods[i].name);break;case 2:printf("请输入修改后的商品类型\n");scanf("%s",&goods[i].kind);break;case 3:printf("请输入修改后的商品销售价格\n"); scanf("%d",&goods[i].out_price);break; case 4:printf("请输入修改后的商品生产日期\n"); scanf("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pro_time. day);break;case 5:printf("请输入修改后的商品保质期\n");scanf("%d",&goods[i].save_day);break;case 0:break;}printf("修改商品信息:\n");PRINT2;PRINT3;}elsebreak;}elsej ;if(j==sum)printf("不存在该商品信息..");}printf("\n\n 继续修改商品信息吗(y/n)?");getchar();ch=getchar();if(ch=='y'){printf("继续.\n");flag=1;}elseflag=0;}while(flag==1);printf("修改完成!!\n\n");getch();}void Renew_Message(void) /*更新商品信息模块*/{int choice;do{clrscr();printf("\n\n*********更新商品信息*********"); printf("\n\n 1:添加商品信息.\n\n");printf("\n\n 2:删除商品信息.\n\n");printf("\n\n 3:修改商品信息.\n\n");printf("\n\n 0:返回上一级.\n\n");printf("\n\n 请选择(0-3): ");scanf("%d",&choice);switch(choice)case 1:Insert_Message();break;case 2:Delete_Message();break;case 3:Revise_Message();break;case 0:break;}}while(choice!=0);}int Read_Message(void) /*读取信息模块*/{FILE *fp;int i=0;if((fp=fopen("999.txt","rb"))==NULL){printf("\n\t 现在还没有保存全部信息,按回车键回到主菜单输入商品信息!!");printf("\n\t 按任意键返回!!!!\n");getch();return;}while(feof(fp)!=1){fread(&goods[i],sizeof(struct goods_type),1,fp);if(goods[i].num==0)break;elsei ;}fclose(fp);return(i);}void Inquire_goodsname(void)/*按商品名称查询*/{int i,j,choice;char namekey[10];j=0;printf("开始查询...");printf("请输入你要查询的商品号:\n");scanf("%s",namekey);for(i=0;i<sum;i )if(strcmp(goods[i].name,namekey)==0&&goods[i].num!=0)printf(" ---商品信息----");PRINT1;PRINT2;PRINT3;}elsej ;if(j==sum)printf("该商品不存在!");printf("按任意键返回主菜单.");getch();}void Inquire_goodskind(void)/*按商品类型查询*/{int i,j,choice;char kindkey[10];j=0;printf("开始查询...");printf("请输入你要查询的商品种类:\n");scanf("%s",kindkey);for(i=0;i<sum;i )if(strcmp(goods[i].kind,kindkey)==0&&goods[i].num!=0) {printf(" ---商品信息----");PRINT1;PRINT2;PRINT3;}elsej ;if(j==sum)printf("该商品不存在!");printf("按任意键返回主菜单.");getch();}void Inquire_Message(void) /*查询模块*/{int choice;do{printf("\n *****查询商品信息 ***** \n");printf("\n *****1:按商品名称.***** \n");printf("\n *****2:按商品种类.***** \n");printf("\n *****0:返回上一级.***** \n");printf("\n 请选择(0-2): ***** \n");scanf("%d",&choice);switch(choice){case 1:Inquire_goodsname();break;case 2:Inquire_goodskind();break;case 0:break;}}while(choice!=0);}Save_Message(int sum) /*保存模块*/{FILE *fp;int i;if((fp=fopen("999.txt","wb"))==NULL){printf("\n\n不能打开文件!\n\n");exit();}for(i=0;i<=sum;i )if(fwrite(&goods[i],sizeof(struct goods_type),1,fp)!=1) printf("写文件出错!");fclose(fp);}void main(void) /*主函数*/{int choice;clrscr();sum=Read_Message();bioskey(0);do{clrscr();printf("***************************************************\n");printf(" ************ 超市商品管理系统**************\n");printf(" ************\n");printf(" ************\n");printf(" ************\n");printf(" ****** 欢迎登陆******\n");printf(" ************\n");printf(" ************\n");printf(" ************\n");printf("***************************************************\n");printf("***************************************************\n");getchar ();clrscr();printf(" ***************超市商品管理系统***********\n\n"); printf(" ***** 1:输入商品信息 *****\n\n"); printf(" ***** 2:输出商品信息 *****\n\n"); printf(" ***** 3:更新商品信息 *****\n\n"); printf(" ***** 4:查询商品信息 *****\n\n"); printf(" ***** 5:统计商品信息 *****\n\n"); printf(" ***** 6:商品信息排序 *****\n\n"); printf(" ***** 0:退出系统 *****\n\n"); printf(" ***** 请选择(0-6): *****\n"); scanf("%d",&choice);switch(choice){case 1:Input_Message();break;case 2:Show_Message();break;case 3:Renew_Message();break;case 4:Inquire_Message();break;case 5:Count_Message();break;case 6:Sort_Message();break;case 0:break;}}while(choice!=0);Save_Message(sum);printf("\n-信息已经保存!-(file name:999.txt)\n");。

C语言 超市收银系统

C语言 超市收银系统

/*—-——-———-—-—-———-——--——--—--———-—--—-——时间:2015—7—1 16:44:21吴俊龙C语言专周设计超市收银系统--————--——-—---—-——-———-————---—--—-—--*/#include 〈stdio.h>#include <windows。

h〉#include 〈string。

h>int menu1(void);//主页面int menu2(void);//商品管理页面int menu3(void);//退出页面int menu4(void);//添加商品信息int menu5(void);//商品信息浏览int menu6(void);//商品信息修改int menu7(void);//商品信息查询int menu8(void);//商品信息删除int menu9(void);//结账页面int sign(void);//欢迎页面struct ima{int id;//商品编号char name[20];//商品的名称char produce[30]; //商品的产地int number; //商品的数量int money; //商品的价格};int len = 0;struct ima thing[50];struct ima *p;int menu1(void)//主页面{int n;system("cls");printf(”\n\n\n");printf(”\t\t —--—-------——-—-—-—--————--—-———-—-—---—— \n");printf(”\t\t| 欢迎使用结账管理系统|\n”);printf("\t\t|---—-—-—--—-—---—————------—--—----———---|\n");printf(”\t\t| |\n");printf("\t\t| 1。

超市管理系统c实现

超市管理系统c实现

超市管理系统c实现#include<stdio.h>#include<malloc.h>#include<string.h>typedef struct goods{char Name[10];char num[10];char prd_date[10];char sf_date[10];float price;char unit[20];char number[3];struct goods *next;}goods;void Lulu(int i,goods *t,goods *q);void shuchu(goods *t);void xiugai(char *ch,goods *t);void chaxun(char *ch,goods *t);void add(goods *t);void shanchu(goods *t);void main(){goods head,*p,*q;int i,t,m;char num[10];head.next=NULL;i=0;printf("1录入商品的信息\n");printf("请输入要录入商品的个数:\n");scanf("%d",&t);while(i<t){q=&head;p=(goods*)malloc(sizeof(goods));p->next=NULL;Lulu(i,p,q);while(q->next)q=q->next;q->next=p;i++;}printf("请选择您所需要的功能:\n");printf("2查看所有商品\n");printf("3修改商品信息\n");printf("4查询信商品信息\n");printf("5增加新商品信息\n");printf("6删除商品信息\n");printf("0退出程序\n");scanf("%d",&m);while(m!=0){q=&head;if(m==2){while(q->next){q=q->next;shuchu(q);}printf("请选择您所需要的功能:\n"); printf("2查看所有商品\n");printf("3修改商品信息\n");printf("4查询信商品信息\n");printf("5增加新商品信息\n");printf("6删除商品信息\n");printf("0退出程序\n");}if(m==3){printf("请输入要修改商品的编号:\n");scanf("%s",&num);xiugai(num,q);}if(m==4){printf("请输入要查询商品的编号:\n");scanf("%s",num);chaxun(num,q);}if(m==5){add(q);}if(m==6){shanchu(q);}scanf("%d",&m);}}void Lulu(int i,goods *t,goods *q){int flag;goods* l;printf("请输入第%d个商品的编号:\n",i+1);while(1){l=q;flag=0;scanf("%s",t->num);while(l){if(!strcmp(l->num,t->num)){printf("输入的编号已存在,请重新输入\n");flag=1;break;}l=l->next;}if(!flag) break;}printf("请输入第%d个商品的名称:\n",i+1);scanf("%s",t->Name);printf("请输入第%d个商品的生产日期:\n",i+1);scanf("%s",t->prd_date);printf("请输入第%d个商品的保质期:\n",i+1);scanf("%s",t->sf_date);printf("请输入第%d个商品的价格:\n",i+1);scanf("%f",&t->price);printf("请输入第%d个商品的单位:\n",i+1);scanf("%s",t->unit);printf("请输入第%d个商品的所属柜组:\n",i+1);scanf("%s",t->number);}void shuchu(goods *t){printf("商品的编号:%s\n",t->num);printf("商品的名称:%s\n",t->Name);printf("商品的生产日期:%s\n",t->prd_date);printf("商品的保质期:%s\n",t->sf_date);printf("商品的价格:%.2f元\n",t->price);printf("商品的单位:%s\n",t->unit);printf("商品所属柜组:%s\n",t->number);printf("\n\n");}void xiugai(char *ch,goods *t){int i,m,flag=1;t=t->next;while(t){if(strcmp(t->num,ch)==0){flag=0;break;}elset=t->next;}if(flag==1){printf("编号不存在,请选择0退出修改重新选择修改商品信息,重新输入编号");}while(1){printf("请选择要修改的商品的信息\n");printf("1修改商品的编号\n");printf("2修改商品的名称\n");printf("3.修改商品的价格\n");printf("4.修改商品的单位\n");printf("5.修改商品所属柜组\n");printf("输入0结束修改\n");scanf("%d",&m);i=m;if(i==1){printf("请输入商品的新编号:\n");scanf("%s",t->num);}if(i==2){printf("请输入商品的新名称:\n");scanf("%s",t->Name);}if(i==3){printf("请输入商品的新价格:\n");scanf("%f",&t->price);}if(i==4){printf("请输入商品的新单位:\n");scanf("%s",t->unit);}if(i==5){printf("请输入商品所属的新柜组:\n");scanf("%s",t->number);}if(i==0)break;}printf("请选择您所需要的功能:\n");printf("2查看所有商品\n");printf("3修改商品信息\n");printf("4查询信商品信息\n");printf("5增加新商品信息\n");printf("6删除商品信息\n");printf("0退出程序\n");}void chaxun(char *ch,goods *t){int flag=1;t=t->next;while(t){if(strcmp(t->num,ch)==0){flag=0;break;}t=t->next;}if(flag==1){printf("编号不存在,重新输入编号");}elseshuchu(t);printf("请选择您所需要的功能:\n");printf("2查看所有商品\n");printf("3修改商品信息\n");printf("4查询信商品信息\n");printf("5增加新商品信息\n");printf("6删除商品信息\n");printf("0退出程序\n");}void add(goods *t){goods *q,*p;int flag,word=1;q=(goods*)malloc(sizeof(goods));while(word){p=t;flag=0;printf("请输入要增加的商品的编号:\n");scanf("%s",q->num);while(p->next){if(strcmp(p->next->num,q->num)==0){flag=1;break;}p=p->next;}if(flag==1){printf("商品编号有重复,请重新输入商品的编号\n");continue;}elseword=0;printf("请输入商品的名称:\n");scanf("%s",q->Name);printf("请输入商品的生产日期:\n");scanf("%s",q->prd_date);printf("请输入商品的保质期:\n");scanf("%s",q->sf_date);printf("请输入商品的价格:\n");scanf("%f",&q->price);printf("请输入商品的单位:\n");scanf("%s",q->unit);printf("请输入商品所属柜组:\n");scanf("%s",q->number);}p=t;while(p->next){if(strcmp(p->next->num,t->num)>0)break;elsep=p->next;}q->next=p->next;p->next=q;printf("请选择您所需要的功能:\n");printf("2查看所有商品\n");printf("3修改商品信息\n");printf("4查询信商品信息\n");printf("5增加新商品信息\n");printf("6删除商品信息\n");printf("0退出程序\n");}void shanchu(goods *p){goods *q,*t;char num[10];q=p;printf("请输入要删除的商品编号:\n");scanf("%s",num);while(q->next)if(strcmp(q->next->num,num)==0)break;else q=q->next;if(q->next){t=q->next;q->next=q->next->next;free(t);}elseprintf("没有该编号的商品");printf("请选择您所需要的功能:\n");printf("2查看所有商品\n");printf("3修改商品信息\n");printf("4查询信商品信息\n");printf("5增加新商品信息\n");printf("6删除商品信息\n");printf("0退出程序\n");}。

C语言课程设计_超市管理系统

C语言课程设计_超市管理系统

图6 程序主界面这个界面是运行函数后首先出现的界面,运行函数时,该函数是一个菜单函数,用switch 语句来实现各功能模块的转移,出来该页面后用户可根据提示输入信息,从而实现各种目的。

②键盘输入1,进入商品详细目录用以显示全部商品详细信息图7 显示信息界面该页面用printf输出,在利用指针读出链表中数据并利用合理计算计算出净利润等数据,再用while语句进行循环输出部数据③输入2按回车进入商品买卖页面。

如图8所示图8 买卖信息界面用scanf输入数据,用if语句和while语句来实现循环每一次修改的数据④输入3按回车会进入商品登陆页面,此页面用来登陆商品。

如图9所示图9 登录信息界面将数据登陆入链表个变量中⑤输入4按回车进入商品修改模块如图10所示图10修改信息界面6输入5按回车进入商品删除模块如图11所示使用printf()函数和scanf( )函数,并且利用指针从而实现各种功能。

其中用到了while 循环语句,实现对链表中个数据的重写功能。

运行完后退出该函数图11删除信息界面4.设计体会原文已完。

下文为附加文档,如不需要,下载后可以编辑删除,谢谢!施工组织设计本施工组织设计是本着“一流的质量、一流的工期、科学管理”来进行编制的。

编制时,我公司技术发展部、质检科以及项目部经过精心研究、合理组织、充分利用先进工艺,特制定本施工组织设计。

一、工程概况:西夏建材城生活区27#、30#住宅楼位于银川市新市区,橡胶厂对面。

本工程由宁夏燕宝房地产开发有限公司开发,银川市规划建筑设计院设计。

本工程耐火等级二级,屋面防水等级三级,地震防烈度为8度,设计使用年限50年。

本工程建筑面积:27#楼3824.75m2;30#楼3824.75 m2。

室内地坪±0.00以绝对标高1110.5 m为准,总长27#楼47.28m;30#楼47.28 m。

总宽27#楼14.26m;30#楼14.26 m。

设计室外地坪至檐口高度18.6 00m,呈长方形布置,东西向,三个单元。

超市管理系统C语言

超市管理系统C语言

超市管理系统C语言 Coca-cola standardization office【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-ZZT18】西安邮电大学高级语言课程设计报告题目:超市管理系统院系名称:理学院专业名称:应用物理学班级: 1301学生姓名:王松学号(8位): 07132022指导教师:王西龙设计起止时间:2014年06月19日~2014年06月27日1:程序模型2:原函数概况1:创建函数void start(); /*启动界面*/void input(); /*商品数据信息输入函数*/void change(); /*商品数据信息修改函数*/void dele(); /*给定指定商品名称,删除商品信息*/ void output(); /*商品信息输出*/void search(); /*商品信息查找*/void mima();/*密码程序*/void colour();品信息的录入:\n");printf(" 2.商品信息的修改:\n");printf(" 3.删除某个商品信息:\n");printf(" 4.查找商品信息:\n");printf(" 5.颜色选择:\n");printf(" 0.退出程序\n");printf("********************************************\n");printf("********************************************\n");printf(" 输入你的选择: ");scanf("%d",&chi); /*根据你的选择执行相应的函数*/if(chi==1) input();elseif(chi==2) change();else if(chi==3) dele();else if(chi==4) search();else if(chi==5) colour();else if(chi==0){printf("你已经退出超市商品管理系统!谢谢您的使用,再见\n");exit(0);}else{printf(" You Enter The Choice Is Not valid ! \n");getch();system("cls");start();}}void huanying(){printf("\t\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\ 3\3\3\3\n");printf("\t\3 欢迎使用\3\n");printf("\t\3\3\n");printf("\t\3\3\n");printf("\t\3 超市管理系统\3\n");printf("\t\3\3\n");printf("\t\3\3\n");printf("\t\3 \4\4\4\4\4\4 \3\n"); printf("\t\3\3\n");printf("\t\3 \5\5\5\5\5\5\5\5\5 \3\n"); printf("\t\3\3\n");printf("\t\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\ 3\3\3\3\3\n");}5:商品信息的录入void input() /*数据录入*/{FILE *fp;char flag[20];fp=fopen("e:/","wt");do{printf("请输入你的商品信息:\n"); /*录入商品的信息*/printf("商品编号:");scanf("%s",goods[count].goods_id);printf("商品名字:");scanf("%s",goods[count].goods_name);printf("商品价格:");scanf("%lf",&goods[count].goods_price);printf("商品折扣:");scanf("%lf",&goods[count].goods_discount);printf("商品总数目:");scanf("%d",&goods[count].goods_amount);printf("商品剩余数目:");scanf("%d",&goods[count].goods_remain);count++; /*存数的商品数加一*/printf("是否继续输入数据 y是 n否 : "); /*是否还想继续输入数据*/scanf("%s",flag);}while(strcmp(flag,"y")==0||strcmp(flag,"Y")==0);fwrite(&goods,sizeof(struct MarketGoods),count,fp);fclose(fp);output(); /*调用显示商品数据*/getch();system("cls");start();}6:商品信息的修改void change() /*数据修改*/{FILE *fp;int i,m=0;char ch[20],a[20];fp=fopen("e:/","rt");while(fread(&goods[m],sizeof(struct MarketGoods),1,fp)!=NULL){m++;}fclose(fp);printf("\nyou sure want change goodsInfor y/n): "); /*根据商品的id来修改数据*/scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\nenter you want change goods_id:");scanf("%s",a);for(i=0;i<count;i++){if(strcmp(goods[i].goods_id,a)==0){printf("\nyou sure want change goodsname(y/n): ");scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\nname:");scanf("%s",goods[i].goods_name);}printf("\nyou sure want change goodsprice(y/n): ");scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\nprice");scanf("%lf",&goods[i].goods_price);}printf("\nyou sure want goods discount(y/n): ");scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\ndiscount");scanf("%lf",&goods[i].goods_discount);}printf("\nyou sure want goods amount(y/n): ");scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\namount");scanf("%d",&goods[i].goods_amount);}printf("\nyou sure want goods remain(y/n): ");scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\nremain");scanf("%d",&goods[i].goods_remain);}}}}fwrite(&goods,sizeof(struct MarketGoods),count,fp);fclose(fp);output();getch();system("cls");start();}7:商品信息的删除void dele() /*数据删除*/{FILE *fp;int i,m=0,j;char ch[20],c[20];fp=fopen("e:/","rt");while(fread(&goods[m],sizeof(struct MarketGoods),1,fp)!=NULL){printf("%s",goods[m].goods_id);m++;}fclose(fp);printf("\nenter you want delete name :\n"); /*根据商品的名称来删除数据*/printf("name:");scanf("%s",c);for(i=0;i<count;i++){if(strcmp(c,goods[i].goods_name)==0)break; /*找到,即跳出循环*/for(j=i;j<count-1;j++)goods[j]=goods[j+1];}printf("\t\t\tyou had delete %s\n",c);count--;fp=fopen("e:/","wt");fwrite(&goods,sizeof(struct MarketGoods),count,fp);fclose(fp);output();getch();system("cls");start();}8:商品信息查询void search() /*数据查找*/{FILE *fp;int i,m=0;char a[20];fp=fopen("e:/","rt");while(fread(&goods[m],sizeof(struct MarketGoods),1,fp)!=NULL){printf("%s",goods[m].goods_name);m++;}printf("\nenter you want look name:"); /*根据商品的名称来查找数据*/scanf("%s",a);for(i=0;i<m;i++){if(strcmp(goods[i].goods_name,a)==0)printf("%s %s %lf %lf %d %d\n",goods[i].goods_id,goods[i].goods_name,goods[i].goods_price,goods[ i].goods_discount,goods[i].goods_amount,goods[i].goods_remain);}getch();system("cls");start();}9:系统颜色选择void colour(){int a;printf("\n\n\t\t选择以下方案\n");printf("\n\n\t\t1**********红底黑字\n");printf("\n\n\t\t2**********白底黑子");printf("\n\n\t\t3**********黑底红字");printf("\n\n\t\t4**********绿底蓝字");printf("\n\n\t\t5**********黄底蓝字");printf("\n\n\t\t6**********系统默认");printf("\n\n\t\t\t\t请挑选您喜欢的颜色<1-6>....");scanf("%d",&a);switch(a){case 1:system("color 40"); break;case 2:system("color 70"); break;case 3:system("color 04"); break;case 4:system("color 21"); break;case 5:system("color 65"); break;case 6:system("color la"); break;default:printf("\n\n\t\t\t\t输入无效");{getch();colour();}}start();}10:商品信息输出void output() /*数据输出*/{ FILE *fp;int i,m=0;fp=fopen("e:/","rt");while(fread(&goods[m],sizeof(struct MarketGoods),1,fp)!=NULL) {m++;}fclose(fp);printf(" 编号名称价格折扣总数目剩余数目\n");for(i=0;i<m;i++){printf("%s %s %lf %lf %10d %10d \n",goods[i].goods_id,goods[i].goods_name,goods[i].goods_price,goods[i].goods_discount,goods[i].goods_amount,goods[i].goods_remain);}getch();system("cls");start();}11:退出系统void start() /*启动菜单*/{int chi;printf(" 超市商品管理系统\n");printf("********************************************\n");printf("********************************************\n");printf(" 1.商品信息的录入:\n");printf(" 2.商品信息的修改:\n");printf(" 3.删除某个商品信息:\n");printf(" 4.查找商品信息:\n");printf(" 5.颜色选择:\n");printf(" 0.退出程序\n");printf("********************************************\n");printf("********************************************\n");printf(" 输入你的选择: ");scanf("%d",&chi); /*根据你的选择执行相应的函数*/if(chi==1) input();elseif(chi==2) change();else if(chi==3) dele();else if(chi==4) search();else if(chi==5) colour();else if(chi==0){printf("你已经退出超市商品管理系统!谢谢您的使用,再见\n");exit(0);4:调试分析调试过程中,会有很多的错误。

C语言课程设计-超市管理系统

C语言课程设计-超市管理系统

3.设计结果与分析
在VC 6.0环境中输入源程序,在没有提示错误的情况下编译,生成.exe可执行文件。

①运行程序,会看到如图6所示界面。

运行主函数时,首先调用函数main
图6 程序主界面
这个界面是运行函数后首先出现的界面,运行函数时,该函数是一个菜单函数,用switch 语句来实现各功能模块的转移,出来该页面后用户可根据提示输入信息,从而实现各种目的。

②键盘输入1,进入商品详细目录用以显示全部商品详细信息
图7 显示信息界面
该页面用printf输出,在利用指针读出链表中数据并利用合理计算计算出净利润等数据,再用while语句进行循环输出部数据
图8 买卖信息界面
用scanf输入数据,用if语句和while语句来实现循环每一次修改的数据④输入3按回车会进入商品登陆页面,此页面用来登陆商品。

如图9所示
图9 登录信息界面
将数据登陆入链表个变量中
图10修改信息界面
6输入5按回车进入商品删除模块如图11所示
使用printf()函数和scanf( )函数,并且利用指针从而实现各种功能。

其中用到了while 循环语句,实现对链表中个数据的重写功能。

运行完后退出该函数
图11删除信息界面。

C语言大作业-超市货物管理系统

C语言大作业-超市货物管理系统

//预防闪屏
return 0;
}
for(i=0;i<n;i++)
if(gds[i].ave!=0)
//在后面的 del()函数中通过将 gds[i].ave=0 来
表示该记录被删除了
if(fwrite(&gds[i],sizeof(struct goods),1,fp)!=1)//开始写入文件
printf("文件写入发生错误\n");
gds[i].ave=( gds[i].MJ+ gds[i].JJ)/2;
}
/*******【编号长度处理函数】********/
void lenbian(int i)
{
int j,l,a;
l=strlen(gds[i].BH);
if(l<LEN)
{
for(j=LEN-l,a=0;j<LEN;j++)
case 2:printf("姓名:");scanf("%s",gds[i].MZ);break;
case 3:printf("进价:");scanf("%f",&gds[i].JJ);break;
case 4:printf("卖价:");scanf("%f",&gds[i].MJ);break;
case 5:rishuru(i);break;
//i 表示第 i 个货物信息,n 表示比较到第
n 个货物
{
int j,k,w1;
do{
w1=0;
printf(" 编 号 :\t\t 【 %d 位 , 低 于 %d 位 前 面 补 0, 长 的 截 尾 处 理 ! 】
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言超市管理系统源程序超市管理系统源程序代码,要可以执行的。

最好是文件,链表中的一种。

好了一定重金酬谢~ 最佳答案有一个小型超市,出售N( NX 10)种商品,设计并实现一个系统,完成下列功厶匕能:1.保存及输出。

超市中的各种商品信息保存在指定文件中,可以把它们输出显示。

2.计算并排序。

计算每类商品的总价值(sum单精度)及平均价(aver,单精度,输出一位小数),将每类商品按平均价从大到小的顺序排序打印出来。

3.统计。

统计输出库存量低于100 的货号及类别。

统计输出有两种以上(含两种)商品库存量低于100 的商品类别。

1.2 总体结构本程序主要分为八个模块:主模块、信息输出修改模块、新建信息模块、排序模块、计算模块、统计模块1、统计模块2、打印模块。

1)主模块:通过调用各分模块实现功能;2)信息输出修改模块:输出显示文件中商品信息内容,添加商品信息,删除商品信息,修改商品信息;3)新建商品信息模块:建立一个新结构体,为链表存信息用,并且将信息保存在指定的文件中;4)排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序,放到链表里存储;FILE*fp;intn=0;/* 定义文件指针类型 */floataver[4],sum[4],g[4],h;/* charc[5]="elec";/* 定义字符数组类型 */5) 计算模块:将所有商品的价格与库存量进行累加求和;6) 打印模块:将商品信息按每类平均价格排序(从高到低)按顺序打印出来;7) 统计模块 1:统计库存量低于 100 的货名及类别;8) 统计模块 2:统计商品库存量有 2 种以上(含 2 种)低于 100 的商品类别。

附录(程序清单) #include"stdio.h"/* 输入,输出头文件 */#include"stdlib.h"/* 申请空间头文件 */#include"string.h"/* 对字符串加工头文件 */#include"conio.h"/* 清屏头文件 */inti,j,a[4],m;/* 定义整数类型 */定义浮点类型 */chard[5]="comm";/* 定义字符数组类型 */chare[5]="food";/* 定义字符数组类型structgood/* 定义结构体 */ intnum;/* 商品编号 */charname[20];/* 商品名称 */structgood*next;/* 定义结构体指针类型 */}*head,*p1,*p2;structgood*createlist()/* structgood*head1,*p1,*p2;/* 定义结构体指针类型 */charf[5]="offi";/*定义字符数组类型*/*/charkind[40];/* 商品类型 */floatprice;/* 商品价格 */charunit[10];/* 商品单位 */intquantity;/* 商品数量 */创建链表函数 */if((fp=fopen("goodsmessage.txt","w"))==NULL)/ * 判断能否打开文件*/printf("cannotopenthefile ");exit(0);/* 结束程序*/head1=(structgood*)malloc(sizeof(structgood)); /* 申请头结点空间*/p1=head1;p2=head1;printf("*********************************************\n");printf(" 请输入信息: 编号,名称,类型,价格,单位,数目\n");printf(" (以输入“-1”表示结束输入)\n");printf("*********************************************\n");printf (" \n") ;scanf("%d%s%s%f%s%d",&p1->num,p1->name,p1->kind,&p1->price,p1->unit,&p1->quant ity);/* 输入商品信息*/printf (" \n") ;{p1->next=NULL; fprintf(fp,"%d%s%s%f%s%d",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->qua ntity);/* 将商品信息写入文件 */ while(1)p1=(structgood*)malloc(sizeof(structgood));/* 申请新空间*/ printf("*********************************************\n"); printf(" 请输入信息 : 编号,名称,类型,价格,单位,数目 \n"); printf(" (以输入“- 1”表示结束输入) \n"); printf("*********************************************\n");printf (" \n"); scanf("%d",&p1->num); if(p1->num==-1)/* 申请空间结束条件 */ printf ("\n\n");fprintf(fp,"%d",-1);fclose(fp);returnhead1;/* 返回头指针*/ scanf("%s%s%f%s%d",p1->name,p1->kind,&p1->price,p1->unit,&p1->quantity);/*商品信息*/printf("fprintf(fp,"%d%s%s%f%s%d",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->qua ntity);/* 将商品信息写入文件*/ p1->next=NULL;p2->next=p1;p2=p1;structgood*paixu(structgood*head2)/* 链表排序函数*/for(i=0;i<=3;i++)/* 赋初值值*/输入\n");structgood*p6,*p7,*r,*s;/* 定义结构体指针类型*/{{a[i]=0; sum[i]=0; aver[i]=0; p6=(structgood*)malloc(sizeof(structgood));/* 申请新空间*/p6->next=head2; head2=p6; while(p6->next!=NULL)/* 判断循环结束条件 */p7=p6->next; r=p6; while(p7->next!=NULL)/* 判断循环结束条件 */if((p7->next->price)>(r->next->price ))/* 判断是否调换*/r=p7;p7=p7->next;if(p6!=r)/* 判断循环结束条件*/ s=r->next;/* 指针调换*/ r->next=s->next; s->next=p6->next;p6->next=s;p6=p6->next;p6=head2;head2=head2->next;free(p6);/* 释放第一个无效空间*/ returnhead2;}voidjisuan() p1=head;doif(strcmp(p1->kind,c)==0)/* 判断是否为电器类型*/sum[0]=sum[0]+(p1->price)*(p1->quantity);/* a[0]=a[0]+p1->quantity;/* 求电器总件数*/求电器总价*/if(strcmp(p1->kind,d)==0)/* 判断是否为日用品类型*/sum[1]=sum[1]+(p1->price)*(p1->quantity);/* a[1]=a[1]+p1->quantity;/* 求日用品总件数*/ if(strcmp(p1->kind,e)==0)/* 判断是否为办公用品类型*/求日用品总价*/sum[2]=sum[2]+(p1->price)*(p1->quantity);/*a[2]=a[2]+p1->quantity;/*printf("****************************************************\n");printf (" 商品类型\t 平均价\t 总库存量\n");printf("****************************************************\n");求办公用品总价 */ 求办公用品总件数 */if(strcmp(p1->kind,f)==0)/*判断是否为食品类型 */sum[3]=sum[3]+(p1->price)*(p1->quantity);/*求食品总价 */a[3]=a[3]+p1->quantity;/* 求食品总件数 */p1=p1->next;}while(p1!=NULL);/* 遍历链表结束条件 */for(i=0;i<4;i++)aver[i]=sum[i]/a[i];/*求每类商品平均价 */printf (" \n") ;printf(" 电器总价值:%0.1f\t 平均价:%0.1f\t 总库存量:%d\n",sum[0],aver[0],a[0]);printf (" \n") ;printf(" 日用品总价值:%0.1f\t 平均价:%0. 1f\t 总库存量:%d\n",sum[1],aver[1],a[1]);printf (" \n") ;printf(" 食品总价值:%0.1f\t 平均价:%0.1f\t 总库存量:%d\n",sum[2],aver[2],a[2]);printf (" \n") ;printf(" 办公用品总价值:%0.1f\t 平均价:%0.1 f\t 总库存量:%d\n",sum[3],aver[3],a[3]);printf (" \n") ;voidshuchu()/* 输出商品信息函数*/dostructgood*p3,*p4,*p5;/* 定义结构体指针类型*/intn=0,p=0,q=0,r=0;printf(" 所有商品信息:\n");printf(" 编号,名称,类型,价格,单位,数目\n");printf("**********************************\n");if((fp=fopen("goodsmessage.txt","rb+"))==NULL)/ * 判断能否打开文件*/printf("cannotopenthefile ");exit(0);/* 结束程序*/head=(structgood*)malloc(sizeof(structgood)); /* 申请头结点空间*/p3=head;fscanf(fp,"%d%s%s%f%s%d",&p3->num,p3->name,p3->kind,&p3->price,p3->unit,&p3->q uantity);/* 从文件中写到链表*/while(1)p4=(structgood*)malloc(sizeof(structgood)) ;/* 申请头结点空间*/fscanf(fp,"%d",&p4->num);if(p4->num!=-1)/* 判断循环结束条件*/fscanf(fp,"%s%s%f%s%d",p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity);/* 从文件中写到链表*/ p4->next=NULL;p3->next=p4;p3=p4;else p3->next=NULL;break;fclose(fp);/* 关闭文件*/}p3=head;while(p3!=NULL)printf("%d%s%s%0.1f%s%d\n\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3-> quantity);printf(" p3=p3->next;\n");printf("**********************************\n");printf("//////////////////////////////////\n");while(n!=4) p3=head;printf("**********************************\n");printf("1 添加商品信息\n");printf("2 删除某商品信息\n");{}printf("3 修改某商品信息 \n");printf("4 返回(当你完成了对某一商品的添加、 删除或者修改后请按 4 返回) \n"); printf("**********************************\n"); scanf("%d",&n); if(n==1)/* 添加商品信息 */ printf(" 请输入商品编号名称类型价格单位数目 \n");printf("**********************************\n"); p4=(structgood*)malloc(sizeof(structgood));/* 申请空间*/scanf("%d%s%s%f%s%d",&p4->num,p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity);/* 输入商品信息 */ p4->next=NULL; while(p3->next!=NULL)/* 判断循环结束条件 */ p3=p3->next;p3->next=p4;p3=head;if((fp=fopen("goodsmessage.txt","w"))==NULL)/* printf("cannotopenthefile");exit(0);/* 结束程序 */ while(p3!=NULL)fprintf(fp,"%d%s%s%f%s%d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->qua ntity)/* 将商品信息写入文件 */ p3=p3->next;fprintf(fp,"%d",-1);printf("**********************************\n");判断能否打开文件 */fclose(fp);/* 关闭文件 */printf("printf("printf("**********************************\n");if(n==2)/* 删除商品 */printf("**********************************\n");printf (" 请输入需要删除的商品编号 \n");printf("**********************************\n");scanf("%d",&p);printf("**********\n");printf ("1 确认删除 \n2 取消删除 \n");printf("**********\n");scanf("%d",&r);if(r==1)printf ("请按 4 返回\n"); \n");\n");if((head->num)==p) head=head->next; free(p3);/* 释放空间*/ else p4=head; p3=p4->next;while(p3!=NULL)/* 判断循环结束条件*/ if((p3->num)==p) p5=p3->next;free(p3);/* 释放空间*/p4->next=p5;break;p3=p3->next;p4=p4->next;判断能否打开文件*/ if((fp=fopen("goodsmessage.txt","w"))==NULL)/*printf("cannotopenthefile");exit(0);/* 结束程序*/ p3=head;while(p3!=NULL)/* 判断循环结束条件*/{fprintf(fp,"%d%s%s%f%s%d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->qua ntity);/* 将商品信息写入文件 */ p3=p3->next;fprintf(fp,"%d",-1);if(r==2) continue;/* 继续循环 */ printf("**********************************\n");printf("printf(" printf("**********************************\n");if(n==3)/* 修改某商品信息 */fclose(fp);/* 关闭文件 */\n");printf("请按 4 返回\n");\n");printf(" 请输入需要修改的商品编号 \n");scanf("%d",&q);while(p3!=NULL)/* 判断循环结束条件 */ if((p3->num)==q)/* 判断是否为所需要修改的商品 */printf(" 请输入商品单价与库存量(如果单价不变请输入原来的单价) \n"); scanf("%f%d",&p3->price,&p3->quantity);/*p3=p3->next; if((fp=fopen("goodsmessage.txt","w"))==NULL)/* printf("cannotopenthefile"); exit(0);/* 结束程序 */输入商品价格与库存量 */判断能否打开文件 */}p3=head;while(p3!=NULL)/* 判断循环结束条件 */fprintf(fp,"%d%s%s%f%s%d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->qua ntity);/* 将商品信息写入文件 */ p3=p3->next;fprintf(fp,"%d",-1);printf("**********************************\n");printf("printf(" printf("**********************************\n");fclose(fp);/* 关闭文件 */\n");printf("请按 4 返回 \n");\n");if(n==4)/* 退出*/ break;printf("**********\n");printf("1 继续修改\n \n2 返回\n");printf("**********\n");scanf("%d",&p);if(p==1)continue;/* 继续循环*/if(p==2)break;/* 跳出循环*/}while(n!=2);fclose(fp);/* 关闭文件*/}voidprintf0(structgood*p)/* 遍历链表并打印电器类商品函数*/ {structgood*p3;/* 定义结构体指针类型 */}voidprintf1(structgood*p)/*遍历链表并打印办公用品类商品函数 */{p3=p; while(p3!=NULL)/* 判断遍历链表循环结束条件 */ if(strcmp(p3->kind,c)==0)/* 判断商品类型是否为电器类型 */printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->u nit,p3->quantity);/* 输出电器类商品信息 */ printf(" p3=p3->next;return;p3=p;while(p3!=NULL)/* 判断遍历链表循环结束条件 */ if(strcmp(p3->kind,d)==0)/* 判断商品类型是否为日用品类型 */printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->u nit,p3->quantity);/* 输出日用品类商品信息 */ printf(" p3=p3->next;return;p3=p;while(p3!=NULL)/* 判断遍历链表循环结束条件 */ if(strcmp(p3->kind,e)==0)/* 判断商品类型是否为办公用品类型 */printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->u nit,p3->quantity);/* 输出办公用品类商品信息 */ printf(" p3=p3->next;return;structgood*p3;/* 定义结构体指针类型*/p3=p;while(p3!=NULL)/* 判断遍历链表循环结束条件*/if(strcmp(p3->kind,f)==0)/* 判断商品类型是否为食品类型*/printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->u nit,p3->quantity);/* 输出食品类商品信息*/ printf(" p3=p3->next;return;voidshunxudayin()}{for(i=0;i<4;i++) g[i]=aver[i];/* 将平均价赋给新数组*/ for(j=0;j<3;j++)/* 将新数组用冒泡排序法排序*/ for(i=j+1;i<4;i++) if(g[j]<g[i]) h=g[j];g[j]=g[i];g[i]=h;printf("\n****************************\n");printf(" 商品平均价格排序表(从高到低) \n");printf("****************************\n");printf(" \n");printf (" 编号\t 名称\t 类别\t 单价\t 单位\t 数量\n");printf(" for(j=0;j<4;j++) for(i=0;i<4;i++)break;case1:break;case2:if(aver[i]==g[j])/*判断每类商品平均价格的先后顺序 */ switch(i) case0:printf0(head);/*调用遍历链表并打印电器类商品函数 */ printf2(head);/*调用遍历链表并打印办公用品类商品函数 */ printf1(head);/*调用遍历链表并打印日用品类商品函数 */break;case3: printf3(head);/* 调用遍历链表并打印食品类商品函数*/ break;voidtongji1() p1=head;printf("\n************************\n");printf(" 库存量低于100 的货名及类别\n");printf("************************\n");\n");printf(" printf(" 商品名称\t商品类型\n");printf(" \n");printf(" \n");while(p1!=NULL)/* 判断遍历链表循环结束条件 */if(p1->quantity<100)/* 判断库存量是否小于 100*/printf("%s\t%s\n",p1->name,p1->kind);/*printf(" p1=p1->next; voidtongji2()printf("\n**********************************************\n");printf(" 商品库存量有 2种以上(含 2种)低于 100的商品类别 :\n"); printf("**********************************************\n");输出商品名称及类别 */\n");判断电器类库存量是否为 2 种以上(含 2 种)低于 100*/判断办公用品类库存量是否为 2 种以上(含 2 种)低于 if((a[0]<100)&&(a[0]>=2))/*printf(" 电器 \n");printf(" \n");if((a[1]<100)&&(a[1]>=2))/*判断日用品类库存量是否为 2 种以上(含 2 种)低于 100*/ printf(" 日用品 \n");printf("if((a[2]<100)&&(a[2]>=2))/*判断食品类库存量是否为 2 种以上(含 2 种)低于 100*/ printf(" 食品 \n");printf(" \n");if((a[3]<100)&&(a[3]>=2))/*100*/printf(" 办公用品 \n");printf(" intmain(intargc,char*argv[]) structgood*p1,*p2;/* 定义结构体指针类型 */ while(1)printf("***********************************************\n");printf(" printf ("3 统计商品信息(如果您还没有查看过信息请先按 1)\n");printf("1 输出查看或者修改已存信息 \n"); printf(" \n");printf("2重新输入新信息(并且删除原有信息) \n");\n");printf("\n");printf("***********************************************\n");scanf("%d",&m);if(m==1) shuchu();/* 调用输出信息函数 */if(m==2) system("cls");head=createlist();/* 调用建立链表函数 */if(m==3) printf(" 统计结果如下 \n");head=paixu(head);/* 调用链表排序函数 */jisuan();/* 调用计算函数 */printf("4 退出 \n");}shunxudayin();/* 调用顺序打印函数 */if(m==4) p1=head;while(p1!=NULL)/* 判断遍历链表结束条件 */ p2=p1->next;free(p1);/* 释放空间 */ p1=p2;break;return0;/* 结束程序 */如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快! Vae 团队招人!! !欢迎各位加入!! !走过路过不要错过! !!迅猛发展中! !!tongji1();/* 调用统计 1 函数*/tongji2();/* 调用统计 2 函数*/。

相关文档
最新文档