顺序表图书管理系统

//
//  main.c
//  BookMIS
//
//  Created by 李科 on 2023/10/8.
//

#include "main.h"
#include "bookmis.h"
#include<string.h>

#include "status.h"
#ifndef STATUS_H
#define STAYUS_H

#define OK 1
#define ERROR 0
#define OVERFOLW -2

typedef int Status;

#endif

void PrintBookList(BookList book_list){
    for(int i=0;i<book_list.length;i++){
        Book book;
        Status status=GetBook(nook_list,i+1,book);
        if(status==OK){
            
        }
    }
}//
//  bookmis.c
//  BookMIS
//
//  Created by 李科 on 2023/10/8.
//
#include "status.h"
#include "bookmis.h"
#ifndef BOOKMIS_H
#define BOOKMIS_H

#include <string.h>

#define MAXSIZE 10000

//图书结构
typedef struct{
    char isbn[100];
    char name[100];
    float price;
} Book;

//基于顺序表的图书列表
typedef struct{
    Book *books;
    int length;
}SqBookList;
typedef SqBookList BookList;

//创建空表
Status InitList(BookList  book_list){
    
    book_list.book=new Book[ MAXSIZE];
    if(book_list.books==NULL){
        exit(OVERFLOW);
    }
    book_list.length=0;
    return OK;
}

//将book插入到第i个元素前面
Status InserBook(BookList book_list,int i,Book book){
    //合法范围1<=i<=length+1
    if(i<1||i>book_list.length+1){
        return ERROR;
    }
    if(book_list.length>=MAXSIZE){
        return ERROR;
    }
    //为新元素腾位置,将原来i个元素以及后面所有元素后移1个单位
    for(int j=book_list.length-1;j>=i-1;j--){
        book_list.book[j+1]=book_list.book[j];
    }
    //插入新元素book
    book_list.book[i-1]=book;
    book_list.length++;
    return OK;
}

//根据序号i获取对应图书Book
Status GetBook(BookList book_list,int i,Book &book){
    //合法范围:1<=i<=length
    if(i<1||i>book_list.length){
        return ERROR;
    }
    book=book_list.books[i-1];
    return OK;
}

#endif

int main(){
    BookList bookList;
    Status status =InitList(bookList);
    if(status==OK){
        for(int i=0;i<3;i++){
            Book book;
            get(book.isbn);
            get(book.name);
            scanf("%d",&book.price);
            InsertBook(bookList,bookList.length+1,book);
        }
        PrintBookList(bookList);
    }
    return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值