Fan_Hua_Luo_Xia 2024-04-24 09:33 采纳率: 100%
浏览 95
已结题

软件工程大作业项目-高校教材购销系统

一个高校教材购销系统,包含数据库连接(mysql),数据库表的建立和内容,还有用户界面,数据库表有购书表、库存表、进库表、出库表、缺书登记表和待购教材表。不是毕业设计,只要有源代码和注释就好。原题目如下:
5、高校教材购销系统
功能:
(1)售书:向学生售书时,主要通过输入学生学号、购书数量、购书书名信息,打印领书单返回给学生领取书籍。
(2)采购:图书发放人员将缺书的编号、书名、出版社信息、版本号等信息打印给书库采购人员,一旦新书入库,立即通知给教材发放人员。
本项目的用户有学校的学生、教师和教材订购管理员。
系统可以细化为销售系统和采购系统,销售系统的主要工作过程是:由学生或教师提交购书单,经教材发放人员审核时有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生可以通过领书单到书库领书。采购系统的主要工作工程是:若教材脱销,等登记缺书,发缺书单给书库采购人员;一旦新书入库,发进书通知给教材发放人员。
要求与限定条件:
(1)当书库中的各种书籍数量发生变化时,都应修改相关的书库记录,如库存表或进/出库表。
(2)在实现上述的销售和采购过程中,要考虑有关的合法性验证;
(3)系统的相关数据存储至少包括:购书表、库存表、缺书登记表、待购教材表、进库表和出库表。

  • 写回答

4条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-04-24 09:38
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    回答: 该高校教材购销系统包含数据库连接(mysql),数据库表的建立和内容,还有用户界面。其中,数据库表包括购书表、库存表、进库表、出库表、缺书登记表和待购教材表。系统针对不同用户包括学生、教师和教材订购管理员,提供了售书和采购两个功能。 售书功能:学生或教师提交购书单,教材发放人员审核并开发票,登记并返还教师或学生领书单,领书单可用于到书库领书。实现时需考虑合法性验证,避免输入无效信息。 采购功能:若教材脱销,发缺书单给书库采购人员。一旦新书入库,发进书通知给教材发放人员。系统需及时更新对应的库存表或进/出库表,保证书库中的各种书籍数量正确。 以下是示例代码,其中xxx代表具体的字段和表名: 1.连接MySQL数据库 import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase" ) 2.创建购书表 mycursor = mydb.cursor() mycursor.execute("CREATE TABLE buy_book (id INT AUTO_INCREMENT PRIMARY KEY, student_id VARCHAR(255), book_name VARCHAR(255), book_count INT)") 3.创建库存表 mycursor.execute("CREATE TABLE stock (id INT AUTO_INCREMENT PRIMARY KEY, book_name VARCHAR(255), book_count INT)") 4.创建进库表 mycursor.execute("CREATE TABLE storage (id INT AUTO_INCREMENT PRIMARY KEY, book_name VARCHAR(255), book_count INT, storage_date DATE)") 5.创建出库表 mycursor.execute("CREATE TABLE delivery (id INT AUTO_INCREMENT PRIMARY KEY, book_name VARCHAR(255), book_count INT, delivery_date DATE)") 6.创建缺书登记表 mycursor.execute("CREATE TABLE shortage (id INT AUTO_INCREMENT PRIMARY KEY, book_name VARCHAR(255), publisher_name VARCHAR(255), version VARCHAR(255), shortage_date DATE)") 7.创建待购教材表 mycursor.execute("CREATE TABLE to_buy (id INT AUTO_INCREMENT PRIMARY KEY, book_name VARCHAR(255), publisher_name VARCHAR(255), version VARCHAR(255), to_buy_date DATE)") 8.实现售书功能 def sell_book(student_id, book_name, book_count):
    mycursor.execute("SELECT book_count FROM stock WHERE book_name = %s", (book_name,))
    result = mycursor.fetchone()
    if result is not None and result[0] >= book_count:
        mycursor.execute("INSERT INTO buy_book (student_id, book_name, book_count) VALUES (%s, %s, %s)", (student_id, book_name, book_count))
        mycursor.execute("UPDATE stock SET book_count = book_count - %s WHERE book_name = %s", (book_count, book_name))
        mydb.commit()
        print("领书单:学生{}成功购买{}本《{}》".format(student_id, book_count, book_name))
    else:
        print("库存不足,购买失败")
    

    9.实现采购功能 def purchase_book(book_name, publisher_name, version, purchase_count): mycursor.execute("INSERT INTO to_buy (book_name, publisher_name, version, to_buy_date) VALUES (%s, %s, %s, NOW())", (book_name, publisher_name, version)) mycursor.execute("INSERT INTO shortage (book_name, publisher_name, version, shortage_date) VALUES (%s, %s, %s, NOW())", (book_name, publisher_name, version)) mydb.commit() print("已提交购书单:亟需采购{}本《{}》({}版,{}出版社)".format(purchase_count, book_name, version, publisher_name))

    def new_book_in_stock(book_name, book_count): mycursor.execute("UPDATE stock SET book_count = book_count + %s WHERE book_name = %s", (book_count, book_name)) mycursor.execute("DELETE FROM shortage WHERE book_name = %s", (book_name,)) mycursor.execute("INSERT INTO storage (book_name, book_count, storage_date) VALUES (%s, %s, NOW())", (book_name, book_count)) mydb.commit() print("加入新书:《{}》{}本".format(book_name, book_count)) 10.实现界面 #省略界面代码 以上是一个简单的高校教材购销系统的示例。其中,数据库的建立和操作需结合具体情况进行修改和优化,界面部分可以根据实际需求使用Tkinter或其他GUI库实现。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月2日
  • 已采纳回答 4月24日
  • 创建了问题 4月24日

悬赏问题

  • ¥15 fluent设置了自动保存后,会有几个时间点不保存
  • ¥20 激光照射到四象线探测器,通过液晶屏显示X、Y值
  • ¥15 这怎么做,怎么在我的思路下改下我这写的不对
  • ¥50 数据库开发问题求解答
  • ¥15 安装anaconda时报错
  • ¥20 如何用Python处理单元格内连续出现的重复词语?
  • ¥15 小程序有个导出到插件方式,我是在分包下引入的插件,这个export的路径对吗,我看官方文档上写的是相对路径
  • ¥20 希望有人能帮我完成这个设计( *ˊᵕˋ)
  • ¥100 将Intptr传入SetHdevmode()将Intptr传入后转换为DEVMODE的值与外部代码不一致
  • ¥50 基于ERA5数据计算VPD