c语言编程一个 图书管理,我也要用c语言编程一个图书管理系统,

#includeusing namespace std;

const int N = 25;//定义20本图书

struct Book {

char name[25];

char author[15];

char price[7];

char publisher[20];

char isbn[20];

};

int ii = 19;

Book book[N] = { { "红与黑","司汤达","26.00","长江文艺出版社","978-7-5354-5003-6" },

{ "张伯苓画传","梁吉生","35.00","四川教育出版社","978-7-5408-5623-6" },

{ "四世生花","沈煜伦","49.80","湖南文艺出版社","978-7-5404-7718-9" },

{ "北大人的礼仪课","段建林","39.80","外文出版社","978-7-119-08439-8" },

{ "悲惨世界","雨果","44.00","北方文艺出版社","978-7-5317-3049-1" },

{ "好吗好的","大冰","39.00","湖南文艺出版社","978-7-5404-7689-2" },

{ "千秋","落落","28.80","长江文艺出版社","978-7-5354-5060-9" },

{ "陪安东尼度过漫长岁月","安东尼","28.80","长江文艺出版社","978-7-5354-6205-3" },

{ "刘邦正传","周启元","52.80","中国文史出版社","978-7-5034-5145-4" },

{ "小王子","圣埃克苏佩里","24.00","湖南少儿出版社","978-7-5562-0考试界-1" },

{ "围城","钱钟书","19.00","人民文学出版社","978-7-02-009000-6" },

{ "解忧杂货铺","东野圭吾","39.50","南海出版社","978-7-5442-7087-3" },

{ "追风筝的人","胡赛尼","29.00","上海人民出版社","978-7-208-06164-4" },

{ "摆渡人","麦克福尔","36.00","百花洲文艺出版社","978-7-550-01324-7" },

{ "神话","朱大可","35.00","东方出版社","978-7-5060-5278-8" },

{ "人民的名义","周梅森","46.90","北京十月文艺出版社","978-7-5302-1619-4" },

{ "夜谭十记","马识途","29.80","京华出版社","978-7-5502-2550-3" },

{ "悟空传","今何在","32.00","北京联合出版社","978-7-5502-7767-0" },

{ "英雄传","宫部美雪","29.90","青岛出版社","978-7-5436-6784-6" },

{ "白夜行","东野圭吾","39.50","南海出版社","978-7-5442-5860-9" } };

void inquiremenu() {

system("cls");

int y = 0;

printf("************");

printf("1.书号查询");

printf("2.书名查询");

printf("3.作者查询");

printf("4.出版社查询");

printf("请选择(1~4): 回车确定");

scanf("%d", &y);

int i;

switch (y) {

case 1: {

char x[20];

system("cls");

printf("请输入查找书号");

scanf("%s", &x);

bool fg = 0;

for (i = 0; i    if (strcmp(book[i].isbn,x) == 0) {

printf("已找到");

fg = 1;

printf("书名:%s,作者:%s,价格:%s,出版社:%s,书号:%s", book[i].name, book[i].author, book[i].price, book[i].publisher, book[i].isbn);

}

}//按书号查询

if (!fg)printf("未找到/n");

break;

}

case 2: {

char j[25];

system("cls");

printf("请输入查找书名");

scanf("%s", &j);

bool fg = 0;

for (i = 0; i    if (strcmp(j, book[i].name) == 0) {

printf("已找到");

fg = 1;

printf("书名:%s,作者:%s,价格:%s,出版社:%s,书号:%s", book[i].name, book[i].author, book[i].price, book[i].publisher, book[i].isbn);

}

}//按书名查询

if (!fg)printf("未找到/n");

break;

}

case 3: {

char k[15];

system("cls");

printf("请输入查找作者");

scanf("%s", &k);

bool fg = 0;

for (i = 0; i    if (strcmp(k, book[i].author) == 0) {

printf("已找到");

fg = 1;

printf("书名:%s,作者:%s,价格:%s,出版社:%s,书号:%s", book[i].name, book[i].author, book[i].price, book[i].publisher, book[i].isbn);

}

}//按作者查询

if (!fg)printf("未找到/n");

break;

}

case 4: {

char z[20];

system("cls");

scanf("%s", &z);

bool fg = 0;

printf("请输入查找出版社");

for (i = 0; i    if (strcmp(z, book[i].publisher) == 0) {

printf("已找到");

fg = 1;

printf("书名:%s,作者:%s,价格:%s,出版社:%s,书号:%s", book[i].name, book[i].author, book[i].price, book[i].publisher, book[i].isbn);

}

}//按出版社查询

if (!fg)printf("未找到/n");

break;

}

}

}//查询函数

