永发信息网

运用c语言程序写一个超市收银情况

答案:1  悬赏:20  手机版
解决时间 2021-04-07 10:38
运用c语言程序写一个超市收银情况
最佳答案
#include
#include
#define DIS 0.7
typedef struct buyrecond{
int id; //序号
char name[20]; //商品名称
float unitprice; //单价
int num; //数量

} BuyRecond;

typedef struct buylist{
BuyRecond *list;
int maxSize;
int size;
} BuyList;
//建立线性表
BuyList *createList(int maxsize);
void destroyList(BuyList *list);
//向表内添加元素
int appendRecond(BuyList *list,BuyRecond *recond);
//显示线性表
void displayList(BuyList *list);
int main()
{
int e;
BuyList *buyTab;
buyTab = createList(3);
e=1;
while(e!=0){
BuyRecond rec;
printf("输入第%d种商品名称(输入-1结束输入):",e);
gets(rec.name);
if(rec.name[0]=='-' && rec.name[1]=='1' && rec.name[2]=='\0')
break;
printf("输入第%d种商品单价:",e);
scanf("%f",&rec.unitprice);
printf("输入第%d种商品数量:",e);
scanf("%d",&rec.num);
getchar();
if(!appendRecond(buyTab,&rec))
break;
}
displayList(buyTab);
destroyList(buyTab);
getchar();
return 0;
}

BuyList *createList(int maxsize)
{
BuyList *pl = (BuyList *)malloc( sizeof(BuyList) );
pl->list = (BuyRecond *)calloc(maxsize, sizeof(BuyRecond));
pl->size = 0;
pl->maxSize = maxsize;
return pl;
}
void destroyList(BuyList *list)
{
free( list->list );
free( list );
}
int appendRecond(BuyList *list,BuyRecond *recond)
{
if(list->size == list->maxSize){

BuyRecond *p = (BuyRecond *)calloc(list->size * 2, sizeof(BuyRecond));
if(p==NULL){
printf("内存分配失败!无法添加元素。\n");
return 0;
}
memcpy(p, list->list, list->size*sizeof(BuyRecond));
list->maxSize = list->size * 2;
free(list->list);
list->list = p;
}
recond->id=list->size+1;
list->list[list->size]=*recond;
list->size++;
return 1;
}
void displayList(BuyList *list)
{
int i;
float x;
printf("\n%-4s %c%-20s %10s %10s %10s %10s\n",
"项次",'|',"商品名称","单价","数量","小计","优惠价");
for(i=0;isize;++i){
x=(list->list[i].num)*(list->list[i].unitprice);
printf("%-4d %c%-20s %10.0f %10d %10.2f %10.2f\n",
list->list[i].id,'|',list->list[i].name,
list->list[i].unitprice,list->list[i].num,
x,x*DIS);
}
printf("总计(%d项)\n",list->size);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
诛仙麒麟要是通过摇奖得到大约要花多少元宝?
松阳县社会保险事业管理处在什么地方啊,我要
PLC与PID
新约圣经八德经文在哪章经文里?
具有PWM功能的增强型51单片机的PWM0与PWMP分
得没得癌症做PET-CT能查出来吗?
铁锅里沾了蜡怎么清洗?
去美容院做个鼻子手术(鼻翼鼻尖肉过多)需要
读破万卷书 下笔如有神打一成语
王宝强在《唐探2》里很恶俗吗?
为什么一个遥控器能操控两个直升机
美德在我身边作文600
离婚后男方发短信诽谤女方算什么
sh en y u a n怎么写
76乘58竖式的计算过程
推荐资讯
我手机里的设置里没有辅助功能怎么开启辅助功
居住顶楼,赠送的阁楼以前都不收取暖费,今天
夜跑真的可以减肥吗
掰饼主日崇拜经文有哪些
电气管理的三全指的是什么
56年属猴的幸运数是多少
来自外太空的老鼠动画片
2016年2月13日22点23分出生的女孩取名
电动伸缩门的限位开关磁棒是怎么接线的。它是
台湾钱柜ktv
听说用艺术生身份考上雅礼的只能进艺术班学习
如何在微信订阅号发布的文章中添加评论功能?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?