baiyi-123 2021-06-16 19:46 采纳率: 33.3%
浏览 15

这图书入库接下来怎么写啊?

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include<string.h>

#include<io.h>

#define MAXNUM 2000

typedef struct{

 char isbn[10];//书序号 

 char bkName[30];//书名

 char author[20];//作者

 float price;//单价

 int num;//数量

 } Book;

int bookNum=3;

Book bk[MAXNUM]={"001","C Primer Plus","Stephen Prata",89.00,10,

    "002","python","John zelle",78.00,20,

    "003","The Dream of Red Mansion","CaoXueQin",38.00,30};

void list(){

 int i;

 system("cls");

 printf(".................\n");

 for(i=0;i<bookNum;i++){

  printf("%10s%30s %20s %.2f %d\n",bk[i].isbn,bk[i].bkName,

  bk[i].author,bk[i].price,bk[i].num);

 }

 system("pause");

}

void myGets(char *ps){

 fflush(stdin);

 gets(ps);

}

 

float viewBuy(Book buy[],int buyNum,char bkNo[]){

  float total=0;

  system("cls");

  printf("欢迎使用销售功能\n");

  for(int i=0;i<buyNum;i++){

   float t=buy[i].price*buy[i].num;

   total+=t;

   printf("%-10s%-30s%-8.2f%-5d%-8.2f\n",

     buy[i].isbn,buy[i].bkName,

     buy[i].price,buy[i].num,t);

  }

  printf("total=%.2f\n",total); 

  printf("请输入书号,000则退出:");myGets(bkNo); 

  return total;

}

int seekBkNo(char *bkNo){

 int i;

 for(i=0;i<bookNum;i++){

  if(strcmp(bk[i].isbn,bkNo)==0) break;

 }

 if(i>=bookNum) return -1;

 if(bk[i].num<=0) return -2;

 return i;

}

void addBuy(Book buy[],int &buyNum,int index){

 int i;

 for(i=0;i<buyNum;i++){

  if(strcmp(buy[i].isbn,bk[index].isbn)==0)

   break;

 }

 if(i<buyNum) buy[i].num++;

 else buy[buyNum]=bk[index];

 buy[buyNum].num=1;

 buyNum++;

}

void sale(){

 system("cls");

 Book buy[100]={};

 int buyNum=0;

 float inmoney,total;

 char bkNo[20];

 do{

  total=viewBuy(buy,buyNum,bkNo);//显示销售界面并等待输入一个书号

  

  if(strcmp(bkNo,"000")==0) break;//若书号为000则退出循环

  int index=seekBkNo(bkNo);//在bk数组查找改书 

  if(index<0){

   printf("该书不存在或未入库,");

   system("pause");

   continue; 

  }// 未找到,则做相应处理后continue

  addBuy(buy,buyNum,index);//找到,把图书相关信息返回到buy数组

  bk[index].num--;//bk数组对应的图书数量-1 

 }while(1);

 printf("支付金额:"); scanf("%f",&inmoney);

 printf("找零:%.2lf",inmoney-total);

  

}

void input(){

 system("cls");

 printf("入库ing\n

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-06-21 17:09
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

    ​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料