算法分析與設(shè)計綜合實驗實驗報告圖書信息管理系統(tǒng)_第1頁
算法分析與設(shè)計綜合實驗實驗報告圖書信息管理系統(tǒng)_第2頁
算法分析與設(shè)計綜合實驗實驗報告圖書信息管理系統(tǒng)_第3頁
算法分析與設(shè)計綜合實驗實驗報告圖書信息管理系統(tǒng)_第4頁
算法分析與設(shè)計綜合實驗實驗報告圖書信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、算法分析與設(shè)計綜合實驗實驗報告姓 名:蔡志雄學(xué) 號:2015010906015指導(dǎo)教師:胡科日 期:2016年 月 日電 子 科 技 大 學(xué)實 驗 報 告1一、實驗名稱:界面設(shè)計與創(chuàng)建文件二、實驗內(nèi)容1. 設(shè)計登錄系統(tǒng)、主菜單、退出系統(tǒng)界面登錄系統(tǒng):輸入以“*”顯示的密碼,三次鍵入機會。密碼正確,進入系統(tǒng);密碼錯誤,程序結(jié)束。主菜單:按劃分的模塊,顯示系統(tǒng)菜單。退出系統(tǒng):在系統(tǒng)主菜單中輸入“0”,以退出系統(tǒng)。2. 數(shù)據(jù)錄入與數(shù)據(jù)存盤給定記錄數(shù),屏幕輸入若干記錄,并將數(shù)據(jù)存入磁盤文件中。三、算法設(shè)計與核心代碼1.char inputa,data20,account34="admin&#

2、39;s",word20; int z,k=0,a=1;printf("輸入管理員賬戶名:");/登錄驗證 scanf("%s",&data);strcat(account,data);strcat(account,".txt"); /提取數(shù)據(jù) file *fpx=null;if(fpx=fopen(account,"r")fscanf(fpx,"%sn",&);fscanf(fpx,"%sn",&admin.id);fs

3、canf(fpx,"%sn",&admin.password);fclose(fpx);else printf("沒有對應(yīng)資料!n");system ("pause");return 0;if(strcmp(data,)=-1)/驗證密碼 printf("賬號不存在n");return 0;else printf("賬號存在(你將有3次輸入密碼機會)n");for(z=2;z>=-1;z-)if(z=-1)return 0;printf("輸入密碼:&

4、quot;); while(1) fflush(stdin); inputa=getch(); if(inputa!='r'&&inputa!='b')/密碼隱藏 printf("*"); wordk=inputa; k+;else if(inputa='b')/退格刪除 printf("b");printf(" ");printf("b");k-;else break;/回車結(jié)束 if(strcmp(word,admin.password)!=0)

5、printf("密碼錯誤(%d次機會)n",z); k=0; else printf("n密碼正確!n");system ("pause");break;2.printf("*n");printf("圖書數(shù)量:%d 讀者數(shù)量:%dn",bnum,rnum);printf("n");printf("n");printf("n");printf(" 圖書信息管理系統(tǒng)n");printf("n");pr

6、intf("n");printf("n");printf("請做出您的選擇:(輸入對應(yīng)序號)n");printf("n");printf("n");printf(" 1.圖書管理 2.讀者管理 管理員使用n");printf("n");printf(" 3.圖書借還 任何人使用n");printf("n");printf(" 0.退出n");printf("n");printf

7、("n");printf("n");printf("*n");printf("輸入:");scanf(" %c",&input);switch(input)case '0':a=0;break;case '1':bookmanage();break;case '2':readermanage();break;case '3':bookoperate();break; system("cls");3.四、實

