C语言图书管理系统控制台程序

程序示例精选
C语言图书管理系统控制台程序
如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!

前言

这篇博客针对《C语言图书管理系统控制台程序》编写代码,代码整洁,规则,易读。 学习与应用推荐首选。


文章目录

一、所需工具软件
二、使用步骤
       1. 主要代码
       2. 运行结果
三、在线协助

一、所需工具软件

       1. VS2022
       2. C++

二、使用步骤

代码如下(示例):
typedef struct
{char no[20];     // 书号char name[20];    // 书名char author[20];  // 作者float price;      // 价格 int count;      //数量 }book;book bk[MAXNUM];int cnt = 0; //图书总数量 void readFile() //读文件 
{FILE* fo;fo = fopen("bookdata.txt", "r");fscanf(fo, "%d", &cnt);int i;for (i = 1; i <= cnt; i++){fscanf(fo, "%s", bk[i].no);fscanf(fo, "%s", bk[i].name);fscanf(fo, "%s", bk[i].author);fscanf(fo, "%f", &bk[i].price);fscanf(fo, "%d", &bk[i].count);}fclose(fo);
}void saveFile() //写文件 
{FILE* fp;fp = fopen("bookdata.txt", "w");int i;fprintf(fp, "%d\n", cnt);for (i = 1; i <= cnt; i++){fprintf(fp, "%5s", bk[i].no);fprintf(fp, "%10s", bk[i].name);fprintf(fp, "%13s", bk[i].author);fprintf(fp, "%13f", bk[i].price);fprintf(fp, "%13d\n", bk[i].count);}fclose(fp);
}void swap(char* src, char* des) //字符串交换
{char t[100];strcpy(t, src);strcpy(src, des);strcpy(des, t);
}void addbook() //新增图书
{system("cls");char a[20];system("cls");printf("  ********** 增加图书 **********\n");cnt++; //图书的数量+1 printf("请输入图书书号: ");scanf("%s", a);if (search_no(a) != 0) {printf("该书已存在,您可以返回主菜单选择修改信息\n");cnt--;return;}swap(a, bk[cnt].no);printf("请输入图书书名: ");scanf("%s", bk[cnt].name);printf("请输入图书作者: ");scanf("%s", bk[cnt].author);printf("请输入图书价格: ");scanf("%f", &bk[cnt].price);printf("请输入图书数量: ");scanf("%d", &bk[cnt].count);printf("新增成功!");
}void sort_menu() // 排序图书菜单 
{system("cls");printf("请选择排序方式:\n");printf("1 书号  ");printf("2 书名  ");printf("0 退出\n");printf("请选择:");
}void del_menu() //删除图书菜单 
{system("cls");printf(" ********** 删除图书 **********\n");printf(" 请选择删除方式:\n");printf(" 1 书号  ");printf(" 2 书名  ");printf(" 0 退出\n");printf("请选择:");
}void search_menu() // 查找图书菜单 
{system("cls");printf("  ********** 查找图书 **********\n");printf(" 请选择查找方式:\n");printf(" 1 书号  ");printf(" 2 书名  ");printf(" 3 作者  ");printf(" 0 退出\n");printf("请选择:");
}void change_menu() //修改图书菜单 
{system("cls");printf(" ********** 修改图书 **********\n");printf(" 请选择修改方式:\n");printf(" 1 书号  ");printf(" 2 书名  ");printf(" 0 退出\n");printf(" 请选择:");}void print_menu()  // 输出菜单 
{system("cls");printf("\n********** 图书管理系统 **********\n\n");printf("\t1 增加图书\n");printf("\t2 修改图书\n");printf("\t3 删除图书\n");printf("\t4 查找图书\n");printf("\t5 图书排序\n");printf("\t6 图书显示\n");printf("\t7 图书销售\n");printf("\t0 退出系统\n\n");printf("\t请选择要执行的操作: ");
}void print_head()  // 打印说明文字 
{char id[5] = "序号";char no[5] = "书号";char name[5] = "书名";char author[9] = "作者";char price[11] = "价格";char count[11] = "数量";printf("% 5s", id);printf("%10s", no);printf("%13s", name);printf("%13s", author);printf("%13s", price);printf("%13s", count);printf("\n");
}void output(int i)  //输出 cnt 为 i 的图书信息 
{printf("%10s", bk[i].no);printf("%13s", bk[i].name);printf("%13s", bk[i].author);printf("%15.2f", bk[i].price);printf("%15d\n", bk[i].count);
}int main()
{int i, j;while (1){readFile();print_menu();int n;scanf("%d", &n);printf("\n");if (n == 0) {printf("\t谢谢您的使用!");break;}switch (n){case 1: //增加图书 addbook();break;case 2://修改图书 change_menu();int p;scanf("%d", &p);if (p == 0)break;switch (p){case 1:printf(" 请输入要修改书的书号:");char no[20];scanf("%s", no);j = search_no(no);if (j == 0)printf(" 未查找到该书!\n\t");else {change(j);printf("修改成功!");}break;case 2:printf(" 请输入要修改书的书名:");char name[20];scanf("%s", name);i = search_name(name);if (i == 0)printf(" 未查找到该书!\n\t");else {change(i);printf("修改成功!");}break;default:printf(" 输入错误!\n\t");}break;case 3://删除图书 del_menu();int p1;scanf("%d", &p1);if (p1 == 0)break;switch (p1){case 1:printf("请输入要删除书的书号:");char num[20];scanf("%s", num);j = search_no(num);if (j == 0)printf("未查找到该书!\n");else {del(j);printf("删除成功!");}break;case 2:printf("请输入要删除书的书名:");char name[20];scanf("%s", name);i = search_name(name);if (i == 0)printf("未查找到该书!");else {del(i);printf("删除成功!");}break;default:printf("输入错误!\n");}break;default:printf("输入有误,请重新选择:\n\n");}saveFile();//保存 pause();}system("pause");return 0;
}
运行结果

三、在线协助:

如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!

1)远程安装运行环境,代码调试
2)Visual Studio, Qt, C++, Python编程语言入门指导
3)界面美化
4)软件制作
5)云服务器申请
6)网站制作

