首页 > 编程语言 >C语言课程设计:图书管理系统【源码+文档】

C语言课程设计:图书管理系统【源码+文档】

时间:2024-07-23 23:27:28浏览次数:9  
标签:课程设计 scanf library C语言 源码 printf t% book 图书

【文章序言】:很高兴你能来阅读,博客分享日常编程,希望自己向着优秀程序员前行!

博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!

吾等采石之人,应怀大教堂之心,愿我们奔赴在各自的热爱里…

业务背景

在这里插入图片描述

为了提高日常的图书管理效率,本设计针对通常的图书管理流程,以C模式设计了一个图书管理系统,主要完成对图书信息的录入,因此编写一个优质的图书信息管理系统是十分必要的。这套系统使用C语言编写,主要通过结构化设计和链表结构实现图书的信息管理,主要包括图书信息的录入、浏览、排序、删除和修改等功能。图书信息包括登录号、书名、作者名、分类号、出版单位、出版时间、价格等。图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、删除和修改等基本操作。

在这里插入图片描述

源码下载:C语言课程设计:图书管理系统【源码+文档】


运行效果

为方便对图书的管理,设计一图书信息管理系统,其主要功能如下
(1)系统以菜单形式工作
(2)图书信息录入功能
(3)图书信息浏览功能
(4)图书信息查询功能
(5)图书信息删除和修改功能

目录大纲

在这里插入图片描述

录入图书

在这里插入图片描述

浏览图书
在这里插入图片描述
查询功能
在这里插入图片描述
按书名查询

在这里插入图片描述
按作者名查询

在这里插入图片描述
删除功能
在这里插入图片描述
删除后效果
在这里插入图片描述
修改功能:同前面
在这里插入图片描述
在这里插入图片描述
修改后效果
在这里插入图片描述
文档截图
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

项目有源码有文档,欢迎学习!

源码下载:C语言课程设计:图书管理系统【源码+文档】


源码学习

新增功能

void putin()      
{ 
    int y=1;
    system("cls");   //清除屏幕
    while(y)
    { 
        printf("\t请输入图书编码  :");
        scanf("%s",library.book[library.count].number);
        printf("\t请输入书名      :");
        scanf("%s",library.book[library.count].name);
        printf("\t请输入作者名    :");
        scanf("%s",library.book[library.count].author);
        printf("\t请输入出版商    :");
        scanf("%s",library.book[library.count].publish);
        printf("\t请输入录入时间  :");
        scanf("%s",library.book[library.count].time);
        printf("\t请输入书本价格  :");
        fflush(stdin);
        scanf("%f",&library.book[library.count].price);
        library.count++;
        printf("\n是否继续录入  (1是;0否 )	:");
        fflush(stdin);
        scanf("%d",&y);
        if (y!=1)
        {
            y=0;
            break;
        }
    }
     save();
}

按书名查询

