您好,登錄后才能下訂單哦!
本文小編為大家詳細(xì)介紹“C語言如何實(shí)現(xiàn)圖書管理系統(tǒng)開發(fā)”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“C語言如何實(shí)現(xiàn)圖書管理系統(tǒng)開發(fā)”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。
圖書管理系統(tǒng)主要有以下功能:
1、錄入圖書信息。
2、實(shí)現(xiàn)刪除功能,即輸入圖書號(hào)刪除相應(yīng)的記錄。
3、實(shí)現(xiàn)查找功能,即輸入圖書號(hào)或圖書名查詢?cè)摃嚓P(guān)信息
4、實(shí)現(xiàn)修改功能,即輸入圖書號(hào)或圖書名修改相應(yīng)信息。
5、添加會(huì)員信息,只有會(huì)員才可借書。
6、實(shí)現(xiàn)借書功能,即輸入圖書號(hào)及會(huì)員號(hào)進(jìn)行借書。
7、實(shí)現(xiàn)還書功能,還書時(shí)也同樣需輸入圖書號(hào)及會(huì)員號(hào)。
8、保存添加的圖書信息。
9、保存添加的會(huì)員信息。
#include <stdio.h> #include <windows.h> #include <mysql.h> #pragma comment(lib,"libmysql.lib") /*定義數(shù)據(jù)庫相關(guān)操作變量*/ MYSQL mysql; // MYSQL_RES *result; //定義結(jié)果集變量 MYSQL_ROW row; //定義行變量 char ch[2]; void ShowAll(); /*顯示所有的圖書信息*/ void AddBook(); /*添加圖書信息*/ void ModifyBook(); /*修改圖書信息*/ void DeleteBook(); /*刪除圖書信息*/ void QueryBook(); /*查詢圖書信息*/ /*顯示菜單*/ void showmenu() { system("cls"); printf("\n\n\n\n\n"); printf("\t╔═══════════════════════════╗\n"); printf("\t║ Welcome To Lemon Books System ║\n"); printf("\t╠═══════════════════════════╣\n"); printf("\t║\t\t 1 - 顯示所有圖書信息 ║\n"); printf("\t║\t\t 2 - 添加圖書信息 ║\n"); printf("\t║\t\t 3 - 修改圖書信息 ║\n"); printf("\t║\t\t 4 - 刪除圖書信息 ║\n"); printf("\t║\t\t 5 - 查詢圖書信息 ║\n"); printf("\t║\t\t 6 - 退出 ║\n"); printf("\t╚═══════════════════════════╝\n"); printf("\n ENTER YOUR CHOICE(1-6):"); } void inquire() /*詢問用戶是否顯示主菜單*/ { printf("\t 顯示主菜單?(y/n):"); scanf("%s",ch); if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判斷是否要顯示查找到的信息*/ { showmenu(); /*顯示菜單*/ } else { exit(0); } } /*顯示主菜單,連接數(shù)據(jù)庫*/ int main() { int n ; //定義變量 存儲(chǔ)用戶輸入的編號(hào) mysql_init(&mysql); //初始化mysql結(jié)構(gòu) showmenu(); /*顯示菜單*/ scanf("%d",&n);/*輸入選擇功能的編號(hào)*/ while(n) { switch(n) { case 1: ShowAll(); /*調(diào)用顯示所有圖書數(shù)據(jù)的過程*/ break; case 2: AddBook(); /*添加圖書信息*/ break; case 3: ModifyBook(); /*修改圖書信息*/ break; case 4: DeleteBook(); /*刪除圖書信息*/ break; case 5: QueryBook(); /*查詢圖書信息*/ break; case 6: exit(0); /*退出*/ default:break; } scanf("%d",&n); } } void ShowAll() /*調(diào)用顯示所有圖書數(shù)據(jù)的過程*/ { /*連接數(shù)據(jù)庫*/ if(!mysql_real_connect(&mysql,"localhost","root","root","db_books",3306,NULL,0)) { printf("\n\t 不能連接數(shù)據(jù)庫!\n"); } else { /*數(shù)據(jù)庫連接成功*/ if(mysql_query(&mysql,"select * from tb_book")) { //如果查詢失敗 printf("\n\t 查詢 tb_book 數(shù)據(jù)表失敗!\n"); } else { result=mysql_store_result(&mysql); //獲得結(jié)果集 if(mysql_num_rows(result)!=NULL) { //有記錄的情況,只有有記錄取數(shù)據(jù)才有意義 printf("\t ════════════════════════════ \n"); printf("\t 顯 示 所 有 圖 書 信 息 \n"); printf("\t ════════════════════════════ \n"); printf("\t 圖書編號(hào) 圖書名 作者 出版社 \n"); printf("\t -------------------------------------------------------- \n"); while((row=mysql_fetch_row(result))) { //取出結(jié)果集中記錄 fprintf(stdout,"\t %s %s %s %s \n",row[0],row[1],row[2],row[3]); //輸出這行記錄 } printf("\t ════════════════════════════ \n"); } else { printf("\n\t 沒有記錄信息 !\n"); } mysql_free_result(result); //釋放結(jié)果集 } mysql_close(&mysql); //釋放連接 } inquire(); /*詢問是否顯示主菜單*/ } void AddBook() /*添加圖書信息*/ { int rowcount; /*結(jié)果集中的行數(shù)*/ char id[10]; /*編號(hào)*/ char *bookname; char *author; char *bookconcern; char *sql; char dest[500] ={" "}; /*連接數(shù)據(jù)庫*/ if(!mysql_real_connect(&mysql,"127.0.0.1","root","root","db_books",0,NULL,0)) { printf("\n\t 不能連接數(shù)據(jù)庫!\n"); } else { /*數(shù)據(jù)庫連接成功,插入數(shù)據(jù)*/ printf("\t ════════════════════════════ \n"); printf("\t 添 加 圖 書 信 息 \n"); printf("\t ════════════════════════════ \n"); if(mysql_query(&mysql,"select * from tb_book")) { //如果查詢失敗 printf("\n\t 查詢 tb_book 數(shù)據(jù)表失敗!\n"); } else { result=mysql_store_result(&mysql); //獲得結(jié)果集 rowcount=mysql_num_rows(result) ; //獲得行數(shù) row=mysql_fetch_row(result); //獲取結(jié)果集的行 printf("\t 圖書編號(hào):"); scanf("%s",id); /*輸入圖書編號(hào)*/ sql="insert into tb_book (ID,bookname,author,bookconcern) values ("; strcat(dest,sql); strcat(dest,"'"); strcat(dest,id); strcat(dest,"', '"); if(mysql_num_rows(result)!=NULL) { /*判斷輸入的編號(hào)是否存在*/ do { //存在相同編號(hào) if(!strcmp(id,row[0])) { // printf("%s",row[0]); printf("\n\t 記錄存在,按任意鍵繼續(xù)!\n"); getch(); mysql_free_result(result); /*釋放結(jié)果集*/ mysql_close(&mysql); /*釋放連接*/ inquire(); /*詢問是否顯示主菜單*/ return; } }while(row=mysql_fetch_row(result)); } bookname = (char*)malloc(50); author = (char*)malloc(50); bookconcern = (char*)malloc(50); //不存在相同的編號(hào) printf("\t 圖書名:"); scanf("%s",bookname); /*輸入圖書名*/ strcat(dest,bookname); /*將圖書編號(hào)追加到sql語句后面*/ printf("\t 作者:"); scanf("%s",author); /*輸入作者*/ strcat(dest,"', '"); strcat(dest,author); printf("\t 出版社:"); scanf("%s",bookconcern); /*輸入出版社*/ strcat(dest,"', '"); strcat(dest,bookconcern); strcat(dest,"')"); //printf("%s",dest); if ( mysql_query(&mysql,dest)!=0) { fprintf(stderr,"\t 不能插入記錄!",mysql_error(&mysql)); } else { printf("\t 插入成功!\n"); } mysql_free_result(result); //釋放結(jié)果集 } mysql_close(&mysql); //釋放連接 } exit(0); } void ModifyBook() /*修改圖書信息*/ { char id[10]; /*結(jié)果集中的行數(shù)*/ char *sql; char dest[500] ={" "}; char dest1[500] ={" "}; char *bookname; char *author; char *bookconcern; if (!mysql_real_connect(&mysql,"127.0.0.1","root","root","db_books",0,NULL,0)) { printf("\t 不能連接數(shù)據(jù)庫!\n"); } else { /*數(shù)據(jù)庫連接成功*/ // printf("連接成功"); printf("\t 請(qǐng)輸入您想要修改的圖書編號(hào)."); scanf("%s",id); /*輸入圖書編號(hào)*/ sql = "select * from tb_book where id="; strcat(dest,sql); strcat(dest,id); /*將圖書編號(hào)追加到sql語句后面*/ //printf("%s\n",dest); /*查詢?cè)搱D書信息是否存在*/ if(mysql_query(&mysql,dest)) { //如果查詢失敗 printf("\n 查詢 tb_book 數(shù)據(jù)表失敗! \n"); } else { result=mysql_store_result(&mysql); //獲得結(jié)果集 if(mysql_num_rows(result)!=NULL) { //有記錄的情況,只有有記錄取數(shù)據(jù)才有意義 printf("\t 發(fā)現(xiàn)記錄信息,是否顯示?(y/n) "); scanf("%s",ch); if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判斷是否要顯示查找到的信息*/ { printf("\t ════════════════════════════ \n"); printf("\t ***** 顯示圖書信息 ***** \n"); printf("\t ════════════════════════════ \n"); printf("\t圖書編號(hào) 圖書名 作者 出版社 \n"); printf("\t -------------------------------------------------------- \n"); while((row=mysql_fetch_row(result))) { //取出結(jié)果集中記錄 fprintf(stdout,"\t %s %s %s %s \n",row[0],row[1],row[2],row[3]); //輸出這行記錄 } printf("\t ════════════════════════════ \n"); } printf("\t Modify?(y/n)"); scanf("%s",ch); if (strcmp(ch,"Y")==0||strcmp(ch,"y")==0) /*判斷是否需要錄入*/ { sql = "update tb_book set bookname= '"; strcat(dest1,sql); // printf("%s",sql); bookname = (char*)malloc(20); author = (char*)malloc(20); bookconcern = (char*)malloc(20); printf("\t 圖書名:"); scanf("%s",bookname); /*輸入圖書名*/ strcat(dest1,bookname); // printf("%s",&bookname); printf("\t 作者:"); scanf("%s",author); /*輸入作者*/ strcat(dest1,"', author= '"); strcat(dest1,author); /*追加sql語句*/ printf("\t 出版社:"); scanf("%s",bookconcern); /*輸入出版社*/ strcat(dest1,"', bookconcern = '"); strcat(dest1,bookconcern); /*追加sql語句*/ strcat(dest1,"' where id= "); strcat(dest1,id); //printf("%s",dest1); if(mysql_query(&mysql,dest1)!=0) { fprintf(stderr,"\t 不能修改記錄!\n",mysql_error(&mysql)); } else { printf("\t 修改成功!\n"); } } } else { printf("\t 沒有發(fā)現(xiàn)要修改的信息!\n"); } } mysql_free_result(result); //釋放結(jié)果集 } mysql_close(&mysql); //釋放連接 exit(0); } void DeleteBook() /*刪除圖書信息*/ { char id[10]; /*結(jié)果集中的行數(shù)*/ char *sql; char dest[100] ={" "}; char dest1[100] ={" "}; if(!mysql_real_connect(&mysql,"127.0.0.1","root","root","db_books",0,NULL,0)) { printf("\t 不能連接數(shù)據(jù)庫!\n"); } else { printf("\t 請(qǐng)輸入您想要?jiǎng)h除的圖書編號(hào). "); scanf("%s",id); /*輸入圖書編號(hào)*/ sql = "select * from tb_book where id="; strcat(dest,sql); strcat(dest,id); /*將圖書編號(hào)追加到sql語句后面*/ //printf("%s\n",dest); /*查詢?cè)搱D書信息是否存在*/ if(mysql_query(&mysql,dest)) { //如果查詢失敗 printf("\n 查詢 tb_book 數(shù)據(jù)表失敗! \n"); } else { result=mysql_store_result(&mysql); //獲得結(jié)果集 if(mysql_num_rows(result)!=NULL) { //有記錄的情況,只有有記錄取數(shù)據(jù)才有意義 printf("\t 發(fā)現(xiàn)記錄信息,是否顯示?(y/n) "); scanf("%s",ch); if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判斷是否要顯示查找到的信息*/ { printf("\t ════════════════════════════ \n"); printf("\t ***** 顯示圖書信息 ***** \n"); printf("\t ════════════════════════════ \n"); printf("\t圖書編號(hào) 圖書名 作者 出版社 \n"); printf("\t -------------------------------------------------------- \n"); while((row=mysql_fetch_row(result))) { //取出結(jié)果集中記錄 fprintf(stdout,"\t %s %s %s %s \n",row[0],row[1],row[2],row[3]); //輸出這行記錄 } printf("\t ════════════════════════════ \n"); } printf("\t 是否刪除?(y/n) "); scanf("%s",ch); if (strcmp(ch,"Y")==0||strcmp(ch,"y")==0) /*判斷是否需要錄入*/ { sql = "delete from tb_book where ID= "; printf("%s",dest1); strcat(dest1,sql); strcat(dest1,id); // printf("%s",dest1); if(mysql_query(&mysql,dest1)!=0) { fprintf(stderr,"\t 不能刪除記錄! \n",mysql_error(&mysql)); } else { printf("\t 刪除成功!\n"); } } } else { printf("\t 沒有發(fā)現(xiàn)要?jiǎng)h除的信息!\n"); } } mysql_free_result(result); //釋放結(jié)果集 } mysql_close(&mysql); exit(0); } void QueryBook() /*查詢圖書信息*/ { char id[10]; /*結(jié)果集中的行數(shù)*/ char *sql; char dest[100] ={" "}; if(!mysql_real_connect(&mysql,"127.0.0.1","root","root","db_books",0,NULL,0)) { printf("\t 不能連接數(shù)據(jù)庫!\n"); } else { printf("\t 請(qǐng)輸入您想要查詢的圖書編號(hào):"); scanf("%s",id); /*輸入圖書編號(hào)*/ sql = "select * from tb_book where id="; strcat(dest,sql); strcat(dest,id); /*將圖書編號(hào)追加到sql語句后面*/ if(mysql_query(&mysql,dest)) { //如果查詢失敗 printf("\n 查詢 tb_book 數(shù)據(jù)表失敗!\n"); } else { result=mysql_store_result(&mysql); //獲得結(jié)果集 if(mysql_num_rows(result)!=NULL) { //有記錄的情況,只有有記錄取數(shù)據(jù)才有意義 printf("\t ════════════════════════════ \n"); printf("\t 顯示圖書信息 \n"); printf("\t ════════════════════════════ \n"); printf("\t圖書編號(hào) 圖書名 作者 出版社 \n"); printf("\t -------------------------------------------------------- \n"); while((row=mysql_fetch_row(result))) { //取出結(jié)果集中記錄 fprintf(stdout,"\t %s %s %s %s \n",row[0],row[1],row[2],row[3]); //輸出這行記錄 } printf("\t ════════════════════════════ \n"); } else { printf("\t 沒有發(fā)現(xiàn)要查詢的信息!\n"); } mysql_free_result(result); //釋放結(jié)果集 } mysql_close(&mysql); //釋放連接 } exit(0); }
讀到這里,這篇“C語言如何實(shí)現(xiàn)圖書管理系統(tǒng)開發(fā)”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。