当前文章连接:https://blog.csdn.net/alicema1111/article/details/132666851
个人博客主页:https://blog.csdn.net/alicema1111?type=blog
博主所有文章点这里:https://blog.csdn.net/alicema1111?type=blog

博主推荐:
Python人脸识别考勤打卡系统:
https://blog.csdn.net/alicema1111/article/details/133434445
Python果树水果识别:https://blog.csdn.net/alicema1111/article/details/130862842
Python+Yolov8+Deepsort入口人流量统计:https://blog.csdn.net/alicema1111/article/details/130454430
Python+Qt人脸识别门禁管理系统:https://blog.csdn.net/alicema1111/article/details/130353433
Python+Qt指纹录入识别考勤系统:https://blog.csdn.net/alicema1111/article/details/129338432
Python Yolov5火焰烟雾识别源码分享:https://blog.csdn.net/alicema1111/article/details/128420453
Python+Yolov8路面桥梁墙体裂缝识别:https://blog.csdn.net/alicema1111/article/details/133434445
Python+Yolov5道路障碍物识别:https://blog.csdn.net/alicema1111/article/details/129589741
Python+Yolov5跌倒检测 摔倒检测 人物目标行为 人体特征识别:https://blog.csdn.net/alicema1111/article/details/129272048

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/863485.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

加密与安全_三种方式实现基于国密非对称加密算法的加解密和签名验签

文章目录 国际算法基础概念常见的加密算法及分类签名和验签基础概念常见的签名算法应用场景 国密算法对称加密&#xff08;DES/AES⇒SM4&#xff09;非对称加密&#xff08;RSA/ECC⇒SM2&#xff09;散列(摘要/哈希)算法&#xff08;MD5/SHA⇒SM3&#xff09; Code方式一 使用B…

