您的位置:

在线商城系统c语言,电子商务C语言

本文目录一览:

c语言 商品管理系统

#include"stdio.h"

#include conio.h

#include stdlib.h

//#include"FILE.h"

typedef struct shangpin

{

char name[20];

int biaohao;

int shuliang;

double jiage;

}Node;

typedef struct list

{

Node data;

struct list *next;

}List ,*Slist;

void charu(Slist s,Node x);

int caidan()

{

int i;

while(1)

{

system("cls");

printf("\n\t\t\t 商店销售管理系统\n\n");

printf("\t\t **********************************************\n\n");

printf("\t\t 1--添加商品 2--出售商品\n\n");

printf("\t\t 3--删除商品 4--显示商品\n\n");

printf("\t\t 5--查找商品 0--退出系统\n\n");

printf("\t\t **********************************************\n\n");

printf("请选择(0-5): ");

scanf("%d",i);

if(i6i=0)break;

}

return i;

}

void chushihua(Slist s)

{

Slist head=new List;

head-next=NULL;

s=head;

}

void tianjia(Slist s)

{

Node x;

Slist r,p,q;

int i=0;

r=new List;

r-next=NULL;

q=p=s-next;

while(q)

{

i++;

q=q-next;

}

printf("请输入商品名称、数量以及价格: ");

scanf("%s%d%lf",x.name,x.shuliang,x.jiage);

x.biaohao=i+1;

r-data=x;

s-next=r;

r-next=p;

}

void duchu(Slist s)

{

FILE *cp;//定义文件指针

int i=0;

Node x;

if((cp=fopen("shangpin.txt","a+"))==NULL)//打开文件

{printf("文件打开失败!");return ;}

fseek(cp,0L,SEEK_SET);//将文件指针移动到文件开头

while(!feof(cp))

{

fscanf(cp,"%s%d%lf",x.name,x.shuliang,x.jiage);//读取文件的内容

x.biaohao=++i;

charu(s,x);//把读到的数据插入到链表上

}

fclose(cp);//关闭文件

}

void charu(Slist s,Node x)

{

Slist r,p=s-next;

r=new List;

r-next=NULL;

r-data=x;

s-next=r;

r-next=p;

}

void xieru(Slist s)

{

FILE *cp;//同上

Slist p=s-next;

if((cp=fopen("shangpin.txt","w+"))==NULL)

{printf("文件打开失败!");return ;}//同上

while(p)

{

fprintf(cp,"%s %d %.2lf ",p-data.name,p-data.shuliang,p-data.jiage);//写入文件中,并且以空格隔开

p=p-next;

}

fclose(cp);//关闭文件

}

Slist chazhao(Slist s,int m)

{

Slist p=s-next;

if(p==0)return 0;

if(p-next==0)return p;

if(p-data.biaohao==m)return p;

while(p-next)

{

if(p-next-data.biaohao==m)return p;

p=p-next;

}

return 0;

}

void xianshi(Slist s)

{

Slist p;

p=s-next;

printf("%10s%20s%10s%10s\n","商品编号","商品名称","商品数量","商品价格");

while(p)

{

printf("%10d%20s%10d%10.2f\n",p-data.biaohao,p-data.name,p-data.shuliang,p-data.jiage);

p=p-next;

}

}

void shanchu(Slist s)

{

}

void chushou(Slist s)

{

}

void main()

{

int num;

Slist s;

chushihua(s);

duchu(s);

num=caidan();

while(1)

{

switch(num)

{

case 0:exit(0);break;

case 1:tianjia(s);break;

case 2:chushou(s);break;

case 3:shanchu(s);break;

case 4:xianshi(s);break;

case 5:chazhao(s,1);break;

}

printf("按任意键继续!");

getch();

num=caidan();

}

xieru(s);

}

//有些函数我在没写啊,你自己写写吧,文件的读取和写入,还有链表的创建我都给你写好了,也就是上面的1,4我都写好了,

//包括了文件,剩下的2,3,5,你自己试试,并且我也给你写了一个查找函数,你看看能用不!

c语言商品管理系统

