python圖書館管理系統
① 求助:實現圖書館借書系統
#include <iostream>
#include <string>
using namespace std;
class Book //設置圖書館藏書類,用以封存圖書信息
{
public:
Book (string n, int N, string p) //圖書類構造函數
{
name = n; //設置圖書書名
NO = N; //設置圖書庫存量
publisher = p; //設置圖書出版社
}
void display() //display函數,以顯示圖書信息
{
cout << "書名:" << name << endl;
cout << "目前庫存:" << NO << endl;
cout << "圖書出版社:" << publisher << endl;
cout << endl;
}
//為方便調用,以下數據全部定義為公用
string name; //圖書書名
int NO; //圖書庫存量
string publisher; //圖書出版社
};
//創建圖書館藏書小資料庫,圖書序號等於該對象數組的下標
Book book[6] =
{
Book ("C++ primer", 3, "人民郵電出版社") ,
Book ("Python核心編程", 3, "人民郵電出版社") ,
Book ("Writing clean code", 3, "電子工業出版社") ,
Book ("簡體中文Solaris 10用戶指南", 3, "Sun Microsystems, Inc") ,
Book ("《The C Programming Language》第二版", 3, "機械工業出版社") ,
Book ("計算機程序設計藝術第三版第一卷:基本演算法", 3, "國防工業出版社")
};
void display_all() //顯示圖書館所有圖書,方便讀者借閱
{
int i;
cout << "這是圖書館的所有圖書" << endl;
for (i = 0; i<6; i++)
{
cout << "圖書序號:" << i << endl;
cout << "書名:" << book[i].name << endl;
cout << "目前庫存:" << book[i].NO << endl;
cout << "圖書出版社:" << book[i].publisher << endl;
cout << endl;
}
}
class people
{
public:
people(string nam, int num) //student構造函數
{
name = nam;
number = num;
}
void borrow(int); //定義借書成員函數
void back(int); //定義還書成員函數
private:
string name; //性名
int number; //在圖書館已借圖書數量
};
// student類,用以定義學生信息
class student : public people
{
public:
student(string nam, int num, int gra) : people (nam, num) //student構造函數
{
grade = gra;
}
private:
int grade; //學生年級
};
//teacher類,teacher是student的派生類
class teacher : public people
{
public:
teacher(string nam, int num, string t) : people(nam , num) //派生類構造函數
{
title = t; //教師職稱
}
private:
string title; //教師職稱
};
void people :: borrow (int a) //借書成員函數
{
int i, j; //定義兩個整型變數,以便需要shirt使用
char k; //定義字元型變數以便進行Y/N的判斷
void service() ; //聲明service函數
if (number >= a) //首先進行許可權判斷,如果讀者已借書數量不小於他的許可權,則提示進行其他操作
{
cout << "根據您的許可權,你最多能借" << a << "本書!您現在不能借書歡迎下次再來" << endl;
cout << "您是否想進行其他操作? (是請輸入y, 退出請輸入n) " << endl;
cin >> k;
if (k == 121)
service ();
if (k == 121)
return;
else if (k = 110)
return;
cout << endl;
}
else
{
display_all() ; //調用display_all函數,輸出所有圖書顯示,方便讀者借閱
cout << "您想借哪本書? 請輸入圖書序號0-5" << endl;
cin >> i;
while (book[i].NO == 0 || i>5 || i<0) //判斷所要借圖書的庫存及輸入的合法性
{
cout << "您輸入的圖書序號錯誤或者所借書庫存不足,請重新輸入.圖書序號是0-5" << endl;
cin >> i;
//提示讀者是否進行其他操作
cout << "您是否想進行其他操作? (是請輸入y, 繼續借書請輸入n) " << endl;
cin >> k;
if (k == 121)
service (); //如果讀者要進行其他操作,則引用service函數,對讀者進行重新引導
if (k == 121)
return; //進行其他操作完畢,直接跳出borrow函數
else
continue; //若讀者選擇繼續借書,則跳出本次循環,進行下一次循環
}
cout << endl; //此處還行是為了人機界面的美觀
cout << "以下是您要借的書籍的信息" << endl;
book[i].display();
cout << "您想借幾本書?" << endl;
cin>>j;
//判斷讀者的許可權、圖書館庫存及輸入的合法性
while ((a-number)<j || book[i].NO<j || j<0 || j>3)
{
cout << "因為你的許可權不夠、數量輸入有誤或者圖書館庫存不足,";
cout << "你目前不能借這么多書!請輸入一個合適的數目." << endl;
cin>>j;
//提示讀者是否進行其他操作
cout << "您是否想進行其他操作? (是請輸入y, 繼續借書請輸入n) " << endl;
cin>>k;
if (k == 121)
service();
if (k == 121)
return;
else
continue;
cout << endl;
}
book[i].NO = book[i].NO - j; //借書完畢,對圖書館的小資料庫從新調整一下
number = number + j; //借書完畢,讀者已借書籍數量要加上現在借的書數量
cout << endl;
cout << "您在圖書館還可以借 " << a - number << " 本書" << endl;
cout << "《" << book[i].name << "》" << "目前剩餘" << book[i].NO << "本" << endl;
}
} //borrow函數結束
void people::back (int a) //還書成員函數
{
int n, m;
char k;
void service() ;
cout << "您要還哪本書" << endl;
cin >> n;
while (book[n].NO = 3) //判斷圖書館庫存,庫存是滿的,那就沒人從這借過這種書而且沒還
{
cout << "您借過這本書嗎?請重新輸入圖書序號. " << endl;
cin>>n;
cout << "您是否想進行其他操作? (是請輸入y, 繼續還書請輸入n) " << endl;
cin>>k;
if (k == 121)
service();
if (k == 121)
return;
else
continue;
cout << endl;
}
while (n>5 || n<0) //判斷讀者所要借的書是否存在
{
cout << "您輸入的圖書序號錯誤,請重新輸入.圖書序號是0-5. " << endl;
cin>>n;
cout << "您是否想進行其他操作? (是請輸入y, 繼續還書請輸入n) " << endl;
cin >> k;
if (k == 121)
service () ;
if (k == 121)
return;
else
continue;
cout << endl;
}
cout << endl; //此處換行是為了人機界面的美觀
cout << "以下是您要借的書籍的信息" << endl;
book[n].display () ;
cout << "你要還幾本書" << endl;
cin >> m;
//判斷圖書館這種書的庫存是否小於讀者要還的書的數量,及讀者輸入的合法性
while ((3-book[n].NO) <m || m>3)
{
cout << "您有借過這么多書嗎?請重新輸入." << endl;
cin >> m;
cout << "您是否想進行其他操作? (是請輸入y, 繼續借書請輸入n) " << endl;
cin >> k;
if (k == 121)
service ();
if (k == 121)
return;
else if (k = 110)
continue;
cout << endl;
}
book[n].NO += m; //還書完畢,及時對圖書館的資料庫進行整理
number -= m; //讀者已借書籍數減輕現在所還書籍數量
//以下是一些給讀者的提示信息
cout << "恭喜!您還書成功!" << endl;
cout << "你還可以借 " << a-number << " 本書!" << endl;
} //back函數結束
void service () //service函數,完成對讀者的服務、詢問功能
{
int a;
int b;
student stud("ming", 0, 2007); //定義student類的對象stu,並初始化
teacher tea("li", 0, "assistant"); //定義teacher類的對象tea,並初始化
//詢問讀者身份,給出選項
cout << "歡迎來到圖書館,請問您的身份是: (請輸入首數字) " << endl;
cout << "1.教師" << endl;
cout << "2.學生" << endl;
cin >> a;
while (a != 1 && a != 2) //對讀者的錯誤輸入進行提醒
{
cout << "請輸入正確的選項:" << endl;
cin >> a;
}
cout << endl;
cout << "請問您想要: (請輸入首數字) " << endl; //詢問讀者所希望進行的工作,給出選項
cout << "1.借書" << endl;
cout << "2.還書" << endl;
cout << "3.離開借書台" << endl;
cin >> b;
while (b != 1 && b != 2 && b != 3) //對讀者的錯誤輸入進行提醒
{
cout << "請輸入正確的選項" << endl;
cin >> b;
}
cout << endl;
if (a == 1) //如果讀者是老師,則進行以下操作
{
if (b == 1)
{
tea.borrow(6); //調用借書函數
}
else if (b == 2)
{
tea.back(6); //調用還書函數
}
else
{
cout << " = ^_^ = 謝謝您的光臨!\n" << endl; //退出
}
}
else if (a == 2) //如果讀者是學生,則進行以下操作
{
if (b == 1)
{
stud.borrow(4);
}
else if (b == 2)
{
stud.back(4);
}
else
{
cout << " = ^_^ = 謝謝您的光臨!\n" << endl;
return;
}
}
cout << endl;
} //service函數結束
//主函數
int main()
{
char k;
service() ;
while (1) //操作完畢,提示讀者是否進行其他操作。
{
cout << "是否繼續進行其他操作?";
cout << " (進行其他操作請輸入y, 退出請輸入n) " << endl;
cin >> k;
cout << endl;
if (k == 121)
service ();
else
cout << " = ^_^ = 謝謝您的光臨!\n" << endl;
break;
}
return 0;
}
② 你都用Python 來做什麼
當我知道可以做這些之後,我特別想會。因為論文查閱、答案確認查詢;想知道豆瓣8分以上電影,或者穿越類的電影、處理工資數據考核表等。
可以干什麼
1、上學吧答案神器 主要實現的是無限制獲取上學吧網站上的題目答案(繞過 IP 限制),並實現了自動識別驗證碼,只用輸入某個題目的網址,即可一鍵獲取答案,速度非常快。「想要哈哈,自己或者給孩子輔導作業必備啊?」
2、抓取某系統內全部學生姓名學號及選課信息
3、掃描研究生系統上的弱密碼用戶、模擬登錄圖書館系統並自動續借
4、給釣魚網站批量提交垃圾信息 經常會收到含有釣魚網站鏈接的簡訊的,一般都是盜取 QQ 密碼的偏多,其實可以使用 Python 來批量給對方的伺服器提交垃圾數據(需要先抓包),這樣騙子看到信息之後就不知道哪些是真的哪些是假的了,說不定可以解救一部分填了密碼的同學。
5、網易雲音樂批量下載 可以批量下載網易雲音樂熱歌榜的歌曲,可以自己設定數量,速度非常快。
6、批量下載讀者雜志某一期的全部文章
7、 獲取城市PM2.5濃度和排名
8、爬取某網商品價格信息
你都用 Python 來做什麼?
那Python 作為一種功能強大的編程語言,因其簡單易學而受到很多開發者的青睞。那麼,Python 的應用領域有哪些呢?
Python 的應用領域非常廣泛,幾乎所有大中型互聯網企業都在使用 Python 完成各種各樣的任務,例如國外的 Google、Youtube、Dropbox,國內的網路、新浪、搜狐、騰訊、阿里、網易、淘寶、知乎、豆瓣、汽車之家、美團等等。概括起來,Python 的應用領域主要有如下幾個。
Web應用開發
Python 經常被用於 Web 開發,盡管目前 PHP、JS 依然是 Web 開發的主流語言,但 Python 上升勢頭更勁。尤其隨著 Python 的 Web 開發框架逐漸成熟(比如 Django、flask、TurboGears、web2py 等等),程序員可以更輕松地開發和管理復雜的 Web 程序。例如,通過 mod_wsgi 模塊,Apache 可以運行用 Python 編寫的 Web 程序。Python 定義了 WSGI 標准應用介面來協調 HTTP 伺服器與基於 Python 的 Web 程序之間的通信。舉個最直觀的例子,全球最大的搜索引擎 Google,在其網路搜索系統中就廣泛使用 Python 語言。另外,我們經常訪問的集電影、讀書、音樂於一體的豆瓣網(如圖 1 所示),也是使用 Python 實現的。
圖2Python開發的游戲
除此之外,Python 可以直接調用 Open GL 實現 3D 繪制,這是高性能游戲引擎的技術基礎。事實上,有很多 Python 語言實現的游戲引擎,例如 Pygame、Pyglet 以及 Cocos 2d 等。以上也僅是介紹了 Python 應用領域的「冰山一角」,例如,還可以利用 Pygame 進行游戲編程;用 PIL 和其他的一些工具進行圖像處理;用 PyRo 工具包進行機器人控制編程,等等。有興趣的讀者,可自行搜索資料進行詳細了解。