智慧园区综合平台解决方案PPT(75页)

## 智慧园区的理解 ### 从园区1.0到园区4.0的演进 1. 园区1.0&#xff1a;以土地经营为主&#xff0c;成本驱动&#xff0c;提供基本服务。 2. 园区2.0&#xff1a;服务驱动&#xff0c;关注企业成长&#xff0c;提供增值服务。 3. 园区3.0&#xff1a;智慧型园区&#xff…

机器学习引领教育革命:智能教育的新时代

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀目录 &#x1f4d2;1. 引言&#x1f4d9;2. 机器学习在教育中的应用&#x1f31e;个性化学习&#x1f319;评估与反馈的智能化⭐教学资源的优…

STC89C52RC单片机设计的FM收音机+自动搜台+存储电台(程序+原理图+PCB)

资料下载地址&#xff1a;STC89C52RC单片机设计的FM收音机自动搜台存储电台&#xff08;程序原理图PCB) 1、实物图 2、部分程序 #include <reg52.h> #include "tea5767.h" #include "delay.h" #include "lcd1602.h" //K1:上一台 K2:下一…

mac电脑游戏推荐:NBA 2K24 街机版下载

NBA 2K24 街机版是一款由2K Sports开发并发行的篮球游戏&#xff0c;属于著名的NBA 2K系列。这款游戏为玩家提供了与NBA联赛中真实球员和球队互动的机会&#xff0c;体验篮球比赛的激情与紧张。街机版的NBA 2K24通常会在游戏厅、商场等公共场所设置&#xff0c;供玩家投币游玩。…

c++重载(运算符)

1&#xff09;C入门级小知识&#xff0c;分享给将要学习或者正在学习C开发的同学。 2&#xff09;内容属于原创&#xff0c;若转载&#xff0c;请说明出处。 3&#xff09;提供相关问题有偿答疑和支持。 对于系统的所有操作符&#xff0c;一般情况下&#xff0c;只支持基本数…

AWTK 用 icon_at 属性设置图标位置

1. style 在 style 文件中通过 icon_at 属性设置图标位置。 <style name"right_bottom" icon_at"right_bottom"><normal icon"unchecked_right_bottom" /><pressed icon"unchecked_right_bottom" /><over i…

redis实战-短信登录

基于session的登录流程 session的登录流程图 1. 发送验证码 用户在提交手机号后&#xff0c;会校验手机号是否合法&#xff0c;如果不合法&#xff0c;则要求用户重新输入手机号 如果手机号合法&#xff0c;后台此时生成对应的验证码&#xff0c;同时将验证码进行保存&#x…

第一节:如何开发第一个spring boot3.x项目(自学Spring boot 3.x的第一天)

大家好&#xff0c;我是网创有方&#xff0c;从今天开始&#xff0c;我会记录每篇我自学spring boot3.x的经验。只要我不偷懒&#xff0c;学完应该很快&#xff0c;哈哈&#xff0c;更新速度尽可能快&#xff0c;想和大佬们一块讨论&#xff0c;如果需要讨论的欢迎一起评论区留…

Pytorch实战(二)

文章目录 前言一、LeNet5原理1.1LeNet5网络结构1.2LeNet网络参数1.3LeNet5网络总结 二、AlexNext2.1AlexNet网络结构2.2AlexNet网络参数2.3Dropout操作2.4PCA图像增强2.5LRN正则化2.6AlexNet总结 三、实战3.1LeNet5模型搭建3.2模型训练 前言 参考原视频&#xff1a;哔哩哔哩。 …

【后端面试题】【中间件】【NoSQL】ElasticSearch面试基本思路和高可用方案(限流、消息队列、协调节点、双集群)

