数据库课程设计-数码公司管理系统

一、需求分析

1.背景

在科技日新月异的信息时代,人们对数码电子产品的需求与日俱增,这无疑是一个巨大的商机,但是数码电子产品的销售是一项繁琐、复杂而又细致的工作,传统的手工操作的销售方式已不利于订单量较大、日销售量较多的公司和企业,为了减少甚至规避因手工操作而出现的失误、为了节省时间成本和劳动成本,故采用计算机来进行管理。
使用计算机不仅可以保证账目核算准确无误,而且还可以对数码电子产品信息进行统计,服务于数码营业商,使数码公司管理起来更加方便,核算账目更快更准确,所以此次项目开发一个适用于各个数码公司管理的系统。
本项目的任务提出者及开发者是真安心数码公司管理系统软件开发小组,即该公司的两位董事长,用户是各大数码批发商、零售商及普通用户。

2.目的

a.为了让数码电子产品管理信息更完善。
b.为了让各大数码营业商对数码电子产品销售更方便,对数码电子产品流向消费者的整个过程有一个完整的认识。
c.为了减轻工作人员的工作负担。
d.为了让工作人员核算账目更快更准确。

3.系统优点

1.使用数码公司管理系统能够清楚地了解仓库和柜台存储数码产品信息的情况,能够让相应的工作人员及时做出补货的操作。
2.通过本系统,管理者可以清楚地看到数码公司相应一段时间的数码产品销售情况和获利多少,这样就可以根据此信息来控制数码产品种类和数量。
3.通过本系统,相关的工作人员可以对数码产品信息进行添加、修改、删除和查询相关操作。
4.通过销售单传递的信息,数码公司管理者可以对数码产品信息做出总结,然后根据数码产品的销售信息来对数码产品进行相应的调整。比如调整最受欢迎数码产品的数量,从而增加数码公司获利。
5.本系统还可以向批发商、自动售货机提供数码产品,由自动售货机向顾客销售数码产品。
6.工作人员通过本系统可以打印出顾客的购买数码产品的清单。

在这里插入图片描述

二、概念结构设计(E-R图)

在这里插入图片描述

三、逻辑结构设计

  1. 电子产品(产品编号,产品种类,产品品牌,产品型号,产品进价,产品售价,产品生产日期,产品质保期,产品厂家)
    此为实体“电子产品”对应的关系模式,主码为产品编号。
  2. 供货商(供货商名称,供货商联系电话,供货商地址)
    此为供货商实体对应的关系模式。该关系模式包含了“供应”所对应的关系模式,主码为供货商名称,根据此属性可以直接确认相应供货商。
  3. 批发商(批发商姓名,批发商地址,批发商电话)
    此为实体“批发商”对应的关系模式,主码为批发商姓名,根据此属性可以直接确认出货对象中的批发商,符合BCNF范式。
  4. 柜台(负责人工号,柜台类型,柜台品牌,负责人姓名)
    此为实体“柜台”对应的关系模式,主码为柜台编号,根据此属性可以直接确认出货对象中的柜台,符合BCNF范式。
  5. 线上售货(负责人工号,负责人姓名,负责人电话)
    此为实体“售货机”对应的关系模式,主码为货机编号,根据此属性可以直接确认出货对象中的售货机。
  6. 员工(员工工号,员工姓名,员工密码,员工电话,员工住址,员工性别,员工年龄,员工银行卡号,员工学历,员工职位,员工身份证号)
    此为员工实体对应的关系模式。该关系模式包含了“入库”、“出货”、“采购”、“退货”、“销售”所对应的关系模式。主码为员工工号,根据此属性可以直接确认到相关员工的信息。
  7. 入库单(产品编号,员工工号,进货时间,产品数量)
    主码为产品编号、员工工号、进货时间。由产品编号、员工工号、进货时间来具体确认到某个入库单的相关信息,通过产品编号可以了解到产品信息,通过员工工号可以确认到相关人员的相关信息,消除了部分依赖和传递依赖,并且主码之间又不存在依赖。
  8. 出库单(产品编号,员工工号,出库时间,产品数量)
    主码为产品编号、员工工号、出库时间。由产品编号、员工工号、出库时间来具体确认到某个出库单的相关信息,通过产品编号可以了解到产品信息,通过员工工号可以确认到相关人员的相关信息,消除了部分依赖和传递依赖,并且主码之间又不存在依赖。
  9. 销售单(产品编号,销售时间,产品数量)
    主码为产品编号、销售时间。由产品编号、销售时间来具体确认到某个销售单的相关信息,通过产品编号可以了解到产品信息,消除了部分依赖和传递依赖,并且主码之间又不存在依赖,符合BCNF范式。
  10. 采购单(员工工号,供货商名称,产品编号,采购时间,产品数量,)
    主码为员工工号、产品编号、采购时间、供货商名称、员工工号。由产品编号、采购时间、供货商名称、员工工号来具体确认到某个采购单的相关信息,通过产品编号可以了解到产品信息,消除了部分依赖和传递依赖,并且主码之间又不存在依赖。
  11. 退货单(员工工号,供货商名称,产品编号,采购时间,产品数量)
    主码为员工工号,产品编号,采购时间,供货商名称。由员工工号,产品编号,采购时间,供货商名称,来具体确认到某个退货单的相关信息,通过产品编号可以了解到产品信息,消除了部分依赖和传递依赖,并且主码之间又不存在依赖。
  12. 账户表(用户名,密码)
    主码为用户名。由用户名来具体确认每个登录系统人员的相关信息,通过用户名和密码可以登录数码公司管理系统,消除了部分依赖和传递依赖,并且主码之间又不存在依赖。
  13. 仓库表(产品编号,库存)
    主码为产品编号,由产品编号可以查询每个产品的库存。

