|
3 months ago | |
---|---|---|
README.md | 4 months ago | |
books.csv | 4 months ago | |
borrowedbooks.csv | 4 months ago | |
calculate.py | 3 months ago | |
ui.py | 3 months ago | |
users.csv | 4 months ago | |
说明3.26.txt | 4 months ago |
README.md
''' 以下为主要需要涵盖的版块
1图书类型管理:实现对图书分类的灵活定义与调整,便于图书资源的分类存储与检索。这可以通过数据库表中的字段来实现,例如在book表中添加type字段。 2图书信息管理:包括图书的录入、编辑、删除及详细信息展示,确保图书信息的准确无误。这通常涉及对book表的增删改查操作。 3图书借阅与归还功能:支持用户在线申请借阅、查看借阅记录及归还图书,简化借阅流程,提高借阅效率。这可以通过创建borrow表来记录借书人ID、书名、作者和借书时间。 4用户账户管理:包括用户注册、登录、信息修改及权限分配,保障系统安全与用户隐私。可以使用user表来存储用户ID、密码和角色信息,角色可以是0(读者)或1(管理员)。 5通知公告发布:用于发布图书馆的最新动态、活动信息及借阅规则等,增强与用户的沟通互动。
另外,我们还需要一个图形交互界面,这样显得比较专业
special 1.使用自定义对象:图书,用户 2.尝试连接数据库PostgreSQL 16.1(通过Navicat管理)来管理数据 ''' 3.24: 做出以下调整: 1,不用navicat,就用csv文件,能做出东西就行,1个学分不值得拼命 2,还是需要一个图形界面,这个是加分项 3,增删改查都要全面 4,用户只可以查,管理员可以增删改,这些建立在登录模块的基础上 5,还有一个核心功能就是记录用户的借书记录:书目,时间,应还时间 ''' 3.25 管理员2: 1.关于图形界面:tkinter库内容简单无需下载 2.关于管理权限:将权限单独存为一个元组,需要删改增需要最高权限管理员来做,此模块应有:1.校验用户名密码2.录入用户的基本信息,如姓名、联系方式、借阅证号等,记录用户的借阅历史,包括借阅时间、归还时间、借阅图书等。3.管理权限并根据权限进入不同交互界面的主要功能 3.关于图书管理:此模块应具有:1.查找图书提供多种检索方式,如按书名、作者、ISBN号、分类等查询图书信息。2.归还图书:处理用户的借阅和归还请求,更新图书的库存状态,对逾期未还的图书进行提醒,并计算罚款金额,允许用户预约已借出的图书,当图书归还时通知用户3.图书分类管理:对图书进行分类管理,如文学、科技、历史等,便于用户按类别查找图书。 以上为一个图书管理系统的主干,以下为附加内容: 1.安全性考虑 2.通过用户借阅图书推测出用户喜好并推荐图书 3.统计每种图书的借阅数量供下次买书参考 4.是否需要对用户等级进行分类,比如借数超过50本还书时间限制延长一个周
3.26管理员1: 1.具体的文件实施形式已用csv建立 2.归还时间实现方法: 只记录借书日期,读取当前日期,而后进行计算 3.搜索:isbn只支持精确搜索,书名应支持模糊搜索,我们可以尝试把在那个成语的模糊查询功能做到书名搜索里 4.如果有条件,再做一个分类筛选功能
3.27管理员1: 1.生成了一些books数据 2.实现了了基础UI与底层计算的接入 3.目前UI界面太丑,太简陋 4.底层计算目前只实现了ISBN精确查询,需要扩充的内容很多
4.10管理员1: 考虑到下周没什么时间,而这个作业18号就截止了 所以事情还是很紧急的 PPT汇报具体要求什么的4.11课上问问,同时也可以尝试能不能延期 现在急需将其完善,可以在功能上进一步简化,而图形界面能看即可,确保能交差 如果可以延期就再美化,不能就能交差即可
import pandas as pd import numpy as np import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False
movies_df_new = pd.read_csv("/data/bigfiles/movie_metadata_new.csv") ################begin######################## #票房与预算关系
筛选2014年及之后的数据
df_2014_2016 = movies_df_new[movies_df_new['title_year'] >= 2014]
按预算升序排序
df_sorted = df_2014_2016.sort_values('budget')
绘制散点图
plt.figure(figsize=(10, 10)) plt.scatter(df_sorted['movie_title'], df_sorted['budget'], color='red', s=20, label='budget') plt.scatter(df_sorted['movie_title'], df_sorted['gross'], color='green', s=20, label='gross') plt.xticks([])
设置图表属性
plt.title('电影票房与预算的关系', fontsize=20) plt.xlabel('movie_title') plt.ylabel('budget/gross')
旋转x轴标签
plt.legend() #################end######################### plt.savefig("step5/result/pic1.png") plt.close()
################begin######################## #数据归一化处理
筛选2015-2016年数据(不包含2014)
df_2015_2016 = movies_df_new[(movies_df_new['title_year'] > 2014) & (movies_df_new['title_year'] <= 2016)]
归一化处理
df_2015_2016['cast_total_likes_norm'] = df_2015_2016['cast_total_likes'] / df_2015_2016['cast_total_likes'].max() df_2015_2016['gross_norm'] = df_2015_2016['gross'] / df_2015_2016['gross'].max()
演员的获赞总数与票房的关系
plt.figure(figsize=(10, 10)) plt.scatter(df_2015_2016['movie_title'], df_2015_2016['cast_total_likes_norm'], color='red', s=20, label='cast_total_likes') plt.scatter(df_2015_2016['movie_title'], df_2015_2016['gross_norm'], color='green', s=20, label='gross') plt.xticks([])
设置图表属性
plt.title('演员的获赞总数与票房的关系', fontsize=10) plt.xlabel('movie_title') plt.ylabel('cast_total_likes/gross') plt.legend()
旋转x轴标签
#################end######################### plt.savefig("step5/result/pic2.png") plt.close()