思路:

使用两个结构体,第一个结构体含有书籍的信息,第二个结构体含记录图书信息的数组和记录当前书籍数目总数的整数

struct book
{int number;char name[50];int price;
};
struct lib
{struct book data[1000];int sz;
};

初始化

//初始化图书系统
void initsys(struct lib*p)
{memset(p->data, 0, sizeof(p->data));p->sz = 0;
}

memset函数可以将第一个参数所指向的数据结构初始化为第二个整形的参数,第三个参数为数据结构的大小

找到下标并返回

查找书籍和删除书籍都需要找到书籍对应的下标

//找到对应的下标并返回
int findname(struct lib*p, char name[])
{int i = 0;for (i = 0; i < p->sz; i++){if (strcmp(p->data[i].name, name) == 0)return i;}return -1;
}

整体显示

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>struct book
{int number;char name[50];int price;
};
struct lib
{struct book data[1000];int sz;
};void menu()
{printf("\t***************************\n");printf("\t0.退出系统\n");printf("\t1.登记书籍\n");printf("\t2.浏览书籍\n");printf("\t3.查找书籍\n");printf("\t4.删除书籍\n");printf("\t***************************\n");
}//初始化图书系统
void initsys(struct lib*p)
{memset(p->data, 0, sizeof(p->data));p->sz = 0;
}
//登记书籍
void addsys(struct lib*p)
{p->data[p->sz].number = p->sz+1;printf("请输入书籍的名字");scanf("%s", p->data[p->sz].name);printf("请输入书籍的价格");scanf("%d", &(p->data[p->sz].price));printf("登记成功");p->sz++;
}
//浏览书籍
void scansys(struct lib*p)
{printf("%-15s\t%-20s\t%-5s\n", "编号","书名","价格");int i = 0;for (i = 0; i < p->sz; i++){printf("%-15d\t%-20s\t%-5d\n", p->data[i].number, p->data[i].name,p->data[i].price);}
}
//找到对应的下标并返回
int findname(struct lib*p, char name[])
{int i = 0;for (i = 0; i < p->sz; i++){if (strcmp(p->data[i].name, name) == 0)return i;}return -1;
}
//查找书籍
void searchsys(struct lib*p)
{printf("请输入所要查找的书名\n");char name[50];scanf("%s", name);int t = findname(p, name);if (t == -1)printf("所要查找的书籍不存在\n");else{printf("%-15d\t%-20s\t%-5d\n", p->data[t].number, p->data[t].name, p->data[t].price);}
}
//删除书籍
void deletesys(struct lib *p)
{printf("请输入要删除的书籍名");char name[50];scanf("%s", name);int t = findname(p, name);int i = 0;for (i = t; i < p->sz - 1; i++){p->data[i] = p->data[i + 1];}p->sz--;
}
int  main()
{int input = 0;struct lib sys;initsys(&sys);do{menu();printf("请选择:>\n");scanf("%d", &input);switch (input){case 0:printf("退出系统\n");break;case 1:printf("【登记】\n");addsys(&sys);break;case 2:printf("【浏览】\n");scansys(&sys);break;case 3:printf("【查找】\n");searchsys(&sys);break;case 4:printf("【删除】\n");deletesys(&sys);break;default:printf("输入错误,请重新输入");break;}system("pause");system("cls");} while (input);
}

system(“pause”);是防闪退命令
system(“cls”);是清屏命令

