实验要求:

实验代码;

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <fstream>
#include <iomanip>
#include <ctype.h>
using namespace std;
//图书结构体
struct Book {double price;char name[50];char Locate[15];
}book[200];
int sum = 0;
int flag = 0;
string path = "book.txt";
//写入文件函数 将更新后的数据写入指定文件
void Out_to_File()
{int n = 0;ofstream file;file.open(path, ios::out | ios::trunc);if (!file.is_open()){cout << "You have failed to open the file!" << endl;exit(1);}while (n < sum){file << book[n].Locate << "\t" << book[n].name << "\t" << book[n].price << endl;n++;}file.close();
}
//读取文件函数 将txt文件中的数据导入结构体
void Read_File()
{int n = 0;char first_line[200];char second_line[200];ifstream myfile(path, ios::in);if (!myfile.is_open()){cout << "Sorry You Have Failed to Open the File!" << endl;exit(1);}else{myfile.getline(first_line, 200);myfile.getline(second_line, 200);while (!myfile.eof()){myfile >> book[n].Locate >> book[n].name >> book[n].price;n++;}}sum = n;cout << "一共有" << sum << "个图书的信息" << endl;myfile.close();flag = 1;cout << "You have read the file successfully!" << endl;
}
//显示函数 将图书信息打印在显示屏上
void Display_Information() {if (!flag) {cout << "\t\t当前未录入图书信息,请先录入。\n" << endl;exit(0);}else {cout << "\t书号\t\t\t\t书名\t\t\t\t价格" << endl;for (int i = 0; i < sum; i++){cout << book[i].Locate << "\t\t\t" << book[i].name << "\t\t\t" << book[i].price << endl;}cout << "\t\t***************************ENDING***************************\n" << endl;}
}//根据书名查找图书信息 并将信息打印在显示在屏幕上
void Find_by_Name() {char Book_Name[20];int flag = 0;cout << "请输入书名: " << endl;cin >> Book_Name;cout << "\t书号\t\t\t\t书名\t\t\t\t价格" << endl;for (int i = 0; i < sum; ++i){if (strcmp(Book_Name, book[i].name) == 0) {cout << book[i].Locate << "\t\t\t" << book[i].name << "\t\t\t" << book[i].price << endl;flag = 1;}}if (!flag){cout << "Sorry! I don't find this book!\n" << endl;}else {cout << "查找结束,请继续输入指令" << endl;}}
//根据位置查找图书信息 并将查找到的图书信息显示在屏幕上
void Find_by_Locate() {int Locate_;cout << "请输入书的位置: ";cin >> Locate_;if (Locate_ >= sum){cout << "该位置不存在图书!请检查后重试\n";exit(0);}cout << "\t书号\t\t\t\t书名\t\t\t\t价格" << endl;cout << book[Locate_].Locate << "\t\t\t" << book[Locate_].name << "\t\t\t" << book[Locate_].price << endl;cout << "查找结束,请继续输入指令" << endl;
}
//在指定位置插入图书
void Insert() {int locality;path = "book.txt";struct Book newbook;cout << "请输入您要插入的图书的位置:";cin >> locality; cout << endl;cout << "请输入该图书的ISBN号:";cin >> newbook.Locate; cout << endl;cout << "请输入该图书的书名:";cin >> newbook.name; cout << endl;cout << "请输入该图书的单价:";cin >> newbook.price; cout << endl;sum++;//先把后面的图书向后挪一位for (int i = sum - 1; i >= locality - 1; i--){struct Book temp;temp = book[i];book[i + 1] = temp;}//插入新图书book[locality - 1] = newbook;Out_to_File();cout << "插入成功!请继续输入指令。" << endl;}
//指定位置删除图书信息
void Delete() {int n = 0;int locality;path = "book.txt";cout << "请输入您要删除的图书的位置:";cin >> locality;cout << endl;for (int i = locality; i < sum; i++){book[i - 1] = book[i];}sum--;Out_to_File();cout << "删除成功!\n请继续输入指令。" << endl;
}//修改价格
void Modify_Price()
{int i;path = "book_Newprice.txt";for (i = 0; i < sum; i++){if (book[i].price < 25)book[i].price = (1 + 0.25) * book[i].price;elsebook[i].price = (1 + 0.1) * book[i].price;}Out_to_File();cout << "修改成功!\n请继续输入执行指令" << endl;
}
//排序
void Sort()
{int temp;path = "book_Newsort.txt";for (int i = 0; i < sum; i++){for (int j = 0; j < sum - i - 1; j++){if (book[j].price > book[j + 1].price){temp = book[j].price;book[j].price = book[j + 1].price;book[j + 1].price = temp;}}}Out_to_File();cout << "文件写入成功!";
}
//清空缓存区函数,放置因非法输入造成死循环
void Clear()
{cin.clear();cin.ignore(1, EOF);cout << endl;system("cls");//清屏函数
}
void Index()
{int Chioce;int flag = 1;while (flag) {cout << "\n***************************************Welcome to the Books Management System (BMS)*************************************\n";cout << "1.读取所有图书信息\n2.输出所有图书信息\n3.插入图书\n4.根据位置删除图书信息\n5.根据书名查找图书\n6.根据位置查找图书\n7.修改价格信息并将生成的信息导入新文件\n8.排序并将排序后的信息导入新的文件\n9.退出\n" << endl;cout << "请选择" << endl;cin >> Chioce;Clear();switch (Chioce) {case 1:Read_File(); flag = 0; break;//读取文件数据case 2:Display_Information(); flag = 0; break;//输出所有图书信息case 3:Insert(); flag = 0; break;//插入图书信息case 4:Delete(); flag = 0; break;//删除图书信息case 5:Find_by_Name(); flag = 0; break;//根据书名查找图书case 6:Find_by_Locate(); flag = 0; break;//根据位置查找图书case 7:Modify_Price(); flag = 0; break;//修改图书价格case 8:Sort(); flag = 0; break;//冒泡排序case 9:cout << "\t成功退出,谢谢使用!"; exit(0);default:printf("输错啦! 请输入1 ~ 9之间的整数\n");break;}}
}void Instruct()
{int Choice;while (1){cout << "请选择:\n1.查看指令\n2.退出程序\n请输入..." << endl;cin >> Choice;Clear();switch (Choice){case 1:Index(); break;case 2:cout << "退出成功!再见~~" << endl; exit(0); break;default:printf("输错啦!请看清楚,再重新输入1或2哦\n请输入...\n");}}
}int main()
{Instruct();return 0;
}

txt 文件:

北京林业大学图书馆计算机类图书采购列表
ISBN                      书名                    定价
9787302257646   程序设计基础  25
9787302164340   程序设计基础(第2版)   20
9787302219972   单片机技术及应用    32
9787302203513   单片机原理与应用技术  26
9787810827430   工业计算机控制技术——原理与应用    29
9787811234923   汇编语言程序设计教程  21
9787512100831   计算机操作系统 17
9787302202844   计算机操作系统基础与应用(第二版) 30
9787302265436   计算机导论实验指导   18
9787302131304   计算机数学   20
9787302162834   计算机数学   30
9787302221630   计算机数学(第二版)    25
9787811235388   计算机网络基础 32
9787302137849   计算机维护与维修    26
9787302188308   计算机系统组装与维护  26
9787512101517   计算机应用基础与信息处理案例教程    25
9787811239447   计算机英语   29
9787302257448   计算机硬件与维护    29.8
9787302125679   计算机专业英语 25
9787302235682   计算机专业英语 28
9787302149286   计算机专业英语(第2版)  25
9787302211860   计算机组成原理(第2版)  29.5
9787302215530   计算机组装与维护    27
9787302232629   计算机组装与维护    24
9787302180630   实用数据结构  29
9787302225065   数据结构(C/C#语言版) 28
9787302135180   数据结构            21
9787302228141   数据结构    28
9787302163282   数据结构实验与实训教程(第2版)  23
9787302194934   微机原理与汇编语言实用教程   32
9787302133841   微机原理与接口技术   31
9787302223771   微型计算机原理及应用技术    29
9787302171973   微型计算机原理与结构(第二版)   28
9787302184898   微型计算机原理与结构习题解答与实验指导 21
9787302162988   ARM9嵌入式系统设计与开发应用    35
9787302197850   ARM体系结构与程序设计    30
9787302222705   EDA技术与VerilogHDL    38
9787302250708   基于ARM的嵌入式系统接口技术 43
9787302225515   嵌入式LinuxC语言应用程序设计与实践    36
9787302250753   嵌入式Linux实时操作系统及应用编程 48
9787302253402   ARM9嵌入式系统设计与应用  39
9787302188667   ASP.NET&IIS7高级编程    79.8
9787302259596   ASP.NET程序设计实训教程 26
9787302195252   ASP.NET程序设计与软件项目实训  34
9787302220763   ASP.NET实践教程 29
9787302258117   ASP.NET网站开发案例教程 36
9787302197867   ASP案例汇编 25
9787302212850   ASP语言程序设计   33
9787302198499   Authorware7.0实用教程   28
9787811230710   C#程序设计易懂易会教程    32
9787302219583   C#程序设计与开发   27
9787302171676   C#面向对象程序设计  39.5
9787302266341   C#面向对象程序设计(第2版)   58
9787302250692   C语言程序设计 42
9787302201090   C语言程序设计(第2版)  35
9787302137634   C语言程序设计基础与实训教程  25
9787810824125   C语言程序设计教程(修订本)    22
9787302127970   C语言程序设计与应用开发    29
9787302202646   C语言简明教程 26
9787302254454   C语言课程设计案例精编(第二版)  52
9787302150664   J2ME无线开发实训教程    25
9787302176091   Java2程序设计基础 27
9787302246909   Java高级程序设计  29
9787302260806   Java编程与实践   36
9787302210542   Java程序设计    29
9787302170037   Java程序设计教程(第2版)   29.5
9787302252887   Java程序设计与应用教程   39
9787302129226   Java高级编程实用教程    28
9787302214953   Java应用案例教程  33
9787302266211   Java语言程序设计实用教程  39
9787302202059   JSP动态网站开发实用教程   35
9787302256502   MATLAB程序设计与应用基础教程   24
9787302127956   UML基础与应用(高等学校规划教材)    22
9787302179306   VB.NET程序设计实用教程  31
9787302195696   VB.NET程序设计与软件项目实训   29
9787302220381   VB程序设计案例汇编  22
9787302229070   VC++程序设计基础教程  28
9787302214489   VC++程序设计项目实践  26
9787302176909   VisualBasic.NET程序设计 24
9787302172246   VisualBasic程序设计实用教程 30
9787302176060   VisualBasic程序设计与应用  30
9787302255604   VisualBasic项目化教程同步训练题   28
9787302254461   VisualC#2008程序设计与应用教程   38
9787302241522   VisualC#程序设计与项目实践   35
9787302218753   Web应用程序设计技术——ASP.NET(C#)  29
9787302231660   Web应用程序设计技术——ASP.NET(第2版) 30
9787811232554   XML基础教程 25
9787302179832   XML实用教程 20
9787302165156   基于C#的WindowsCE程序开发实例教程  23
9787302215356   基于工作过程的Java程序设计 27
9787302198505   嵌入式操作系统及编程  25
9787302169666   软件测试    24
9787811232301   软件测试    17
9787302167884   软件测试教程  22
9787302204862   软件工程    23
9787302186137   软件开发生命周期    23
9787302198697   软件开发与管理 28
9787302226024   软件项目综合实训(.NET篇)   29
9787811231991   实用Java程序设计  25
9787811235890   实用软件工程  26
9787302195863   实用软件工程与实训   25
9787302199519   新编Java实用教程  48
9787811231557   Eclipse基础与应用    35

2021/9/16

图书信息管理系统C++相关推荐

  1. [源码和文档分享]基于VC++控制台实现的图书信息管理系统

    1 需求分析 开发一个图书信息管理系统,图书信息包括:图书编号.书名.作者.出版社.类别.出版时间.价格等基本信息(也可以根据自己情况进行扩充,比如是否借出.库存量等).使之能提供以下基本功能: 图书 ...

  2. 实现图书增删的代码_不仅仅是图书信息管理系统

    点击蓝字 关注我们 不仅仅是图书信息管理系统 基于双链表,采用面向对象编程方法制作的图书管理系统 ❞ 效果演示 root用户:账号:0,密码:0 普通用户:账号:1001,密码:666666 图书信息 ...

  3. C语言图书信息管理系统简单,线性表简单实现图书信息管理系统(C语言版)

    #include #include #include #include #define OK 1 #define ERROR 0 #define OVERFLOW -2 #define MAXSIZE ...

  4. 商品品牌信息的增删改查操作步骤_图书信息管理系统

    不仅仅是图书信息管理系统 基于双链表,采用面向对象编程方法制作的图书管理系统 来源微信公众号: 不仅仅是图书信息管理系统​mp.weixin.qq.com 效果演示 框架结构 数据层:双链表管理 核心 ...

  5. 大一c语言图书管理系统查询,大一C语言课程设计图书信息管理系统.doc

    高级语言程序设计 课程设计 评语: 学 院 班 级 姓 名 学 号 成 绩 指导老师 年 月 日 一.目的 1. 进一步掌握和利用C语言进行程设计的能力: 2.? 进一步理解和运用结构化程设计的思想和 ...

  6. 数据库课程设计:图书信息管理系统(Java+MySQL)(附程序)

    期末数据库课程设计做了个图书信息管理系统,由于老师给的选题给得早,所以我在开学后的几周就开学搞了,删删改改整了好多,在此整理分享一下: 项目简介: 随着社会的发展,人们对知识的需求也在不断增长.书籍作 ...

  7. 基于Eclipse+Java+Swing+Mysql图书信息管理系统

    基于Eclipse+Java+Swing+Mysql图书信息管理系统 一.系统介绍 二.功能展示 1.主页 2.新增图书信息 3.删除图书信息 三.数据库 四.其他系统实现 五.获取源码 一.系统介绍 ...

  8. 用c语言实现图书信息管理系统

    图书信息管理系统 本文主要是用C语言有关内容实现图书信息管理系统,主要使用了文件.函数.指针.清屏等有关内容.图书信息则包括书名,ISBN码,出版社,价格,出版年月,图书数量,所属学科以及主编等.围绕 ...

  9. 修改图书信息c语言,图书信息管理系统c语言.doc

    图书信息管理系统c语言.doc 沈阳航空航天大学理学院 C语言程序设计课程设计报告 题目: 图书信息管理系统 专 业: 信息与计算科学 班 级: 学 号: 学生姓名: 指导教师: 2010年 7月 9 ...

  10. 计算机毕业设计源码分享双鱼林,双鱼林SSM图书信息管理系统毕业课程设计源码 - WEB源码|源代码 - 源码中国...

    双鱼林SSM图书信息管理系统\.classpath 双鱼林SSM图书信息管理系统\.mymetadata 双鱼林SSM图书信息管理系统\.project 双鱼林SSM图书信息管理系统\.setting ...

最新文章

  1. mysql中varchar 大小写敏感问题
  2. ADSL路由器防止******
  3. SQl 根据某列去重 partition by
  4. TCP/IP 免费ARP
  5. A browser for WinCE/Windows base WebKit. (zz)
  6. [Android]对MVC和MVP的总结
  7. CKeditor的几种配置方式
  8. 【语音去噪】基于matlab低通+自适应滤波去噪【含Matlab源码 352期】
  9. mysql 名字分组查询id_MySQL对数据表进行分组查询(GROUP BY)
  10. Mac应用程序、软件、工具仓库
  11. win7 64bit部署SharePoint Server2010
  12. 怎么用计算机管理员卸载,没有足够的权限卸载请与系统管理员联系怎么解决
  13. BitMap算法和Java的实现类BigSet
  14. 7-1 循环-Fibonacci数列的运算 (50 分)
  15. C-V2X 技术介绍
  16. 【游戏客户端开发】Unity3D 学习笔记2——了解U3D引擎的操作面板和各种工具
  17. Debian ISCSI
  18. 为什么说单页面程序SEO不友好?
  19. 救赎自己——追风筝的人
  20. 为什么大多公司不要培训班培训出来的JAVA程序员?求职必看

热门文章

  1. 指定端口号关闭redis服务器
  2. word 中简单插入美观的代码
  3. 论文笔记 ​​​​​​​---语音关键词检测方法综述
  4. Konva 使用方法
  5. 在上网时出现Javascript:void(0)网页没有反应
  6. 视频质量诊断----雪花噪声检测
  7. 尘埃落定 所有你想了解的Apple Watch综述
  8. ucosIII中的OSTaskSuspend(OS_PRIO_SELF);函数解释
  9. freenode这个网站是做什么的?
  10. 导数的定义和介绍习题