<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C語言實現圖書管理系統的具體程式碼,供大家參考,具體內容如下
圖書管理系統主要有以下功能:
1、錄入圖書資訊。
2、實現刪除功能,即輸入圖書號刪除相應的記錄。
3、實現查詢功能,即輸入圖書號或圖書名查詢該書相關資訊
4、實現修改功能,即輸入圖書號或圖書名修改相應資訊。
5、新增會員資訊,只有會員才可借書。
6、實現借書功能,即輸入圖書號及會員號進行借書。
7、實現還書功能,還書時也同樣需輸入圖書號及會員號。
8、儲存新增的圖書資訊。
9、儲存新增的會員資訊。
#include <stdio.h> #include <windows.h> #include <mysql.h> #pragma comment(lib,"libmysql.lib") /*定義資料庫相關操作變數*/ MYSQL mysql; // MYSQL_RES *result; //定義結果集變數 MYSQL_ROW row; //定義行變數 char ch[2]; void ShowAll(); /*顯示所有的圖書資訊*/ void AddBook(); /*新增圖書資訊*/ void ModifyBook(); /*修改圖書資訊*/ void DeleteBook(); /*刪除圖書資訊*/ void QueryBook(); /*查詢圖書資訊*/ /*顯示選單*/ void showmenu() { system("cls"); printf("nnnnn"); printf("t╔═══════════════════════════╗n"); printf("t║ Welcome To Lemon Books System ║n"); printf("t╠═══════════════════════════╣n"); printf("t║tt 1 - 顯示所有圖書資訊 ║n"); printf("t║tt 2 - 新增圖書資訊 ║n"); printf("t║tt 3 - 修改圖書資訊 ║n"); printf("t║tt 4 - 刪除圖書資訊 ║n"); printf("t║tt 5 - 查詢圖書資訊 ║n"); printf("t║tt 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); } } /*顯示主選單,連線資料庫*/ int main() { int n ; //定義變數 儲存使用者輸入的編號 mysql_init(&mysql); //初始化mysql結構 showmenu(); /*顯示選單*/ scanf("%d",&n);/*輸入選擇功能的編號*/ while(n) { switch(n) { case 1: ShowAll(); /*呼叫顯示所有圖書資料的過程*/ 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() /*呼叫顯示所有圖書資料的過程*/ { /*連線資料庫*/ if(!mysql_real_connect(&mysql,"localhost","root","root","db_books",3306,NULL,0)) { printf("nt 不能連線資料庫!n"); } else { /*資料庫連線成功*/ if(mysql_query(&mysql,"select * from tb_book")) { //如果查詢失敗 printf("nt 查詢 tb_book 資料表失敗!n"); } else { result=mysql_store_result(&mysql); //獲得結果集 if(mysql_num_rows(result)!=NULL) { //有記錄的情況,只有有記錄取資料才有意義 printf("t ════════════════════════════ n"); printf("t 顯 示 所 有 圖 書 信 息 n"); printf("t ════════════════════════════ n"); printf("t 圖書編號 圖書名 作者 出版社 n"); printf("t -------------------------------------------------------- n"); while((row=mysql_fetch_row(result))) { //取出結果集中記錄 fprintf(stdout,"t %s %s %s %s n",row[0],row[1],row[2],row[3]); //輸出這行記錄 } printf("t ════════════════════════════ n"); } else { printf("nt 沒有記錄資訊 !n"); } mysql_free_result(result); //釋放結果集 } mysql_close(&mysql); //釋放連線 } inquire(); /*詢問是否顯示主選單*/ } void AddBook() /*新增圖書資訊*/ { int rowcount; /*結果集中的行數*/ char id[10]; /*編號*/ char *bookname; char *author; char *bookconcern; char *sql; char dest[500] ={" "}; /*連線資料庫*/ if(!mysql_real_connect(&mysql,"127.0.0.1","root","root","db_books",0,NULL,0)) { printf("nt 不能連線資料庫!n"); } else { /*資料庫連線成功,插入資料*/ printf("t ════════════════════════════ n"); printf("t 添 加 圖 書 信 息 n"); printf("t ════════════════════════════ n"); if(mysql_query(&mysql,"select * from tb_book")) { //如果查詢失敗 printf("nt 查詢 tb_book 資料表失敗!n"); } else { result=mysql_store_result(&mysql); //獲得結果集 rowcount=mysql_num_rows(result) ; //獲得行數 row=mysql_fetch_row(result); //獲取結果集的行 printf("t 圖書編號:"); scanf("%s",id); /*輸入圖書編號*/ 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) { /*判斷輸入的編號是否存在*/ do { //存在相同編號 if(!strcmp(id,row[0])) { // printf("%s",row[0]); printf("nt 記錄存在,按任意鍵繼續!n"); getch(); mysql_free_result(result); /*釋放結果集*/ mysql_close(&mysql); /*釋放連線*/ inquire(); /*詢問是否顯示主選單*/ return; } }while(row=mysql_fetch_row(result)); } bookname = (char*)malloc(50); author = (char*)malloc(50); bookconcern = (char*)malloc(50); //不存在相同的編號 printf("t 圖書名:"); scanf("%s",bookname); /*輸入圖書名*/ strcat(dest,bookname); /*將圖書編號追加到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); //釋放結果集 } mysql_close(&mysql); //釋放連線 } exit(0); } void ModifyBook() /*修改圖書資訊*/ { char id[10]; /*結果集中的行數*/ 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 不能連線資料庫!n"); } else { /*資料庫連線成功*/ // printf("連線成功"); printf("t 請輸入您想要修改的圖書編號."); scanf("%s",id); /*輸入圖書編號*/ sql = "select * from tb_book where id="; strcat(dest,sql); strcat(dest,id); /*將圖書編號追加到sql語句後面*/ //printf("%sn",dest); /*查詢該圖書資訊是否存在*/ if(mysql_query(&mysql,dest)) { //如果查詢失敗 printf("n 查詢 tb_book 資料表失敗! n"); } else { result=mysql_store_result(&mysql); //獲得結果集 if(mysql_num_rows(result)!=NULL) { //有記錄的情況,只有有記錄取資料才有意義 printf("t 發現記錄資訊,是否顯示?(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圖書編號 圖書名 作者 出版社 n"); printf("t -------------------------------------------------------- n"); while((row=mysql_fetch_row(result))) { //取出結果集中記錄 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 沒有發現要修改的資訊!n"); } } mysql_free_result(result); //釋放結果集 } mysql_close(&mysql); //釋放連線 exit(0); } void DeleteBook() /*刪除圖書資訊*/ { char id[10]; /*結果集中的行數*/ 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 不能連線資料庫!n"); } else { printf("t 請輸入您想要刪除的圖書編號. "); scanf("%s",id); /*輸入圖書編號*/ sql = "select * from tb_book where id="; strcat(dest,sql); strcat(dest,id); /*將圖書編號追加到sql語句後面*/ //printf("%sn",dest); /*查詢該圖書資訊是否存在*/ if(mysql_query(&mysql,dest)) { //如果查詢失敗 printf("n 查詢 tb_book 資料表失敗! n"); } else { result=mysql_store_result(&mysql); //獲得結果集 if(mysql_num_rows(result)!=NULL) { //有記錄的情況,只有有記錄取資料才有意義 printf("t 發現記錄資訊,是否顯示?(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圖書編號 圖書名 作者 出版社 n"); printf("t -------------------------------------------------------- n"); while((row=mysql_fetch_row(result))) { //取出結果集中記錄 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 沒有發現要刪除的資訊!n"); } } mysql_free_result(result); //釋放結果集 } mysql_close(&mysql); exit(0); } void QueryBook() /*查詢圖書資訊*/ { char id[10]; /*結果集中的行數*/ char *sql; char dest[100] ={" "}; if(!mysql_real_connect(&mysql,"127.0.0.1","root","root","db_books",0,NULL,0)) { printf("t 不能連線資料庫!n"); } else { printf("t 請輸入您想要查詢的圖書編號:"); scanf("%s",id); /*輸入圖書編號*/ sql = "select * from tb_book where id="; strcat(dest,sql); strcat(dest,id); /*將圖書編號追加到sql語句後面*/ if(mysql_query(&mysql,dest)) { //如果查詢失敗 printf("n 查詢 tb_book 資料表失敗!n"); } else { result=mysql_store_result(&mysql); //獲得結果集 if(mysql_num_rows(result)!=NULL) { //有記錄的情況,只有有記錄取資料才有意義 printf("t ════════════════════════════ n"); printf("t 顯示圖書資訊 n"); printf("t ════════════════════════════ n"); printf("t圖書編號 圖書名 作者 出版社 n"); printf("t -------------------------------------------------------- n"); while((row=mysql_fetch_row(result))) { //取出結果集中記錄 fprintf(stdout,"t %s %s %s %s n",row[0],row[1],row[2],row[3]); //輸出這行記錄 } printf("t ════════════════════════════ n"); } else { printf("t 沒有發現要查詢的資訊!n"); } mysql_free_result(result); //釋放結果集 } mysql_close(&mysql); //釋放連線 } exit(0); }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45