假设某超市经营各种商品,每种商品包括以下信息:商品编号、商品名称、商品品牌、库存数量、售价、已售数量。系统的主要功能包括:1. 创建商品信息文件:根据提示输入若干商品的信息,并将信息保存至一个文件中。2. 商品进货管理:每次购入新商品,需按要求输入商品所含各项信息并存入商品信息文件中。如果已经存在该商品(以商品编号为准),则修改相应的库存数量信息,否则生成新的商品信息记录。3. 商品销售管理:每次有商品销售出去,则按要求输入商品编号和商品名称信息,并修改相应的商品信息文件。注意:商品销售时要检查库存数量的合法性(即销售出去的数量必须小于库存数量)。4. 按不同条件进行查询操作,输出满足条件的商品信息。(1) 输入商品名称,在商品信息文件中查找相应的商品信息并输出。(2) 输入商品品牌,在商品信息文件中查找该品牌的所有信息并输出。5. 按不同条件对商品信息进行统计工作。(1) 输入商品名称,在商品信息文件中统计该商品的销售总额。(2) 设置一个库存数量警戒值,输出库存数量小于该警戒值的所有库存商品的信息。(3) 输入商品品牌,在商品信息文件中统计其不同商品名称的库存量,并输出库存量最高的那个商品的信息。

满意请采纳。

用C语言编写一简单的商品销售管理系统

第一个功能商品入库其实就是输入数据 不要想得太复杂 直接用scanf输入就可以了

第二个商品销售 就是改一下商品的数量

查询用折半查找顺序查找都可以 查到之后printf

排序可以用选择法

C语言设计商品管理系统,可以实现商品的录入,查询,求源代码

#include stdio.h

#include conio.h

#include string.h

#define SIZE 300

typedef struct

{

char name[30];

int num;

char shang[10];

float price;

}record;

void DataInput(record *com, int *nptr);

int DataRead(record *com,int *nptr) ;

void DataStorage(record *com, int n); /*信息保存到文件*/

void DataFind( );

void DataDisPlay( );

void DataAdd( );

void DataDel( );

void DataStatistic( );

int main( )

{

record shangpin[SIZE];

int number=20; /*设商品数*/

char fn;

printf("\t~~~~~~商品管理系统~~~~~~");

while(1)

{

printf("\n\t\t1.商品信息录入\n"); /*显示主菜单*/

printf("\t\t2.商品信息显示\n");

printf("\t\t3.商品信息查找\n");

printf("\t\t4.商品信息添加\n");

printf("\t\t5.商品信息删除\n");

printf("\t\t6.商品信息统计\n");

printf("\t\t0.退出系统");

printf("\n\t~~~~~~~~~~~~~~~~\n");

printf("\t请输入你的一个选项(数字0-6): ");

fflush(stdin);

scanf("%c",fn);

puts("\n");

switch(fn) /*切换到不同功能*/

{

case '1':

DataInput(shangpin, number );

break; /*录入信息*/

case '2':DataDisPlay();

break; /*信息显示*/

case '3':

DataFind();

break; /*信息查找*/

case '4':

DataAdd( );

break; /*增加*/

case '5':

DataDel( );

break; /*删除*/

case '6':

DataStatistic();

break; /*信息统计*/

case '0':

return 0;

default:puts("\t\t没有这个项!返回主菜单!");

break;

}

printf("\n\t\t完毕!按任意键继续");

getch( );

puts("\n");

}

}

void DataInput(record *com, int *nptr) /*商品信息录入*/

