baiyi-123 2021-06-17 21:47 采纳率: 33.3%
浏览 22

有哪位大佬给我写一下图书入库的分函数

#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 myGets(char *ps){

fflush(stdin);

gets(ps);

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 input()//图书入库    用书号查找,如果没有则添加。用文件

  • 写回答

1条回答 默认 最新

  • 「已注销」 2023-03-16 23:35
    关注

    参考GPT和自己的思路:

    好的,您想要的是图书入库的函数。根据您提供的信息,您需要编写一个函数来实现根据书籍的编号来查找书籍,如果库存中不存在该书籍,则添加该书籍,最后更新库存。以下是示例代码:

    int inventory(char* bookNo, int amount) { //图书入库

    int i, j;
    
    for(i=0; i<bookNum; i++) { //查找书籍
    
        if(strcmp(bk[i].isbn, bookNo)==0) { //找到书籍,更新数量
    
            bk[i].num += amount;
    
            return 0;
    
        }
    
    }
    
    //未找到书籍,需要添加
    
    if(bookNum>=MAXNUM) { //库存已满
    
        printf("Sorry, the inventory is full!\n");
    
        return -1;
    
    }
    
    //添加新书籍
    
    strcpy(bk[bookNum].isbn, bookNo);
    
    printf("Please enter the book name: ");
    
    myGets(bk[bookNum].bkName);
    
    printf("Please enter the author name: ");
    
    myGets(bk[bookNum].author);
    
    printf("Please enter the price: ");
    
    scanf("%f", &bk[bookNum].price);
    
    printf("Please enter the amount: ");
    
    scanf("%d", &bk[bookNum].num);
    
    bookNum++;
    
    return 0;
    

    }

    在代码中使用了myGets函数来获取字符串输入,它的实现方式如下:

    void myGets(char *ps) {

    fflush(stdin); //清空缓存区
    
    gets(ps); //获取字符串
    

    }

    使用该函数时需要注意,gets函数存在缓冲区溢出的问题,因此需要先清空缓冲区。

    评论

报告相同问题?

悬赏问题

  • ¥15 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计