数据库课程设计--公交车管理系统总结(Qt学习小结)

本文是关于数据库课程设计的一个总结,作者使用Qt实现了公交车管理系统的图形界面,包括去边框、自定义窗口背景、welcome界面、数据库连接与可视化、增删改查功能。遇到的问题如界面拖拽移动、背景设置等都得到了解决,尽管在多表切换与修改策略上存在一些疑问。
摘要由CSDN通过智能技术生成

开学有课设的要求,大家都一顿网上源码download,有的出钱买,但是下载的有的调试不好,或者做的太牛批了不敢用,为了温习一下Qt,自己亲手写了一个,幸亏老师比较仁慈,作品比较low但也过了,在此做一下课设的总结。

一、编程语言

做数据库的可视化的话,很多语言都能做,我们的课程要求是JDBC,也就是java数据库,但是大多数的老师应该都允许使用自己熟悉或者喜欢的语言。

我周围的人课设用的语言如下:

  • Java
  • Qt
  • Python
1、java

Java做图形界面的话无疑需要使用swing,一个比较好的插件是windowbuilder,需要的可以自行安装,效果就是可以自行拖拽按钮等控件来对图形界面进行设计:
在这里插入图片描述

2、Qt

Qt是基于C++语言进行开发的,使用MinGW进行编译运行的,Qt 的项目有ui文件,也可以直接对需要使用的容器和控件等进行拖拽来进行图形界面的设计:
在这里插入图片描述

3、Python

Python图形界面可以使用pyQt,为什么叫pyqt呢,因为使用的模式和机制和qt的完全一样,应该说是用Python语言来实现Qt,需要安装模块pyqt5和pyqt5-tools,pyqt5-tools里面有designer可以对图形界面进行设计:
在这里插入图片描述Qt和Java我都试过,但是作为以前使用c++比较多的情况下,感觉Qt更好用一点,也有朋友说Java难用,具体怎样可以去试试,总有一款适合自己。

二、作品效果

上传限制5M。。。弄了两个gif
在这里插入图片描述
在这里插入图片描述

三、遇到的问题及解决办法

1、去边框

做了一个登陆界面,但是一般的界面框都是有边框的,下面是一个最简单的界面:
在这里插入图片描述
想要的效果是把这个边框去掉,这样就变成了两个问题:

  • 去边框
  • 界面的拖拽移动(因为想要用鼠标移动界面需要拖动边框,去边框之后设置成无论拖拽哪里都可以移动界面)

解决方案:

//所需要的头文件要include
#include <QMouseEvent>
-------------------------------------------------------------------
//去边框
setWindowFlags(Qt::FramelessWindowHint); 
//setAttribute(Qt::WA_TranslucentBackground);//背景透明    这个用不到,不用透明

//拖拽:
void Widget::mouseMoveEvent(QMouseEvent *event)
{
   
    if (m_bPressed)
        move(event->pos() - m_point + pos());
}

void Widget::mouseReleaseEvent(QMouseEvent *event)
{
   
    Q_UNUSED(event);
    m_bPressed = false;
}

void Widget::mousePressEvent(QMouseEvent *event)
{
   
    if (event->button() == Qt::LeftButton)
    {
   
        m_bPressed = true;
        m_point = event->pos();
    }
}

2、窗口背景

用label也应该可以实现,但是label需要在最底层,而且上层控件的背景色都要是透明的,不是太方便,实现办法:

//需要的头文件
#include<QPalette>
#include <QPixmap>
数据库公交车管理系统课程设计 课程设计 课题题目: 公交车管理系统 学 部: 理工学部 专 业: 班 级: 学 号: 姓 名: 指导老师: 例如: 1. 数据库设计(全局E-R图及各表) 例如: Bus(车辆信息表): "主码 "列名 "数据类型 "宽度 "小数位 "空否 "取值范围 "备 注 " "Pk "Cid "char "5 " "N " "公交车编号 " "外码 "id "char "5 " "N " "司机编号 " " "Nid "Char "10 " "N " "路线编号 " " "leixing "Char "5 " "N " "车辆类型 " " "nian "Int "5 " "N " "使用年限 " " "time "Datetime "1 " "N " "购买时间 " siji表: "主码 "列名 "数据类型 "宽度 "小数位 "空否 "取值范围 "备 注 " "Pk "id "char "5 " "N " "司机编号 " " "mingzi "char "5 " "N " "司机名字 " " "xingbie "Char "10 " "N " "司机性别 " " "age "Char "5 " "N " "年龄 " " "Age2 "Int "5 " "N " "驾龄 " (注意各表有无联系) 2. 系统实现(各页面及描述) 建立siji表: 建立bus表: 增加: 修改: 删除: 单表查询: 多表查询: 嵌套查询: 3. 小结(心得体会) 通过这次课程设计,我学到了如何运用SQL2008实现各种增加删除和修改功能,丰富自己 的知识并且提高对SQL等软件的实际操作能力。使我们对已经学习过的数据库课程的进一 步的掌握,对知识进行最大程度的消化融汇。因此这次的课程设计对我们来说具有非常 重要的作用:为以后学生工作做必要的准备和实践,提高自身对数据库开发的能力。 此次设计的公交车管理系统,虽然简单,但是却十分实用,极大的方便了用户对公交车 信息和线路的操作,节省了大量的工作量。对以后开发各种数据库积累了宝贵的经验。 4. 开发工具和参考文献 操作系统:Window7 软件配置:Microsoft SQL Server 2008 数据库配置:Microsoft SQL Server 2008 在PC机中新建数据库,建立各个数据表 、关系图 数据库系统概论(第五版)作者:王珊 5. 源程序清单 建表 建立bus 表: CREATE table bus (cid char(10)not null primary key, id char(10)not null, Nid char(10)not null, leixing char(10)not null, nian char(10)not null, time DATETIME not null primary key cid foreign key (id) references siji(id) ); 建立siji表: CREATE table siji (id char(10)not null primary key, mingzi char(10)not null, xingbie char(2)not null, age int not null, age2 char(5)not null, constraint C1 check(age>=25 and age2>=5), tel char(12) not null) 增加数据到bus表中 insert into bus(cid,id,nid,leixing,nian,time) values('1','1','1','单层公车,'8','2016 06 01'); insert into bus(cid,id,nid,leixing,nian,time) values('2','2,'2','单层公车,'5','2016 06 01'); insert into bus(cid,id,nid,leixing,nian,time) values('3','3','3','双层公车,'8','2016 06 01'); 删除数据: delete from bus where id='1'; 修改数据: update bus set nian=10 where id='1'; 单表查询: select cid,id,nid,leixing,nian,time from bus where id=1; 多表查询: select cid,xingbie from bus,siji where bus.id=siji.id and age='30'; 嵌套查询: select Nid from bus where
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值