




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、圖書管理系統(tǒng) 教 學(xué) 目 的內(nèi) 容1 教 學(xué) 要 求2 重 點 難 點3 教 學(xué) 內(nèi) 容4教 學(xué) 目 的 通過對圖書管理系統(tǒng)的學(xué)習(xí),使大家了解使用C語言和MySQL數(shù)據(jù)庫開發(fā)管理系統(tǒng)的過程,從而能夠更加熟悉C語言編程特點,幫助大家提升C語言編程能力。教 學(xué) 要 求在實際應(yīng)用中了解開發(fā)環(huán)境了解數(shù)據(jù)庫的設(shè)計;掌握C語言開發(fā)數(shù)據(jù)庫程序的流程;掌握C語言操作MYSQL數(shù)據(jù)庫;掌握各個模塊的設(shè)計過程;重 點 難 點重點:C語言開發(fā)數(shù)據(jù)庫程序的流程;MySQL數(shù)據(jù)庫和數(shù)據(jù)表的創(chuàng)立;C語言操作MySQL數(shù)據(jù)庫 ;難點:使用C語言連接MySQL數(shù)據(jù)庫;使用C語言對MySQL數(shù)據(jù)庫中數(shù)據(jù)進行增、刪、改、查等操作
2、。教 學(xué) 內(nèi) 容C語言開發(fā)數(shù)據(jù)庫程序的流程;概述;系統(tǒng)設(shè)計;數(shù)據(jù)庫設(shè)計;C語言操作MySQL數(shù)據(jù)庫;文件引用;變量和函數(shù)定義;主要功能模塊設(shè)計。概述 需求分析 目前,圖書市場日益劇烈的競爭迫使圖書企業(yè)希望采用一種新的管理方式來加快圖書流通信息的反響速度,而計算機信息技術(shù)的開展為圖書管理注入了新的生機。通過對市場的調(diào)查得知,一款合格的圖書信息管理系統(tǒng)必須具備以下三個特點: 能夠?qū)D書信息進行集中管理。 能夠大大提高用戶的工作效率。 能夠?qū)D書的局部信息進行查詢。 一個圖書管理系統(tǒng)最重要的功能是管理圖書,包括圖書的增加、刪除、修改、查詢等功能。 開發(fā)工具選擇 本系統(tǒng)前臺采用Microsoft公司的
3、Visual C+ 6.0作為主要的開發(fā)工具;數(shù)據(jù)庫選擇MySQL 5.0數(shù)據(jù)庫系統(tǒng),該系統(tǒng)在平安性、準(zhǔn)確性和運行速度方面都占有一定優(yōu)勢。 系統(tǒng)設(shè)計 系統(tǒng)目標(biāo)根據(jù)上面的需求分析,得出該圖書管理系統(tǒng)要實現(xiàn)的功能,有以下幾方面: 錄入圖書信息。 實現(xiàn)刪除功能,即輸入圖書號刪除相應(yīng)的記錄。 實現(xiàn)查找功能,即輸入圖書號或圖書名查詢該書相關(guān)信息。 實現(xiàn)修改功能,即輸入圖書號或圖書名修改相應(yīng)信息。 保存添加的圖書信息。系統(tǒng)功能結(jié)構(gòu)系統(tǒng)預(yù)覽開發(fā)及運行環(huán)境 系統(tǒng)開發(fā)平臺:Visual C+ 6.0 數(shù)據(jù)庫管理平臺:MySQL 5.0 運行平臺:Windows XP/ Windows 2000/ Windows
4、 2003 分辨率:最正確效果1024768數(shù)據(jù)庫設(shè)計安裝MySQL數(shù)據(jù)庫 MySQL是一款廣受歡送的數(shù)據(jù)庫,由于開源所以市場占有率高,倍受程序開發(fā)者的青睞。這不僅因為MySQL是完全網(wǎng)絡(luò)化的跨平臺關(guān)系型數(shù)據(jù)庫系統(tǒng),也是具有客戶機/效勞器體系結(jié)構(gòu)的分布式數(shù)據(jù)庫管理系統(tǒng)。它具有功能性強、使用簡捷、管理方便、運行速度快、版本升級快、平安性高等優(yōu)點,而且MySQL數(shù)據(jù)庫完全免費,從官方網(wǎng)站 :/即可免費下載到最新版本的MySQL安裝包“mysql-essential-5.0.82-win32.msi。 啟動MySQL數(shù)據(jù)庫創(chuàng)立數(shù)據(jù)庫使用SQL語句創(chuàng)立數(shù)據(jù)庫,這里使用的是create語句,其語法形式如
5、下CREATE DATABASE | SCHEMA IF NOT EXISTS db_name create_specification , create_specification .本程序中,創(chuàng)立一個名為db_books的數(shù)據(jù)庫,SQL語句如下:create database db_books;創(chuàng)立完成數(shù)據(jù)庫以后使用use語句來改變當(dāng)前的數(shù)據(jù)庫,本程序中,使用的SQL語句如下:use db_books;數(shù)據(jù)庫設(shè)計使用USE語句,可以改變當(dāng)前的數(shù)據(jù)庫。在進入到db_books數(shù)據(jù)庫中以后,就需要創(chuàng)立數(shù)據(jù)表,在創(chuàng)立數(shù)據(jù)表時,需要使用Create table語句來創(chuàng)立,在本例中使用的創(chuàng)立數(shù)據(jù)表的
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;在上述創(chuàng)立語句中,創(chuàng)立了一個具有4個字段的數(shù)據(jù)庫,分別是ID編號、bookname圖書名、author作者、bookconcern出版社。其中,字段ID是主鍵,這些字段都不能為空。數(shù)據(jù)表結(jié)構(gòu) 為了便于讀者更好的學(xué)習(xí),下面給出圖書表的數(shù)據(jù)表結(jié)構(gòu),圖書表用來保存圖書信息。其數(shù)據(jù)
7、表結(jié)構(gòu)如表 字段名數(shù)據(jù)類型長度是否為空是否主鍵描述IDchar10否是圖書編號booknamechar50否否圖書名authorchar50否否作者bookconcernchar100否否出版社數(shù)據(jù)庫設(shè)計安裝MySQL數(shù)據(jù)庫 MySQL是一款廣受歡送的數(shù)據(jù)庫,由于開源所以市場占有率高,倍受程序開發(fā)者的青睞。這不僅因為MySQL是完全網(wǎng)絡(luò)化的跨平臺關(guān)系型數(shù)據(jù)庫系統(tǒng),也是具有客戶機/效勞器體系結(jié)構(gòu)的分布式數(shù)據(jù)庫管理系統(tǒng)。它具有功能性強、使用簡捷、管理方便、運行速度快、版本升級快、平安性高等優(yōu)點,而且MySQL數(shù)據(jù)庫完全免費,從官方網(wǎng)站 :/即可免費下載到最新版本的MySQL安裝包“mysql-es
8、sential-5.0.82-win32.msi。 啟動MySQL數(shù)據(jù)庫創(chuàng)立數(shù)據(jù)庫使用SQL語句創(chuàng)立數(shù)據(jù)庫,這里使用的是create語句,其語法形式如下CREATE DATABASE | SCHEMA IF NOT EXISTS db_name create_specification , create_specification .本程序中,創(chuàng)立一個名為db_books的數(shù)據(jù)庫,SQL語句如下:create database db_books;數(shù)據(jù)表結(jié)構(gòu) C語言開發(fā)數(shù)據(jù)庫程序的流程剛剛接觸MySQL的用戶,如果想用C語言連接MySQL,往往會是一件很麻煩的事情,下面就整理一下C語言開發(fā)數(shù)據(jù)庫
9、的流程。MySQL為C語言提供了連接數(shù)據(jù)庫的API,要想正常使用這些API,需要做以下兩件事情:1包含這些API的聲明文件,即mysql.h。2讓編譯器找到這些API的可執(zhí)行程序,即DLL庫。下面介紹一下詳細的步驟:1在C語言中引入如下頭文件 #include #include 下面解決,讓編譯器找到mysql.h的問題。需要在編譯環(huán)境中作如下的設(shè)置:2引入庫函數(shù)經(jīng)過上一步的設(shè)置,程序已經(jīng)可以編譯通過了,但是編譯通過并不等于可以生成可執(zhí)行文件。還需要告訴編譯器這些API函數(shù)的可執(zhí)行文件在哪個DLL文件libmysql.dll中。最好將libmysql.lib以及l(fā)ibmysql.dll文件拷貝
10、到工程的目錄下。在程序中需要添加的代碼如下:#include #include #pragma comment(lib,libmysql.lib)3設(shè)置好環(huán)境以后,剩下的就是編寫程序代碼了,代碼將在后面的局部進行詳細的介紹。 C語言操作MySQL數(shù)據(jù)庫1.MySQL常用數(shù)據(jù)庫操作函數(shù) 2. 連接MySQL數(shù)據(jù)MySQL提供的mysql_real_connect()函數(shù)用于數(shù)據(jù)庫連接,其語法形式如下: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);參數(shù)說明如表所示。參數(shù)描述connection必須是已經(jīng)初始化的連接句柄結(jié)構(gòu),server_host可以是主機名,也可以是IP地址,如果僅僅連接到本機,可以使用localhost來優(yōu)化連接類型sql_user_nameMySQL數(shù)據(jù)庫的用戶名,默認情況下是rootsql_passwordroot賬戶的密碼,默認情況下是沒有密碼的,即為NULLdb_
12、name要連接的數(shù)據(jù)庫,如果為空,則連接到默認的數(shù)據(jù)庫test中port_number經(jīng)常被設(shè)置為0unix_socket_name經(jīng)常被設(shè)置為NULLflags這個參數(shù)經(jīng)常被設(shè)置為0C語言操作MySQL數(shù)據(jù)庫mysql_real_connect()函數(shù)在本程序中應(yīng)用的代碼如下: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 /*數(shù)據(jù)庫連接成功*/在上述代碼的鏈接操作中,&mysql是一個初始化連接
13、句柄;是本機名;root是MySQL數(shù)據(jù)庫的賬戶;123是root賬戶的密碼;db_books是要連接的數(shù)據(jù)庫,其他參數(shù)均為默認設(shè)置。 3 查詢圖書表記錄1mysql_query()函數(shù)MySQL提供的mysql_query()函數(shù)用于執(zhí)行SQL語句,執(zhí)行指定為“以Null終結(jié)的字符串的SQL查詢。C語言操作MySQL數(shù)據(jù)庫2SELECT子句SELECT子句是SQL的核心,在SQL語句中用的最多的就是SELECT語句了。SELECT語句用于查詢數(shù)據(jù)庫并檢索與指定內(nèi)容相匹配的數(shù)據(jù)。SELECT子句的語法格式如下:SELECT DISTINCT|UNIQUE(*,columnnameAS alia
14、s,)FROM tablename WHERE conditionGROUP BY group_by_listHAVING search_conditionsORDER BY columnameASC | DESC參數(shù)說明:DISTINCT|UNIQUE可刪除查詢結(jié)構(gòu)中的重復(fù)列表。columnname該參數(shù)為所要查詢的字段名稱,AS alias子句為查詢字段的別名;“*表示查詢所有字段。FROM tablename該參數(shù)用于指定檢索數(shù)據(jù)的數(shù)據(jù)源表的列表。WHERE search_conditions該子句是一個或多個篩選條件的組合,這個篩選條件的組合將使得只有滿足該條件的記錄才能被這個SELE
15、CT語句檢索出來。GROUP BY group_by_list GROUP BY子句將根據(jù)參數(shù)group_by_list提供的字段將結(jié)果集分成組。HAVING search_conditions HAVING子句是應(yīng)用于結(jié)果集的附加篩選。ORDER BY order_listASC | DESC ORDER BY子句用來定義結(jié)果集中的記錄排行的順序。C語言操作MySQL數(shù)據(jù)庫4. 插入圖書表記錄插入圖書記錄同樣是使用mysql_query()函數(shù)和INSERT INTO語句來實現(xiàn)的。mysql_query()函數(shù)在上一節(jié)中已經(jīng)做了介紹,這里不做過多的介紹,本節(jié)僅介紹INSERT INTO語句。
16、INSERT INTO語句用于向數(shù)據(jù)庫中插入數(shù)據(jù),其語法格式如下:INSERT INTO VALUES (column value,last column value)參數(shù)說明:指出插入記錄的表名。(column value,last column value):指出插入的記錄。插入記錄應(yīng)遵循的規(guī)那么1插入的數(shù)據(jù)類型應(yīng)與被參加列的數(shù)據(jù)類型對應(yīng)相同或者系統(tǒng)可以自動轉(zhuǎn)換。2添加的數(shù)據(jù)大寫必須在列規(guī)定的范圍內(nèi)。例如:定義一個列的數(shù)據(jù)類型為10個字符的字符串,就不能將一個長度為20的字符串插入到該列中。5.修改圖書表記錄修改圖書表記錄是通過mysql_query()函數(shù)和UPDATE語句實現(xiàn)的。通過U
17、PDATE語句可以實現(xiàn)更改一列的數(shù)據(jù)的功能。UPDATE語句的語法格式如下:UPDATE SET =|DEFAULT|NULL ,= WHERE C語言操作MySQL數(shù)據(jù)庫參數(shù)說明: table_name:需要更新的表的名稱。如果該表不在當(dāng)前效勞器或數(shù)據(jù)庫中,或不為當(dāng)前用戶所有,這個名稱可用鏈接效勞器、數(shù)據(jù)庫和所有者名稱來限定。 view_name:要更新的視圖的名稱。通過view_name來引用的視圖必須是可更新的。 column_name:含有要更改數(shù)據(jù)的列的名稱。column_name 必須駐留于 UPDATE 子句中所指定的表或視圖中。標(biāo)識列不能進行更新。如果指定了限定的列名稱,限定符
18、必須同UPDATE子句中的表或視圖的名稱相匹配。例如,下面的內(nèi)容有效:UPDATE authors SET authors.au_fname = Annie WHERE au_fname = Anne expression:變量、字面值、表達式或加上括弧的返回單個值的 subSELECT 語句。expression 返回的值將替換 column_name 或 variable 中的現(xiàn)有值。 DEFAULT:指定使用對列定義的默認值替換列中的現(xiàn)有值。如果該列沒有默認值并且定義為允許空值,這也可用來將列更改為 NULL。C語言操作MySQL數(shù)據(jù)庫6. 刪除圖書表記錄刪除圖書表中的記錄的實現(xiàn)是通過使
19、用mysql_query()函數(shù)和DELETE語句來實現(xiàn)的。要刪除某條圖書信息可以在DELETE語句的WHERE條件中指定要刪除記錄信息的條件,即可實現(xiàn)刪除單條記錄的功能。DELETE語句的語法格式如下:DELETE from WHERE 參數(shù)說明:指定刪除行的限定條件。在這里按條件查詢的結(jié)果只可以是一條記錄。例如,tb_Student表中“學(xué)號列的值唯一的,刪除“學(xué)號為“001108的記錄的代碼如下。USE DB_SQLDELETE FROM tb_StudentWHERE 學(xué)號 = 001108文件引用在圖書信息管理系統(tǒng)中需要引用一些頭文件,這些頭文件可以幫助程序更好的運行。頭文件的引用是通過#include命令來實現(xiàn)的,下面即為本程序中所引用的頭文件。#include /*輸入輸出函數(shù)*/#include /*包含了其他windows頭文件*/#include /*MySQL數(shù)據(jù)庫頭文件*/#pragma comment(lib,libmysql.lib)/*引用libmysql.lib 庫*/windows.h頭文件windows.h頭文件包含了其他windows頭文件,這些頭文件的某些文件也
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新生兒紅細胞增多癥-高黏滯度綜合征的健康宣教
- 半小時學(xué)審計培訓(xùn)
- 珠寶營業(yè)員培訓(xùn)
- 客戶信用風(fēng)險定期評估預(yù)警管理制度
- 廣西壯族自治區(qū)河池市東蘭縣2024年中考數(shù)學(xué)模擬試卷含解析
- AFC高級工練習(xí)試題
- 廣西壯族自治區(qū)河池市羅城仫佬族自治縣重點中學(xué)2024屆中考五模數(shù)學(xué)試題含解析
- 如何做到熱愛班級培訓(xùn)
- 生物實驗室管理制度
- 華能審計工作要點
- 柯坦鎮(zhèn)中心小學(xué)開展研學(xué)旅行活動實施方案
- 二年級下冊語文-第五單元單元解讀-人教版
- 2024-2025學(xué)年華東師大版數(shù)學(xué)七年級上冊計算題專項訓(xùn)練
- 服務(wù)類驗收單
- 2022-2023學(xué)年陜西省寶雞市渭濱區(qū)八年級(下)期中數(shù)學(xué)試卷(含解析)
- 2023-2024學(xué)年海南省天一大聯(lián)考高三下學(xué)期第六次檢測數(shù)學(xué)試卷含解析
- 危重患者識別和處理-課件
- 議小型水庫的病害及防患措施
- 預(yù)防交叉感染課件
- 上下班交通安全培訓(xùn)課件
- 企業(yè)家精神的性別差異基于創(chuàng)業(yè)動機視角的研究
評論
0/150
提交評論