{

int i = 0;

int n ; /*录入的总数*/

char YesOrNo; /*判断是否保存*/

char shangming[30]; /*商名*/

int haoma; /*商品号*/

char shangjia[10]; /*单价*/

float danjia;

printf("\t\t请输入商品个数:");

scanf("%d",n);

*nptr = n; /*nptr返回商品个数*/

printf("\t\t现在开始录入这%d个商品信息:\n\n",n);

while(in)

{

printf("请输入商品的商品名:",i+1);

scanf("%s",shangming);

printf("请输入商品的商品号:",i+1);

scanf("%d",haoma);

printf("请输入商品的生产商:",i+1);

scanf("%s",shangjia);

printf("请输入商品的单价 :",i+1);

scanf("%f",danjia);

if(danjia=0danjia=1000) /*有效的单价才录入*/

{

strcpy(com[i].name,shangming);

com[i].num = haoma;

strcpy(com[i].shang,shangjia);

com[i].price = danjia;

i =i+1;

}

else

printf("输入的单价是一个无效的值!!!\n\n");

} /*结束while*/

printf("要保存您刚才录入的数据吗(Y/N)?"); /*选择保存*/

fflush(stdin);

scanf("%c",YesOrNo);

if(YesOrNo=='y'||YesOrNo=='Y')

DataStorage(com,n);

else if(YesOrNo=='n'||YesOrNo=='N')

return;

else

printf("输入了不正确的选项\n");

return;

} /*结束函数*/

void DataFind( ) /*查找*/

{

void OnNumber(record *com,int n ); /*按商品号排序*/

int key; /*key为要查找的关键值*/

int low = 0; /*下限*/

int high ; /*上限*/

int mid ; /*中间值*/

char ans; /*选项*/

record com[SIZE];

int n;

if(DataRead(com,n)==1) /*从文件中读取信息*/

{

OnNumber(com,n); /*先按商品号排序*/

high = n;

do

{

printf("\n\n\t\t请输入你要查找的商品号:");

scanf("%d",key);

low = 0;high = n;

while (low =high)

{

mid = (high + low)/2; /*折半查找法*/

if (key == com[mid].num )

{

printf("\n\t\t你要找的是第%d个商品\n",mid + 1);

printf("\t\t结果如下:\n\n");

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");

printf("%3d%17s%12d%12s%8.1f\n",mid+1,com[mid].name,com[mid].num,com[mid].shang,

com[mid].price);

break; /*如果找到则退出循环*/

}

if (key com[mid].num ) low = mid + 1;

else high = mid - 1;

}

if (low high)

printf("\t\t,没有找到这个价格!\n");

printf("\n\t\t还要继续查询吗(Y/N)?");

ans = getch( );

}

while (ans =='Y'||ans == 'y'); /*结束do....while*/

}

}

void DataStorage(record *com, int n) /*录入保存文件*/

{

int i;

FILE *comPtr;

char FileName[20];

printf("请输入您要保存的文件名:");

scanf("%s",FileName);

printf("正在将商品信息保存到文件,请稍候……\n");

if((comPtr=fopen(FileName,"w"))==NULL)

printf("没有该文件\n");

else

for(i=0 ; in ; i++)

fprintf(comPtr,"\n%17s%12d%12s%8.1f",com[i].name,com[i].num,com[i].shang,com[i].price);

fclose(comPtr);

}

int DataRead(record *com,int *nptr) /*读取文件*/

{

int i=0;

char datafile[20];

FILE *comPtr;

*nptr = 0;

printf("请输入文件名:");

scanf("%s",datafile);

if((comPtr = fopen(datafile,"r")) == NULL) /*打开文件*/

{

printf("没有该文件,请重新输入!\n");

return 0;

}

else

{

printf("正在读取商品单价,请稍候……\n");

while (!feof(comPtr))

{

fscanf(comPtr,"%s%d%s%f",com[i].name,com[i].num,com[i].shang,com[i].price);

i++;

}

*nptr = i;

printf("\n");

fclose(comPtr);

return 1;

}

}

void DataDisPlay()

{

void OnPrice(record *com,int n ); /*按单价*/

void OnNumber(record *com,int n ); /*按商品号*/

int N;

int i;

record com[300];

char YesNo; /*是否按顺序显示*/

char tp;

if(DataRead(com,N)==1) /*从文件读取数据*/

{

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");

for(i=0;iN;i++)

printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,com[i].price);

printf("要按顺序显示吗?(Y/N)?");

fflush(stdin);

scanf("%c",YesNo);

if(YesNo=='y'||YesNo=='Y')

{

printf("\t请输入排序方式:\n");

printf("\t(1.按价格排序从低到高;2.按商品号排序从低到高.)");

fflush(stdin);

scanf("%c",tp);

if(tp=='1')

OnPrice(com,N);

else if(tp =='2')

OnNumber(com,N);

else

printf("\t输入了不正确项!\n");

}

}

} /*结束显示成绩*/

