网站首页 > 文章中心 > 其它

商品订单函数c语言

作者:小编 更新时间:2023-10-06 18:45:33 浏览量:342人看过

请问c语言如何实现输入一个商品的名字和购买数量,自动计算出总价,商品有苹果和梨子,单价分别是10和

#define?_CRT_SECURE_NO_WARNINGS

商品订单函数c语言-图1

#include?stdio.h

#include?stdlib.h

#include?string.h

struct?goods

{

int?goodNum;

};

int?priceCount(struct?goods?inputGoods)

if?(!strcmp(inputGoods.goodsName,?"苹果"))

return?inputGoods.goodNum?*?10;

if?(!strcmp(inputGoods.goodsName,?"梨子"))

return?inputGoods.goodNum?*?11;

else

商品订单函数c语言-图2

return?-1;

}

int?main()

struct?goods?inputGoods?=?{};

while?(1)

printf("请输入商品名字和购买数量\n");

scanf("%s%d",?inputGoods.goodsName,?inputGoods.goodNum);

if?(priceCount(inputGoods)?!=?-1)

printf("购买%s的总价是:%d\n",?inputGoods.goodsName,?priceCount(inputGoods));

//printf("我头像,惊喜")

printf("商品名字输入有问题\n");

system("pause");

return?0;

运行结果:

用c语言编一个订单信息管理程序

#include stdio.h

#include string.h

#include malloc.h

#include stdlib.h

int N;//////订单数目

struct chanpin

long bianhao;

int cpdingjia;

int shuliang;

long jine;

};////订单编号、公司名称、产品名称、产品订价、订购数量、订单金额

void init(struct chanpin *p)

printf("输入订单编号:\t");

scanf("%d", p-bianhao);

printf("\n输入公司名称:\t");

scanf("%s", p-mingcheng);

printf("\n输入产品名称:\t");

scanf("%s", p-cpmingcheng);

printf("\n输入产品定价:\t");

scanf("%d", p-cpdingjia);

printf("\n输入订购数量:\t");

scanf("%d", p-shuliang);

p-jine=p-cpdingjia * p-shuliang;

}//初始化

printf("\n");

printf("公司名称:%s\n", p-mingcheng);

puts("-----------------------------------------------");//传说中的分割线

printf("订单编号:\t%ld", p-bianhao);

//printf("\n公司名称:\t%s", p-mingcheng);

printf("\n产品名称:\t%s", p-cpmingcheng);

printf("\n产品定价:\t%d", p-cpdingjia);

printf("\n订购数目:\t%d", p-shuliang);

printf("\n总金额是:\t%ld", p-jine);

puts("-----------------------------------------------");

}//输出一个产品的全部信息

int i;

printf("输入公司名称:\t");

gets(temp);

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

if(strcmp(temp, p[i].mingcheng)==0)

puts("订单信息输出完毕!!!");

}///////////根据名称输出公司订单信息

void findbianhao(struct chanpin *p)

long temp;

printf("输入编号:\t");

scanf("%ld", temp);

if(temp==p[i].bianhao)

puts("根据编号查找完成!!!");

}//////根据编号查询 ....其他的查找方法我没写,你可以补上

void findcpmingcheng(struct chanpin *p)

{}///////产品名称查找

void findcpdingjia(struct chanpin *p)

{}////产品定价查找

int menu()

int x;

printf("根据公司名称输出订单输入 :\t c\n");

printf("根据编号查找输入:\t b\n");

printf("根据产品名称输入:\t m \n");

printf("根据定价查找输入:\t d \n");

printf("退出输入:\t e \n");

x=getchar();

getchar();

return x;

void main()

struct chanpin *cp;

int choic;

printf("请输入总书目:\t");

scanf("%d", N);

cp=(struct chanpin *)malloc(N*sizeof(struct chanpin));

init(cp+i);//初始化所有产品

choic=menu();

while(choic!='e')

if(choic=='c')

else if(choic=='b')

findbianhao(cp);///调用编号查找

else if(choic=='m')

findcpmingcheng(cp);////调用名称查找

else if(choic=='d')

findcpdingjia(cp);

printf("出入错误!\n");

puts("感谢使用");

c语言feof()函数问题

while(1)

fread(a[j],sizeof(struct stu),1,fp);/*这里一旦读到结束位置,后面输出应停止,所以在fread后面增加判断即可*/

if(feof(fp)) break;

printf("d",a[j].a);

printf("s",a[j].b);

printf("s",a[j].c);

printf("d",a[j].e);

j++;

fclose(fp);

原因:

当遇到文件结束标志,不立即结束而再执行后面几个printf才结束,会由于%s输出遇不到字符串结束标志而一直向下输出,后面内容是随机的,当遇到字符串结束标志才停止.至于在那里停止,没有办法固定,要看内存单元%s正在访问位置是否是字符串结束标志.

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

#include conio.h

typedef struct

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];

char fn;

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

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

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

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

fflush(stdin);

scanf("%c",fn);

puts("\n");

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

case '1':

DataInput(shangpin, number );

break; /*录入信息*/

break; /*信息显示*/

DataFind();

break; /*信息查找*/

DataAdd( );

break; /*增加*/

DataDel( );

break; /*删除*/

DataStatistic();

break; /*信息统计*/

case '0':

return 0;

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

break;

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

getch( );

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

int i = 0;

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

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

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;

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

} /*结束while*/

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

scanf("%c",YesOrNo);

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

DataStorage(com,n);

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

return;

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

} /*结束函数*/

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)

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");

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) /*录入保存文件*/

FILE *comPtr;

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

scanf("%s",FileName);

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

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

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

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

fclose(comPtr);

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

int i=0;

*nptr = 0;

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

scanf("%s",datafile);

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

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

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;

return 1;

void DataDisPlay()

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

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

int N;

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

char tp;

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

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

scanf("%c",YesNo);

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

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

scanf("%c",tp);

if(tp=='1')

OnPrice(com,N);

OnNumber(com,N);

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");

com[i].price);

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

int i,j;

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

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

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

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

void DataAdd( ) /*增加*/

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

int haoma; /*生产商*/

char shangjia[10];

char YesOrNo;

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);

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

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

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

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

com[i+n].num = haoma;

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

com[i+n].price = danjia;

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

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

DataStorage(com,n+m);

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

void DataDel( )//删除

void OnNumber(record *com,int n );

int i; /*总记录数*/

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

int m;

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

OnNumber(com,n );

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

if(m=1 m=n)

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

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

DataStorage(com,n-1);

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

int n,i,sum=0;

int g,l;

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

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 商品号\t 生产商 单价\n");

} /*结束统计*/

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

int num;

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

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

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

break; /*录入信息*/

break; /*信息显示*/

break; /*信息查找*/

break; /*增加*/

break; /*删除*/

break; /*信息统计*/

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

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

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

int haoma; /*商品号*/

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

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

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

} /*结束while*/

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

} /*结束函数*/

void DataFind( ) /*查找*/

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

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

int low = 0; /*下限*/

int high ; /*上限*/

int mid ; /*中间值*/

char ans; /*选项*/

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

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

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

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

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

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

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

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

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

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

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

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

} /*结束显示成绩*/

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

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

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

void DataAdd( ) /*增加*/

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

int haoma; /*生产商*/

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

int i; /*总记录数*/

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

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

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

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

} /*结束统计*/

以上就是土嘎嘎小编为大家整理的商品订单函数c语言相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章