四、物理结构设计(流程图)

在这里插入图片描述

在这里插入图片描述

五、数据库实施阶段

1.SQL语句

建表:

import pymssql
class DataBase:
    # 初始化
    def __init__(self,host,port,user,pwd,db): #服务器名,端口,账户,密码,数据库名
        self.host=host
        self.port=port
        self.user=user
        self.pwd=pwd
        self.db=db
    # 与数据库建立连接
    def GetConnect(self):
        self.connect=pymssql.connect(host=self.host,port=self.port,user=self.user, password=self.pwd, database=self.db, charset='utf8')
        self.cur=self.connect.cursor()
        if self.connect:
            print("连接成功")
        else:
            print("连接失败")
    def initDataBase(self):
        #1.创建产品表
        create_Product_table_sql="""CREATE TABLE Product(
                                    Pno nvarchar(10) primary key,
                                    Ptype nvarchar(10) not null,
                                    Pbrand nvarchar(5) not null ,
                                    Pmodelnumber nvarchar(10) not null,
                                    PinPrice int not null,
                                    PoutPrice int not null,
                                    ProDate nvarchar(10) not null,
                                    PassureDate nvarchar(10) not null,
                                    Pfactory nvarchar(10) not null
                                    
                                )
                                """
                                
        #2.创建供货商表
        create_Supplier_table_sql="""CREATE TABLE Supplier(
                                    Sname nvarchar(10) primary key,
                                    Sphone nvarchar(12) not null,
                                    Saddress nvarchar(10) not null
                                  )
                                  """
                                  
        #3.创建批发商表
        create_Wholeseler_table_sql="""CREATE TABLE Wholeseler(
                                       Wname nvarchar(10) primary key,
                                       Wphone nvarchar(12) not null,
                                       Waddress nvarchar(10) not null
                                    )
                                    """
                                    
        #4.创建柜台表
        create_Guitai_table_sql="""CREATE TABLE Guitai(
                                   Eno  nvarchar(15) primary key,
                                   Ptype nvarchar(10) not null,
                                   Pbrand nvarchar(5) not null,
                                   Gname nvarchar(8) not null
                                )
                                """
                                
        #5.创建线上售货平台表
        create_Online_vending_platform_sql="""CREATE TABLE Online_vending_platform(
                                              Eno nvarchar(10) primary key,
                                              Fname nvarchar(8) not null,
                                              Fphone nvarchar(12) not null
                                           )
                                           """
                                           
        #6.创建员工表
        create_Employee_table_sql="""CREATE TABlE Employee(
                                    Eno nvarchar(15) primary key,
                                    Ename nvarchar(8) not null,
                                    Ephone nvarchar(12) not null,
                                    Eaddress nvarchar(20) not null,
                                    Esex nvarchar(2) not null,
                                    Eage int not null,
                                    Edegree nvarchar(8) not null,
                                    Ecard nvarchar(20) not null,
                                    Eposition nvarchar(20) not null,
                                    Eidcard nvarchar(20) not null,
                                    check(Esex='女'or Esex='男'),
                                    check(Eage>0)
                                )
                                """
         
        #7.创建入库表
        create_Ruku_table_sql="""CREATE TABLE RuKu(
                                Eno nvarchar(15),
                                Pno nvarchar(10),
                                Rdate nvarchar(15),
                                Pnum int not null,
                                primary key(Eno,Pno,Rdate),
                                foreign key(Eno)references Employee(Eno),
                                ON DELETE CASCADE
                                ON UPDATE CASCADE
                                foreign key(Pno)references Product(Pno),
                                ON DELETE CASCADE
                                ON UPDATE CASCADE
                                check(Pnum>0)
                            )"""
        
        #8.创建出库表
        create_ChuKu_table_sql="""CREATE TABlE ChuKu(
                                Eno nvarchar(15),
                                Pno nvarchar(10),
                                Cdate nvarchar(15),
                                Pnum int not null,
                                primary key(Eno,Pno,Cdate),
                                foreign key(Eno)references Employee(Eno),
                                ON DELETE CASCADE
                                ON UPDATE CASCADE
                                foreign key(Pno)references Product(Pno),
                                ON DELETE CASCADE
                                ON UPDATE CASCADE
                                check(Pnum>0)
                             )"""
        #9.创建销售单
        create_Sale_table_sql="""CREATE TABLE Sale(
                                Pno nvarchar(10),
                                Sdate nvarchar(20),
                                Pnum int not null,
                                primary key(Pno,Sdate),
                                foreign key(Pno)references Product(Pno),
                                ON DELETE CASCADE
                                ON UPDATE CASCADE
                                check(Pnum>0)
                             )"""
        #10.创建采购单
        create_MaiProduct_table_sql="""CREATE TABLE MaiProduct(
                                       Eno nvarchar(15),
                                       Sname nvarchar(10),
                                       Pno nvarchar(10),
                                       Mdate nvarchar(20),
                                       Pnum int not null,
                                       primary key(Eno,Sname,Pno,Mdate),
                                       foreign key(Eno)references Employee(Eno),   
                                       ON DELETE CASCADE
                                       ON UPDATE CASCADE                                                                  
                                       foreign key(Sname)references Supplier(Sname),
                                       ON DELETE CASCADE
                                       ON UPDATE CASCADE
                                       foreign key(Pno)references Product(Pno),
                                       ON DELETE CASCADE
                                       ON UPDATE CASCADE
                                       check(Pnum>0)                             
                                    )
                                    """
        #11.创建退货单
        create_TuiProduct_table_sql="""CREATE TABLE TuiProduct(
                                       Eno nvarchar(15),
                                       Sname nvarchar(10),
                                       Pno nvarchar(10),
                                       Tdate nvarchar(20),
                                       Pnum int not null,
                                       primary key(Eno,Sname,Pno,Tdate),
                                       foreign key(Eno)references Employee(Eno),
                                       ON DELETE CASCADE
                                       ON UPDATE CASCADE
                                       foreign key(Sname)references Supplier(Sname),
                                       ON DELETE CASCADE
                                       ON UPDATE CASCADE
                                       foreign key(Pno)references Product(Pno),
                                       ON DELETE CASCADE
                                       ON UPDATE CASCADE
                                       check(Pnum>0)   
                                    )
                                    """
        #12.创建仓库表
        create_CangKu_table_sql="""CREATE TABLE CangKu(
                                   Pno nvarchar(15) primary key,
                                   Pnum int,
                                )
                                """
        #13.创建账户表
        create_Account_table_sql="""CREATE TABLE Account(
                                       Eno nvarchar(15),
                                       Apassword nvarchar(15)
                                    )
                                 """
        self.cur.execute(create_Product_table_sql)
        self.cur.execute(create_Wholeseler_table_sql)
        self.cur.execute(create_Supplier_table_sql)
        self.cur.execute(create_Guitai_table_sql)
        self.cur.execute(create_Online_vending_platform_sql)
        self.cur.execute(create_Employee_table_sql)
        self.cur.execute(create_Ruku_table_sql)
        self.cur.execute(create_ChuKu_table_sql)
        self.cur.execute(create_Sale_table_sql)
        self.cur.execute(create_MaiProduct_table_sql)
        self.cur.execute(create_TuiProduct_table_sql)
        self.cur.execute(create_Account_table_sql)
        self.connect.commit()
        print("创建成功!")

