精华内容
下载资源
问答
  • 以下选项中,不是Python语言保留字的是:()大气对太阳辐射的减弱作用有()。A:散射B:吸收C:逆辐射D:反射护理礼仪的特点不包括()。A:操作性B:服从性C:灵活性D:专业性E:强制性土壤温度高,水分适宜,植物残体容易进行...

    以下选项中,不是Python语言保留字的是:()

    大气对太阳辐射的减弱作用有()。A:散射B:吸收C:逆辐射D:反射

    护理礼仪的特点不包括()。A:操作性B:服从性C:灵活性D:专业性E:强制性

    土壤温度高,水分适宜,植物残体容易进行矿质化。A:错B:对

    哺乳期妇女最佳避孕方式是()A:阴茎套B:口服避孕药C:宫内节育器D:安全期避孕

    关于小叶性肺炎的描述正确的是A:病变进展比较缓慢B:病变以细支气管为中心分布C:病变以两肺下叶和背侧多见D:可并发于某些麻疹之后

    世界观决定人生观。有什么样的世界观,就会有什么样的人生观。A:对B:错

    ()是一个人成长的重要A:遇事争斗B:斤斤计较C:稳定的情绪D:激烈的反应

    通常股价突破中级支撑与阻力,可视为______反转信号。A:长期趋势B:中级行情C:次级行情D:水平轨道

    Thegroundstateofcarbonis()A:3P2B:3P0C:3S1D:1D2

    极移使地面上各点的纬度、经度和方位角都不会发生变化。A:错B:对

    已知R1=R2=R3=200Ω,并且R2的抽头处于中点,则Uo=A:-20VB:10VC:-10VD:20V

    本科阶段几年级可赴国外大学交流学习?A:二年级B:一年级C:四年级D:三年级

    下肢力量练习能改善下肢循环,预防下肢静脉曲张。A:错B:对

    在excel中既可以按行排序,也可以按列排序。A:对B:错

    有关核仁的描述错误的是A:细胞在G2期核仁消失B:核仁的主要功能之一是参与核糖体的生物合成C:rDNA定位于核仁区内D:细胞在M期末和S期重新组织核仁

    数学课中不仅需要精确的数字也需要人文背景。A:错B:对

    有下列程序段,程序段运行后的输出结果##2##3##4##5()。intk;for(k=2;k<6>

    下列关于多周期库存描述正确的是()。A:可分为独立需求库存和相关需求库存两种形态B:具有物品生命周期短和偶发性的需求特征C:在长时间内需求反复发生需要不断补充库存D:很少重复订货E:也叫一次性订货

    葡萄球菌引起疾病有A:猩红热B:霍乱C:副伤寒D:化脓性炎症E:伤寒

    请判断以下译文是否正确。进入车厢译文:прийтиввагонA:错B:对

    质量是指产品或服务满足顾客需求的程度A:对B:错

    洋务派代表人物主要包括()。A:李鸿章B:曾国藩C:张之洞D:奕?E:左宗棠

    石油无机成油理论的岩浆说是下列哪位科学家提出来的()A:门捷列夫B:索可洛夫C:库德梁采夫D:高尔德

    资本有机构成提高,会使资本产出比上升。A:错B:对

    盐差能是以热能形式出现的海洋能。A:对B:错

    结核分枝杆菌常用的培养基是()A:庖肉培养基B:亚碲酸钾血琼脂培养基C:巧克力色血琼脂培养基D:罗氏(Lowenstein)培养基E:沙氏(Sabouraud)培养基

    据对全球领先物流公司经营模式的分析,可将国外物业经营类型与业态粗略归结为以下哪几种A:由大型制造企业物流部门发展起来的物流企业B:由零售业、批发商发展起来的物流企业C:由交通运输、邮电产业发展起来的物流企业

    加工饼干、糕点等面制品需要用高蛋白含量的面粉。A:对B:错

    对大多数人来说,金钱具有较高的激励性。A:错B:对

    无政府主义属于极右翼的意识形态。A:对B:错

    下列哪些不是经济人假设的特征?()A:完全意志力B:有限意志力C:完全自利D:完全理性

    孟德尔利用豌豆做试材,抓住粒部性状来研究遗传变异规律。他在15株杂种一代的自交株上共收到556粒种子,分成4种类型,这些种子即是F1A:对B:错

    禅宗是影响日本园林的重要文化,作为禅宗文化反应在园林中代表的“枯山水”在现代造园中也成为了常用的元素,禅宗庭园出现在哪个时期呢?A:镰仓时期B:平安时期C:江户时期D:奈良时期

    强制要求妇女55岁退休、男性60岁退休,是对妇女权利的保护。A:错B:对

    古希腊建筑是三角、圆柱与四方体等几何构造的叠加,各种柱式的高度、宽度与厚度有严格的比例要求,体现了古希腊当时在几何、物理等学科上所取得的成就。A:对B:错

    发展心理学是研究()A:个体从出生到衰老的心理的发生发展主要是儿童心理的发展B:学前儿童教育的规律C:学前儿童心理发展的一般规律D:正常的、成熟了的人的心理活动

    试判断下列化合物的逆合成步骤合理吗?A:对B:错

    稀土元素的共性是()。A:物理性质相似B:离子半径相近C:原子结构相似D:化学性质相似

    企业应采用间接法列示投资活动和筹资活动的现金流量。A:错B:对

    总结按时间的标准可分为()A:季度总结B:年度总结C:生产总结D:月份总结

    下列被判处拘役、三年以下有期徒刑的犯罪分子属于应当缓刑的是()A:怀孕的妇女B:未满18周岁人C:已满75周岁的人D:有悔罪表现的人

    在防伪溯源系统中,属于数据采集技术的是:()A:通过网络消费者可查询所购买食品的完整追踪信息。B:利用RFID的优势特性达到对食品的安全与追溯的管理相比记录档案追溯方式具有高效、实时、便捷。C:数据能够通过网络实现实时、准确报送便于快速高效做更深层次的分析研究。D:在食品供应链中提供完全透明的管理能力保障食品安全全程可视化控制、监控与追溯并可对问题食品招回。可以对有可能出现的食品安全隐患进行有效评估和科学预警提供依据。

    悲剧是对一个严肃、完整、有一定长度的()的模仿。A:人物B:行为C:场景D:行动

    土壤保墒措施有()。A:覆盖B:浇水C:翻耕与松土D:镇压

    记忆过程包括以下几个基本环节______。A:识忆、保持和遗忘B:识记和保持、再认和回忆C:再认和回忆D:保持和遗忘

    快速排序的速度在所有排序方法中为最快,而且所需附加空间也最少。A:对B:错

    有效控制的原则()A:控制必须具有明确的目的性B:控制应具有及时性C:控制应同计划和组织相适应D:控制应具有灵活性E:控制的科学性

    展开全文
  • Public Class form1  Dim x As Single = 0  Dim y As Single = 0    Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ...

    Public Class form1

        Dim x As Single = 0

        Dim y As Single = 0

     

        Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

            x = Me.Width

            y = Me.Height

            setTag(Me)

        End Sub

      '得到现在窗体的大小,然后根据原始大小计算缩放比例

        Private Sub form1_Resize(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Resize

            Dim newx As Single = Me.Width / x

            Dim newy As Single = Me.Height / y

            setControls(newx, newy, Me)

        End Sub


        '递归取控件的原始大小和位置,用tag来纪录

        Private Sub setTag(ByVal obj As Object)

            For Each con As Control In obj.Controls

                con.Tag = con.Width & ":" & con.Height & ":" & con.Left & ":" & con.Top & ":" & con.Font.Size

                If con.Controls.Count > 0 Then'如果是容器控件,则递归继续纪录

                      setTag(con)

                End If

            Next

        End Sub

        '递归重新设定控件的大小和位置

        Private Sub setControls(ByVal newx As SingleByVal newy As SingleByVal obj As Object)

            For Each con As Control In obj.Controls

                con.AutoSize = False

                Dim mytag() As String = con.Tag.ToString.Split(":")

                con.Width = mytag(0) * newx

                con.Height = mytag(1) * newy

                con.Left = mytag(2) * newx

                con.Top = mytag(3) * newy

                Dim currentSize As Single = (mytag(1) * newy * mytag(4)) / mytag(1)  '计算字体缩放比例,缩放字体

                con.Font = New Font(con.Font.Name, currentSize, con.Font.Style, con.Font.Unit)

                If con.Controls.Count > 0 Then                                                                                                                  

                    setControls(newx, newy, con)

                End If

            Next

        End Sub

       End Class

    展开全文
  • 数据库课程设计-KTV点歌系统VB.net 窗体,MySQL5.5)

    千次阅读 多人点赞 2021-01-13 17:41:30
    数据库课程设计-KTV点歌系统VB.net 窗体,MySQL5.5) A 目录 *引言* 《数据库系统课程设计》是计算机学院的实践课程。在较为系统地学完《数据库系统》后,通过此课程设计,一方面可以增强对数据库的理解;另一...

    分享一下学期做的数据库课程设计,记录和交流~

    附代码资源:

    数据库课程设计-KTV点歌系统(VB.net 窗体,MySQL5.5)

    A 目录

    image.png

    image.png

    *引言*

    《数据库系统课程设计》是计算机学院的实践课程。在较为系统地学完《数据库系统》后,通过此课程设计,一方面可以增强对数据库的理解;另一方面可以培养查找资料、分析问题和解决问题的能力。关系数据库设计过程分为以下5个阶段:需求分析、概念模式设计、逻辑模式设计、数据库实施、数据库运行维护。也就是说,数据库的设计过程是先进行认真细致的需求分析,在清楚用户的要求后抽象出实体和实体之间的关系,用建模方法E-R 图表示出来,然后根据具体实施的 DBMS 平台将其转换为相应平台所支持的数据库逻辑模式并进行规范化处理,最后进行建库建标等物理模式的设计,从而完成整个数据库模式的设计过程。本次课程设计是对KTV点歌系统的设计,设计过程也严格遵循以上5个阶段。在设计完成的数据库中,应具备以下功能:对会员用户而言,登录到前台点歌系统后可以根据歌曲编号、歌手姓名、歌曲拼音缩写或歌曲名称检索歌曲,用户点击歌曲即可将歌曲加入到我的歌单中。进入播放列表后可以实现播放我的歌单中的歌曲,同时可以移除所选歌曲、清空我的歌单、暂停播放和重新播放等功能。在开始点歌窗口,用户还可以进入歌曲排行榜对歌曲的点播热度进行查询,同时也可以在歌曲排行榜中将歌曲添加到我的歌单中。每当一首歌被添加进我的歌单中时,歌曲的总点击率便会加1;对于系统管理员而言,登录到KTV后台管理系统后可以对用户信息、歌曲信息和歌手信息进行添加、删除、查询、更新等操作。同时设置超级管理员,若管理员拥有超级管理员权限则可以对系统所有的管理员信息进行管理。也就是,数据库的设计应该具备基本的增删改查功能。在第一部分,我们将介绍KTV点歌系统的设计背景、设计意义和设计内容。第二部分是本报告的重点,基于KTV点歌系统,对数据库设计的5个阶段,即需求分析、概念模式设计、逻辑模式设计、数据库实施、数据库运行与维护。

    **
    **

    第1章 *概述*

    1.1 数据库设计背景

    由于经济文化的高速发展,人们对生活质量及工作环境的要求也越来越高,追求也越来越高。同时,随着生活节奏的加快,每个人都处于忙碌的社会当中,不论是在家庭,工作场所,或是学校,无时无刻充满着生活和学习上的压力。工作之余,找到一种释放压力,释放疲劳的娱乐方式,已成为大家共同的愿望。

    然而,受到工作条件和时间的限制,越来越多的人们选择了去KTV厅唱K休闲娱乐。唱歌,自然免不了点歌的繁琐。传统的点歌设备主要是CD 和固放设备组成,虽然基本满足了人们的需求,但是也带来了设备成本高,点歌过程繁琐,更新麻烦等不少问题。随着科学的发展和信息时代的到来,点歌系统应运而生,KTV点歌系统已经成为了娱乐场所必不可少的一部分。KTV点歌系统不仅简化了用户操作,而且极大化满足了人们的需求和使用习惯。

    1.2 数据库设计意义

    KTV点歌系统是娱乐场所的一项管理措施,因此开发KTV点歌系统具有较大的社会意义,同时点歌系统是一娱乐软件的开端,它具有简单的软件特征,系统结构与现实生活紧密结合,具体直观,具有典范的便捷软件特点。KTV点歌系统主要用于对音乐的各项查找,操作简单,直观。用起来极为方便。减少了手工操对工作人员带来的不便和繁琐,使每个用户都能根据自己爱好选择自己喜欢的音乐。因此,KTV点歌系统是企业化、智能化、科学化、正规化不可缺少的管理软件。

    1.3 数据库设计内容

    运用所学的数据库技术理论知识,对KTV点歌系统进行数据库设计。设计应包含需求分析、概念模式设计、逻辑模式设计、数据库实施、数据库运行和维护五个阶段。本次KTV点歌系统的开发主要包含前台点歌系统和后台管理系统模块的开发。

    前台点歌系统包含以下功能:

    l 歌曲点播(包含歌星点歌、数字点歌、拼音点歌、歌名点歌、全部歌曲)

    l 歌曲排行榜。

    l 将选中的歌曲添加至播放列表并进行播放。

    l 用户使用用户名和密码登录。

    l 用户积分查询和密码修改。

    后台管理系统包含以下功能:

    l 用户信息管理(增加、删除、更新、修改用户信息)。

    l 歌曲信息管理(增加、删除、更新、修改歌曲信息)。

    l 歌手信息管理(增加、删除、更新、修改歌手信息)。

    l 超级管理员可以对管理员信息进行管理。

    l 管理员密码修改。

    *1.4* *相关技术介绍*

    下面对使用的RDBMS、应用程序开发环境、系统运行环境、开发工具及版本作简单的介绍。

    *1.4.1* *RDBMS********:********Mysql*

    关系数据库管理系统(Relational Database Management System:RDBMS)是指包括相互联系的逻辑组织和存取这些数据的一套程序 (数据库管理系统软件)。关系数据库管理系统就是管理关系数据库,并将数据逻辑组织的系统。

    常用的关系数据库管理系统产品是Oracle、IBM的DB2和微软的SQL Server。而本次课程设计采用的是MySQL 5.5。

    image.png

    图1-1 MySQL5.5 运行环境

    *1.4.2 可视化管理工具:SQLyog*

    SQLyog 是一个快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库,由业界著名的Webyog公司出品。使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库。

    image.png

    图1-2 SQLyog 可视化管理工具

    *1.4.3* *系统运行环境*

    操作系统:Windows10

    image.png

    图1-3 系统信息

    *1.4.4* *应用程序开发环境********:********Visual Studio 2019*

    Visual Studio 2019正式版是在4月2日发布的微软神级开发工具。默认安装Live Share代码协作服务,帮助用户快速编写代码的新欢迎窗口、改进搜索功能、总体性能改进;Visual Studio IntelliCode AI帮助;更好的Python虚拟和Conda支持;以及对包括WinForms和WPF在内的.NET Core 3.0项目支持等 。

    image.png

    图1-4 Visual Studio 2019开发环境

    *第2章 KTV点歌系统的设计*

    本次对于KTV点歌系统的设计,应该包含以下5个阶段:需求分析、概念模式设计、逻辑模式设计、数据库实施、数据库运行和维护,如图2-1所示。

    image.png

    *2.1* *需求分析*

    KTV点歌系统是娱乐场所的一项管理措施,因此开发KTV点歌系统具有较大的社会意义,同时点歌系统是一娱乐软件的开端,它具有简单的软件特征,系统结构与现实生活紧密结合,具体直观,具有典范的便捷软件特点。KTV点歌系统主要用于对音乐的各项查找,操作简单,直观。用起来极为方便。减少了手工操对工作人员带来的不便和繁琐,使每个用户都能根据自己爱好选择自己喜欢的音乐。因此,KTV点歌系统是企业化、智能化、科学化、正规化不可缺少的管理软件。

    *2.1.1* *信息需求*

    1、歌手信息:歌手编号、姓名、姓名拼音缩写、性别、出生日期、国籍。

    2、歌曲信息:歌曲编号、名称、歌曲拼音缩写、歌手编号、语种、歌曲类型、歌曲时长、歌曲存储路径。

    3、歌曲排行版:歌曲编号、歌曲名称、总点击率。

    4、我的歌单:歌曲编号、歌曲名称。

    5、会员信息:会员编号、会员姓名、会员性别、出生日期、身份证号、注册时间、会员密码、积分。

    6、管理员信息:管理员编号、管理员用户名、管理员密码。

    7、超级管理员:超级管理员编号、超级管理员用户名、超级管理员密码。

    8、后台操作记录:操作编号、操作内容、操作时间、操作人员、备注。

    *2.1.2* *功能需求*

    根据以上8个表的属性,可以总结出,设计出来的数据库应该面向用户和管理员。对于用户,需要会员账号和密码登入前台点歌系统,进入后可以查询个人账户的积分以及修改账户密码。还可通过多种方式进行歌曲点播,如根据演唱歌星的名字、歌曲名称编号、歌曲名称拼音缩写以及歌曲名称等检索歌曲。同时,可以查看歌曲排行榜信息。对于管理员,可使用管理员编号和密码进行登入后台操作系统,其进入后可对歌曲、歌手以及会员用户信息进行各类操作,如增加、删除、更新、修改等,也可以修改管理员账号的密码。同时,设置超级管理员,其可使用超级管理员的账号密码进入管理员信息管理系统对管理员信息进行各类操作。

    上面表的结构关系较为混乱,如果没有进行必要的修改,将导致数据余、修改异常、插入异常、删除异常等情况,所以接下来将根据需求分析所需要的功能做后续的分析与设计,图2-1为KTV点歌系统结构图:

    image.png

    图2-1 KTV点歌系统结构图

    *2.1.3* *安全性与完整性需求*

    1、数据库应该面向用户和管理员。

    2、用户需要会员账号和密码才能登入前台点歌系统,进入后可以查询个人账户的积分以及修改账户密码。还可通过多种方式进行歌曲点播,如根据演唱歌星的名字、歌曲名称编号、歌曲名称拼音缩写以及歌曲名称等检索歌曲。

    3、管理员需要使用管理员编号和密码进行登入后台操作系统,其进入后可对歌曲、歌手以及会员用户信息进行各类操作,如增加、删除、更新、修改等,也可以修改管理员账号的密码。

    4、每个用户由会员编号唯一标识,用户编号由系统按顺序生成;用户名不能与其他用户相同且只能由数字和字母组成;用户的密码不允许为空;出生日期、注册时间必须是在合理范围;会员性别非男即女;系统自动记录注册日期;

    4、每个用户由会员编号和会员姓名唯一标识;系统自动记录操作记录;添加歌曲使用默认的歌曲路径。

    5、每首歌曲由歌曲编号、名称、歌手编号唯一标识;系统自动记录歌曲上传时间;系统自动设置歌曲相对路径。

    6、设置超级管理员,其可使用超级管理员的账号密码进入管理员信息管理系统对管理员信息进行各类操作。

    *2.1.4* *数据流图*

    image.png

    图2-2 首层数据流图

    图2-3 0层数据流图

    图2-4 1层数据流图

    图2-5 1层数据流

    图2-6 1层数据流图

    *2.1.5* *数据字典*

    *1. 数据项*

    *数据项名**数据类型**数据长度**取值范围**简述*
    会员编号整型4位0~ 2^31-1惟一标识用户身份
    会员姓名字符型10位只能由数字和字母组成用户名唯一,用户登录时的用户名
    会员性别字符型1位男|女
    出生日期日期8位1900.1至今
    身份证号字符型20位合法身份证
    注册时间日期8位1900.1至今用户注册的时间
    积分字符型30位合法邮箱地址
    会员密码字符型20位
    歌曲编号整型10位
    歌曲名称字符型20位
    歌曲编号整型10位
    歌手姓名字符型10位
    语种字符型10位
    歌曲类型字符型10位
    歌曲时长字符型10位
    歌曲储存路径字符型30位
    歌手编号整型10位0~ 2^31-1
    姓名拼音缩写字符型10位歌手姓名的拼音缩写
    歌手性别字符型10位男|女
    歌手出生日期字符型10位1900.1至今
    国籍字符型10位
    管理员编号整型10位0~ 2^31-1
    管理员用户名字符型10位
    管理员密码字符型10位
    超级管理员编号整型10位
    超级管理员用户名字符型10位
    超级管理员密码字符型10位
    操作编号整型10位0~ 2^31-1
    操作内容字符型30位
    操作时间日期8位
    操作人员字符型10位操作用户身份
    备注字符型50位

    *2. 数据结构*

    *名称**含义**组成*
    用户信息用户的基本信息会员编号、会员姓名、会员性别、出生日期、身份证号、注册时间、会员密码、积分
    歌手信息歌手的基本信息歌手编号、姓名、姓名拼音缩写、性别、出生日期、国籍
    歌曲信息歌曲的基本信息歌曲编号、名称、歌曲拼音缩写、歌手编号、语种、歌曲类型、歌曲时长、歌曲存储路径
    歌曲排行榜歌曲点击率排行歌曲编号、歌曲名称、总点击率
    我的歌单已点的歌曲歌曲编号、歌曲名称
    会员信息用户的基本信息会员编号、会员姓名、会员性别、出生日期、身份证号、注册时间、会员密码、积分
    管理员信息管理员的基本信息管理员编号、管理员用户名、管理员密码
    超级管理员超级管理员的基本信息超级管理员编号、超级管理员用户名、超级管理员密码
    后台操作记录后台操作记录操作编号、操作内容、操作时间、操作人员、备注

    *3. 数据流*

    部分 数据流

    名称点歌
    含义用户点歌
    来源歌曲信息表
    去向我的歌单、歌曲排行榜
    组成歌曲编号、名称、歌曲拼音缩写、歌手编号、语种、歌曲类型、歌曲时长、歌曲存储路径

    4. *数据存储*

    部分

    *5. 数据处理*

    *2.2* *概念结构设计*

    直接把现实世界事务及其联系抽象为数据世界的数据模型过于复杂,因此一般是先将现实世界的事务及其联系抽象为信息世界实体及其联系,然后再将其转化为计算机世界的数据模型,如关系数据模型。

    概念模式设计主要任务是完成对需求分析报告中描述现实世界的建模,即用一种数据模型来实现对现实世界的抽象表达。这种建模与具体的机器、DBMS 无关,是现实世界到信息世界的第一层抽象,所用的数据模型是用户与数据库设计人员之间进行交流的最重要的某种语言或表示方法。因此,用于表达概念模式的数据模型一方面应该具有较强的语义表达能力,能够方便、直接地表达实际应用中的各种语义知识,另一方面它还应该简单、清晰、易于用户理解。常用的数据模型就是实体‐联系模型(E‐R模型)。

    *2.2.1 概念模型*

    *(********1********)* *实体及属性*

    KTV点歌系统涉及以下几个实体:

    1、歌手:歌手编号、姓名、姓名拼音缩写、性别、出生日期、国籍。

    2、歌曲:歌曲编号、名称、歌曲拼音缩写、歌手编号、语种、歌曲类型、歌曲时长、歌曲存储路径。

    3、歌曲排行榜:歌曲编号、歌曲名称、总点击率。

    4、我的歌单:歌曲编号、歌曲名称。

    5、会员(用户):会员编号、会员姓名、会员性别、出生日期、身份证号、注册时间、会员密码、积分。

    6、管理员:管理员编号、管理员用户名、管理员密码。

    7、超级管理员:超级管理员编号、超级管理员用户名、超级管理员密码。

    8、后台操作:操作编号、操作内容、操作时间、操作人员、备注。

    *(********2********)* *实体之间的联系*

    ​ 具体联系结合局部E-R图在下面分析。

    *2.********2.********2* *局部********E-R图********设计*

    实体‐联系模型(E‐R 模型)是一个面向问题的概念性数据模型。该模型将现实世界的要求转化成实体、联系、属性等几个基本概念,以及它们之间的两种基本联接关系,并且可以实体联系图非常直观地表示出来。

    E-R模型的基本元素如下:

    (1) 实体:客观存在并可相互区别的事物称为实体。

    (2) 属性:实体所具有的某一特征称为实体的属性。

    (3) 键:也称关键字或码,唯一标识实体的最小的属性集称为实体的键。

    (4) 联系:现实世界的事物彼此是有联系的,反映在信息世界就是实体之间的联系。

    *1.* *歌曲和歌手的局部********E-R********图*

    分析:图3-1为歌曲和歌手的局部E-R图。从图中可以看出:一首歌曲可以由多位不同的歌手演唱,一位歌手可以演唱多首歌曲。所以二者是多对多的关系,即m:n的关系。其中歌曲的主键:歌曲编号;歌手的主键:歌手编号。

    image.png

    图3-1 歌曲和歌手的局部E-R图

    *2.* *歌曲和用户的局部E-R图*

    分析:图3-2为歌曲和用户的局部E-R图。从图中可以看出:一首歌曲可以被多位用户点播,一位用户可以点播多首歌曲。所以二者是多对多的关系,即m:n的关系。其中歌曲的主键:歌曲编号;用户的主键:会员编号。

    图3-2 歌曲和用户的局部E-R图

    *3.* *歌曲和管理员的局部E-R图*

    分析:图3-3为歌曲和管理员的局部E-R图。从图中可以看出:一首歌曲可由多位管理员管理,一名管理员可以管理数据库中所有的歌曲。所以二者是多对多的关系,即m.n的关系。其中歌曲的主键:歌曲编号:管理员的主键:管理员编号。

    图3-3 歌曲和管理员的局部E-R图

    *4.* *用户和管理员的局部E-R图*

    分析:图3-4为用户和管理员的局部E-R图。从图中可以看出:一名用户可由多位管理员管理,一名管理员可以管理数据库中所有的用。所以二者是多对多的关系,即m:n的关系。其中用户的主键.会员编号:管理员的主键:管理员编号。

    图3-4 用户和管理员的局部E-R图

    *5.* *用户和歌手的局部********E-R********图*

    分析:图3-5为用户和歌手的局部E-R图。从图中可以看出:一名用户可检索多位歌手,一名歌手可被多名用户检索。所以二者是多对多的关系,即m:n的关系。其中用户的主键:会员编号;歌手的主键:歌手编号。

    图3-5用户和歌手的局部E-R图

    *6.* *歌手和管理员的局部E-R图*

    分析:图3-6为歌手和管理员的局部E-R图。从图中可以看出:一名歌手可由多位管理员管理,一名管理员可管理数据库中所有歌手。所以二者是多对多的关系,即m:n的关系。其中歌手的主键:歌手编号:管理员的主键:管理员编号。

    图3-6 管理员歌手的局部E-R图

    7. *超级管理员和管理员的局部E-R图*

    分析:图3-7为超级管理员和管理员的局部E-R图。从图中可以看出:一名管理员可由多位超级管理员管理,一名超级管理员可管理所有的管理员。所以二者是多对多的关系,即m:n的关系。其中超级管理员的主键:超级管理员编号:管理员的主键:管理员编号。

    图3-7 超级管理员和管理员的局部E-R图

    *8.* *歌曲排行榜实体E-R图*

    分析:图3-8为歌曲排行榜实体E-R图。实体歌曲排行榜中一共有三个属性,分别是歌曲编号、歌曲名称和总点击率,每首歌都具有唯一的歌曲编号,因此将歌曲编号作为歌曲排行榜的主键。

    图3-8 歌曲排行版实体E-R图

    *9.* *我的歌单实体E-R图*

    分析:图3-9为我的歌单实体 E-R 图。实体我的歌单中一共两个属性,分别是歌曲编号和名称,每首歌都具有唯一的歌曲编号,因此将歌曲编号作为歌曲排行榜的主键。

    图3-9 我的歌单实体E-R图

    *10.* *后台操作记录实体E-R图*

    图3-10 后台操作记录实体E-R图

    *2.2.3* *全局E-R图设计*

    在设计完所有实体之间的联系后,即局部E-R图设计,需将局部E-R图合并,在这个过程需要去掉多个实体和属性之间的命名冲突和联系冲突等,从而生成一个完整的、满足应用需求的全局 E-R 图。图3-11 即为 KTV 点歌系统的全局 E-R图。通过图3-11可以清晰的看出各个实体之间的关系。

    图3-11 全局E-R图

    *2.3* *逻辑结构设计*

    数据库概念模式设计完成后,数据库的设计进入到逻辑模式设计阶段。这时的数据库设计与具体的机器世界是相关联的。逻辑模式设计阶段有两大任务:
    1、按一定的规则将E-R图转换成关系模式。
    2、关系模式的规范化处理。所谓关系模式的规范化处理,就是对关系式进行某种处理,使它满足一定的规范化要求。规范化的主要目的就是要尽可能地消除关系操作过程中的异常情况。

    *2.3.1* *关系模型:所有********关系模式********及范式分析等*

    根据以上E一R模型向关系模型转换规则,对上述的E一R图进行转换,转换结果如下(主键用下划线标出,外键用波浪线标出):

    1) *歌手(********歌手编号********、姓名、姓名拼音缩写、性别、出生日期、国籍)*

    每位歌手的编号都是唯一的,通过属性歌手编号即可对应唯一的一位歌手,所以选择歌手编号作为主键。

    2)*歌曲(*****歌曲编号********、名称、歌曲拼音缩写、语种、歌曲类型、歌曲时长、********歌手编号********)****

    每首歌曲的编号都是唯一的,通过属性歌曲编号即可对应唯一的一首歌曲,所以选择歌曲编号作为主键,歌手编号是歌手信息表中的属性,所以在歌曲信息表中是外键。

    3)*用户(*****会员编号********、会员姓名、会员性别、出生日期、身份证号、注册时间、会员密码、积分)****

    每位用户的会员编号都是唯一的,通过属性会员编号即可对应唯一的一位用户,所以选择会员编号作为主键。

    4)*管理员(*****管理员编号********、管理员用户名、管理员密码)****

    每位管理员的管理员编号都是唯一的,通过属性管理员编号即可对应唯一的一位管理员,所以选择管理员编号作为主键。

    5)*超级管理员(*****超级管理员编号********、超级管理员用户名、超级管理员密码)****

    每位超级管理员的编号都是唯一的,通过属性超级管理员编号即可对应唯一的一位超级管理员,所以选择超级管理员编号作为主键。

    6)*演唱(*****歌手编号、歌曲编号********)****

    演唱是歌曲和歌手这两个实体之间的联系,联系关系模式的属性是由两端实体集的键码和联系自身的属性构成,所以其属性为歌手编号和歌曲编号。同时,联系关系模式的键码为复合键码,由两端实体集键码以及相关属性组合而成,所以其主键为歌手编号和歌曲编号。以下六个联系关系模式集合的分析与此同理。

    *7)点播(********歌曲编号、会员编号********)*

    *8)检索(********歌手编号、会员编号********)*

    *9)管理(********歌曲编号、管理员编号********)*

    *2.3.2 数据模型的优化*

    在数据库逻辑模式设计阶段,完成E-R图到关系模式的转换后,就要进入关系模式的规范化处理阶段。这一过程主要研宄关系模式内各属性之间的依赖关系,保持属性间好的数据依赖关系,消除导致异常的依赖关系,使得关系模式由低一级的规范模式上升到高一级的规范模式。我们设计的最终目的是使关系模式规范化,所以最低应该达到第三范式。

    首先,上述的关系中每一个属性都是不可冉分的数据,所以均符合第一范式。其次,第二范式要求关系模式必须属于第一范式,且每个非主属性都是完全函数依赖于主誕。在上述关系中,“歌手”、“歌曲”、“用户”、“管理员”和“超级管理员”都只有一个主誕,所以不存在部分依赖关系,属于第二范式。“演唱”、“点播”、“检索”和“管理”等七个关系中,均有两个主誕,但是这七个关系均不存在非主属性,所以不存在部分函数依赖,也属于第二范式。最后,第三范式要求关系模式必须属于第一范式,且每个非主属性都不传递函数依赖于主誕。在上述关系中,“歌手”、“歌曲”、“用户”、“管理员”和“超级管理员”都不存在传递函数依赖关系,属于第三范式。“演唱”、“点播”、“检索”和“管理”等七个关系中,均有两个主誕,但是这七个关系均不存在非主属性,所以不存在传递函数依赖,也属于第三范式。

    *2.3.3* *安全性(用户类别和权限)设计和实现说明*

    *1、用户权限*

    用户需要会员账号和密码才能登入前台点歌系统,进入后可以查询个人账户的积分以及修改账户密码。还可通过多种方式进行歌曲点播,如根据演唱歌星的名字、歌曲名称编号、歌曲名称拼音缩写以及歌曲名称等检索歌曲。

    2、*管理员权限*

    管理员需要使用管理员编号和密码进行登入后台操作系统,其进入后可对歌曲、歌手以及会员用户信息进行各类操作,如增加、删除、更新、修改等,也可以修改管理员账号的密码。

    3、*超*****级管理员****

    其可进入管理员信息管理系统对管理员信息进行各类操作。

    *2.3.4* *完整性(主、外码和用户自定义的完整性约束)设计和实现说明*

    1、数据库应该面向用户和管理员。

    2、用户需要会员账号和密码才能登入前台点歌系统,进入后可以查询个人账户的积分以及修改账户密码。还可通过多种方式进行歌曲点播,如根据演唱歌星的名字、歌曲名称编号、歌曲名称拼音缩写以及歌曲名称等检索歌曲。

    3、管理员需要使用管理员编号和密码进行登入后台操作系统,其进入后可对歌曲、歌手以及会员用户信息进行各类操作,如增加、删除、更新、修改等,也可以修改管理员账号的密码。

    4、每个用户由会员编号唯一标识,用户编号由系统按顺序生成;用户名不能与其他用户相同且只能由数字和字母组成;用户的密码不允许为空;出生日期、注册时间必须是在合理范围;会员性别非男即女;系统自动记录注册日期;

    4、每个用户由会员编号和会员姓名唯一标识;系统自动记录操作记录;添加歌曲使用默认的歌曲路径。

    5、每首歌曲由歌曲编号、名称、歌手编号唯一标识;系统自动记录歌曲上传时间;系统自动设置歌曲相对路径。

    6、设置超级管理员,其可使用超级管理员的账号密码进入管理员信息管理系统对管理员信息进行各类操作。

    *2.4* *数据库物理设计*

    *2.4.1 存取方法*

    存取方法是快速有取数据库中数据的技术。数据库管理系统一般提供多种存取方法。

    常用的存取方法为索引方法和聚簇(clustering)方法。其中B+树索引和hash索引是数据库中经典的存取方法,使用最普遍。

    1. *B+树索引存取方法*

    所谓选择索引存取方法,实际上就是根据应用要求确定对关系的哪些属性列建立索引、哪些属性列建立组合索引、哪些索引要设计为唯一索引等。一般来说:

    (1)如果一个(或一组)属性经常在查询条件中出现,则考虑在这个(或这组)属性上建立索引(或组合索引)。

    (2)如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引。

    (3)如果一个(或一组)属性经常在连接操作的连接条件中出现,则考虑在这个(或这组)属性上建立索引。

    ​ 关系上定义的索引数并不是越多越好,系统为维护索引要付出代价,查找索引也要付出代价。例如,若一个关系的更新频率很高,这个关系上定义的索引数不能太多。因为更新一个关系时,必须对这个关系上有关的索引做相应的修改。

    2. *hash索引存取方法*

    选择hash存取方法的规则如下:如果一个关系的属性主要出现在等值连接条件中或主要出现在等值比较选择条件中,而且满足下列两个条件之一,则此关系可以选择hash存取方法。

    (1)一个关系的大小可预知,而且不变。

    (2)关系的大小动态改变,但数据库管理系统提供了动态hash存取方法。

    *2.4.2 储存结构*

    *1. 存放位置*

    MySQL数据库存储的方式:一台数据库服务器中会创建很多数据库(一个项目,会创建一个数据库)。在数据库中会创建很多张表(一个实体会创建一个表)。在表中会有很多记录(一个对象的实例会添加一条新的记录)。

    选择使用innodb 存储引擎

    位置:D:\mysql-8.0.21-winx64\mysql-5.6.26-winx64\data\Data\

    *2. 系统配置*

    Mysql中系统配置命令

    总体查看当前数据库的状态:status

    D:\mysql-8.0.21-winx64\mysql-5.6.26-winx64\bin\mysql.exe

    Ver 14.14 Distrib 5.5.27, for Win64 (x86)

    Connection id: 7

    Current database:

    Current user: root@localhost

    SSL: Not in use

    Using delimiter: ;

    Server version: 5.5.27 MySQL Community Server (GPL)

    Protocol version: 10

    Connection: localhost via TCP/IP

    Server characterset: utf8

    Db characterset: utf8

    Client characterset: gbk

    Conn. characterset: gbk

    TCP port: 3306

    Uptime: 1 hour 28 min 1 sec

    Threads: 3 Questions: 182 Slow queries: 0 Opens: 93 Flush tables: 1 Open tables: 2 Queries per second avg: 0.034

    *第3章 数据库的实施与VB.NET界面开发*

    数据库实施部分首先运用My SQL建立KTV系统管理数据,再将各关系模型转化为实际的 SQL 数据表。VB.NET 界面开发部分主要是利用 VB.NET 进行KTV前台点歌系统和后台管理系统人机交互界面的设计与制作。

    3.1 数据库基本表设计

    3.1.1 用户信息表

    3.1.2 我的歌单

    3.1.3 后台操作记录

    3.1.4 管理员信息表

    3.1.5 歌手信息表

    3.1.6 歌曲信息表

    3.1.7 歌曲排行榜

    3.1.8 超级管理员信息表

    *3.2登录模块界面设计及程序分析*

    登录模块由登录页面、用户登录页面和管理员登录页面三个窗口组成。登录页面在KTV点歌系统中起到了欢迎界面的作用,以构建一个美观舒适的人机交互环境,如图3-1所示。在该窗口有三个功能按钮,分别是用户登录、管理员登录和退出系统。其中点击用户登录按钮可以进入用户登录界面,即进入前台点歌系统,如图3-2所示;点击管理员登录按钮可以进入管理员登录界面,即进入后台管理系统,如图3-3所示;点击退出,则系统会关闭。

    image.png

    图3-1 登录页面

    图3-2 用户登录页面 图 3-3 管理员登录页面

    在用户登录页面和管理员登录页面,用户和管理员必须输入正确用户名和密 码才能成功登录前台点歌系统,如图 3-4 和图 3-5 所示。若点击取消则会返回登录页面。

    图 3-4 用户登录成功 图 3-5 管理员登录成功

    为了提高系统的安全性,当用户或者管理员输入错误的用户名或密码的次数 超过两次时,我们认为正在进行登录操作的人员不是我们的会员用户和系统管理 员,系统执行退出指令,禁止该人员登录。如图 3-6 和图 3-7 所示,管理员登录 页面的设计在这点上与用户登录页面设计一致。

    图3-6 错误输入用户名或密码 图 3-7 错误输入管理员名或密码

    Dim n As Integer = 0
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim myconnection As New MySqlConnection("Server=localhost;User Id=root;Password=123456;Database=jm_database;Port=3306;")
            Dim mysql As String = "select * from 用户信息表 where 会员编号='" + TextBox用户名.Text + "' and 会员密码='" + TextBox密码.Text + "'"
            Dim myadapter As New MySqlDataAdapter(mysql, myConnection)
            '定义DataSet对象,用mysql命令串执行的结果填充数据集mydataset
            Dim mydataset As New DataSet
            myadapter.Fill(mydataset, "用户信息表")
            If mydataset.Tables("用户信息表").Rows.Count = 0 Then
                n += 1
                If n < 2 Then
                    MsgBox("用户名或密码错误!", MsgBoxStyle.OkOnly +
                   MsgBoxStyle.Exclamation, "信息提示")
                    TextBox用户名.Text = ""
                    TextBox密码.Text = ""
                    TextBox用户名.Focus() '设置输入焦点
                Else
                    MsgBox("已登入失败2次!退出系统", MsgBoxStyle.OkOnly +
                   MsgBoxStyle.Exclamation, "信息提示")
                    Me.Close()
                    登录界面.Close()
                End If
            Else
                MsgBox("欢迎光临!")
                用户操作界面.Show()
                Me.Close()
            End If
        End Sub
    

    *3.3 前台点歌模块界面设计及程序分析*

    会员用户在用户登录界面登录成功之后便可进入前台点歌模块的用户操作界面,在用户操作界面用户可以进行开始点歌、积分查询、密码修改和退出账号 四项操作,如图 3-8 所示。

    image.png

    图 3-8 用户操作界面

    在前台点歌系统模块中进行操作时将会涉及到歌曲信息表、歌手信息表、歌曲排行榜和我的歌单这四个 SQL 数据库关系表。

    *3.3.1 开始点歌窗口*

    用户点击开始点歌便会进入开始点歌窗口,该窗口是 KTV 点歌系统前台点歌 模块的主要用户操作界面,如图 3-9 所示。

    图3-9 开始点歌窗口

    (1) 歌曲搜索

    在开始点歌窗口,用户可以通过输入关键字实现数字点歌(通过检索歌曲编号进行歌曲搜索)、歌星点歌(通过检索歌手姓名进行歌曲搜索)、拼音点歌(通过检索歌曲拼音缩写进行歌曲搜索)和歌名点歌(通过检索歌曲名称进行歌曲搜索)。同时,这四种歌曲搜索方式均可以实现模糊搜索。

    1. 数字点歌
    '数字点歌
            If 关键字.Text = "" Then
                MsgBox("请输入关键字进行搜索!", MsgBoxStyle.OkOnly, "信息提示")
            Else
                Dim mysql2 As String = "SELECT * FROM 歌曲信息表 WHERE 歌曲编号='" + 关键字.Text + "'"
                mycmd.Connection = myconnection '指定mycmd对象的数据连接
                '定义mycmd对象要执行的SQL语句
                mycmd.CommandText = mysql2
                '定义myadapter2对象,用于满足一定条件的数据填充
                Dim myadapter2 As New MySqlDataAdapter(mycmd)
                '定义数据集mydataset
                Dim mydataset2 As New DataSet
                '填充数据
                myadapter2.Fill(mydataset2, "歌曲信息表")
                Me.DataGridView1.DataSource = mydataset2.Tables("歌曲信息表")
            End If
    

    图 3-10 数字搜索

    1. 歌星搜索

    图3-11 歌星搜索

    1. 拼音搜索

    图 3-12 拼音搜索

    1. 歌名搜索

    图3-13 歌名搜索

    1. 所有歌曲

    点击开始点歌窗口中的所有歌曲,在信息显示窗口将会显示所有歌曲的信息,执行效果如图 3-9 所示

    image.png

    图3-14 所有歌曲

    (2) 歌曲排行榜

    ​ 点击歌曲排行榜,则用户可以进入歌曲排行榜界面查看歌曲总点击率信息,点击返回按钮则会返回开始点歌界面。 当用户将选中的歌曲添加进我的歌单中时,歌曲排行榜中的总点击率便会加 1,同时将会更新到 SQL 数据库关系表中的歌曲排行榜表。SQL 数据库关系表的 歌曲排行榜表的排序是按照总点击率的降序排列,所以总点击率越大则在开始点 歌窗口中的歌曲排行榜中的位置越靠前,继而实现歌曲热度排名功能。

    点击刷新按钮后歌曲排行榜的信息将会刷新,用户便可查看到最新的总点击率。将所选歌曲添加进我的歌单。

    (3) 我的歌单

    点击查看我的歌单会在歌曲信息显示窗口显示出我的歌单表的所有信息,如图 3-17 所示。

    图3-15 查看我的歌单

    在开始点歌窗口完成歌曲搜索之后可以直接在歌曲信息显示窗口点击想点播的歌曲,此操作可以直接将被点击的歌曲添加进我的歌单。在该操作过程中, 系统会询问用户是否要添加所选歌曲到我的歌单,若用户选择否则歌曲不会被添 加。当某一首歌曲被用户添加进我的歌单中时,该歌曲在歌曲排行榜中的总点击 率将会加 1。图 3-15 是未添加选定歌曲至我的歌单时的歌曲排行榜界面,图 3- 16 是添加了选定歌曲至我的歌单后的歌曲排行榜界面。

    *3.3.2 用户积分查询和密码修改*

    在用户操作界面,用户可以很便捷的查询个人账号的积分以及对账号密码进 行修改,如图 3-23 和图 3-24 所示。

    Dim myconnion As New MySqlConnection("Server=localhost;User Id=root;Password=123456;Database=jm_database;Port=3306;")
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            '积分查询
            If 用户名.Text = "" And 密码.Text = "" Then
                MsgBox("请填入用户名和密码!", MsgBoxStyle.OkOnly, "信息提示")
            Else
                Dim integral As Integer = 0
                Dim myconn As String = "SELECT 积分 FROM 会员信息表 "
                Dim mysql As String = "SELECT 积分 FROM 会员信息表 WHERE 会员姓名 ='" + 用户名.Text + "' and 会员密码 ='" + 密码.Text + "'"
                Dim mycon As New SqlClient.SqlConnection(myconn)
                Dim mycomm As New SqlClient.SqlCommand(mysql, mycon)
                mycon.Open()
                integral = mycomm.ExecuteScalar()
                mycon.Close()
                MsgBox("您的账号积分 :" & integral, MsgBoxStyle.DefaultButton1, "账号积分")
            End If
    End Sub
    

    图 3-16 用户积分查询 图 3-17 用户密码修改

    图3-18 修改密码

    *3.4 后台管理模块界面设计及程序分析*

    在登录页面选择管理员登录,并使用正确的管理员用户名和密码登录后便可 进入 KTV 后台管理系统。在后台管理系统中,管理员可以对用户信息、歌曲信息 和歌手信息进行管理,也可以修改管理员账号的密码。若管理员具有超级管理员 的权限,则可以使用超级管理员账号和密码获取超级管理员权限,之后便可对系 统的普通管理员信息和超级管理员信息进行管理。KTV 后台管理系统操作界面如 图 3-25 所示。

    图3-19 KTV 后台管理系统操作界面

    3.4.1 用户信息管理

    用户信息管理操作界面如图 3-26 所示。在不输入任何用户信息时,管理员 可以通过点击查询用户信息查询所有用户的信息。填入会员编号或者会员姓名, 可以查询指定用户的信息,同时还可以实现模糊搜索;填入完整的用户信息后,可以点击添加用户将新的用户添加进会员信息表,若填入的信息不完整则系统会提示填入完整的用户信息,如图 3-27 所示;若要删除某用户的信息时可以只填入会员编号或者会员姓名,如图 3-28 所示;更新某用户时必须完整的填入用户 信息,然后再对用户信息进行更改。

    图3-20 用户信息管理操作界面

    '查询用户信息
            If 会员编号.Text = "" And 会员姓名.Text = "" Then
                '定义SqlDataAdapter对象
                Dim mysql1 As String = "SELECT * FROM 用户信息表"
                Dim myadapter1 As New MySqlDataAdapter(mysql1, myconnection)
                '定义DataSet对象,用mysql命令串执行的结果填充数据集mydataset
                Dim mydataset1 As New DataSet
                myadapter1.Fill(mydataset1, "用户信息表")
                Me.DataGridView1.DataSource = mydataset1.Tables("用户信息表")
            Else
                '定义SqlCommand对象
                Dim mycmd As New MySqlCommand
                If 会员编号.Text <> "" Then
                    Dim mysql2 As String = "SELECT * FROM 用户信息表 WHERE 会员编号='" & 会员编号.Text & "'"
                    mycmd.Connection = myconnection '指定mycmd对象的数据连接
                    '定义mycmd对象要执行的SQL语句
                    mycmd.CommandText = mysql2
                    '定义myadapter2对象,用于满足一定条件的数据填充
                    Dim myadapter2 As New MySqlDataAdapter(mycmd)
                    '定义数据集mydataset
                    Dim mydataset2 As New DataSet
                    '填充数据
                    myadapter2.Fill(mydataset2, "用户信息表")
                    Me.DataGridView1.DataSource = mydataset2.Tables("用户信息表")
                Else
                    Dim mysql2 As String = "SELECT * FROM 用户信息表 WHERE 会员姓名='" & 会员姓名.Text & "'"
                    mycmd.Connection = myconnection
                    mycmd.CommandText = mysql2
                    Dim myadapter2 As New MySqlDataAdapter(mycmd)
                    Dim mydataset2 As New DataSet
                    myadapter2.Fill(mydataset2, "用户信息表")
                    Me.DataGridView1.DataSource = mydataset2.Tables("用户信息表")
                End If
            End If
    

    图3-21 添加用户时的系统提醒

    图3-22 删除会员用户

    图3-23 更新会员信息

    *3.4.2 歌曲信息管理和歌手信息管理*

    歌曲信息管理和歌手信息管理在实现上与用户信息管理大致相同。这两个模 块所要实现的功能是对歌曲信息和歌手信息进行增删改查。

    图 3-24 歌曲信息管理操作界面

    显示部分代码(歌曲查询)  
      Private Sub 查询歌曲信息_Click(sender As Object, e As EventArgs) Handles 查询歌曲信息.Click
            '查询歌曲信息
            If 歌曲编号.Text = "" And 名称.Text = "" Then
                Dim mysql1 As String = "SELECT * FROM 歌曲信息表"
                Dim myadapter1 As New MySqlDataAdapter(mysql1, myConnection)
                Dim mydataset1 As New DataSet
                myadapter1.Fill(mydataset1, "歌曲信息表")
                Me.DataGridView1.DataSource = mydataset1.Tables("歌曲信息表")
            Else
                '定义SqlCommand对象
                Dim mycmd As New MySqlCommand
                If 歌曲编号.Text <> "" Then
                    Dim mysql2 As String = "SELECT * FROM 歌曲信息表 WHERE 歌曲编号 LIKE '%" & 歌曲编号.Text & "%'"
                    mycmd.Connection = myConnection '指定mycmd对象的数据连接
                    '定义mycmd对象要执行的SQL语句
                    mycmd.CommandText = mysql2
                    '定义myadapter2对象,用于满足一定条件的数据填充
                    Dim myadapter2 As New MySqlDataAdapter(mycmd)
                    '定义数据集mydataset
                    Dim mydataset2 As New DataSet
                    '填充数据
                    myadapter2.Fill(mydataset2, "歌曲信息表")
                    Me.DataGridView1.DataSource = mydataset2.Tables("歌曲信息表")
                Else
                    Dim mysql2 As String = "SELECT * FROM 歌曲信息表 WHERE 名称 Like '%" & 名称.Text & "%'"
                    mycmd.Connection = myConnection
                    mycmd.CommandText = mysql2
                    Dim myadapter2 As New MySqlDataAdapter(mycmd)
                    Dim mydataset2 As New DataSet
                    myadapter2.Fill(mydataset2, "歌曲信息表")
                    Me.DataGridView1.DataSource = mydataset2.Tables("歌曲信息表")
                End If
            End If
    End Sub
    

    image.png

    图 3-25 歌手信息管理操作界面

    *3.4.3 管理员密码修改*

    图3-26 管理员密码修改

    *3.4.4 超级管理员*

    图3-27 超级管理员登录页面

    图3-34 管理员信息管理操作界面

    *第4章 系统维护及收获体会*

    *4.1********系统********运行与维护*

    数据库试运行合格后,数据库开发工作就基本完成,可以投入正式运行了。但是由于应用环境在不断变化,数据库运行过程中物理存储也会不断变化,对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。在数据库运行阶段,对数据库经常性的维护工作主要是由数据库管理员完成的。数据库的维护工作主要包括以下几方面:

    4.1.1 *数据库转储策略*

    1、定期进行数据转储,制作后备副本。但是转储又是十分耗费时间和资源的,不能频繁进行。

    2、DBA应该根据数据库使用情况确定适当的转储周期和方法

    例如:每天晚上或每周进行一次动态增量转储;每月进行一次静态海量转储。

    img

    数据库的转储和恢复是系统正式运行后最重要的维护工作之一。数据库管理员要针对

    不同的应用要求制定不同的转储计划,以保证一旦发生故障能尽快将数据库恢复到某种一

    致的状态,并尽可能减少对数据库的破坏。

    4.1.2 *数据库********备份和恢复方案*

    image.png

    *服务器列表*

    *服务器名称**服务器IP**服务器IP*
    DB_Server1172.31.204.81D:\Wind\bak\SQLServer\
    DB_Server2172.31.204.85D:\Wind\bak\SQLServer\
    File_Server192.1.1.235E:\wind\Bak\

    *1、********主数据库备份*

    DB Server1的主数据库,通过SQL JOB定期备份,形成Bak文件文件存放本地硬盘。

    *2、********备份文件上传*

    定期任务计划执行DB Server1的Bat脚本1,将Bak备份文件传输到File Server的FTP服务器。

    *3、********备份文件下载*

    定期任务计划执行DB Server2的Bat脚本1,将Bak备份文件从File Server的FTP服务器下载到DB Server2本地。

    *4、********备份库恢复*

    通过DB Server2的SQL JOB,定期恢复备份数据库。

    *5、********备份文件清理*

    ****DB Server1备份文件清理****:通过任务计划定期执行Bat脚本2,每天定期清理DB Server1的备份文件,只保留一天前的Bak文件。

    ****File Server备份文件清理****:通过任务计划定期执行Bat脚本2,每天定期清理File Server的备份文件,只保留最近七天的Bak文件。

    ****DB Server2备份文件清理****:通过任务计划定期执行Bat脚本2,每天定期清理DB Server2的备份文件,只保留一天前的Bak文件。

    4.1.3 *其他维护策略*

    1. *数据库的安全性、完整性控制*

    在数据库运行过程中,由于应用环境的变化,对安全性的要求也会发生变化,比如有的数据原来是机密的,现在则可以公开查询,而新加入的数据又可能是机密的。系统中用户的密级也会改变。这些都需要数据库管理员根据实际情况修改原有的安全性控制。同样,数据库的完整性约束条件也会变化,也需要数据库管理员不断修正,以满足用户要求。

    2. *数据库性能的监督、分析和改造*

    在数据库运行过程中,监督系统运行,对监测数据进行分析,找出改进系统性能的方法是数据库管理员的又一重要任务。目前有些关系数据库管理系统提供了监测系统性能参数的工具,数据库管理员可以利用这些工具方便地得到系统运行过程中一系列性能参数的值。数据库管理员应仔细分析这些数据,判断当前系统运行状况是否为最佳,应当做哪些改进,例如调整系统物理参数或对数据库进行重组织或重构造等。

    3. *数据库的重组织与重构造*

    数据库运行一段时间后,由于记录不断增、删、改,将会使数据库的物理存储情况变坏,降低数据的存取效率,使数据库性能下降,这时数据库管理员就要对数据库进行重组织或部分重组织(只对频繁增、删的表进行重组织)。关系数据库管理系统一般都提供数据重组织用的实用程序。在重组织的过程中,按原设计要求重新安排存储位置、回收垃圾、减少指针链等,提高系统性能。数据库的重组织并不修改原设计的逻辑和物理结构,而数据库的重构造则不同,它是指部分修改数据库的模式和内模式。

    由于数据库应用环境发生变化,增加了新的应用或新的实体,取消了某些应用,有的实体实体间的联系也发生了变化等,使原有的数据库设计不能满足新的需求,品要调整数据库的模式和内模式。例如,在表中增加或删除某些数据项,改变数据项为类型,增加或删除某个表,改变数据库的容量,增加或删除某些索引等。

    *4.2* *收获和体会*

    *4.2.1 收获与体会*

    通过一个月的课程设计,基本完成了 KTV 点歌系统的设计。前台点歌可以实现 按数字点歌、拼音点歌、歌星点歌和歌名点歌,可以实现歌曲的媒体播放功能, 同时也可以查看歌曲排行榜。后台信息管理可以实现用户、歌曲、歌手和管理员 的信息管理。但与此同时,此次的设计仍存在许多的不足,比如无法顺序播放歌 单中的歌曲,需要将所有的歌曲信息导入歌曲排行榜才能完整实现该功能。 同时,通过这次课程设计我巩固了MySQL数据库和 VB.NET 界面开发的知识,通过实践学习到很多课本上学不到的知识,学习到了很多解决实际问题的经验。也让我深刻的意识到在做数据库设计时,必须包含需求分析、概念模式设计、逻辑模式设计、数据库实施、数据库运行和维护 5个阶段。此次设计的系统很简洁也很微小,在设计过程中简化了非常多的步骤,在调试过程中,总会想到更多符合实际需求的条件去充实完善系统,也知道自己当初设计的时候考虑略欠周全,也明白了实际应用的系统是需要不断更新、维护,是需要许多人的智慧和努力。

    *4.2.2 系统评价*

    *1、系统优缺点*

    基本实现增删改查基本操作,前台点歌可以实现 按数字点歌、拼音点歌、歌星点歌和歌名点歌,可以实现歌曲的媒体播放功能, 同时也可以查看歌曲排行榜。后台信息管理可以实现用户、歌曲、歌手和管理员的信息管理。但与此同时,此次的设计仍存在许多的不足,比如无法顺序播放歌 单中的歌曲,需要将所有的歌曲信息导入歌曲排行榜才能完整实现该功能。

    2、*系统完善设想*

    除了展示中未提及或具体展示的部分,系统还可以增加注册功能以及用户密码加密,数据库中密码的储存形式可以通过MD5 或者SHA1形式存在,进一步增强加密性。

    *参考文献*

    [1]龚沛曾,袁科萍等编著. 数据库原理及应用[M]. 北京:高等教育出版社

    [2]盛莉.基于MySQL的数据管理平台设计[J].信息与电脑(理论版),2020,32(22):152-153.

    [3]马晓阳,薛钢,何磊.基于VB和MySQL的焊接工艺数据系统的设计与实现[J].材料开发与应用,2020,35(04):98-102.

    [4]臧玉琴,腾跃编著. Visual Basic 界面、多媒体操作系统程序设计[M]. 北京:人民邮电出版社

    [5]蔡宏编著. Visual Basic.NET 案例开发集锦[M]. 北京:电子工业出版社

    [6]冯小燕,刘斌等编著. Visual Basic 项目开发案例精粹[M]. 北京:电子工业出版社

    [7]李丹,赵占坤,丁宏伟,史彦芳. MySQL 数据库管理与开发实用教程[M]. 北京:机械工业出版社,2009.11

    [8]姚永一,MySQL 数据库技术实用教程,北京:电子工业出版社,2010

    [9]壮志剑,数据库原理与MySQL,北京:高等教育出版社,2008

    [10]何玉洁,梁琦,数据库原理与应用(第二版),北京:机械工业出版社,2011

    [11]张志强,孙福兆,余健.MySQL课程设计案例精编. 北京:清华大学出版社,2005

    [12]张丽萍,汤涌涛. Visual Basic 2010 从入门到精通[M]. 北京:清华大学出版社

    [13]王珊,萨师煊. 数据库系统概论(第四版)[M]. 北京:高等教育出版社

    [14]郑阿奇. Visual Basic 教程[M]. 北京:清华大学出版社,2010

    [15]段兴.Visual Basic 数据库实用程序设计 100 例[M]. 北京:人民邮电出版社

    [16]王运坚. Visual Basic 6.0 应用指南[M]. 北京:人民邮电出版社

    [17]曹军生. My SQL 5.5 实用教程[M]. 北京:北京理工大学出版社

    Z 几个雷区

    答辩过程所听到的几个坑

    1. ER图不能显示外码
    2. ER图一旦出现关系是“管理”需要判断,是否仅为增删查改操作,
    3. 用户授权区分,功能确实没有这个权限按钮,但在数据库本身是有的,最好分三个角角色:用户、管理员、root

    附代码资源:

    数据库课程设计-KTV点歌系统(VB.net 窗体,MySQL5.5)

    是我,Zack

    2021年1月13日

    • 自发整理,仅供参考

    ​ 希望对大家有所帮助

    • 制作不易,如果觉得文章不错,有帮助和启发,可以点点赞👍
    展开全文
  • 今天补上,仅仅是提供给一些VB的初学者和Kivi同学,如果需要大家可以下载下来看看,VB6是个很老的工具了,不过现在本科的理科同学学还是有需要的这是一个非常简单的VB Form应用要求分别使用windows的系统自带字体...
    昨天没有时间把给Kivi的代码发上来,今天补上,仅仅是提供给一些VB的初学者和Kivi同学,如果需要大家可以下载下来看看,VB6是个很老的工具了,不过现在本科的理科同学学还是有需要的



    这是一个非常简单的VB Form应用要求分别使用windows的系统自带字体对话框和自己制作一个字体对话框实现对一个文本区域的文本的字体的修改,要求自己制作的能够实现Windows自带的字体对话框的功能。





    字体对话框大家应该用过,可以实现对某个VB控件显示的字体的字体名、字号、加粗

    倾斜等显示效果的修改,通常大家使用的比较多,所以界面我就不截图了,为了方便

    kivi学习所以源代码的注释比较详细,如果大家看过了还有不懂的话,可以直接留言

    我一般晚间会给大家回复



    源代码下载地址:

    http://www.lidaren.com/code/DemoFontDialog.zip



    特殊代码说明:

    Private Sub btn_comm_Click()

    cmdDlg.Flags = 1 '设置Flags标志表示 ****

    cmdDlg.ShowFont '显示系统字体对话框

    txtBox.Font.Name = cmdDlg.fontName '字体名称

    txtBox.Font.Bold = cmdDlg.FontBold '加粗?

    txtBox.Font.Size = cmdDlg.FontSize '字体大小

    txtBox.Font.Italic = cmdDlg.FontItalic '倾斜?

    txtBox.Font.Underline = cmdDlg.FontUnderline '下划线?

    txtBox.Font.Strikethrough = cmdDlg.FontStrikethru '删除线

    End Sub


    这里我加了*的这一行,在显示VB字体对话框之前一定要设置flags的参数,否则会出现

    系统找不到字体的错误。



    Flags 属性可以是下面的Visual Basic常数

    cdlCFScreenFonts(屏幕字体)

    cdlCFPrinterFonts(打印机字体)

    cdlCFBoth(既可以是屏幕字体又可以是打印机字体)



    另外很郁闷的是VB当中没有定义Font这个对象,大家可以使用Object,这里我

    用的是直接赋值,方便VB初学者,Kivi included!



    具体大家可以参阅: http://www.bianceng.cn/Programming/vb/200705/557.htm
    --------------------------------------------------------------------------------------
    - 版权声明:
    - 如在本页面内无特别说明,本文内容均为[李大仁博客]原创,本文版权归[李大仁博客]所有。
    - 欢迎转载,转载请务必在文章页面明显位置提供原文链接并注明出处。欢迎您在转载本文时保留本段声明。
    - 文章标题: [VB]Visual Basic6实现自定义windows的字体对话框修改字体
    - 独立博客: 李大仁博客
    - 永久链接:http://www.lidaren.com/archives/329
    --------------------------------------------------------------------------------------
    以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。
    展开全文
  • 不要使用保留字作为标识符 最简单的解决方案就是避免使用保留字作为标识符。您可能可以为您的列找到另一个合理的非保留字名称。 这样做有两个好处: 它消除了您或其他使用数据库的开发人员由于忘记或不知道特定...
  • VB如何只读取字符串中的数字部分??

    千次阅读 2011-09-28 09:08:34
    [url=http://www.vbbaike.com/show.asp?id=100988]请问VB.NET里的这句话在VB6里怎么实现?[/url] [url=http://www.vbbaike.com/show.asp?id=100987]菜鸟急题!sendkeys向一个java程序发送中文出现乱码问题[/url] ...
  • 这次学生信息管理系统在代码的理解过程中遇到了一些问题。总结如下: 1.***** sql server的安装过程各个步骤的意思.在安装SQL Server的时候按照网上的步骤,我觉得这个需要学完整个数据库再返回头去看,或许就能...
  • 在《VB/VBA,请让我点名表扬你》一文中指出,立身于教育的Kemeny和Kurtz教授,以其宽广的胸怀赋予BASIC和其继任者宽容的做派。这种宽容,造就了VB的任性。这种任性,塑造了VB的简单。但是,很多人享用完这种简单,...
  • 计算机二级vb考试中的题目分值分别是多少呢?下面是学习啦小编给大家整理的计算机二级vb考试分值及考试考点,供大家参阅!计算机二级vb考试分值VB考试题型分为两部分,选择题40个(40分),上机操作题3个(60分)。选择题...
  • 彩票程序(用VB6.0源代码编写)彩票程序(用VB6.0源代码编写)抽取随机生成的并计算抽奖次数.vb彩票工具用vb制成的vb绘制工具用vb制成的vb绘制工具用vb制成的vb绘制工具用vb制成的vb绘制工具用vb制成的vb绘制工具用VB编....
  • VB计算公式及值.doc

    2021-07-28 09:09:09
    VB计算公式及值VB表达式和顺序结构程序学习目标:学会把一般数学、物理的计算公式转换为VB表达式,初步学会构建VB表达式。了解常用数据类型,理解常量、变量、函数和表达式的概念。掌握赋值语句的格式与应用。了解...
  • VB 使用总结

    2019-11-26 16:22:30
    VB参考 官方文档 调用方法 function 参数1,参数2..... 清除单元格内容不清除公式 Worksheets("Sheet1").Range("a2:I1000000").SpecialCells(2).ClearContents 读取数据库表数据到excel表中 Dim rs As New ...
  • VB.NET 教程_01_基础语法

    万次阅读 多人点赞 2018-08-08 00:48:58
    VB.Net是一种简单,现代,面向对象的计算机编程语言,由微软开发,将.NET Framework和公共语言运行库的强大功能与作为Visual Basic标志的生产力优势相结合。 Visual Basic .NET(VB.NET)是在.NET Framework上...
  • VB学习记录——数组

    万次阅读 多人点赞 2019-07-06 13:05:49
    1.定义一个数组,其实就是让系统在内存中分配一个连续的区域,用来存储数组的元素。其格式为:Dim 数组名字 (下界 To 上界) As 类型。 Dim MarkVB(1 To 30) As Integer '定义一个一维数组 上界30 下界是1 共30个...
  • VB学习记录

    千次阅读 多人点赞 2017-11-25 16:47:56
    一、什么是VB VB程序设计是要干什么? 1.添加、设置对象; 2.对对象添加功能。 编程的基本要素 - 对象object - 类class - 属性property - 方法method - 事件event 事件过程的一般格式: ...
  • VB字符串处理大全

    2021-03-16 14:58:33
    VBA提供了两类字符串:一类为固定长度的字符串,声明时包含指的字符数。例如,下面的语句Dim strFixedLong As String*100声明字符串变量后,无论赋予该变量多少个字符,总是只包含100个字符,但字符串最长不超过...
  • vb.net控件

    千次阅读 2020-04-28 14:49:22
    vb.net 的 Label 控件 label(标签)控件用于显示文本,是设计应用程序界面时经常要用到的控件之一, 主要是用于显示其他控件名称,描述程序运行状态或标识程序运行的结果信息等 等,响应程序的事件或跟踪程序运行的...
  • 《《VB程序设计基础》第4章 函数与过程》由会员分享,可在线阅读,更多相关《《VB程序设计基础》第4章 函数与过程(16页珍藏版)》请在人人文库网上搜索。1、第4章函数和进程,编写4.1过程和传递调用4.2参数4.3多模块...
  • Windows系统中钩子具有相当强大的功能,通过这种技术可以对几乎所有的Windows 系统中的消息进行拦截、监视、处理。这种技术可以广泛应用于各种软件,尤其是需要有监控、自动记录等对系统进行监测功能的软件。本文...
  • 江苏省计算机二级vb基本知识点总结 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!9.9 积分一、 常量Ø 常量(也称常数),是在程序运行期间其值始终保持不变的量。...
  • 计算机二级《VB》考试常考知识点同学们在备考二级《VB》时,要掌握考试科目的知识考点,明确备考的方向。下面百分网小编为大家搜索整理了关于《VB》考试常考知识点,欢迎参考学习,希望对大家备考有所帮助!想了解更...
  • VB复习§1、VB的特点、运行环境、对象、...运行环境:Windows(VB5.0以上在32位操作系统)方法:对象可以执行的动作或行为;(主动性)事件:使某个对象进入活动状态的一种操作或动作。(被动性)例题:1、VB的使用目的是(...
  • VB程序破解

    千次阅读 2016-04-02 16:03:34
    VB程序的破解思路总结、编译方式vs破解工具 比较 把一个简单的VB计时器程序研究透了,对于VB破解应有较大帮助,如有错误欢迎指出。 VB程序也是一个非常有趣的东西,你去看VB的主程序,是用Microsoft Visual ...
  • 从苏州一回来就接到Kivi的的任务,要用VB编写一个类似windows字体对话框的东西,VB这东西CG是有段时间没有接触了,不过昨天收拾了一下自己的笔本电脑,找到了一个以前为我表姐做的VB毕业设计的源程序,现在放在网上...
  • 两种协议之间的重要区别在于它们的连接状态: TCP 协议控件是基于连接的协议,可以将它同电话系统相比。在开始数据传输之前,用户必须先建立连接。 UDP 协议是一种无连接协议,两台计算机之间的传输类似于传递邮件:...
  • 二、VB6语言基础

    千次阅读 2005-09-22 21:47:00
    VB6语言基础在进行了前面的准备以后,我们就可以开始着手进行编程了。对于在Visual Basic 6中的普通应用开发过程是先设计界面,然后进行功能代码编写。在前面的介绍中,我们新建一个工程(如“工程1”)以后,会自动...
  • VB中format函数的使用。

    万次阅读 2018-11-19 13:28:11
    VB格式输出函数可以使数值、日期或字符串按指定的格式输出。其格式为: Format(&amp;lt;表达式&amp;gt;[, &amp;lt;格式字符串&amp;gt;]) 其中,&amp;lt;表达式&amp;gt;:要格式化的数值、...
  • VB使用API的简明教程

    2021-03-29 15:23:30
    让我们想想,VB里的CommandButton控件让我们可以做什么?按下、弹起,还有呢?请看看图3,这样的情况在你的程序运行时出现过吗?  Windows是以消息来传递信息的。当出现某个操作,比如按钮被按下,就产生按钮被...
  • Linux驱动开发_设备文件系统详解

    千次阅读 多人点赞 2021-05-11 14:09:24
    以上的前提下是你的设备是流行设备且被操作系统的设备管理器支持的情况下,倘若我们有一个未知的设备,或者是我自己开发的硬件产品,如我们自己写的键盘,我们不使用通用键盘通讯协议,我们非要自己创建一套我们键盘...
  • vb 编 码 规 则 》

    2010-02-08 16:09:46
     (2) 系统对用户程序代码进行自动转换:  1) 对于VB中的关键字,首字母被转换成大写,其余转换成小写  2) 若关键字由多个英文单词组成,则将每个单词的首字母转换成大写  3) 对于用户定义的变量、过程名,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,932
精华内容 4,372
关键字:

vb系统保留字