8、驗主要結(jié)果(附程序運行界面截圖)實 驗 報 告2一、實驗名稱:顯示記錄與編輯記錄二、實驗內(nèi)容1. 屏幕顯示若干記錄列表輸出磁盤文件記錄,并顯示記錄序號與記錄總數(shù)。2. 按字段編輯記錄輸入記錄序號,顯示對應(yīng)記錄;按字段編輯記錄。三、算法設(shè)計與核心代碼int showrecord(int x)int b=1,c=1;char aim112="圖書",aim212="讀者",aim12,buffer80;/判斷目的 if(x=1)/圖書 strcpy(aim,aim1);strcat(aim,"");strcat(aim,"圖書記

9、錄");strcat(aim,".txt");file *fp;if(fp=fopen(aim,"r")=null) printf("打開失敗!n"); return -1; printf("序號 書號 書名 作者 日期 出版 類別 定價 是否借出n"); for(;b<=(bnum=getlinenum(1);b+) fgets(buffer,1024,fp); printf(" %d %s",c,buffer); c+; fclose(fp); system ("p

10、ause");else if(x=2)/讀者 strcpy(aim,aim2);strcat(aim,"");strcat(aim,"讀者記錄");strcat(aim,".txt");file *fp;if(fp=fopen(aim,"r")=null) printf("打開失敗!n"); return -1; for(;b<(rnum=getlinenum(2);b+) fgets(buffer,1024,fp); printf("%sn",buffer)

11、; fclose(fp);else printf("錯誤n");return -1; return 0; int fixrecord(int x)int b=1,c;char a,aim112="圖書",aim212="讀者",aim12,buffer80;file *fp,*ftp;/判斷目的 if(x=1)/圖書 strcpy(aim,aim1);strcat(aim,"");strcat(aim,"圖書記錄");strcat(aim,".txt");if(ftp=fop

12、en("圖書temp.txt","w")=null) printf("創(chuàng)建文件失敗!n"); return -1; if(fp=fopen(aim,"r+")=null) printf("打開失敗!n"); return -1; showrecord(1);printf("輸入要編輯的條目序號:");scanf(" %d",&c);for(;b!=c;b+)fscanf(fp,"%s %s %s %s %s %s %d %d%*n&quo

13、t;,&books0.id,&,&books0.author,&books0.date,&books0.publish,&books0.sort,&books0.price,&books0.borrowed);fprintf(ftp,"%s %s %s %s %s %s %d %d n",books0.id,,books0.author,books0.date,books0.publish,books0.sort,books0.price,books0.borrowe

14、d);printf("開始編輯:n"); printf("輸入書號:");scanf(" %s",&books0.id);printf("書名:");scanf(" %s",&);printf("作者:");scanf(" %s",&books0.author);printf("日期:");scanf(" %s",&books0.date);printf(&quo

15、t;出版:");scanf(" %s",&books0.publish);printf("類別:");scanf(" %s",&books0.sort);printf("定價:");scanf(" %d",&books0.price);printf("是否借出:");scanf(" %d",&books0.borrowed);printf("書號:%s 書名:%s 作者:%s 日期:%s 出版:%s 類別

16、:%s 定價:%d 是否借出:%dn確定?(y/n)n輸入:",books0.id,,books0.author,books0.date,books0.publish,books0.sort,books0.price,books0.borrowed);fflush(stdin);scanf(" %c",&a);if(a='y')fprintf(ftp,"%s %s %s %s %s %s %d %d n",books0.id,,books0.author,books0.date

17、,books0.publish,books0.sort,books0.price,books0.borrowed);b+;fscanf(fp,"%s %s %s %s %s %s %d %d%*n",&books0.id,&,&books0.author,&books0.date,&books0.publish,&books0.sort,&books0.price,&books0.borrowed);printf("編輯成功!n");else printf("

18、已取消創(chuàng)建.n");for(;b<=bnum;b+)fscanf(fp,"%s %s %s %s %s %s %d %d%*n",&books0.id,&,&books0.author,&books0.date,&books0.publish,&books0.sort,&books0.price,&books0.borrowed);fprintf(ftp,"%s %s %s %s %s %s %d %d n",books0.id,,

19、books0.author,books0.date,books0.publish,books0.sort,books0.price,books0.borrowed);fclose(fp);fclose(ftp);remove(aim);rename("圖書temp.txt",aim);showrecord(1); fclose(fp);else if(x=2)/讀者 strcpy(aim,aim2);strcat(aim,"");strcat(aim,"讀者記錄");strcat(aim,".txt");if(fp

20、=fopen(aim,"r+")=null) printf("打開失敗!n"); return -1; fclose(fp);else printf("錯誤n");return -1; return 0; 四、實驗主要結(jié)果(附程序運行界面截圖)實 驗 報 告3一、實驗名稱:增加記錄與刪除記錄二、實驗內(nèi)容1. 屏幕增加記錄(添加記錄、插入記錄)輸入待增加的記錄信息,并輸入記錄序號,將記錄插入到指定序號對應(yīng)記錄之后。2. 刪除指定的記錄輸入待刪除的記錄序號,并顯示對應(yīng)記錄;顯示確認信息,以刪除指定記錄。三、算法設(shè)計與核心代碼int add

21、record(int x,int h)int b=1,i;char aim112="圖書",aim212="讀者",aim12,buffer80,buffer180,buffer280;list *t,*p;bnum=getlinenum(1);/判斷目的 if(x=1)/圖書 strcpy(aim,aim1);strcat(aim,"");strcat(aim,"圖書記錄");strcat(aim,".txt");file *fp;if(fp=fopen(aim,"r+")

22、=null) printf("打開失敗!n"); return -1; showrecord(1);printf("輸入:n書號 書名 作者 日期 出版 類別 定價 是否借出n");scanf("%s %s %s %s %s %s %d %d",&books1.id,&,&books1.author,&books1.date,&books1.publish,&books1.sort,&books1.price,&books1.borrowed);li

23、nk *m=clist();p=m->head; get_and_add_list(x,m,null);int j=0;if(h>bnum+1)h=bnum+1;if(p=m->head)=null) t=(list *)malloc(sizeof(list);if(t=null)return -1;t->next=p->next;t->data=books1;m->head=t;m->length+;else if(h=1) t=(list *)malloc(sizeof(list); if(t=null)return -1;t->nex

24、t=m->head; t->data=books1;m->head=t;m->length+;else while(p!=null&&j<h-2)p=p->next;j+;t=(list *)malloc(sizeof(list);if(t=null)return -1;t->next=p->next;t->data=books1;p->next=t;m->length+;fprintf_list(x,m); fclose(fp);else if(x=2)/讀者 strcpy(aim,aim2);strcat(a

25、im,"");strcat(aim,"讀者記錄");strcat(aim,".txt");file *fp;if(fp=fopen(aim,"r+")=null) printf("打開失敗!n"); return -1; scanf(" %s",&buffer);for(;b!=h;b+)fgets(buffer,0,fp);fgets(buffer1,1024,fp);fprintf(fp,"%sn",buffer);b+;for(;b!=(bn

26、um=getlinenum(1);b+)fgets(buffer2,1024,fp);fprintf(fp,"%sn",buffer1);b+;fgets(buffer1,1024,fp); fprintf(fp,"%sn",buffer2); fclose(fp);else printf("錯誤n");return -1; showrecord(x); printf("1n");return 0;int deleterecord(int x,char y)file *fin,*ftp;char ch,aim112

27、="圖書",aim212="讀者",aim12,buffer80;if(x=1)/圖書 strcpy(aim,aim1);strcat(aim,"");strcat(aim,"圖書記錄");strcat(aim,".txt");if(fin=fopen(aim,"r")=null) printf("打開失敗!n"); return -1; if(ftp=fopen("圖書temp.txt","w")=null) pr

28、intf("創(chuàng)建文件失敗!n"); return -1; while(fscanf(fin,"%s %s %s %s %s %s %d %d%*n",&books0.id,&,&books0.author,&books0.date,&books0.publish,&books0.sort,&books0.price,&books0.borrowed)=8)if(strcmp(books0.id,y)!=0)fprintf(ftp,"%s %s %s %s %s

29、 %s %d %d n",books0.id,,books0.author,books0.date,books0.publish,books0.sort,books0.price,books0.borrowed); fclose(fin);fclose(ftp);remove(aim);rename("圖書temp.txt","圖書圖書記錄.txt");printf("刪除成功!n");showrecord(1);else if(x=2)/讀者 strcpy(aim,aim2);strcat(aim,&

30、quot;");strcat(aim,"讀者記錄");strcat(aim,".txt");if(fin=fopen(aim,"r")=null) printf("打開失敗!n"); return -1; else printf("錯誤n");return -1; return 0;四、實驗主要結(jié)果(附程序運行界面截圖)實 驗 報 告4一、實驗名稱:查詢記錄二、實驗內(nèi)容按指定字段查詢記錄顯示查詢子菜單,輸入字段序號,按指定字段查詢記錄,并顯示查詢結(jié)果。特別地,對“定價”字段,輸入?yún)^(qū)間左

31、右端點值,在指定范圍查詢記錄。三、算法設(shè)計與核心代碼int inquirerecord(int x)int b=1,c,d;char aim112="圖書",aim212="讀者",aim12,buffer80;file *fp;/判斷目的 if(x=1)/圖書 strcpy(aim,aim1);strcat(aim,"");strcat(aim,"圖書記錄");strcat(aim,".txt");if(fp=fopen(aim,"r")=null) printf(&quo

32、t;打開失敗!n"); return -1; printf("查詢的依據(jù)是:n1.書號n2.書名n3.作者n4.出版日期n5.類別n6.定價n7.是否借出n0.返回n輸入:");scanf(" %d",&c);switch(c) case 0:return 0;case 1:printf("輸入書號:");scanf(" %s",&buffer);printf(" 書號 書名 作者 日期 出版 類別 定價 是否借出n");while(fscanf(fp,"%s

33、 %s %s %s %s %s %d %d%*n",&books0.id,&,&books0.author,&books0.date,&books0.publish,&books0.sort,&books0.price,&books0.borrowed)=8)if(strcmp(books0.id,buffer)=0)printf(" %s %s %s %s %s %s %d %d n",books0.id,,books0.author,books0.dat

34、e,books0.publish,books0.sort,books0.price,books0.borrowed); break;case 2:printf("輸入書名:");scanf(" %s",&buffer);printf(" 書號 書名 作者 日期 出版 類別 定價 是否借出n");while(fscanf(fp,"%s %s %s %s %s %s %d %d%*n",&books0.id,&,&books0.author,&books0.

35、date,&books0.publish,&books0.sort,&books0.price,&books0.borrowed)=8)if(strcmp(,buffer)=0)printf(" %s %s %s %s %s %s %d %d n",books0.id,,books0.author,books0.date,books0.publish,books0.sort,books0.price,books0.borrowed); break;case 3:printf("輸入作者:&

36、quot;);scanf(" %s",&buffer);printf(" 書號 書名 作者 日期 出版 類別 定價 是否借出n");while(fscanf(fp,"%s %s %s %s %s %s %d %d%*n",&books0.id,&,&books0.author,&books0.date,&books0.publish,&books0.sort,&books0.price,&books0.borrowed)=8)if(strcm

37、p(books0.author,buffer)=0)printf(" %s %s %s %s %s %s %d %d n",books0.id,,books0.author,books0.date,books0.publish,books0.sort,books0.price,books0.borrowed); break;case 4:printf("輸入出版日期:");scanf(" %s",&buffer);printf(" 書號 書名 作者 日期 出版 類別 定價 是否借出n"

38、);while(fscanf(fp,"%s %s %s %s %s %s %d %d%*n",&books0.id,&,&books0.author,&books0.date,&books0.publish,&books0.sort,&books0.price,&books0.borrowed)=8)if(strcmp(books0.date,buffer)=0)printf(" %s %s %s %s %s %s %d %d n",books0.id,books0.n

39、ame,books0.author,books0.date,books0.publish,books0.sort,books0.price,books0.borrowed); break;case 5:printf("輸入類別:");scanf(" %s",&buffer);printf(" 書號 書名 作者 日期 出版 類別 定價 是否借出n");while(fscanf(fp,"%s %s %s %s %s %s %d %d%*n",&books0.id,&,&am

40、p;books0.author,&books0.date,&books0.publish,&books0.sort,&books0.price,&books0.borrowed)=8)if(strcmp(books0.sort,buffer)=0)printf(" %s %s %s %s %s %s %d %d n",books0.id,,books0.author,books0.date,books0.publish,books0.sort,books0.price,books0.borrowed); brea

41、k;case 6:printf("輸入定價范圍:(用空格隔開上下限)");scanf(" %d %d",&c,&d);printf(" 書號 書名 作者 日期 出版 類別 定價 是否借出n");while(fscanf(fp,"%s %s %s %s %s %s %d %d%*n",&books0.id,&,&books0.author,&books0.date,&books0.publish,&books0.sort,&

42、books0.price,&books0.borrowed)=8)if(books0.price>=c&&books0.price<=d)printf(" %s %s %s %s %s %s %d %d n",books0.id,,books0.author,books0.date,books0.publish,books0.sort,books0.price,books0.borrowed); break;case 7:printf("是否借出:");scanf(" %d",

43、&c);printf(" 書號 書名 作者 日期 出版 類別 定價 是否借出n");while(fscanf(fp,"%s %s %s %s %s %s %d %d%*n",&books0.id,&,&books0.author,&books0.date,&books0.publish,&books0.sort,&books0.price,&books0.borrowed)=8)if(books0.borrowed=c)printf(" %s %s %

44、s %s %s %s %d %d n",books0.id,,books0.author,books0.date,books0.publish,books0.sort,books0.price,books0.borrowed); break; fclose(fp); system ("pause");else if(x=2)/讀者 strcat(aim3,"");strcat(aim3,);strcat(aim3,".txt");if(fp=fopen("讀者讀者記錄.txt

45、","r")=null) printf("打開失敗!n"); return -1; if(ftp=fopen(aim3,"r")!=null)printf("查詢的依據(jù)是:n1.學(xué)號n2.姓名n3.卡號n4.性別n5.已借書數(shù)n0.返回n輸入:");scanf(" %d",&c);switch(c)case 0:;return 0;case 1:printf("輸入學(xué)號:");scanf(" %s",&buffer);printf

46、(" 學(xué)號 姓名 卡號 性別 已借書數(shù)n");while(fscanf(fp,"%s %s %s %s %d*n",&num,&,&users0.id,&users0.sex,&users0.n)=5)d=users0.n;if(strcmp(users0.id,buffer)=0)users0.sex2='0' printf("%s %s %s %s %dn",users0.id,,num,users0.sex,d); break;c

47、ase 2:printf("輸入姓名:");scanf(" %s",&buffer);printf(" 學(xué)號 姓名 卡號 性別 已借書數(shù)n");while(fscanf(fp,"%s %s %s %s %d*n",&num,&,&users0.id,&users0.sex,&users0.n)=5)d=users0.n;if(strcmp(,buffer)=0)users0.sex2='0' printf(&

48、quot;%s %s %s %s %dn",users0.id,,num,users0.sex,d); break;case 3:printf("輸入卡號:");scanf(" %s",&buffer);printf(" 學(xué)號 姓名 卡號 性別 已借書數(shù)n");while(fscanf(fp,"%s %s %s %s %d*n",&num,&,&users0.id,&users0.sex,&users0.n)=5)

49、d=users0.n;if(strcmp(users0.card_num,buffer)=0)users0.sex2='0' printf("%s %s %s %s %dn",users0.id,,num,users0.sex,d); break;case 4:printf("輸入性別:");scanf(" %s",&buffer);printf(" 學(xué)號 姓名 卡號 性別 已借書數(shù)n");while(fscanf(fp,"%s %s %s %s %d*n&q

50、uot;,&num,&,&users0.id,&users0.sex,&users0.n)=5) d=users0.n; users0.sex2='0'if(strcmp(users0.sex,buffer)=0)printf("%s %s %s %s %dn",users0.id,,num,users0.sex,d); break;case 5:printf("輸入已借書數(shù):");scanf(" %d",&c);printf(

51、" 學(xué)號 姓名 卡號 性別 已借書數(shù)n");while(fscanf(fp,"%s %s %s %s %d*n",&num,&,&users0.id,&users0.sex,&users0.n)=5) d=users0.n;if(users0.n=c)users0.sex2='0' printf("%s %s %s %s %dn",users0.id,,num,users0.sex,d); break;fp=fopen("圖書

52、圖書記錄.txt","r"); if(d>=1)printf("已借書籍:n");printf("序號 書號 書名 作者 日期 出版 類別 定價 是否借出n"); for(i=0;i<user.n;i+)printf(" %d %s ",i+1,user.bbooki->id);while(fscanf(fp,"%s %s %s %s %s %s %d %d%*n",&books0.id,&,&books0.author,

53、&books0.date,&books0.publish,&books0.sort,&books0.price,&books0.borrowed)=8)if(strcmp(books0.id,user.bbooki->id)=0)printf(" %s %s %s %s %s %d %d n",,books0.author,books0.date,books0.publish,books0.sort,books0.price,books0.borrowed); return 0;fp=fopen("

54、;圖書圖書記錄.txt","r");strcat(aim4,"");strcat(aim4,);strcat(aim4,".txt");if(ftp=fopen(aim4,"r")!=null) printf(" 學(xué)號 姓名 卡號 性別 已借書數(shù) 能否借書n");printf("%s %s %s %s %d %d",user.id,,user.card_num,user.sex,user.n,user.yes);printf("已借書籍:n");printf("序號 書號 書名 作者 日期 出版 類別 定價 是否借出n"); for(i=0;i<user.n;i+)printf(" %d %s",i

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論