void OnPrice(record *com,int n ) /*按单价顺序*/

{ int i,j;

record temp;

printf("\t\t按单价排序---\n\n");

printf("商品总数为%d:\n",n);

for(j=0 ; jn-1 ; j++) /*冒泡排序*/

for(i=0 ; in-j-1 ; i++)

if(com[i].pricecom[i+1].price)

{

temp=com[i];

com[i]=com[i+1];

com[i+1]=temp;

}

printf("\n\t\t按成绩排序的结果如下(按分数从低到高):\n\n");

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");

for(i=0 ; in ; i++)

printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,

com[i].price);

}

void OnNumber(record *com,int n ) /*按序号顺序*/

{

int i,j;

record temp;

printf("\t\t按商品号排序---\n\n");

printf("商品总数为%d:\n",n);

for(j=0 ; jn-1 ; j++)

for(i=0 ; in-j-1 ; i++)

if(com[i].numcom[i+1].num)

{

temp=com[i];

com[i]=com[i+1];

com[i+1]=temp;

}

printf("\n\t按商品号排序的结果如下(按商品号从小到大):\n\n");

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");

for(i=0 ; in ; i++)

printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,

com[i].price);

}

void DataAdd( ) /*增加*/

{

int i=0,n,m; /*商品名称*/

char shangming[30];

int haoma; /*生产商*/

char shangjia[10];

float danjia;

char YesOrNo;

record com[SIZE];

printf("\t\t读取原有数据信息---\n");

if(DataRead(com,n)==1)

{

printf("\t\t信息读取完毕!\n\n");

printf("\t\t请输入要添加的商品总数:");

scanf("%d",m);

printf("\t\t现在开始录入这%d个商品信息:\n\n",m);

while(im)

{

printf("第%d个商品的商品名:",i+1);

scanf("%s",shangming);

printf("第%d个商品的商品号:",i+1);

scanf("%d",haoma);

printf("第%d个商品的生产商:",i+1);

scanf("%s",shangjia);

printf("第%d个商品的单价:",i+1);

scanf("%f",danjia);

if(danjia=0danjia=1000) /*有效的单价才录入*/

{

strcpy(com[i+n].name,shangming);

com[i+n].num = haoma;

strcpy(com[i+n].shang,shangjia);

com[i+n].price = danjia;

i =i+1;

}

else

printf("输入的单价是一个无效的值,请重新输入!\n\n");

}

printf("要保存您刚才录入的数据吗(Y/N)?");

fflush(stdin);

scanf("%c",YesOrNo);

if(YesOrNo=='y'||YesOrNo=='Y')

DataStorage(com,n+m);

else if(YesOrNo=='n'||YesOrNo=='N')

return;

else

printf("输入了不正确项,返回上一级\n");

return;

}

}

void DataDel( )//删除

{

void OnNumber(record *com,int n );

record com[SIZE];

int i; /*总记录数*/

int n; /*要删除的记录号*/

int m;

printf("\t\t读取原有数据信息---\n");

if(DataRead(com,n)==1)

{

printf("\t\t原始数据如下:\n\n");

OnNumber(com,n );

printf("请输入你要删除的记录的序号");

scanf("%d",m);

if(m=1 m=n)

{

for(i=m-1;in-1;i++)

com [i] = com[i+1];

DataStorage(com,n-1);

}

}

}

void DataStatistic( ) /*统计信息*/

