baiyi-123 2021-06-16 23:45 采纳率: 33.3%
浏览 34

大佬求助C语言图书馆管理系统

如果没有保存,那么,每一次重新打开程序后,你的数据都是空的。

如果没有读取已保存的数据,那么,每一次重新打开程序后,你的数据还都是空的。

通过分析,需要保存的数据有:

 

3、图书书库,用Book类型的数组bk保存,每个数组单元代表一种图书,退出系统时应该把数组中的数据保存在文件data.txt中,启动程序时数组从文件中读取数据。数组设置为全局数组:

   BOOK bk[MANUM];

4、图书种类数量(数组实际使用的单元数),为全局变量,退出系统时应该保存在文件中:

int bookNum =0;  /*不同图书的数量,初始值为0*/

 

也就是说,若图书的数据共有bookNum种。那么data.txt文件中需要先保存一个整数bookNum,然后再保存bookNum个Book类型的数据(来自数组bk。)

读取的时候,也是先读取整数到bookNum,然后在文件中连续读取bookNum个单元(Book类型)到数组bk。

 

读取的部分代码大致如下:(保存的代码可以参考该方式,使用fwrite函数)

ReadData(){

        FILE *fp;

        if((fp=fopen(".\\data.txt","rb"))==NULL)

               {printf("Can not open the file!\n");return;} 

         fread(&bookNum,sizeof(int),1,fp);

        fread(bk,sizeof(Book),bookNum,fp); 

        fclose(fp);

}这是我的部分代码

#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 input(){

system("cls");

有哪位大佬可以按上面的方法给我写一下吗?谢谢!

  • 写回答

1条回答 默认 最新

  • baiyi-123 2021-06-17 07:18
    关注

    就是图书入库的分函数,我就差这一个了

    评论

报告相同问题?

悬赏问题

  • ¥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电路设计