版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、图书管理系统 教 学 目 的内 容1 教 学 要 求2 重 点 难 点3 教 学 内 容4教 学 目 的 通过对图书管理系统的学习,使大家了解使用C语言和MySQL数据库开发管理系统的过程,从而能够更加熟悉C语言编程特点,帮助大家提升C语言编程能力。教 学 要 求在实际应用中了解开发环境了解数据库的设计;掌握C语言开发数据库程序的流程;掌握C语言操作MYSQL数据库;掌握各个模块的设计过程;重 点 难 点重点:C语言开发数据库程序的流程;MySQL数据库和数据表的创立;C语言操作MySQL数据库 ;难点:使用C语言连接MySQL数据库;使用C语言对MySQL数据库中数据进行增、删、改、查等操作
2、。教 学 内 容C语言开发数据库程序的流程;概述;系统设计;数据库设计;C语言操作MySQL数据库;文件引用;变量和函数定义;主要功能模块设计。概述 需求分析 目前,图书市场日益剧烈的竞争迫使图书企业希望采用一种新的管理方式来加快图书流通信息的反响速度,而计算机信息技术的开展为图书管理注入了新的生机。通过对市场的调查得知,一款合格的图书信息管理系统必须具备以下三个特点: 能够对图书信息进行集中管理。 能够大大提高用户的工作效率。 能够对图书的局部信息进行查询。 一个图书管理系统最重要的功能是管理图书,包括图书的增加、删除、修改、查询等功能。 开发工具选择 本系统前台采用Microsoft公司的
3、Visual C+ 6.0作为主要的开发工具;数据库选择MySQL 5.0数据库系统,该系统在平安性、准确性和运行速度方面都占有一定优势。 系统设计 系统目标根据上面的需求分析,得出该图书管理系统要实现的功能,有以下几方面: 录入图书信息。 实现删除功能,即输入图书号删除相应的记录。 实现查找功能,即输入图书号或图书名查询该书相关信息。 实现修改功能,即输入图书号或图书名修改相应信息。 保存添加的图书信息。系统功能结构系统预览开发及运行环境 系统开发平台:Visual C+ 6.0 数据库管理平台:MySQL 5.0 运行平台:Windows XP/ Windows 2000/ Windows
4、 2003 分辨率:最正确效果1024768数据库设计安装MySQL数据库 MySQL是一款广受欢送的数据库,由于开源所以市场占有率高,倍受程序开发者的青睐。这不仅因为MySQL是完全网络化的跨平台关系型数据库系统,也是具有客户机/效劳器体系结构的分布式数据库管理系统。它具有功能性强、使用简捷、管理方便、运行速度快、版本升级快、平安性高等优点,而且MySQL数据库完全免费,从官方网站 :/即可免费下载到最新版本的MySQL安装包“mysql-essential-5.0.82-win32.msi。 启动MySQL数据库创立数据库使用SQL语句创立数据库,这里使用的是create语句,其语法形式如
5、下CREATE DATABASE | SCHEMA IF NOT EXISTS db_name create_specification , create_specification .本程序中,创立一个名为db_books的数据库,SQL语句如下:create database db_books;创立完成数据库以后使用use语句来改变当前的数据库,本程序中,使用的SQL语句如下:use db_books;数据库设计使用USE语句,可以改变当前的数据库。在进入到db_books数据库中以后,就需要创立数据表,在创立数据表时,需要使用Create table语句来创立,在本例中使用的创立数据表的
6、代码如下:create table tb_book(ID char(10) NOT NULL,bookname char(50) NOT NULL,author char(50) NOT NULL,bookconcern char(100) NOT NULL,PRIMARY KEY (ID) ENGINE = MYISAM;在上述创立语句中,创立了一个具有4个字段的数据库,分别是ID编号、bookname图书名、author作者、bookconcern出版社。其中,字段ID是主键,这些字段都不能为空。数据表结构 为了便于读者更好的学习,下面给出图书表的数据表结构,图书表用来保存图书信息。其数据
7、表结构如表 字段名数据类型长度是否为空是否主键描述IDchar10否是图书编号booknamechar50否否图书名authorchar50否否作者bookconcernchar100否否出版社数据库设计安装MySQL数据库 MySQL是一款广受欢送的数据库,由于开源所以市场占有率高,倍受程序开发者的青睐。这不仅因为MySQL是完全网络化的跨平台关系型数据库系统,也是具有客户机/效劳器体系结构的分布式数据库管理系统。它具有功能性强、使用简捷、管理方便、运行速度快、版本升级快、平安性高等优点,而且MySQL数据库完全免费,从官方网站 :/即可免费下载到最新版本的MySQL安装包“mysql-es
8、sential-5.0.82-win32.msi。 启动MySQL数据库创立数据库使用SQL语句创立数据库,这里使用的是create语句,其语法形式如下CREATE DATABASE | SCHEMA IF NOT EXISTS db_name create_specification , create_specification .本程序中,创立一个名为db_books的数据库,SQL语句如下:create database db_books;数据表结构 C语言开发数据库程序的流程刚刚接触MySQL的用户,如果想用C语言连接MySQL,往往会是一件很麻烦的事情,下面就整理一下C语言开发数据库
9、的流程。MySQL为C语言提供了连接数据库的API,要想正常使用这些API,需要做以下两件事情:1包含这些API的声明文件,即mysql.h。2让编译器找到这些API的可执行程序,即DLL库。下面介绍一下详细的步骤:1在C语言中引入如下头文件 #include #include 下面解决,让编译器找到mysql.h的问题。需要在编译环境中作如下的设置:2引入库函数经过上一步的设置,程序已经可以编译通过了,但是编译通过并不等于可以生成可执行文件。还需要告诉编译器这些API函数的可执行文件在哪个DLL文件libmysql.dll中。最好将libmysql.lib以及libmysql.dll文件拷贝
10、到工程的目录下。在程序中需要添加的代码如下:#include #include #pragma comment(lib,libmysql.lib)3设置好环境以后,剩下的就是编写程序代码了,代码将在后面的局部进行详细的介绍。 C语言操作MySQL数据库1.MySQL常用数据库操作函数 2. 连接MySQL数据MySQL提供的mysql_real_connect()函数用于数据库连接,其语法形式如下:MYSQL * mysql_real_connect(MYSQL * connection, const char * server_host, const char * sql_user_name
11、,const char * sql_password, const char *db_name, unsigned int port_number, const char * unix_socket_name,unsigned int flags);参数说明如表所示。参数描述connection必须是已经初始化的连接句柄结构,server_host可以是主机名,也可以是IP地址,如果仅仅连接到本机,可以使用localhost来优化连接类型sql_user_nameMySQL数据库的用户名,默认情况下是rootsql_passwordroot账户的密码,默认情况下是没有密码的,即为NULLdb_
12、name要连接的数据库,如果为空,则连接到默认的数据库test中port_number经常被设置为0unix_socket_name经常被设置为NULLflags这个参数经常被设置为0C语言操作MySQL数据库mysql_real_connect()函数在本程序中应用的代码如下:MYSQL mysql;if(!mysql_real_connect(&mysql,127.0.0.1,root,123,db_books,0,NULL,0) printf(nt Can not connect db_books!n);else /*数据库连接成功*/在上述代码的链接操作中,&mysql是一个初始化连接
13、句柄;是本机名;root是MySQL数据库的账户;123是root账户的密码;db_books是要连接的数据库,其他参数均为默认设置。 3 查询图书表记录1mysql_query()函数MySQL提供的mysql_query()函数用于执行SQL语句,执行指定为“以Null终结的字符串的SQL查询。C语言操作MySQL数据库2SELECT子句SELECT子句是SQL的核心,在SQL语句中用的最多的就是SELECT语句了。SELECT语句用于查询数据库并检索与指定内容相匹配的数据。SELECT子句的语法格式如下:SELECT DISTINCT|UNIQUE(*,columnnameAS alia
14、s,)FROM tablename WHERE conditionGROUP BY group_by_listHAVING search_conditionsORDER BY columnameASC | DESC参数说明:DISTINCT|UNIQUE可删除查询结构中的重复列表。columnname该参数为所要查询的字段名称,AS alias子句为查询字段的别名;“*表示查询所有字段。FROM tablename该参数用于指定检索数据的数据源表的列表。WHERE search_conditions该子句是一个或多个筛选条件的组合,这个筛选条件的组合将使得只有满足该条件的记录才能被这个SELE
15、CT语句检索出来。GROUP BY group_by_list GROUP BY子句将根据参数group_by_list提供的字段将结果集分成组。HAVING search_conditions HAVING子句是应用于结果集的附加筛选。ORDER BY order_listASC | DESC ORDER BY子句用来定义结果集中的记录排行的顺序。C语言操作MySQL数据库4. 插入图书表记录插入图书记录同样是使用mysql_query()函数和INSERT INTO语句来实现的。mysql_query()函数在上一节中已经做了介绍,这里不做过多的介绍,本节仅介绍INSERT INTO语句。
16、INSERT INTO语句用于向数据库中插入数据,其语法格式如下:INSERT INTO VALUES (column value,last column value)参数说明:指出插入记录的表名。(column value,last column value):指出插入的记录。插入记录应遵循的规那么1插入的数据类型应与被参加列的数据类型对应相同或者系统可以自动转换。2添加的数据大写必须在列规定的范围内。例如:定义一个列的数据类型为10个字符的字符串,就不能将一个长度为20的字符串插入到该列中。5.修改图书表记录修改图书表记录是通过mysql_query()函数和UPDATE语句实现的。通过U
17、PDATE语句可以实现更改一列的数据的功能。UPDATE语句的语法格式如下:UPDATE SET =|DEFAULT|NULL ,= WHERE C语言操作MySQL数据库参数说明: table_name:需要更新的表的名称。如果该表不在当前效劳器或数据库中,或不为当前用户所有,这个名称可用链接效劳器、数据库和所有者名称来限定。 view_name:要更新的视图的名称。通过view_name来引用的视图必须是可更新的。 column_name:含有要更改数据的列的名称。column_name 必须驻留于 UPDATE 子句中所指定的表或视图中。标识列不能进行更新。如果指定了限定的列名称,限定符
18、必须同UPDATE子句中的表或视图的名称相匹配。例如,下面的内容有效:UPDATE authors SET authors.au_fname = Annie WHERE au_fname = Anne expression:变量、字面值、表达式或加上括弧的返回单个值的 subSELECT 语句。expression 返回的值将替换 column_name 或 variable 中的现有值。 DEFAULT:指定使用对列定义的默认值替换列中的现有值。如果该列没有默认值并且定义为允许空值,这也可用来将列更改为 NULL。C语言操作MySQL数据库6. 删除图书表记录删除图书表中的记录的实现是通过使
19、用mysql_query()函数和DELETE语句来实现的。要删除某条图书信息可以在DELETE语句的WHERE条件中指定要删除记录信息的条件,即可实现删除单条记录的功能。DELETE语句的语法格式如下:DELETE from WHERE 参数说明:指定删除行的限定条件。在这里按条件查询的结果只可以是一条记录。例如,tb_Student表中“学号列的值唯一的,删除“学号为“001108的记录的代码如下。USE DB_SQLDELETE FROM tb_StudentWHERE 学号 = 001108文件引用在图书信息管理系统中需要引用一些头文件,这些头文件可以帮助程序更好的运行。头文件的引用是通过#include命令来实现的,下面即为本程序中所引用的头文件。#include /*输入输出函数*/#include /*包含了其他windows头文件*/#include /*MySQL数据库头文件*/#pragma comment(lib,libmysql.lib)/*引用libmysql.lib 库*/windows.h头文件windows.h头文件包含了其他windows头文件,这些头文件的某些文件也
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年建筑安装工程承包合同
- 2024年度新能源发电EPC施工合同
- 股票课件教学课件
- 2024年城市规划地形测绘专项协议
- 2024年度旅游景区开发合同
- 2024年企业信息安全服务合同
- 2024年度CRM系统服务合同:提供销售合同管理专业支持
- 2024年亚太地区进出口合作协议
- 2024基于物联网技术的服务合同研究
- 2024年度煤炭供应合同
- 2023年新高考数学(新高考Ⅰ卷)真题评析及2024备考策略
- 湖北省武汉市华中师范大学附属小学六年级小升初语文测试卷(8套试卷带答案解析)
- 新媒体运营(用户运营内容运营活动运营产品运营社群运营)PPT完整全套教学课件
- 赣州市中小学三年级上册计算机教室上机记录表
- 任务七食品中脂肪含量测定
- 《IT人员职业规划》
- 初级社会统计学智慧树知到答案章节测试2023年哈尔滨工程大学
- 诗歌鉴赏基本知识点
- 人文英语3范文+人文英语3阅读740
- GB/T 3274-2007碳素结构钢和低合金结构钢热轧厚钢板和钢带
- GB/T 311.3-2007绝缘配合第3部分:高压直流换流站绝缘配合程序
评论
0/150
提交评论