{

int high=0,low=200,ave=0;

int n,i,sum=0;

int g,l;

record com[SIZE];

printf("读取数据信息---\n");

if(DataRead(com,n)==1)

{

printf("商品总数为%d\n\n",n);

for(i=0;in;i++)

{

if(com[i].pricehigh)

{

high = com[i].price;

g=i;

}

if(com[i].pricelow)

{

low = com[i].price;

l=i;

}

sum += com[i].price;

}

ave=sum/n;

printf("\t\t最高\t最低\t平均\n"); /*计算值*/

printf("商品单价统计:\t%d\t%d\t%d\n\n",high,low,ave);

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");

for(i=0 ; in ; i++)

printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,

com[i].price);

printf("\t\t 序号\t\t 商品名\t 商品号\t 生产商 单价\n");

printf("单价最高的商品是:%3d%17s%12d%12s%8.1f\n\n",g+1,com[g].name,com[g].num,com[g].shang,com[g].price);

printf("单价最低的商品是:%3d%17s%12d%12s%8.1f\n",l+1,com[l].name,com[l].num,com[l].shang,com[l].price);

} /*结束统计*/

}

c语言设计商品信息管理系统

如果你不是为了学习用途,直接用蓝点产品管理系统好了,这些需求基本直接就实现了的。

c语言商品管理系统源代码,加注释

#include stdio.h

#include conio.h

#include string.h

#define SIZE 300

typedef struct

{

char name[30];

int num;

char shang[10];

float price;

}record;

void DataInput(record *com, int *nptr);

int DataRead(record *com,int *nptr) ;

void DataStorage(record *com, int n); /*信息保存到文件*/

void DataFind( );

void DataDisPlay( );

void DataAdd( );

void DataDel( );

void DataStatistic( );

int main( )

{

record shangpin[SIZE];

int number=20; /*设商品数*/

char fn;

printf("\t~~~~~~商品管理系统~~~~~~");

while(1)

{

printf("\n\t\t1.商品信息录入\n"); /*显示主菜单*/

printf("\t\t2.商品信息显示\n");

printf("\t\t3.商品信息查找\n");

printf("\t\t4.商品信息添加\n");

printf("\t\t5.商品信息删除\n");

printf("\t\t6.商品信息统计\n");

printf("\t\t0.退出系统");

printf("\n\t~~~~~~~~~~~~~~~~\n");

printf("\t请输入你的一个选项(数字0-6): ");

fflush(stdin);

scanf("%c",fn);

puts("\n");

switch(fn) /*切换到不同功能*/

{

case '1':

DataInput(shangpin, number );

break; /*录入信息*/

case '2':DataDisPlay();

break; /*信息显示*/

case '3':

DataFind();

break; /*信息查找*/

case '4':

DataAdd( );

break; /*增加*/

case '5':

DataDel( );

break; /*删除*/

case '6':

DataStatistic();

break; /*信息统计*/

case '0':

return 0;

default:puts("\t\t没有这个项!返回主菜单!");

break;

}

printf("\n\t\t完毕!按任意键继续");

getch( );

puts("\n");

}

}

void DataInput(record *com, int *nptr) /*商品信息录入*/

{

int i = 0;

int n ; /*录入的总数*/

char YesOrNo; /*判断是否保存*/

char shangming[30]; /*商名*/

int haoma; /*商品号*/

char shangjia[10]; /*单价*/

float danjia;

printf("\t\t请输入商品个数:");

scanf("%d",n);

*nptr = n; /*nptr返回商品个数*/

printf("\t\t现在开始录入这%d个商品信息:\n\n",n);

while(in)

{

printf("请输入商品的商品名:",i+1);

scanf("%s",shangming);

printf("请输入商品的商品号:",i+1);

scanf("%d",haoma);

printf("请输入商品的生产商:",i+1);

scanf("%s",shangjia);

printf("请输入商品的单价 :",i+1);

scanf("%f",danjia);

if(danjia=0danjia=1000) /*有效的单价才录入*/

{

strcpy(com[i].name,shangming);

com[i].num = haoma;

strcpy(com[i].shang,shangjia);

com[i].price = danjia;

i =i+1;

}

else

printf("输入的单价是一个无效的值!!!\n\n");

} /*结束while*/

printf("要保存您刚才录入的数据吗(Y/N)?"); /*选择保存*/

fflush(stdin);

scanf("%c",YesOrNo);

if(YesOrNo=='y'||YesOrNo=='Y')

DataStorage(com,n);

else if(YesOrNo=='n'||YesOrNo=='N')

return;

else

printf("输入了不正确的选项\n");

return;

} /*结束函数*/

