小型图书馆里系统
#include "stdafx.h"
#include
#include
using namespace std;
template void swap(ty& _a,ty& _b)
{ty _t = _a;_a = _b;_b = _t;}
#define MaxNumber 100
typedef struct Date{
int year;
int month;
int day;
} Date;
typedef struct Book{
int b_code;
string b_name;
string b_author;
string b_publisher;
Date b_pubdate;
float b_price;
string b_lender;
Date b_lendday;
Date b_returnday; }Book;
struct Record{
string name;
string Class;
string number;
int book_code;
Date date1;
};
typedef struct Library{
Book book[MaxNumber];
bool flag[MaxNumber];
int num;
}Library;
Library mylib;
Record record[MaxNumber]; int rec_num = 0;
void put_date(Date& date){
cout<<"年:";cin>>date.year;
cout<<"月:";cin>>date.month;
cout<<"日:";cin>>date.day; }
datvoid clear_date(Date& date){
e.year = 0;
date.month = 0;
date.day = 0;
}
void check_date(Date date){
cout<<" 年:"<>s.b_author;
cout<<"图书编号:";
cin>>s.b_code;
cout<<"图书名称:";
cin>>s.b_name;
cout<<"书籍价格:";
cin>>s.b_price;
cout<<"出版日期:";
put_date(s.b_pubdate);
cout<<"出版社:";
cin>>s.b_publisher; }
void rebook(Book& s){
cout<<"输入图书信息\n";
cout<<"图书作者:";
cin>>s.b_author;
cout<<"图书编号:";
cin>>s.b_code;
cout<<"图书名称:";
cin>>s.b_name;
cout<<"书籍价格:";
cin>>s.b_price;
cout<<"出版日期:";
put_date(s.b_pubdate);
cout<<"出版社:";
cin>>s.b_publisher;
}
int find_book(int s){
for(int i = 0;i < mylib.num;++i)
if(mylib.book[i].b_code == s)
return i;
}
void clear_book(Book& s){
clear_date(s.b_lendday);
clear_date(s.b_pubdate);
clear_date(s.b_returnday);
s.b_code = s.b_price = 0.0f;
s.b_author
= s.b_lender
= s.b_name
= s.b_publisher
= "";
}
void check_book(Book _s){
cout<<"编号:"<<_s.b_code
<<" 作者"<<_s.b_author
<<" 出版社:"<<_s.b_publisher
<<" 价格:"<<_s.b_price<>number;
::swap(s.book[number],s.book[s.num]);
s.flag[s.num] = false;
clear_book(s.book[s.num]);
s.num--;
}
void Insert()
{
cout<<"输入书籍编号:\n";
string str;int n;cin>>n;
record[rec_num].book_code = n;
cout<<"输入学生班级:\n";cin>>str;
record[rec_num].Class = str;
cout<<"输入学生姓名:\n";cin>>str;
record[rec_num].name = str;
record[rec_num].number = ++rec_num;
cout<<"输入日期:\n";
put_date(record[rec_num].date1); }
void Sort()
{
for(int i = 0;i < mylib.num;++i) {//按照书籍编号由小到大排序
for(int j = i + 1;j <= mylib.num;++j) {
if(mylib.book[i].b_code > mylib.book[j].b_code) {
::swap(mylib.book[i],mylib.book[j]);
}
}
}
}
void Search(){
cout<<"输入查询图书编号:\n";
int n;cin>>n;
for(int i = 0;i <= mylib.num - 1;++i)
if(mylib.book[i].b_code == n){
check_book(mylib.book[i]);
}
}
void Modify(){
cout<<"输入修改的图书编号:\n";
int n;cin>>n;
for(int i = 0;i <= mylib.num - 1;++i)
if(mylib.book[i].b_code == n){
rebook(mylib.book[i]);
}
}
void Lead(){
cout<<"输入你想借阅的书籍编号:\n";
int n;cin>>n;
for(int i = 0;i <= mylib.num - 1;++i)
if(mylib.book[i].b_code == n){
mylib.flag[i] = false;
record[rec_num].book_code = n;
string str;
cout<<"输入学生班级:\n";cin>>str;
record[rec_num].Class = str;
cout<<"输入学生姓名:\n";cin>>str;
record[rec_num].name = str;
record[rec_num].number = rec_num;
cout<<"输入日期:\n";
put_date(record[rec_num].date1);
++rec_num;
}
}
void Return(){
cout<<"输入你想归还的书籍编号:\n";
int n;cin>>n;
for(int i = 0 ;i < rec_num + 1;++i) {
if(record[i].book_code == n) {
return_book(find_book(n));
}
}
}
void Notice(){
for(int i = 0;i < rec_num;++i)
if(mylib.flag[i] == false){
check_record(i);
}
}
void Print(){
for(int i = 0;i <= mylib.num - 1;++i){
check_book(mylib.book[i]);
}
}
/*主函数界面*/
int main()
{
int choice;
for(;;) //循环无限次
{
cout<<"0新建 1添加 2删除 3排序"<
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
12退出"<>choice;
switch(choice) //菜单选择函数
{
// case 0: Create();break; // 新建
case 0:Create(mylib);break; //添加处理的数据
case 1: Insert();break; // 添加新纪录
case 2: Delete(mylib);break; // 删除记录
case 3: Sort();break; //排序
case 4: Search();break; //查询记录
case 5: Modify();break; //修改纪录
case 6:Lead();break; //借书
case 7:Return();break; //还书
case 8:Notice();break; //打印催还书通知
// case 9: Save();break; //保存数据到文件
// case 10:Load(); break; // 从文件读数据
case 11:Print();break; //显示全部记录
case 12: exit(0); //程序结束
}
}
}
/*
int Pubdate(Date date)
{
cin>>date.year>>
date.month>>
date.day;
return 0;
}
void Create(Library& s)
{
s.flag[s.num ++] = 1;
cout<<"输入图书编号:";
cin>>s.book[s.num].b_code;
cout<<"输入书名:";
cin>>s.book[s.num].b_name;
cout<<"输入作者:";
cin>>s.book[s.num].b_author;
cout<<"输入出版社:";
cin>>s.book[s.num].b_publisher;
cout<<"输入出版日期";
Pubdate(s.book[s.num].b_pubdate);
cout<<"输入价格";
cin>>s.book[s.num].b_price; }
void statue(Library _s,int num) {
if(_s.flag[num] == true)
cout<<"在馆"<>p->name;
cout<<"输入班级";
cin>>p->Class;
cout<<"输入学号";
cin>>p->number;
cout<<"输入图书编号";
cin>>p->book_code;
cout<<"输入借书日期";
Pubdate(p->date1);
}
void Delete(Record* p) {
delete p;
}
void out( Library s,int i) {
cout<>kind;
if(kind=1)
for(int i=0;imylib.book[j].b_name)
{
temp=book[i].b_name;book[i].b_name=book[j].name;book[j].name=temp;
}
}
for(i=0;i<=num;i++)
cout<mylib.book[j].b_author))
{
temp=book[i].b_author;book[i].b_author=book[j].author;book[j].author=temp;
}
}
for(i=0;i<=num;i++)
cout<>kind;
if(kind=1)
for(int i=0;imylib.book[j].b_name)
{
temp=book[i].b_name;book[i].b_name=book[j].name;book[j].name=temp;
}
}
for(i=0;i<=num;i++)
cout<mylib.book[j].b_author))
{
temp=book[i].b_author;book[i].b_author=book[j].author;book[j].author=temp;
}
}
cout<<
}
*/