void addbook() {

system("cls");

printf("请输入书名");

scanf("%s", &book[ii + 1].name);

printf("请输入作者");

scanf("%s", &book[ii + 1].author);

printf("请输入价格");

scanf("%s", &book[ii + 1].price);

printf("请输入出版社");

scanf("%s", &book[ii + 1].publisher);

printf("请输入书号");

scanf("%s", &book[ii + 1].isbn);

++ii;

}//添加图书

void information() {

int i;

for (i = 0; i   printf("");

printf("书名:%s,作者:%s,价格:%s,出版社:%s,书号:%s", book[i].name, book[i].author, book[i].price, book[i].publisher, book[i].isbn);

}

}//显示所有图书信息

int main() {

int accept, input_error_flag;

system("cls");

printf("******图书查询系统******");

printf("************************");

printf("******1.图书查询*******");

printf("******2.添加图书***");

printf("******3.图书信息*****");

printf("******4.退     出******");

printf("************************");

printf("****请输入选择(1~4):*****");

input_error_flag = 0;

do {

if (input_error_flag == 1)

printf("输入错误!!!  重新输入:");

printf("输入:1~4):");

fflush(stdin);//输入缓冲区清空

scanf("%d", &accept);

input_error_flag = 1;

} while (accept 4);

switch (accept)

{

case 0:

case 1:inquiremenu(); break;

case 2:addbook(); break;

case 3:information(); break;

case 4:printf("退出"); break;

default:system("cls");

}

return 0;

}

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

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

相关文章

十二个球称三次C语言编程,十二个球,有一个不知轻重,现有一个天平,称三次,找出此球!...

平均分成A、B、C三组,每组4个;第一秤:A、B两组先分别放天平左右:情况一:平衡.则问题出在C组,A、B组共8个为标准球. 第二秤用3个标准球和C组的3个球对比, 如果第二秤平衡,剩下的一个就是问题球,第三秤用标准球和问题球对比,得出问题…

loadrunner controller:实时查看VUser的运行情况

1) 如下图,在Run标签页,点击“Vusers...”打开Vuser窗口; 2) 如下图选中一个Vuser点击按钮可以打开Run-Time Viewer窗口,RTV窗口页面显示的就是该Vuser当前的操作; 3) 如下图所示,…

解决鼠标滚动的时候多次执行函数

有这种场景,鼠标滚动到页面的底部的时候,显示剩余的数据; 这种情况有时候会出现的错误是鼠标滚动的时候会多次触发,同样的多次执行ajax,调取数据; 解决的方法是:设置一个全局变量flag,当鼠标滚动…

上海工程技术大学c语言,上海工程技术大学 C语言实习报告.doc

实 习 报 告《高级语言程序设计》2012~2013学年第 一 学期学院(部) 管理学院指导教师 李旭芳班级代号 0315121姓名/学号 张何兵/031512130同组人 无实验一一:实验项目名称:在函数中进行10个学生成绩从高到低排名 sort(int a[10])二&#xff1…

【二色汉诺塔 】

/* 二色汉诺塔 */#include <stdio.h>void hanoi(int disks, char sources, char temp, char target) {if(disks 1){printf("move disk from %c to %c \n", sources, target);printf("move disk from %c to %c \n", sources, target);}else{hanoi(d…

c语言程序定义不知数量的一维数组,c语言程序设计10-第6章 利用数组处理批量数据 6.1 怎样定义和引用一维数组.ppt...

c语言程序设计10-第6章 利用数组处理批量数据 6.1 怎样定义和引用一维数组* 临沂大学汽车学院&#xff1a;韩晓翠 第6章 利用数组处理批量数据 6.1 怎样定义和引用一维数组 授课要点 数组的概念 一维数组的定义和引用 一维数组的初始化和赋值 数组元素的遍历 问题&#xff1a;从…

c语言凸包算法,基于C语言的凸包算法实现

基于C语言的凸包算法实现非计算机专业&#xff0c;代码有些的不好的地方&#xff0c;大佬轻喷^ _ ^根据要求&#xff0c;需要使用C语言实现凸包算法——Graham扫描法&#xff0c;本文将从算法理解、实现思路、遇到的问题及其解决方案三个方面来阐述实现过程。算法理解凸包算法G…

VS Code 使用小技巧

所有插件查找地址&#xff08;https://marketplace.visualstudio.com/&#xff09; 编码快捷方式&#xff08;http://docs.emmet.io/cheat-sheet/&#xff09; 安装插件出现 错误unable to verify the first certificate &#xff08;无法确认第一证书&#xff09;   解决方…

android 怎么自定义任务栈,Android中的Activity详解--启动模式与任务栈

