版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C語言 圖書信息管理系統(tǒng) 最終源代碼#include<stdio.h>#include"string.h" struct book /* book2 是用來裝用戶要錄入圖書的信息*/long num,time; char name12,writer12,fenlei8,danwei10; int pay; stu100; struct book1long num,time; char name12,writer12,fenlei8,danwei10; int pay; stu1100;struct book2 /* book 是用來裝cc.dat 文件中的圖書信
2、息 */long num,time; char name12,writer12,fenlei8,danwei10; int pay; stu2100;denglu() char a15="drzhang",b15="29257966",c15,d15; L3: system("cls"); printf(" 歡迎登陸圖書管理系統(tǒng) nn"); printf("請輸入姓名:"); gets(c); printf("請輸入密碼:"); gets(d); if(strcmp(a,c)
3、=0&&strcmp(b,d)=0) return 0; else printf("輸入錯誤請重新輸入nn"); printf("1.重新輸入 2.退出系統(tǒng) nn"); printf("請輸入."); switch(getch() case 49: goto L3;break; default: return 56;break; /*此功能實現(xiàn)的是 開始菜單 的顯示和具體功能的選擇*/ start() printf("*歡迎使用圖書管理系統(tǒng)*"); printf("* 功能目錄: *&qu
4、ot;); printf("* | *"); printf("* | | *"); printf("* | 1、圖書查詢 2、圖書瀏覽 3、錄入圖書 4、刪除與修改 5、備份與還原 | *"); printf("* | | *"); printf("* | | *"); printf("* | | *"); printf("* | *"); printf("* 使用說明:如要選擇“圖書查詢”,直接輸入:1 退出:0 *"); print
5、f("*"); printf("你想要做什么:"); return getch(); /*輸入選擇對應(yīng)功能的值,返回輸入的值,即:用于判斷選擇的功能*/*實現(xiàn)備份功能,以防圖書信息出錯帶來的麻煩,不必看懂*/ beifen()FILE *fp1,*fp2; int i,a; jieshuo(); system("cls"); printf("nn請選擇 備份(B)| 瀏覽備份(L) / 還原(H) / 退出(Q) / n"); switch(getch() case 'B': case 'b
6、': if(fp1=fopen("cc","r")=NULL) printf("不能打開次文件n");exit(0); if(fp2=fopen("cc01","w")=NULL) printf("不能打開次文件n");exit(0); fscanf(fp1,"%d",&a); fprintf(fp2,"%dn",a);printf("nn確認備份嗎?(Y/N)");switch(getch()cas
7、e 'Y': case 'y':for(i=0;i<a;i+) fscanf(fp1,"%ld %s %s %s %s %ld %d",&stui.num,,stui.writer,stui.fenlei,stui.danwei,&stui.time,&stui.pay); fprintf(fp2,"%ldt%st%st%st%st%ldt%dn",stui.num,,stui.writer,stui.fenlei,stui.danwei,stui.time
8、,stui.pay); printf("nn備份成功!nn是否打開瀏覽備份文件?(Y/N)"); switch(getch()case 'Y': case 'y':fclose(fp1);fclose(fp2);liulan02();break; case 'N': case 'n':break; break; case 'N': case 'n':break; fclose(fp1); fclose(fp2); break; case 'H': case
9、9;h': if(fp1=fopen("cc01","r")=NULL) printf("不能打開此文件n");exit(0); if(fp2=fopen("cc","w")=NULL) printf("不能打開此文件n");exit(0); fscanf(fp1,"%d",&a); fprintf(fp2,"%dn",a);printf("nn確認還原嗎?(Y/N)");switch(getch()
10、case 'Y': case 'y':for(i=0;i<a;i+) fscanf(fp1,"%ld %s %s %s %s %ld %d",&stui.num,,stui.writer,stui.fenlei,stui.danwei,&stui.time,&stui.pay); fprintf(fp2,"%ldt%st%st%st%st%ldt%dn",stui.num,,stui.writer,stui.fenlei,stui.danwei,stui.t
11、ime,stui.pay); printf("nn還原成功!nn是否打開瀏覽還原文件?(Y/N)");switch(getch()case 'Y': case 'y':fclose(fp1);fclose(fp2);liulan();break; case 'N': case 'n':break;break; case 'N': case 'n':break; fclose(fp1); fclose(fp2);break; case 'l': case '
12、L':liulan02();break; case 'Q': case 'q':break; /* 在屏幕上打印 查詢菜單 */ chaxun() jieshuo(); system("cls"); printf("*歡迎使用圖書查詢系統(tǒng)*"); printf("* 查詢方式: *"); printf("* *"); printf("* 1、書名 2、作者名 3、出版時間 *"); printf("* *"); printf("
13、;* 4、價格 5、分類號 6、出版單位 *"); printf("* *"); printf("* 使用說明:如要選擇“書名”,直接輸入:1 退出:0 *"); printf("*"); printf("n請輸入你要怎么查詢:"); chaxun01(); /*打印完畢后,進入chaxun()函數(shù),執(zhí)行用戶需要的查詢功能*/ /*此程序段實行查詢的各種功能*/ chaxun01()FILE *fp; char ch8; int a=0,i,j,k,n=0,c,d; long b; if(fp=fopen
14、("cc","r")=NULL) /*說明:cc.dat 文件裝著圖書的信息,*/ printf("不能打開此文件n");exit(0); /*并且文件開記錄的是圖書的書量,后 */ fscanf(fp,"%d",&a); /*從文件中讀出圖書數(shù)*/ /*面依次才是具體信息。 */ for(i=0;i<a;i+) /*并用a記錄下來,然后依次打錄圖書信息裝到緩沖區(qū)的 stu 中,待用*/ fscanf(fp,"%ld %s %s %s %s %ld %d",&stui.nu
15、m,,stui.writer,stui.fenlei,stui.danwei,&stui.time,&stui.pay); strcpy(,);strcpy(stu1i.writer,stui.writer);strcpy(stu1i.fenlei,stui.fenlei); strcpy(stu1i.danwei,stui.danwei); strlwr();strlwr(stu1i.writer);strlwr(stu1i.fenlei);strlwr(stu1i.danwei); L1: swit
16、ch(getch() /*用switch()函數(shù)實現(xiàn) 查詢方式 所提供的各種功能,getch()的返回值是ASCII碼*/ case 48:break; case 49: printf("1nn請輸入你要找的書名:"); gets(ch); /*用戶輸入要找的書,下同*/ strlwr(ch); printf("n"); printf("你要找的書可能是:nn"); printf("登錄號 書名 作者 分類號 出版單位 出書時間 價格nn"); for(i=0;i<a;i+) /* 查詢的方法是像字符比較函數(shù)
17、的方式一 */ k=0; /* 樣,一個一個地必須字母是否相同,直 */ for(j=0;j<8;j+) /* 出現(xiàn)不同時才停止比較,每比較一個字 */ if(chj=j&&chj!=' ')/* 母相同,用k作計數(shù)器記下來,最后若 */ k+; /* k>=4 就將能和用戶要找的書名相同4個 */ if(k>=4) /* 字母的圖書打印出來。 按作者,分類號 */ /* 出版單位的查詢方法相同。 */ printf("%ldt%st%st%st%st%ldt%dn",stui.num,
18、,stui.writer,stui.fenlei,stui.danwei,stui.time,stui.pay); n+; if(n>0)printf("n你要找的書共有%d本nnnnn",n); if(n=0) system("cls");printf("nn對不起,沒有你要找的書!nn"); break; case 50:printf("2nn請輸入你要找的書的作者:"); gets(ch); strlwr(ch); printf("n"); printf("你要找的書可能是
19、:nn"); printf("登錄號 書名 作者 分類號 出版單位 出書時間 價格nn"); for(i=0;i<a;i+) k=0; for(j=0;j<8;j+) if(chj=stu1i.writerj) k+; if(k>=4) printf("%ldt%st%st%st%st%ldt%dn",stui.num,,stui.writer,stui.fenlei,stui.danwei,stui.time,stui.pay); n+; if(n>0)printf("n你要找的書共有%d本
20、nnnnn",n); if(n=0) system("cls");printf("nn對不起,沒有你要找的書!nn"); break; case 51:printf("3nn請輸入你要找的書的出版時間:"); scanf("%ld",&b); /*用戶輸入要找書的出版時間*/ printf("n"); printf("你要找的書如下:nn"); printf("登錄號 書名 作者 分類號 出版單位 出書時間 價格nn"); for(i=0
21、;i<a;i+) if(b=stui.time) /*直接將用戶輸入的數(shù)和儲存在緩沖區(qū)中的數(shù)據(jù)比較就可以了,下同*/ printf("%ldt%st%st%st%st%ldt%dn",stui.num,,stui.writer,stui.fenlei,stui.danwei,stui.time,stui.pay); n+; if(n>0)printf("n你要找的書共有%d本nnnnn",n); if(n=0) system("cls");printf("nn對不起,沒有你要找的書!nn&quo
22、t;); break;case 52:printf("4nn請輸入你要找的書的價格:"); scanf("%d",&c); printf("n"); printf("你要找的書如下:nn"); printf("登錄號 書名 作者 分類號 出版單位 出書時間 價格nn"); for(i=0;i<a;i+) if(c=stui.pay) printf("%ldt%st%st%st%st%ldt%dn",stui.num,,stui.writer,s
23、tui.fenlei,stui.danwei,stui.time,stui.pay); n+; if(n>0)printf("n你要找的書共有%d本nnnnn",n); if(n=0) system("cls");printf("nn對不起,沒有你要找的書!nn"); break;case 53:printf("5nn請輸入你要找的書的分類號:"); gets(ch); strlwr(ch); printf("n"); printf("你要找的書可能是:nn"); pr
24、intf("登錄號 書名 作者 分類號 出版單位 出書時間 價格nn"); for(i=0;i<a;i+) k=0; for(j=0;j<8;j+) if(chj=stu1i.fenleij) k+; if(k>=6) printf("%ldt%st%st%st%st%ldt%dn",stui.num,,stui.writer,stui.fenlei,stui.danwei,stui.time,stui.pay); n+; if(n>0)printf("n你要找的書共有%d本nnnnn",n)
25、; if(n=0) system("cls");printf("nn對不起,沒有你要找的書!nn"); break;case 54:printf("6nn請輸入你要找的書的出版單位:"); gets(ch); printf("n"); printf("你要找的書可能是:nn"); printf("登錄號 書名 作者 分類號 出版單位 出書時間 價格nn"); for(i=0;i<a;i+) k=0; for(j=0;j<8;j+) if(chj=stu1i.dan
26、weij) k+; if(k>=4) printf("%ldt%st%st%st%st%ldt%dn",stui.num,,stui.writer,stui.fenlei,stui.danwei,stui.time,stui.pay); n+; if(n>0)printf("n你要找的書共有%d本nnnnn",n); if(n=0) system("cls");printf("nn對不起,沒有你要找的書!nn"); break; default:printf("nn操作錯誤
27、按任意鍵返回n");getch();goto L1;break; /* 系統(tǒng)結(jié)束時的動畫效果 */ jieshu()int i; for(i=0;i<20;i+) printf("*謝謝使用圖書管理系統(tǒng)*"); printf("1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 謝謝使用圖書管理系統(tǒng)1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 "); printf("2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 謝謝使用圖書管理系統(tǒng)2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 &
28、quot;); printf("3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 謝謝使用圖書管理系統(tǒng)3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 "); printf("5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 謝謝使用圖書管理系統(tǒng)5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 "); printf("6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 謝謝使用圖書管理系統(tǒng)6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 "); printf("7 7
29、 7 7 7 7 7 7 7 7 7 7 7 7 7 謝謝使用圖書管理系統(tǒng)7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 "); printf("8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 謝謝使用圖書管理系統(tǒng)8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 "); printf("9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 謝謝使用圖書管理系統(tǒng)9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 "); printf("0 0 0 0 0 0 0 0 0 0 0 0 0 0
30、 0 謝謝使用圖書管理系統(tǒng)0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "); system("cls"); printf("nnnn"); printf(" TTTTTTT HHH HHH A NN N K KKn"); printf(" T T T H H A A N N N K Kn"); printf(" T H H A A N N N K Kn"); printf(" T HHHHHH AAAAA N N N KK Kn"); printf(
31、" T H H A A A N N N K Kn"); printf(" T H H A A N N N K Kn"); printf(" TTT HHH HHH AA AA N NN K KKKn"); printf("n"); printf(" YY YY OOOO U Un"); printf(" Y Y O O U Un"); printf(" YYY O O U Un"); printf(" Y O O U Un"); pri
32、ntf(" Y O O U Un"); printf(" Y O O U Un"); printf(" YYY OOOO UUUUn"); printf("nnnn");/*此程序?qū)崿F(xiàn)的是 檢索 開始進入程序時圖書館內(nèi)是否有圖書,如果沒有,很多功能不能實現(xiàn)*/ jieshuo()FILE *fp; int n; char a; system("cls"); /*清掉前面顯示在屏幕上的所有內(nèi)容*/ if(fp=fopen("cc","r")=NULL) /*
33、 這部分的程序是實現(xiàn)檢索的主體,首先,判斷 */ printf("NO");exit(0); /* 圖書信息是否完整,若不完整,運行系統(tǒng)可能 */ fscanf(fp,"%d",&n); /* 會出現(xiàn)亂碼等一系列現(xiàn)象,所以主要判斷文件 */ fclose(fp); /* 開頭是否完整就可以了,一般情況下,圖書不 */ if(n>-32767&&n<32768&&n!=0); /* 會太多,于是檢索圖書量是否在int范圍內(nèi)即可 */ else printf("圖書館還沒有書哦!如不增加,則會影響
34、系統(tǒng)的運行!nn是否增加圖書?(Y/N)"); switch(getch() /* 若果圖書信息不在int型范圍內(nèi),*/ case 'y': /* 就應(yīng)該提示是否增加圖書,以保 */ case 'Y':printf("n");zengjia();break; /* 證系統(tǒng)能正常運行。 */ case 'n': /* 選是 運行zengjia()函數(shù)增加 */ case 'N':printf("n");break; /* 圖書,否則,退出檢索。 */ /*此程序?qū)崿F(xiàn)的是程序開始時的開
35、始動畫*/kaishi()int i; system("cls"); printf("nnnnnnnnnnn");printf(" # # # # # # # n"); printf(" # # # # # # # # # #n"); printf(" # # # # # # # # # # # # # #n"); printf(" # # # # # # # # # # #n"); printf(" # # # # # # # # # # # # # #n&quo
36、t;); printf(" # # # # # # # # # #n"); printf(" # # # # # #n");printf(" WELCOME TO . # # # # #n");printf(" .USE THE LIBRARY SYSTEM # # # # # #nn");printf(" 題目: 圖書管理系統(tǒng)nn"); printf(" 成員:liukaihua zhangdongrui linxiaozhou nn");printf(" nn&
37、quot;);printf(" 編寫語言:C 語言 工具:C-Free 4.1nn");printf("nnn"); printf("按任意鍵進入.");getch(); system("cls"); /*瀏覽菜單*/ liulan() jieshuo(); system("cls"); printf("*歡迎使用圖書瀏覽系統(tǒng)*"); printf("* 瀏覽方式: *"); printf("* *"); printf("*
38、1、書名 2、直接瀏覽 *"); printf("* *"); printf("* 使用說明:如要選擇“書名”,直接輸入:1 退出:Q *"); printf("*"); printf("請選擇你要瀏覽的方式:"); liulan01(); /*瀏覽功能*/liulan01() FILE *fp; /* 將文件中的信息存到緩沖區(qū),然后打印打屏幕上即可 */ int i,a; if(fp=fopen("cc","r")=NULL) printf("不能打開次
39、文件n");exit(0); fscanf(fp,"%d",&a); switch(getch() case 49: printf("1nn圖書館現(xiàn)有圖書%d本nn",a); printf("登錄號 書名 作者n"); for(i=0;i<a;i+) fscanf(fp,"%ld %s %s %s %s %ld %d",&stui.num,,stui.writer,stui.fenlei,stui.danwei,&stui.time,&stui.pa
40、y); printf("%ldt%st%sn",stui.num,,stui.writer); break; case 50: printf("2nn圖書館現(xiàn)有圖書%d本nn",a); printf("登錄號 書名 作者 分類號 出版單位 出書時間 價格n"); for(i=0;i<a;i+) fscanf(fp,"%ld %s %s %s %s %ld %d",&stui.num,,stui.writer,stui.fenlei,stui.danwei,&
41、stui.time,&stui.pay); printf("%ldt%st%st%st%st%ldt%dn",stui.num,,stui.writer,stui.fenlei,stui.danwei,stui.time,stui.pay); break; case 'Q': case 'q':system("cls");break; fclose(fp);liulan02()FILE *fp; /* 將文件中的信息存到緩沖區(qū),然后打印打屏幕上即可 */ int i,a; if(fp=fopen(
42、"cc01","r")=NULL) printf("不能打開次文件n");exit(0); fscanf(fp,"%d",&a); printf("nn圖書館備份圖書%d本nn",a); printf("登錄號 書名 作者 分類號 出版單位 出書時間 價格n"); for(i=0;i<a;i+)fscanf(fp,"%ld %s %s %s %s %ld %d",&stui.num,,stui.writer,stui
43、.fenlei,stui.danwei,&stui.time,&stui.pay); printf("%ldt%st%st%st%st%ldt%dn",stui.num,,stui.writer,stui.fenlei,stui.danwei,stui.time,stui.pay); fclose(fp);luru()system("cls"); printf("*歡迎使用圖書錄入系統(tǒng)*"); luru01();/*錄入功能*/ luru01()FILE *fp; int i,n,a,m,j; L50
44、: system("cls"); shuoming(); if(fp=fopen("cc","r")=NULL) printf("不能打開次文件n");exit(0); fscanf(fp,"%d",&a); m=a; for(i=0;i<a;i+) /*將cc.dat文件中的圖書讀出來,并裝的緩沖區(qū)的stu2中,待用*/ fscanf(fp,"%ld %s %s %s %s %ld %d",&stu2i.num,,stu2i.wri
45、ter,stu2i.fenlei,stu2i.danwei,&stu2i.time,&stu2i.pay); fclose(fp); /*下面是新增圖書的書面和基本信息*/ if(fp=fopen("cc","a")=NULL) printf("不能打開次文件n");exit(0); printf("你要增加幾本書?(1-%d本)n",100-a); scanf("%d",&n); /*用戶輸入錄入圖書的本書*/ if(n<(100-a)&&n>0) for(i=0;i<n;i+) /*錄入圖書的信息,并將該信息裝到緩沖區(qū)的 stu 中,待用*/ printf("請輸入你的第%d圖書信息:n",i+1); scanf("%ld %s %s %s %s %ld %d",&stui.num,,stui.writer,stui.fenlei,stui.danwei,&stui.time,&stui.pay);L4: for(j=0;j<a;j+) /* 檢查用戶輸入的登錄號是否重復(fù),直到用戶輸入正
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 全省小學數(shù)學教師賽課一等獎數(shù)學一年級上冊(人教2024年新編)《連加、連減 》課件
- 2024年安徽省高考生物試卷(含答案解析)
- 2014-2018年傳感器市場趨勢報告
- 小學三年發(fā)展規(guī)劃(2024年6月-2027年6月)
- 2024至2030年中國廣告照明節(jié)能設(shè)備數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國小印章行業(yè)投資前景及策略咨詢研究報告
- 2024至2030年中國子彈型慢回彈耳塞數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國壁掛普通型燃氣報警器數(shù)據(jù)監(jiān)測研究報告
- 高三數(shù)學復(fù)習研討會結(jié)新
- 2024至2030年中國單音電子警報器數(shù)據(jù)監(jiān)測研究報告
- 廣告?zhèn)惱韱栴}
- 十歲生日模板
- 期中檢測卷(試題)-2024-2025學年北師大版五年級上冊數(shù)學
- 北京盈科律師所管理制度
- 道法友誼的真諦+課件-2024-2025學年統(tǒng)編版道德與法治七年級上冊
- 期中 (試題) -2024-2025學年外研版(三起)英語六年級上冊
- 電力公司臨時用工安全管理辦法(標準版)
- 山東省濟南市歷下區(qū)2023-2024學年五年級上學期月考英語試卷(12月份)
- 江蘇省高速公路設(shè)計優(yōu)化指導(dǎo)意見
- 金融交易課程設(shè)計實訓
- 2024人教版道德與法治三年級上冊第四單元:家是最溫暖的地方大單元整體教學設(shè)計
評論
0/150
提交評論