文档章节

链表实现图书管理

cyleft
 cyleft
发布于 2017/05/16 12:13
字数 351
阅读 8
收藏 0
#include <iostream>
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
using namespace std;

typedef struct Book_Information{
    char name[10];
    int  price = 0;
    int date;
}Book;

typedef struct Library{
    Book *b;
    int length;
}Lib;

int Library_Init(Lib &li);

int Library_Insert(Lib &li,char name[],int num);

int Library_Display(Lib li);

int Library_Delete(Lib &li,int num);

int Library_Save(Lib li);

int main()
{
    Lib lib1;

    Library_Init(lib1);

    Library_Insert(lib1,"1chenyi",1);
    Library_Insert(lib1,"2chenyi",2);
    Library_Insert(lib1,"3chenyi",3);
    Library_Insert(lib1,"4chenyi",4);
    Library_Insert(lib1,"5chenyi",5);
    Library_Display(lib1);
    Library_Save(lib1);

    Library_Display(lib1);


    return 0;
}

int Library_Init(Lib &li){
    printf("init...\n");
    li.b = new Book[MAX_SIZE];
    li.length = 0;
}

int Library_Display(Lib li){
    printf("display...\n");
    int i=0;
    for(;i<li.length;i++){
        cout<<"Book name is:["<<li.b[i].name<<"],Book price is:["<<li.b[i].price<<"]"<<endl;
    }
}

int Library_Insert(Lib &li,char *name,int num){
    //printf("insert...\n");
    li.length++;
    int leng;
    for(int i=li.length-1;i>=num;i--){
        leng = strlen(li.b[i-1].name);
        for(int j=0;j<leng;j++){
            li.b[i].name[j] = li.b[i-1].name[j];
        }
    }
    leng = strlen(name);
    for(int j=0;j<leng;j++){
            li.b[num-1].name[j] = name[j];
    }
}

int Library_Delete(Lib &li,int num){
    printf("delete...\n");
    li.length--;
    for(int i=num-1;i<li.length+1;i++){
        *li.b[i].name = *li.b[i+1].name;
    }
}

int Library_Save(Lib li){
    printf("save...\n");
    printf("-----------写数据-------------\n");
    printf("length= %d\n",li.length);
    FILE *fp_Lib;
    fp_Lib = fopen("C:\\Users\\chenyi\\Documents\\c_work_space\\图书-结构体数组\\book_list.text","w");
    if(fopen("C:\\Users\\chenyi\\Documents\\c_work_space\\图书-结构体数组\\book_list.text","w")==NULL){
        printf("open errer\n");
    }
    for(int i=0;i<li.length;i++){
        fwrite(&li.b[i],sizeof(Book),1,fp_Lib);
        printf("%d %s\n",i,li.b[i].name);
    }
    printf("\n");
    fclose(fp_Lib);
    printf("------------------------\n");
    printf("----------读数据-------------\n");
    fp_Lib = fopen("C:\\Users\\chenyi\\Documents\\c_work_space\\图书-结构体数组\\book_list.text","r");
    for(int i=0;i<li.length;i++){
        fread(&li.b[i],sizeof(Book),1,fp_Lib);
    }

}

 

© 著作权归作者所有

cyleft
粉丝 1
博文 30
码字总数 9912
作品 0
九江
程序员
私信 提问
C语言中关于释放单链表的问题

我现在用C在写一个图书管理系统,要求用链表来保存图书信息和链表信息。 现在我在写链表释放(我写的是单链表)的时候出错了。 代码如下 会出现这样的错误 请求大神帮助。 释放单链表的话,方...

水晶之夜
2014/01/04
2.3K
11
C语言项目2:图书管理系统

项目名称:图书管理系统 项目作者:宁哥 开发工具:Visual Studio 2017 编程语言:C语言 意义:链表、文件存储、数据加解密、多文件开发综合应用 功能描述: 1:增、删、改、查 2:数据加解密...

ningcaichen66
2017/09/29
0
0
C语言项目2:图书管理系统

项目名称:图书管理系统 项目作者:宁哥 开发工具:Visual Studio 2017 编程语言:C语言 意义:链表、文件存储、数据加解密、多文件开发综合应用 功能描述: 1:增、删、改、查 2:数据加解密...

ningcaichen66
2017/09/27
0
0
手机端图书管理系统

我们在南京有5家社区图书馆,用的是先锋图书管理系统,我们想用手机对日常任务进行管理 手机端实现PC端先锋图书管理系统的功能 部分功能如下 门店管理 添加门店 编辑门店信息 附近门店 活动场...

二楼南书房
2017/08/02
29
0
图书管理系统(仅限南京地区)

我们在南京有5家社区图书馆,用的是先锋图书管理系统,我们想用手机对日常任务进行管理 手机端实现PC端先锋图书管理系统的功能 部分功能如下 门店管理 添加门店 编辑门店信息 附近门店 活动场...

二楼南书房
2017/08/29
32
4

没有更多内容

加载失败,请刷新页面

加载更多

Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
6
0
CSS盒子模型

CSS盒子模型 组成: content --> padding --> border --> margin 像现实生活中的快递: 物品 --> 填充物 --> 包装盒 --> 盒子与盒子之间的间距 content :width、height组成的 内容区域 padd......

studywin
今天
7
0
修复Win10下开始菜单、设置等系统软件无法打开的问题

因为各种各样的原因导致系统文件丢失、损坏、被修改,而造成win10的开始菜单、设置等系统软件无法打开的情况,可以尝试如下方法解决 此方法只在部分情况下有效,但值得一试 用Windows键+R打开...

locbytes
昨天
8
0
jquery 添加和删除节点

本文转载于:专业的前端网站➺jquery 添加和删除节点 // 增加一个三和一节点function addPanel() { // var newPanel = $('.my-panel').clone(true) var newPanel = $(".triple-panel-con......

前端老手
昨天
8
0
一、Django基础

一、web框架分类和wsgiref模块使用介绍 web框架的本质 socket服务端 与 浏览器的通信 socket服务端功能划分: 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn... 根据用户访问...

ZeroBit
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部