c语言实现简易图书管理系统相关推荐

  1. C语言编写简易图书管理系统

    #include<stdio.h> #include<stdlib.h> #include<string.h> struct link *AppendNode(st ...

  2. 基于java和sqlserver建立的简易图书管理系统

    简易图书管理系统 1.所需功能: 2.流程: 数据库连接 3.环境及其语言: 4.数据库建立 5.操作: 数据库连接:sql.T3.Test1.java 选择需要的操作:sql.T3.Test1.ja ...

  3. Python基础:面向对象编程实战——简易图书管理系统

    简易图书管理系统主要有以下功能:1.查询所有书籍2.添加书籍3.借阅书籍4.归还书籍5.退出系统.代码实现主要为: class Book:def __init__(self, name, author ...

  4. c语言课程设计图书管理系统

    数据结构c语言课程设计 图书管理系统 我做的是百度文库的第28题,目前没有报错,正常运行,但是还有一点小bug.代码很多地方写的不是很好,请多多包涵. 账号1,密码1,为管理员账号:其他账号2,3,4 ...

  5. 学校图书管理系统基于c语言源代码,基于C语言的学校图书管理系统参考.doc

    基于C语言的学校图书管理系统参考 本科学生毕业论文(设计) 题目(中 文):基于C语言的学校图书管理系统(英 文):School Library Management System Based on ...

  6. 管理c语言程序设计报告,c语言程序设计报告图书管理系统

    <c语言程序设计报告图书管理系统>由会员分享,可在线阅读,更多相关<c语言程序设计报告图书管理系统(11页珍藏版)>请在人人文库网上搜索. 1.中国地质大学本科生课程论文封面课 ...

  7. c语言张宗杰,《基于C语言的学校图书管理系统》.doc

    本科学生毕业论文(设计) 题目(中 文):基于C语言的学校图书管理系统(英 文):School Library Management System Based on C Language姓 名 学 号 ...

  8. java图形界面开发——简易图书管理系统

    简易图书管理系统 刚开始学习java swing,做的第一个试验项目,代码的可读性不高,就是想记录一下下. 项目要求 创建图书管理系统登录窗体,且登录窗体不能最大化. 实现登录功能,规定用户名与密码为 ...

  9. 项目挂到iis 点击导入 未将对象引用设置到对象的实例_【WPF on .NET Core 3.0】 Stylet演示项目 简易图书管理系统(2)...

    上一章<[WPF on .NET Core 3.0] Stylet演示项目 - 简易图书管理系统(1)>中我们完成了一个简单的登录功能, 这一章主要演示如何对Stylet工程中的ViewM ...

  10. C语言课程设计-图书管理系统

    实训项目名称:图书管理系统的设计与实现 1.实训目的 开发一个小型的图书管理应用软件,使用该软件可以实现图书信息的登记.浏览.借书.还书.删除和更新等操作.通过该系统的实现可以了解C++连接数据库的原 ...

最新文章

  1. 10分钟搞定让你困惑的 Jenkins 环境变量
  2. JavaFX控制器:设置按钮点击事件代码示例
  3. c语言意义y x 8.0,C语言符号意义(8页)-原创力文档
  4. akka与neety_Akka STM –与STM Ref和Agent一起打乒乓球
  5. 图说Oracle基础知识
  6. php if !=,php If else 用法
  7. 面试官 | 什么是递归算法?它有什么用?
  8. python----运行机制
  9. cvDilate() 图像膨胀
  10. vdbench 参数详解
  11. 史上最著名的电脑病毒
  12. 天涯社区离线阅读器(实现只看楼主功能)
  13. 数据库主键、外键、超键、最左前缀原则
  14. 概率论与数理统计基础概念与重要定义汇总
  15. php里pluck,Pluck CMS后台另两处任意代码执行
  16. 大数据实验室建设方案
  17. (USB:VCP+HID复合设备与系统配置)
  18. Node学习HTTP模块(HTTP 服务器与客户端)
  19. 为什么现在都流行的前后端分离了?
  20. 第一章 管理与管理学 第一节 管理活动

热门文章

  1. windows 2012 抓明文密码方法
  2. windows phone:使用sqlite-net
  3. SQL Server 中死锁产生的原因及解决办法
  4. 计算机专业国培总结,2016年信息技术教师国培心得体会(2篇)
  5. Python print 不换行,Print Without Newline In Python
  6. spark on yarn 完全分部署_听说你熟悉Flink-On-Yarn的部署模式?
  7. 多线程mute/lock_guard/unique_lock/condition_variable访问同一公共资源
  8. powermockito测试私有方法_Spock代码讲解 静态方法测试
  9. Qt之标准对话框(文件对话框)
  10. win7,win10系统激活工具下载