void DataFind( ) /*查找*/

{

void OnNumber(record *com,int n ); /*按商品号排序*/

int key; /*key为要查找的关键值*/

int low = 0; /*下限*/

int high ; /*上限*/

int mid ; /*中间值*/

char ans; /*选项*/

record com[SIZE];

int n;

if(DataRead(com,n)==1) /*从文件中读取信息*/

{

OnNumber(com,n); /*先按商品号排序*/

high = n;

do

{

printf("\n\n\t\t请输入你要查找的商品号:");

scanf("%d",key);

low = 0;high = n;

while (low =high)

{

mid = (high + low)/2; /*折半查找法*/

if (key == com[mid].num )

{

printf("\n\t\t你要找的是第%d个商品\n",mid + 1);

printf("\t\t结果如下:\n\n");

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");

printf("%3d%17s%12d%12s%8.1f\n",mid+1,com[mid].name,com[mid].num,com[mid].shang,

com[mid].price);

break; /*如果找到则退出循环*/

}

if (key com[mid].num ) low = mid + 1;

else high = mid - 1;

}

if (low high)

printf("\t\t,没有找到这个价格!\n");

printf("\n\t\t还要继续查询吗(Y/N)?");

ans = getch( );

}

while (ans =='Y'||ans == 'y'); /*结束do....while*/

}

}

void DataStorage(record *com, int n) /*录入保存文件*/

{

int i;

FILE *comPtr;

char FileName[20];

printf("请输入您要保存的文件名:");

scanf("%s",FileName);

printf("正在将商品信息保存到文件,请稍候……\n");

if((comPtr=fopen(FileName,"w"))==NULL)

printf("没有该文件\n");

else

for(i=0 ; in ; i++)

fprintf(comPtr,"\n%17s%12d%12s%8.1f",com[i].name,com[i].num,com[i].shang,com[i].price);

fclose(comPtr);

}

int DataRead(record *com,int *nptr) /*读取文件*/

{

int i=0;

char datafile[20];

FILE *comPtr;

*nptr = 0;

printf("请输入文件名:");

scanf("%s",datafile);

if((comPtr = fopen(datafile,"r")) == NULL) /*打开文件*/

{

printf("没有该文件,请重新输入!\n");

return 0;

}

else

{

printf("正在读取商品单价,请稍候……\n");

while (!feof(comPtr))

{

fscanf(comPtr,"%s%d%s%f",com[i].name,com[i].num,com[i].shang,com[i].price);

i++;

}

*nptr = i;

printf("\n");

fclose(comPtr);

return 1;

}

}

void DataDisPlay()

{

void OnPrice(record *com,int n ); /*按单价*/

void OnNumber(record *com,int n ); /*按商品号*/

int N;

int i;

record com[300];

char YesNo; /*是否按顺序显示*/

char tp;

if(DataRead(com,N)==1) /*从文件读取数据*/

{

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");

for(i=0;iN;i++)

printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,com[i].price);

printf("要按顺序显示吗?(Y/N)?");

fflush(stdin);

scanf("%c",YesNo);

if(YesNo=='y'||YesNo=='Y')

{

printf("\t请输入排序方式:\n");

printf("\t(1.按价格排序从低到高;2.按商品号排序从低到高.)");

fflush(stdin);

scanf("%c",tp);

if(tp=='1')

OnPrice(com,N);

else if(tp =='2')

OnNumber(com,N);

else

printf("\t输入了不正确项!\n");

}

}

} /*结束显示成绩*/

void OnPrice(record *com,int n ) /*按单价顺序*/

{ int i,j;

record temp;

printf("\t\t按单价排序---\n\n");

printf("商品总数为%d:\n",n);

for(j=0 ; jn-1 ; j++) /*冒泡排序*/

for(i=0 ; in-j-1 ; i++)

if(com[i].pricecom[i+1].price)

{

temp=com[i];

com[i]=com[i+1];

com[i+1]=temp;

}

printf("\n\t\t按成绩排序的结果如下(按分数从低到高):\n\n");

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");

for(i=0 ; in ; i++)

printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,

com[i].price);

}

