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 工具包进行机器人控制编程,等等。有兴趣的读者,可自行搜索资料进行详细了解。