在这里插入图片描述
部分表展示:
在这里插入图片描述
在这里插入图片描述

授权:
在这里插入图片描述
在这里插入图片描述

2.程序

import pymssql
import os
class mainSystem:
    def __init__(self):
        print("欢迎使用真安心数码公司管理系统!");
        print("请输入您的用户名和密码:")
        while(1):
            try:
                self.userName=input("用户名:")
                self.password=input("密码:")
                self.connect=pymssql.connect(host='localhost',port=1433,user=self.userName,password=self.password,database='test',charset='utf8')
                self.cur=self.connect.cursor()
                os.system("cls")
                self.Menu()
                while(1):
                    try:           
                        option=int(input("请输入选项:"));
                        if option==1:
                            self.Accounts()
                        elif option==2:
                           self.Query()
                        elif option==3:
                           self.Add()
                        elif option==4:
                           self.Modify()
                        elif option==5:
                           self.Delete()
                        elif option==6:
                           self.GetSale()
                        elif option==7:
                           self.getCangKu()
                        elif option==8:
                           print("欢迎下次使用!")
                           return
                        else:
                            print("输入错误!")
                    except:
                        print("输入错误")
            except:
                print("用户名或密码错误,是否重新输入? Y/N")
                option=input();
                if option=="N":
                    return;
    def Menu(self):
        print("loading...")
        print("***********欢迎进入真安心数码公司管理系统!*****")
        print("***************下面是功能选项:*****************")
        print("*****************1.管理账户********************")
        print("*****************2.查询信息********************")
        print("*****************3.增添信息********************")
        print("*****************4.修改信息********************")
        print("*****************5.删除信息********************")
        print("*****************6.查看销售情况****************")
        print("*****************7.查看库存情况******************")
        print("*****************8.退出系统********************")
    def Accounts(self):
        try:
            sql="SELECT * FROM Account"
            self.cur.execute(sql)
            list=self.cur.fetchall()
            des=self.cur.description
            for item in des:
               print(item[0],"   ",end="")
            print()
            for row in list:
               print(row)
        except:
            print("您没有权限!")
            return
    def Query(self):
        try:
            table=input("请输入要查询的表的名称:")
            sql="SELECT * FROM %s"%(table)
            self.cur.execute(sql)
            list=self.cur.fetchall()
            des=self.cur.description
            for item in des:
               print(item[0],"   ",end="")
            print()
            for row in list:
               print(row)
        except:
           print("查询失败,不存在该表或者您没有权限!")
           return

    def Add(self):
        try:
            table=input("请输入您要增添信息的表:")
            sql="select * from %s"%(table)
            self.cur.execute(sql)
            insert_sql=''
            if table=='Product':
                Pno=input("Pno:")
                Ptype=input("Ptype:")
                Pbrand=input("Pbrand:")
                Pmodelnumber=input("Pmodelnumber:")
                PinPrice=int(input("PinPrice:"))
                PoutPrice=int(input("PoutPrice:"))
                ProDate=input("ProDate:")
                PassureDate=input("PassureDate:")
                Pfactory=input("Pfactory:")
                insert_sql="""INSERT INTO %s 
                          VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s')
                          """%(table,Pno,Ptype,Pbrand,Pmodelnumber,PinPrice,PoutPrice,ProDate,PassureDate,Pfactory)
                insert_CangKu_sql="""INSERT INTO CangKu
                              VALUES('%s','%s')
                              """%(Pno,0)
                self.cur.execute(insert_CangKu_sql)
                self.connect.commit()
            elif table=='Employee':
                Eno=input("Eno:")
                Ename=input("Ename:")
                Ephone=input("Ephone:")
                Eaddress=input("Eaddress:")
                Esex=input("Esex:")
                Eage=int(input("Eage:"))
                Edegree=input("Edegree:")
                Ecard=input("Ecard:")
                Eposition=input("Eposition:")
                Eidcard=input("Eidcard:")
                insert_sql="""INSERT INTO %s 
                          VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')
                          """%(table,Eno,Ename,Ephone,Eaddress,Esex,Eage,Edegree,Ecard,Eposition,Eidcard)
            elif table=='ChuKu':
                Eno=input("Eno:")
                Pno=input("Pno:")
                Cdate=input("Cdate:")
                Pnum=int(input("Pnum:"))
                insert_sql="""INSERT INTO %s
                           VALUES('%s','%s','%s','%s')
                           """%(table,Eno,Pno,Cdate,Pnum)
                update_sql="""UPDATE CangKu
                              set Pnum=Pnum-'%s'
                              where Pno='%s'
                           """%(Pnum,Pno)
                self.cur.execute(update_sql)
                self.connect.commit()
            elif table=='Guitai':
                Eno=input("Gno:")
                Ptype=input("Ptype:")
                Pbrand=input('Pbrand:')
                Gname=input("Gname:")
                insert_sql="""INSERT INTO %s
                           VALUES('%s','%s','%s','%s')
                           """%(table,Eno,Ptype,Pbrand,Gname)
            elif table=="MaiProduct":
                Eno=input("Eno:")
                Sname=input("Sname:")
                Pno=input("Pno:")
                Mdate=input("Mdate:")
                Pnum=int(input("Pnum:"))
                insert_sql="""INSERT INTO %s
                           VALUES('%s','%s','%s','%s','%s')
                           """%(table,Eno,Sname,Pno,Mdate,Pnum)
                update_sql="""UPDATE CangKu
                              set Pnum=Pnum+'%s'
                              where Pno='%s'
                           """%(Pnum,Pno)
                self.cur.execute(update_sql)
                self.connect.commit()
            elif table=="Online_vending_platform":
                Eno=input("Fno:")
                Fname=input("Fname:")
                Fphone=input("Fphone:")
                insert_sql="""INSERT INTO %s
                           VALUES('%s','%s','%s')
                           """%(table,Eno,Fname,Fphone)
            elif table=="RuKu":
                Eno=input("Eno:")
                Pno=input("Pno:")
                Rdate=input("Cdate:")
                Pnum=int(input("Pnum:"))
                insert_sql="""INSERT INTO %s
                           VALUES('%s','%s','%s','%s')
                           """%(table,Eno,Pno,Rdate,Pnum)
                update_sql="""UPDATE CangKu
                              set Pnum=Pnum+'%s'
                              where Pno='%s'
                           """%(Pnum,Pno)
                self.cur.execute(update_sql)
                self.connect.commit()
            elif table=="Sale":
                Pno=input("Pno:")
                Sdate=input("Sdate:")
                Pnum=int(input("Pnum:"))
                insert_sql="""INSERT INTO %s
                           VALUES('%s','%s','%s')
                           """%(table,Pno,Sdate,Pnum)
                update_sql="""UPDATE CangKu
                              set Pnum=Pnum-'%s'
                              where Pno='%s'
                           """%(Pnum,Pno)
                self.cur.execute(update_sql)
                self.connect.commit()
            elif table=="Supplier":
                Sname=input("Pno:")
                Sphone=input("Sdate:")
                Saddress=(input("Pnum:"))
                insert_sql="""INSERT INTO %s
                           VALUES('%s','%s','%s')
                           """%(table,Sname,Sphone,Saddress)
            elif table=="TuiProduct":
                Eno=input("Eno:")
                Sname=input("Sname:")
                Pno=input("Pno:")
                Tdate=input("Mdate:")
                Pnum=int(input("Pnum:"))
                insert_sql="""INSERT INTO %s
                           VALUES('%s','%s','%s','%s','%s')
                           """%(table,Eno,Sname,Pno,Tdate,Pnum)
                update_sql="""UPDATE CangKu
                              set Pnum=Pnum-'%s'
                              where Pno='%s'
                           """%(Pnum,Pno)
                self.cur.execute(update_sql)
                self.connect.commit()
            elif table=="Wholeseler":
                Wname=input("Pno:")
                Wphone=input("Sdate:")
                Waddress=(input("Pnum:"))
                insert_sql="""INSERT INTO %s
                           VALUES('%s','%s','%s')
                           """%(table,Wname,Wphone,Waddress)
            self.cur.execute(insert_sql)
            self.connect.commit()
            print("增添成功!")
        except:
            self.connect.rollback()
            print("增添失败,输入错误或者您没有权限!")
            return
    def Modify(self):
        try:
            table=input("请输入您要修改信息的表的名称:")
            update_sql=''
            if table=='Product':
                Pno=input("请输入您要修改的产品编号:")
                nPtype=input("Ptype:")
                nPbrand=input("Pbrand:")
                nPmodelnumber=input("Pmodelnumber:")
                nPinPrice=int(input("PinPrice:"))
                nPoutPrice=int(input("PoutPrice:"))
                nProDate=input("ProDate:")
                nPassureDate=input("PassureDate:")
                nPfactory=input("Pfactory:")
                update_sql="""UPDATE %s
                              set Ptype='%s',Pbrand='%s',Pmodelnumber='%s',PinPrice='%s',PoutPrice='%s',Pnum='%s',ProDate='%s',PassureDate='%s',Pfactory='%s'
                              where Pno='%s'
                            """%(table,nPtype,nPbrand,nPmodelnumber,nPinPrice,nPoutPrice,nProDate,nPassureDate,nPfactory,Pno)
            elif table=='Employee':
                Eno=input("请输入您要修改员工的编号:")
                nEname=input("Ename:")
                nEphone=input("Ephone:")
                nEaddress=input("Eaddress:")
                nEsex=input("Esex:")
                nEage=int(input("Eage:"))
                nEdegree=input("Edegree:")
                nEcard=input("Ecard:")
                nEposition=input("Eposition:")
                nEidcard=input("Eidcard:")
                update_sql="""UPDATE %s
                              set Ename='%s',Ephone='%s',Eaddress='%s',Esex='%s',Eage='%s',Edegree='%s',Ecard='%s',Eposition='%s',Eidcard='%s'
                              where Eno='%s'
                           """%(table,nEname,nEphone,nEaddress,nEsex,nEage,nEdegree,nEcard,nEposition,nEidcard,Eno)
            self.cur.execute(update_sql)
            self.connect.commit()
            print("修改成功!")      
        except:
            self.connect.rollback()
            print("修改失败,存在约束或输入错误或者您没有权限!")
            return;
    def Delete(self):
        try:
            table=input("请输入您要删除信息的表的名称:")
            sql="SELECT * FROM %s"%(table)
            self.cur.execute(sql)
            list=self.cur.fetchall()
            des=self.cur.description
            print("删除前:")
            for item in des:
                print(item[0],"  ",end="")
            print() 
            for row in list:
                print(row)
                
            if table=="Product":
                Pno=input("请输入您要删除的产品的编号:")
                delete_sql="""DELETE FROM %s
                              where Pno='%s'
                            """%(table,Pno)
            if table=="Employee":
                Eno=input("请输入您要删除的员工的编号:")
                delete_sql="""DELETE FROM %s
                              where Eno='%s'
                           """%(table,Eno)
            if table=="Account":
                Aname=input("请输入您要删除的账户名:")
                delete_sql="""DELETE FROM %s
                              where Aname='%s'
                           """%(table,Aname)
            self.cur.execute(delete_sql)
            self.connect.commit()
            print("删除成功!")
            print("删除后:")
            self.cur.execute(sql)
            list=self.cur.fetchall()
            for item in des:
                print(item[0],"  ",end="")
            print()
            for row in list:
                print(row)
        except:
            self.connect.rollback()
            print("删除失败,存在约束或不存在满足要求的信息或者您没有权限!")
            return;
    def GetSale(self):
        try:
            sql="""select Pno,SUM(Pnum) SumNum
               from Sale
               group by Pno
               order by SumNum DESC
               """
            self.cur.execute(sql)
            list=self.cur.fetchall()
            des=self.cur.description
            for item in des:
               print(item[0],"        ",end="")
            print() 
            for row in list:
               print(row)
            print("编号"+list[0][0]+"产品销量最好,建议加大进货量!")
            print("编号"+list[len(list)-1][0]+"产品销量最差,建议控制进货量!")
        except:
            print("您没有权限!")
            return
    def getCangKu(self):
        try:
            sql="""select *
               from CangKu
               """
            self.cur.execute(sql)
            list=self.cur.fetchall()
            des=self.cur.description
            for item in des:
               print(item[0],"        ",end="")
            print() 
            for row in list:
               print(row)
            sql="""select Pno
                   from CangKu
                   where Pnum=0
                """
            self.cur.execute(sql)
            list=self.cur.fetchall()
            print("以下产品库存为0!!!,请尽快进货!")
            for row in list:
                print(row[0],end=' ')
            print()
        except:
            print("您没有权限!")
            return
    #('2021008', '投影仪', '极米', 'NEW-Z6X', 3800, 4399, 580, '2021-06-13', '5年', '极米有限公司')