目录Activity生命周期任务栈启动模式Intent FlagtaskAffinity属性1.Activityactivity的简单介绍就不写了&#xff0c;作为最常用的四大组件之一&#xff0c;肯定都很熟悉其基本用法了。2.生命周期首先&#xff0c;是都很熟悉的一张图&#xff0c;即官方介绍的Activity生命周期图…

SQL Server--疑难杂症之坑爹的Windows故障转移群集

-- 估计是春节前最后一次写博客&#xff0c;也估计是本年值班最后一次踩雷&#xff0c;感叹下成也SQL SERVER&#xff0c;败也SQL SERVER。 -- 场景描述&#xff1a; 操作系统版本 &#xff1a;Windows Server 2012 数据中心版本 数据库版本 &#xff1a;SQL SERVER 2012 企业版…

android handle 阻塞,Android全面解析之Handler机制:常见问题汇总

主线程为什么不用初始化Looper&#xff1f;答&#xff1a;因为应用在启动的过程中就已经初始化主线程Looper了。每个java应用程序都是有一个main方法入口&#xff0c;Android是基于Java的程序也不例外。Android程序的入口在ActivityThread的main方法中&#xff1a;// 初始化主线…

gulp使用

gulp需要全局安装和当前目录都安装才能使用gulp命令 安装gulp插件 npm install gulp-rev gulp-rev-replace gulp-useref gulp-filter gulp-uglify gulp-csso --save-dev gulp-rev&#xff1a;给每个文件添加版本号&#xff0c;根据文件内容计算hash码&#xff0c;修改文件名&am…

android监听器作用,android - 监听器和接收器(Android)有什么区别?

例如&#xff0c;我需要一个BroadcastReceiver来获取这些事件:重新启动或关机屏幕开或关电池状态(电压&#xff0c;接通电源&#xff0c;温度)物理按钮按下(相机&#xff0c;媒体等)但是我需要监听器来获取以下事件:用于传感器事件(加速度&#xff0c;磁场&#xff0c;方向&…

UML中的6大关系(关联、依赖、聚合、组合、泛化、实现)

UML定义的关系主要有六种&#xff1a;依赖、类属、关联、实现、聚合和组合。这些类间关系的理解和使用是掌握和应用UML的关键&#xff0c;而也就是这几种关系&#xff0c;往往会让初学者迷惑。这里给出这六种主要UML关系的说明和类图描述&#xff0c;一看之下&#xff0c;清晰明…

android 相册 uri空,Android---相册getContentResolver().query结果为空指针

针对小米4手机上测试如下代码&#xff1a;Uri uri data.getData();String[] proj {MediaStore.Images.Media.DATA};//Cursor cursor managedQuery(uri, proj, null, null, null);Cursor cursor getContentResolver().query(uri, proj, null, null, null);cursor.moveToFirs…

用Spark学习FP Tree算法和PrefixSpan算法

在FP Tree算法原理总结和PrefixSpan算法原理总结中&#xff0c;我们对FP Tree和PrefixSpan这两种关联算法的原理做了总结&#xff0c;这里就从实践的角度介绍如何使用这两个算法。由于scikit-learn中没有关联算法的类库&#xff0c;而Spark MLlib有&#xff0c;本文的使用以Spa…

android os n9005,SM-N9005

hkSM-N9005ZKETELSM-N9005{"softwares":[{"description":"SAMSUNG Kies,PC Sync","fileName":"Kies3Setup.exe","fileModifiedDate":"2013年9月11日","fileVersion":"Kies 3.0(13091_39…

性能调优-硬盘方面,操作系统方面,文件系统方面

硬盘对数据库性能的影响 传统机械硬盘 当前大多数数据库使用的都是传统的机械硬盘。机械硬盘的技术目前已非常成熟&#xff0c;在服务器领域一般使用SAS或SATA接口的硬盘。服务器机械硬盘开始向小型化转型&#xff0c;目前已经有大量2.5寸的SAS机械硬盘。 机械硬盘有两个重要的…

chrome Android 80,Chrome OS 80将为Chromebook带来侧载Android应用的支持

如需体验这项功能&#xff0c;需在启动 Crostini 容器时加上一行特殊的命令 —— 从 Chromebook 命令行启动时&#xff0c;请加上 –enable-features ArcAdbSideloading 。最终&#xff0c;我们希望这回成为一项明示的标记(flags)功能。如变更日志所述&#xff0c;用户可通过托…

BZOJ4122 : [Baltic2015]File paths

对于在$o$点的某个询问&#xff0c;有两种情况&#xff1a; 情况1&#xff1a;走到任意一个点$x$然后超链接跳到$o$的某个祖先$y$再走到$o$。 枚举所有$y$看看是否存在$x$即可。 时间复杂度$O(nm)$。 情况2&#xff1a;走到$o$的某个祖先$x$&#xff0c;然后走到$x$子树内某个点…