基本思路 业务开发面试Elasticsearch的时候基本问的是基础知识以及倒排索引。 Elasticsearch最基本的可用性保障就是分片&#xff0c;而且是主从分片&#xff0c;所以遇到Elasticsearch如何做到高可用这个问题的时候&#xff0c;首先要提到这一点。 Elasticsearch高可用的核心…

手机屏幕贴合项目(ni视觉如何找矩形的角坐标)

首先&#xff0c;我们存储了cg和dito感兴趣八个角图像的模板&#xff0c;用来匹配位置。 cover指的是cg的四个角模板&#xff0c;lcm是dito四个角匹配模板。 其次&#xff0c;我们采集的8副图像&#xff08;m_DlgCCDViewArr[2][4]&#xff09;中一定包含匹配模板的特征。 好&…

Json与Java类

简介 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成。JSON数据由键值对构成&#xff0c;并以易于阅读的文本形式展现&#xff0c;支持数组、对象、字符串、数字、布尔值…

笔灵AI写作:释放创意,提升写作效率的秘诀

内容为王&#xff0c;在内容创作的世界中尤为重要。然而&#xff0c;面对写作时常常感到无从下手&#xff1a;有时缺乏灵感&#xff0c;有时难以表达清楚自己的想法。AI写作助手的出现&#xff0c;为这些问题提供了创新的解决方案&#xff0c;极大地改变了内容创作的过程。 今…

Pytest+Allure+Yaml+Jenkins+Gitlab接口自动化中Jenkins配置

一、背景 Jenkins&#xff08;本地宿主机搭建&#xff09; 拉取GitLab(服务器)代码到在Jenkins工作空间本地运行并生成Allure测试报告 二、框架改动点 框架主运行程序需要先注释掉运行代码&#xff08;可不改&#xff0c;如果运行报allure找不到就直接注释掉&#xff09; …

C++知识点总结 (02):C++中的语句(简单语句、条件语句、迭代语句、跳转语句、异常处理语句、try语句等)

文章目录 1、简单语句(1)空语句(2)复合语句 2、条件语句3、迭代语句(1)常规for循环(2)范围for循环(3)while和do...while 4、跳转语句(1)break(2)continue(3)goto 5、异常处理语句(1)标准异常(2)throw抛出异常 6、try语句 1、简单语句 (1)空语句 ; (2)复合语句 用花括号括起来的…

nginx添加模块

问题描述&#xff1a;已经在运行的宝塔中的nginx如何添加模块 1. 进入宝塔nginx的脚本目录 cd /www/server/panel/install 2. 读修改宝塔官方写的脚本 vim nginx.sh 3. 找到字符 ./configure - 添加模块 --add-module/home/root/app/nginx-module/echo-nginx-module-0.62 …

Linux笔记之Bash脚本中的EOF

Linux笔记之Bash脚本中的EOF code review! 文章目录 Linux笔记之Bash脚本中的EOF基本用法自定义结束符变量替换禁用变量替换用于脚本嵌入重定向到文件与命令组合总结 在 Bash 脚本中&#xff0c; EOF 通常用于定义一个多行字符串或文档块。这种技术被称为“Here Document”&a…

什么是等级保护2.0?

等保的全称是信息安全等级保护&#xff0c;是《网络安全法》规定的必须强制执行的&#xff0c;保障公民、社会、国家利益的重要工作。 官方定义&#xff1a;等级保护是对信息和信息载体按照重要性等级分级别进行保护的一种工作&#xff0c;指对国家重要信息、法人和其他组织及公…

git通过命令方式push代码到远程

本地仓库和远程仓库关联操作 通过关联远程分支可以将本地的分支与远程仓库中的分支进行关联&#xff0c;从而实现本地分支与远程分支的同步和交互。 关联远程分支的步骤如下&#xff1a; 1. 首先&#xff0c;使用git remote -v命令查看当前仓库关联的远程仓库。 git remote …