s1考试 图书管理系统 结构体版
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <iomanip>
using namespace std;
struct Library
{
long number;//编号
string bookname;//书名
string author;//作者
string press;//出版社
int price;//价格
};
Library book[10000000];//
int size=0;
int count=0;
void welcome();
void increase();//添加图书
void find();
void find_1();//查找图书
void find_2();
void find_3();
void find_4();
void find_all();//查找所有图书
void display(int i);
int main()
{
welcome();
return 0;
}
void welcome()
{
int n;
cout<<"*---------------------------*"<<endl;
cout<<"|--------图书管理系统-------|"<<endl;
cout<<"|---------------------------|"<<endl;
cout<<endl;
cout<<"|---------------------------|"<<endl;
cout<<"|--------1.添加图书---------|"<<endl;
cout<<"|--------2.查找图书---------|"<<endl;
cout<<"|--------3.查找所有图书-----|"<<endl;
cout<<"|--------4.退出系统---------|"<<endl;
cout<<"*---------------------------*"<<endl;
cout<<"请输入指令:";
cin>>n;
switch(n)
{
case 1:
increase();
cout<<endl;
welcome();
break;
case 2:
find();
welcome();
break;
case 3:
find_all();
welcome();
break;
default:
break;
}
}
void increase()
{
char m,n,y;
cout<<"输入图书编号:";
cin>>book[size].number;
cout<<"输入书名:";
cin>>book[size].bookname;
cout<<"输入作者姓名:";
cin>>book[size].author;
cout<<"输入出版社:";
cin>>book[size].press;
cout<<"输入价格:";
cin>>book[size].price;
cout<<"加入成功!"<<endl;
display(size);
size++;
count+=1;
cout<<"是否继续加入图书(是y,否n)"<<endl;
cin>>m;
if(m=='y')
increase();
if(m=='n')
welcome();
}
void display(int i)
{
cout<<"+-----------------------------------------------------------------------+"<<endl;
cout<<setiosflags(ios::left)<<"+"<<setw(10)<<"图书编号"<<setw(1)<<'|'<<setw(10)<<"书名"<<setw(1)<<'|'<<setw(20)<<"作者"<<setw(1)<<'|'<<setw(15)<<"出版社"<<setw(1)<<'|'<<setw(10)<<"价格"<<setw(1)<<'|'<<endl;
cout<<"+-----------------------------------------------------------------------------+"<<endl;
cout<<setiosflags(ios::left)<<"+"<<setw(10)<<book[i].number<<setw(1)<<'|'<<setw(10)<<book[i].bookname<<setw(1)<<'|'<<setw(20)<<book[i].author<<setw(1)<<'|'
<<setw(15)<<setiosflags(ios::fixed)<<setprecision(2)<<book[i].press<<setw(9)<<setw(1)<<'|'<<setw(10)<<book[i].price<<setw(1)<<'|'<<endl;
cout<<"+-----------------------------------------------------------------------+"<<endl;
}
void find()
{
int n;
cout<<"*---------------------------------*"<<endl;
cout<<"|--------1.以图书编号查找---------|"<<endl;
cout<<"|--------2.以图书名查找-----------|"<<endl;
cout<<"|--------3.以作者名查找-----------|"<<endl;
cout<<"|--------4.以出版社查找-----------|"<<endl;
cout<<"|--------5.回到主菜单-------------|"<<endl;
cout<<"*---------------------------------*"<<endl;
cout<<"请输入指令:";
cin>>n;
switch(n)
{
case 1:
find_1();
break;
case 2:
find_2();
break;
case 3:
find_3();
break;
case 4:
find_4();
break;
default:
welcome();
break;
}
}
void find_1()
{
long num;
cout<<"输入要查找的图书编号:"<<endl;
cin>>num;
bool flag=false;
int n;
for(n=0; n<=size; n++)
{
if(num==book[n].number)
{
flag=true;
break;
}
}
if(flag)
display(n);
else
cout<<"没有查询结果,或该书不存在!"<<endl;
}
void find_2()
{
string name;
cout<<"输入要查找的图书名:"<<endl;
cin>>name;
bool flag=false;
int n;
for(n=0; n<=size; n++)
{
if(name==book[n].bookname)
{
flag=true;
break;
}
}
if(flag)
display(n);
else
cout<<"没有查询结果,或该书不存在。"<<endl;
}
void find_3()
{
string zuozhe;
cout<<"输入要查找的作者名:"<<endl;
cin>>zuozhe;
bool flag=false;
int n;
for(n=0; n<=size; n++)
{
if(zuozhe==book[n].author)
{
flag=true;
break;
}
}
if(flag)
display(n);
else
cout<<"没有查询结果。或该书不存在!"<<endl;
}
void find_4()
{
string chuban;
cout<<"输入要查找的出版社名:"<<endl;
cin>>chuban;
bool flag=false;
int n;
for(n=0; n<=size; n++)
{
if(chuban==book[n].press)
{
flag=true;
break;
}
}
if(flag)
display(n);
else
cout<<"没有查询结果,或该书不存在!
"<<endl;
}
void find_all()
{
for(int n=0; n<size; n++)
{
display(n);
}
}
感悟:唉!
!
!!!
!
s1考试 图书管理系统 结构体版的更多相关文章
- 二叉树的序遍历x(内含结构体与非结构体版x)
3143 codevs 二叉树的序遍历 题目描述 Description 求一棵二叉树的前序遍历,中序遍历和后序遍历 输入描述 Input Description 第一行一个整数n,表示这棵树的节点个 ...
- C语言结构体对齐
1.结构体变量中的元素如何访问? (1)数组中元素的访问方式:表面上有2种方式(数组下标方式和指针方式):实质上都是指针方式访问.(2)结构体变量中的元素访问方式:只有一种,用.或者->的方式来 ...
- 结构体类型定义(C语言)
结构体的定义形式如下: struct 结构体名 { 结构体成员 }: 结构体变量的定义方式有三种:1.先定义结构体,再定义变量: eg. struct student{ char name[10]; ...
- C/C++(结构体)
结构体(struct) 从某种意义上说,会不会使用struct,如何使用struct是区别一个开发人员是否具备丰富开发经验的试金石. 处理由不同类型成员构成的构造类型,要采用结构体的方式. 定义:关键 ...
- Golang的面向对象编程【结构体、方法、继承、接口】
Golang也支持面向对象编程.但与以前学过传统的面向对象编程语言有区别.1)Golang没有类class,Go语言的结构体struct和类class有相似的特性.2)Golang中不存在继承,方法重 ...
- c# 编程--结构体
结构体:由多种简单类型,组合成一种复杂的类型.使用这种复杂的类型来解决生活中的实际例子. 一.结构体定义:struct 结构体的名子{ public 类型名 变量名; .....} ...
- go 结构体与方法
go 结构体与方法 go 结构体相当于 python 中类的概念,结构体用来定义复杂的数据结构,存储很多相同的字段属性 结构体的定义 1.结构体的定义以及简单实用 package main imp ...
- go结构体与方法
go结构体相当于python中类的概念 结构体用来定义复杂的数据结构,存储很多相同的字段属性 1.结构体的定义以及简单实用 package main import ( "fmt" ...
- Go语言基础六:结构体和方法
结构体 结构体是一个由用户定义的复合类型,它由一系列属性组成,每个属性都有自己的类型和值.Go语言中数组可以存储同一类型的数据,但在结构体中用户可以为不同项定义不同(或相同)的数据类型.结构体是值类型 ...
随机推荐
- dedecms--会员信息导出excel表格
1:在dede/templets下面的member_main.htm,在全选按钮那里添加一个导出excel按钮:代码如下: <a href="toexcel.php" cla ...
- Ural 1774 Barber of the Army of Mages 最大流
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1774 1774. Barber of the Army of Mages Time li ...
- Codeforces 323 B Tournament-graph
Discription In this problem you have to build tournament graph, consisting of n vertices, such, that ...
- Javascript中的e.keyCode大全
keycode 8 = BackSpace BackSpace keycode 9 = Tab Tab keycode 12 = Clear keycode 13 = Enter keycode 16 ...
- Java RSA 加密 解密 签名 验签
原文:http://gaofulai1988.iteye.com/blog/2262802 import java.io.FileInputStream; import java.io.FileOut ...
- openfire Android学习(三)----会议室创建、加入以及查询会议室中所有成员等
openfire 中的会议室不像QQ群一样,不能保存那些离线用户,加入会议室后,一旦断开连接,就会离开会议室. 虽然如此,但如果要实现也不是不可能,我们可以自己做后台来保存,有兴趣的可以去试着实现一下 ...
- android clipRect Op.xxx各个参数理解
有点小啰嗦的一篇学习笔记,可以直接看最后得出的结论:前面的各种图片和说明都是为最后的结论服务的 1)剪切:和平常画图工具剪切的作用一样,在画布上剪切一个区域,比如剪切一个Rect区域,画布canvas ...
- asp.net Excel导入&导出
1.Excel数据导入到数据库中: //该方法实现从Excel中导出数据到DataSet中,其中filepath为Excel文件的绝对路径,sheetname为表示那个Excel表: p ...
- VC 读取服务器上的文件(HTTP方式) [转]
CString GetStringFromUrl(LPCTSTR pszUrl){ CString str ; HINTERNET hSession = ::InternetOpen( _ ...
- 通过jstl判断是否给value 赋值
<input type="text" name="saler.password" id="password" value=" ...