s=mainSystem()


    
        

六、数据库运行和维护阶段

登录界面

在这里插入图片描述

扫描二维码关注公众号,回复: 14748092 查看本文章

在这里插入图片描述

功能菜单

在这里插入图片描述

管理账户

在这里插入图片描述

查询信息

在这里插入图片描述

增添信息

在这里插入图片描述

修改信息

在这里插入图片描述

删除信息

在这里插入图片描述

查看销售情况

在这里插入图片描述

查看库存情况

在这里插入图片描述

七、心得体会

通过几周的学习和讨论,我们小组终于完成了真安心数码公司数据库系统的制作,倍感自豪。在这个过程中我们深刻体会到了学以致用的快乐和团结协作的默契。虽然在课堂上学了很多理论知识,但是当第一次将理论用于实践大项目当中时,还是会出现很多问题,许多细节瑕疵暴露无遗,在一遍遍报错、一条条追溯、一次次调试中走向了胜利。
这个数据库实验项目对我们的收获还是很大的,在这个过程中我们体会到了数据库系统设计过程的整体流程和细节实现。从各种文档的阅读到开始的需求分析、概念结构设计、逻辑结构设计、物理结构设计。亲身体验了一回系统的设计开发过程。很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。但真正需要自己想办法去设计一个系统的时候才发现其中的难度。经常做到后面突然就发现自己一开始的设计有问题,然后又回去翻工,在各种反复中不断完善自己的想法。由于是选题进行实现,所以我们必须重视需求的提出,因为一开始我们小组对于需求没有明确的提出,导致起步阶段总是推倒重来,所以在进行数据库设计时要先明确需求,对数据库的整体设计方向、各个模块设计之间的联系都要了然于心,意见要达成统一,以免做无用功推倒重来。团队之间的沟通非常重要,特别是当数据库各模块进行合并的时候,一定要加强沟通,可以极大地提高效率,完成任务。
感谢老师给予我们这个机会来进行实践,在这个过程中,我们学会了许多课本上没有的很实用的知识,也把之前模棱两可的知识点理解透彻了,也发现了之前的一些错误理解并及时进行了纠正,互相鼓励,不断地进行大量的实践,通过不断地自学,不断地发现问题、思考问题、进而解决问题。
对于刘老师的课堂,我们也甚是喜欢,我们两个永远地记住了刘老师的“随心所欲、为所欲为”。不仅是在课堂可以稍作讨论来进行休息的随心所欲,也是老师的和蔼可亲善于倾听的心性让我们可以为所欲为地畅谈,更是在学会了数据库理论知识并将其用于实践当中来进行“随心所欲、为所欲为”的硬核能力。
刘老师的课堂不同于传统的照本宣科课堂,每一个重难点都有老师生动形象的举例、讲解,不但令我们理解这个重难点,还令我们印象深刻、入木三分。刘老师的和蔼可亲是他的一面招牌,每次看到刘老师和蔼可亲的笑容,我们的学习热情都能被点燃引炸。可以说,刘老师是一个有魔力的人,是一位能让我们真正喜欢去自主学习的优秀教师!

猜你喜欢

转载自blog.csdn.net/weixin_55085530/article/details/122199862