void OnNumber(record *com,int n ) /*按序号顺序*/

{

int i,j;

record temp;

printf("\t\t按商品号排序---\n\n");

printf("商品总数为%d:\n",n);

for(j=0 ; jn-1 ; j++)

for(i=0 ; in-j-1 ; i++)

if(com[i].numcom[i+1].num)

{

temp=com[i];

com[i]=com[i+1];

com[i+1]=temp;

}

printf("\n\t按商品号排序的结果如下(按商品号从小到大):\n\n");

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");

for(i=0 ; in ; i++)

printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,

com[i].price);

}

void DataAdd( ) /*增加*/

{

int i=0,n,m; /*商品名称*/

char shangming[30];

int haoma; /*生产商*/

char shangjia[10];

float danjia;

char YesOrNo;

record com[SIZE];

printf("\t\t读取原有数据信息---\n");

if(DataRead(com,n)==1)

{

printf("\t\t信息读取完毕!\n\n");

printf("\t\t请输入要添加的商品总数:");

scanf("%d",m);

printf("\t\t现在开始录入这%d个商品信息:\n\n",m);

while(im)

{

printf("第%d个商品的商品名:",i+1);

scanf("%s",shangming);

printf("第%d个商品的商品号:",i+1);

scanf("%d",haoma);

printf("第%d个商品的生产商:",i+1);

scanf("%s",shangjia);

printf("第%d个商品的单价:",i+1);

scanf("%f",danjia);

if(danjia=0danjia=1000) /*有效的单价才录入*/

{

strcpy(com[i+n].name,shangming);

com[i+n].num = haoma;

strcpy(com[i+n].shang,shangjia);

com[i+n].price = danjia;

i =i+1;

}

else

printf("输入的单价是一个无效的值,请重新输入!\n\n");

}

printf("要保存您刚才录入的数据吗(Y/N)?");

fflush(stdin);

scanf("%c",YesOrNo);

if(YesOrNo=='y'||YesOrNo=='Y')

DataStorage(com,n+m);

else if(YesOrNo=='n'||YesOrNo=='N')

return;

else

printf("输入了不正确项,返回上一级\n");

return;

}

}

void DataDel( )//删除

{

void OnNumber(record *com,int n );

record com[SIZE];

int i; /*总记录数*/

int n; /*要删除的记录号*/

int m;

printf("\t\t读取原有数据信息---\n");

if(DataRead(com,n)==1)

{

printf("\t\t原始数据如下:\n\n");

OnNumber(com,n );

printf("请输入你要删除的记录的序号");

scanf("%d",m);

if(m=1 m=n)

{

for(i=m-1;in-1;i++)

com [i] = com[i+1];

DataStorage(com,n-1);

}

}

}

void DataStatistic( ) /*统计信息*/

{

int high=0,low=200,ave=0;

int n,i,sum=0;

int g,l;

record com[SIZE];

printf("读取数据信息---\n");

if(DataRead(com,n)==1)

{

printf("商品总数为%d\n\n",n);

for(i=0;in;i++)

{

if(com[i].pricehigh)

{

high = com[i].price;

g=i;

}

if(com[i].pricelow)

{

low = com[i].price;

l=i;

}

sum += com[i].price;

}

ave=sum/n;

printf("\t\t最高\t最低\t平均\n"); /*计算值*/

printf("商品单价统计:\t%d\t%d\t%d\n\n",high,low,ave);

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");

for(i=0 ; in ; i++)

printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,

com[i].price);

printf("\t\t 序号\t\t 商品名\t 商品号\t 生产商 单价\n");

printf("单价最高的商品是:%3d%17s%12d%12s%8.1f\n\n",g+1,com[g].name,com[g].num,com[g].shang,com[g].price);

printf("单价最低的商品是:%3d%17s%12d%12s%8.1f\n",l+1,com[l].name,com[l].num,com[l].shang,com[l].price);

} /*结束统计*/

}