void search_by_name()         
{   
    int i;
    char s2[20]; 
    int flag=1;
    printf("\n请输入你想要查找的书名: ");
    fflush(stdin);
    scanf("%s",s2);
    printf("编码\t书名\t作者名\t出版商\t录入时间\t价格\n");
    for(i=0;i<library.count;i++ )
        if(strcmp(s2,library.book[i].name)==0)
        {  
            flag=0;
            printf("%s\t%s\t%s\t%s\t%s\t%-12.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);
        } 
    if (flag)
    {
        printf("无法找到!");
    }
    fflush(stdin);
    getchar();
}
 

按作者名查询

void search_by_author()         
{   
     int i;
    char s3[20];
    int flag=1;
    printf("请输入你要查找的书籍作者名: ");
    fflush(stdin);//
    scanf("%s",s3);
    printf("编码\t书名\t作者名\t出版商\t录入时间\t价格\n");
    for(i=0;i<library.count;i++ )
        if(strcmp(s3,library.book[i].author)==0)
        {  
            flag=0;
            printf("%s\t%s\t%s\t%s\t%s\t%12.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);
        } 
        if (flag)
        {
            printf("无法找到!");
        }
    fflush(stdin);
    getchar();
}

更新功能

void update()
{
    int i;
    char number[10];
    system("cls");            /*清屏*/
    printf("\n   请输入您想要修改的书籍的编码:");
    fflush(stdin);
    scanf("%s",number);
 
    for (i=0;i<library.count;i++)
    {
       if(strcmp(number,library.book[i].number)==0)
       {
           printf("编码\t书名\t作者名\t出版商\t录入时间\t价格\n");
           printf("%s\t%s\t%s\t%s\t%s\t%12.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);
           break;
       }
    }
    if (i!=library.count)
    {
        mbook book;
        printf("\n请您输入修改后的信息 :\n");
        printf("\t请输入您修改后的编码     :");
        scanf("%s",book.number);
        printf("\t请输入您修改后的书名     :");
        scanf("%s",book.name);
        printf("\t请输入您修改后的作者名   :");
        scanf("%s",book.author);
        printf("\t请输入您修改后的出版商   :");
        scanf("%s",book.publish);
        printf("\t请输入您修改后的录入时间 :");
        scanf("%s",book.time);
        printf("\t请输入您修改后的价格     :");
        fflush(stdin);
        scanf("%f",&book.price);
 
        strcpy(library.book[i].name,book.name);
        strcpy(library.book[i].number,book.number);
        strcpy(library.book[i].publish,book.publish);
        strcpy(library.book[i].author,book.author);
        strcpy(library.book[i].time,book.time);
        library.book[i].price=book.price;
        save();
    }
    else
        printf("\n 无法找到!\n");
    fflush(stdin);
    getchar();
}

项目有源码有文档,欢迎学习!

源码下载:C语言课程设计:图书管理系统【源码+文档】

在这里插入图片描述


标签:课程设计,scanf,library,C语言,源码,printf,t%,book,图书
From: https://blog.csdn.net/weixin_45393094/article/details/140619742

相关文章

  • 从源码角度详解Golang调度GMP
    文章目录从源码角度详解Golang调度GMP1.1调度器的三个抽象概念:G、M、P1.2调度的大致轮廓2.进程启动时都做了什么2.1runtime.osinit(SB)方法针对系统环境的初始化2.2runtime.schedinit(SB)调度相关的一些初始化2.3runtime·mainPC(SB)启动监控任务2.4......
  • c语言的编译与调试
    1.GCC/G++gcc和g++是GNUCompilerCollection中的编译器,分别用于编译C和C++程序。它们的编译过程主要包括四个步骤:预处理(Pre-Processing)、编译(Compiling)、汇编(Assembling)、链接(Linking)。1.1编译过程预处理(Pre-Processing):gcc-Ehello.c-ohello.i对hello.c文件进行预处......
  • 史上最详细的 HashMap 的 put 方法的源码注释
    ......
  • opencascade AIS_InteractiveContext源码学习9 obsolete methods
    AIS_InteractiveContext前言交互上下文(InteractiveContext)允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是,对于已经被交互上下文识别的交互对象,必须使用上下文方法进行修改。如果交互对象尚未加载到交互上下文中,您才......
  • c语言实现猜数字游戏
    猜数字游戏是一种简单而有趣的编程实践项目,通常通过C语言来实现。 在这个游戏中,程序会在一个特定的范围内(例如100到200)随机生成一个数字作为要猜测的目标数字。玩家需要通过输入自己猜测的数字来尝试猜出这个目标数字。 每次玩家输入猜测后,程序会给出相应的提示,例如......
  • 【C语言基础习题】C语言练习题——bite 寒假班作业(4)
    C语言练习题——bite寒假班作业(4)题目第1题(单选题)题目名称:下面代码执行的结果是:()#include<stdio.h>intmain(){inti=0;for(i=0;i<10;i++){if(i=5)printf("%d",i);}return0;}题目内容:A.12345678910B.5555555555C......
  • 零基础STM32单片机编程入门(十九) 4位数码管显示模块实战含源码
    文章目录一.概要二.4位数码管主要参数三.数码管显示器的工作原理四.74HC595芯片介绍1.74HC595芯片内部框图2.74HC595通讯时序五.4位数码管原理图六.4位数码管显示实验七.CubeMX工程源代码下载八.小结一.概要数码管显示器是一类价格便宜、使用简单,通过对其不同的管......
  • 学习C语言第十一天(操作符)
    1.算术操作符/    整型的除法    1/2--->0        出不开得到商    浮点型除法    1.0/2--->0.5    保证至少有一个小数  %    计算整除之后的余数     %操作符两端必须是整数   *若要......
  • 学习C语言第十天(数组练习)
    一、三子棋game.h#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<time.h>#include<stdlib.h>#defineROW3#defineCOL3//初始化棋盘voidinitboard(charboard[ROW][COL],introw,intcol);//打印棋盘voiddispalyboard(charboard[ROW][CO......
  • 用C语言打印杨辉三角形:**
    用C语言打印杨辉三角形:1.杨辉三角形规律:1.每行数字左右对称,由1开始逐渐变大,然后变小,回到1。2.第n行的数字个数等于n,第n行的第一个和最后一个数字都是1。3.对于第i行,除首尾两个1之外,任意位置的数等于它肩上的两个数之和。即第i行第j个数等于第i-1行第j-1个数与第i-1行第......