#include <iostream>
#include<algorithm>
#include<string.h>
#include<string>
#include<map>
using namespace std;
struct node {
string name; //書名
string publication; //出版日期
string Warehousing; //入庫日期
string press;
string actor;
}a[100000];
int i = 0;
string str;
int cmp(node x, node y) { //自定義排序方式
return x.publication < y.publication;
}
void in() { //錄入函式
cout << "請輸入書名" << endl;
getchar();
getline(cin, a[i].name);
cout << "請輸入出版日期(格式:xx(年).xx(月).xx(日))" << endl;
getline(cin, a[i].publication);
cout << "請輸入今日日期(格式:xx(年).xx(月).xx(日))" << endl;
getline(cin, a[i].Warehousing);
cout << "請輸入出版社" << endl;
getline(cin, a[i].press);
cout << "請輸入作者" << endl;
getline(cin, a[i++].actor);
cout << "收錄完成" << endl;
}
void fin_d() { //查找入庫日期的所有圖書資訊
cout << "請輸入入庫日期" << endl;
getchar();
getline(cin, str);
int ans = 0;
for (int k = 0; k < i; k++) {
if (a[k].Warehousing == str) {
cout << a[k].name << " " << a[k].publication << endl;
ans++;
}
}
cout << "搜索完成,共搜索到" << ans << "條結果" << endl;
}
void sor_t() { //排序圖書按出版日期排序并顯示排序結果
sort(a, a + i, cmp);
for (int k = 0; k < i; k++)
cout << a[k].name << " " << a[k].publication << " " << a[k].Warehousing << endl;
cout << "排序完成" << endl;
}
void change() { //修改圖書資訊
cout << "請輸入書名" << endl;
getchar();
getline(cin, str);
for (int k = 0; k < i; k++) {
if (a[k].name == str) {
cout << "請輸入出版日期" << endl;
getline(cin, a[i].publication);
cout << "請輸入入庫日期" << endl;
getline(cin, a[i].Warehousing);
cout << "請輸入出版社" << endl;
getline(cin, a[i].press);
cout << "請輸入作者" << endl;
getline(cin, a[i++].actor);
cout << "修改完成" << endl;
break;
}
}
}
void delet_e() { //洗掉圖書資訊
cout << "請輸入書名" << endl;
getchar();
getline(cin, str);
for (int k = 0; k < i; k++) {
if (a[k].name == str) {
for (int j = k; j < i - 1; j++) {
a[j].name = a[j + 1].name;
a[j].publication = a[j + 1].publication;
a[j].Warehousing = a[j + 1].Warehousing;
}
i--;
break;
}
}
}
int main() //軟體功能選擇:1、錄入圖書資訊;2、查詢圖書;3、排序圖書;4、圖書資訊修改;5、圖書資訊洗掉;0、退出程式
{
int order = 1;
do {
cout << "請選擇操作:" << endl;
cout << "--------------------" << endl;
cout << "| 1.錄入圖書資訊 |" << endl;
cout << "| 2.查詢圖書 |" << endl;
cout << "| 3.排序圖書 |" << endl;
cout << "| 4.圖書資訊修改 |" << endl;
cout << "| 5.圖書資訊洗掉 |" << endl;
cout << "| 0.退出程式 |" << endl;
cout << "--------------------" << endl;
cin >> order;
switch (order) {
case 1:
in();
break;
case 2:
fin_d();
break;
case 3:
sor_t();
break;
case 4:
change();
break;
case 5:
delet_e();
break;
}
} while (order);
system("pause");
return 0;
}
錄入圖書資訊時,輸入作者后會出現bug(輸入只有數字不會),然后我洗掉了有關錄入作者的代碼,發現輸入出版社后會出現上述的情況。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/37775.html
標籤:C語言
上一篇:1.設計一個長方形的類,成員變數有長與寬,成員函式有求周長與面積,然后進行測驗。要求有建構式、析造函式和復制建構式。
