C語言程序報(bào)告_第1頁
C語言程序報(bào)告_第2頁
C語言程序報(bào)告_第3頁
C語言程序報(bào)告_第4頁
C語言程序報(bào)告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

圖書信息管理系統(tǒng)一、需求分析1.操作對象有多個(gè)屬性,故其類型為結(jié)構(gòu)體類型2.多個(gè)對象數(shù)據(jù)的錄入采用循環(huán)實(shí)現(xiàn)3.圖書信息保存到文件中涉及到文件的讀寫操作4.排序操作可采用冒泡排序和選擇法排序5.主函數(shù)中根據(jù)用戶不同選擇執(zhí)行不同操作可通過“多分支選擇語句switch”實(shí)現(xiàn)6.程序中多次使用到if語句和for循環(huán)語句7.指針變量的定義和使用二、概要設(shè)計(jì)1.系統(tǒng)功能組成框圖本次設(shè)計(jì)的題目是圖書信息管理系統(tǒng),根據(jù)任務(wù)書要求,并經(jīng)過同組同學(xué)討論,確定本系統(tǒng)主要包括輸入、輸出、查詢、修改、插入、刪除、排序等功能。系統(tǒng)功能組成圖如圖2.1所示。輸入輸入書名登錄名登錄名輸出查詢修改插入刪除排序書名圖書信息管理系統(tǒng)圖2.1圖書信息管理2.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)圖書信息為結(jié)構(gòu)體,成員有登錄名、書名、作者名、分類號(hào)、出版單位、出版時(shí)間、價(jià)格。Struct結(jié)構(gòu)體名{登錄號(hào)類型定義;書名類型定義;作者名類型定義;分類號(hào)類型定義;出版單位類型定義;出版時(shí)間類型定義;價(jià)格類型定義;}3.模塊功能說明本程序包括七個(gè)主要模塊3.1主程序模塊mian(){清屏并顯示主菜單提示用戶選擇所要執(zhí)行的操作根據(jù)用戶的選擇執(zhí)行相應(yīng)的模塊}3.2錄入模塊實(shí)現(xiàn)員工信息的錄入算法:提示用戶想要錄入的書本數(shù)依次提示輸入登錄號(hào)、書名、作者等信息并保存在數(shù)組中將錄入的信息保存在磁盤文件里3.3顯示模塊實(shí)現(xiàn)圖書信息的顯示算法:將已經(jīng)保存到文件中的圖書信息讀取并輸出到顯示器3.4查詢模塊按用戶的指定要求查詢圖書的信息算法:提示用戶輸入查詢條件(登錄號(hào)、書名)在文件中查找是否存在要查找的圖書輸出查找結(jié)果3.5修改模塊修改相應(yīng)圖書的信息算法:提示用戶輸入要修改的圖書的號(hào)碼查找是否存在該圖書若存在該圖書則輸出該圖書信息,并提示用戶輸入新的信息保存修改結(jié)果3.6添加模塊添加圖書信息算法:提示用戶輸入要添加的圖書本數(shù)用循環(huán)依次輸入圖書的信息保存到文件3.7排序模塊按用戶的指定要求(登錄號(hào)、書名)進(jìn)行排序算法:提示用戶選擇排序方式(按登錄號(hào)、書名)用冒泡法排序保存排序后的圖書信息3.8刪除模塊刪除指定圖書的信息算法:提示用戶輸入要?jiǎng)h除的圖書號(hào)查找是否存在這個(gè)圖書,若存在則輸出該圖書信息,并提示圖書是否刪除若用戶選擇要?jiǎng)h除,則該圖書后的圖書順序向前移1三、詳細(xì)設(shè)計(jì)1.圖書信息類型定義typedefstructbook{charnum[10];/*書本登錄號(hào)*/charname[20];/*書名*/charwriter[20];/*作者名*/charfenleihao[10];/*分類號(hào)*/charproduct[10];/*出版單位*/charproducttime[10];/*出版時(shí)間*/charprice[10];/*價(jià)格*/}BOOK;2.信息管理基本操作實(shí)現(xiàn)voidshuru()/*完成N本書信息的輸入*/voidshuchu()/*完成N本書信息的輸出*/voidchazhao()/*完成指定書本查找*/voidxiugai()/*完成指定書本修改*/voidcharu()/*完成指定學(xué)生信息的插入*/voidshanchu()/*完成指定學(xué)生信息的刪除*/voidpaixu()/*完成指定學(xué)生按學(xué)號(hào)的排序*/3.程序詳細(xì)代碼#include"stdio.h"#include"conio.h"#defineM100/*系統(tǒng)最多能容納的書本數(shù)*/intN;/*實(shí)際的書本數(shù)*/inti,j=0;/*循環(huán)變量*/FILE*fp;/*定義文件指針*/typedefstructbook{charnum[10];/*書本登錄號(hào)*/charname[20];/*書名*/charwriter[20];/*作者名*/charfenleihao[10];/*分類號(hào)*/charproduct[10];/*出版單位*/charproducttime[10];/*出版時(shí)間*/charprice[10];/*價(jià)格*/}BOOK;BOOKbook[M];voidshuru()/*完成N本書信息的輸入*/{charsid;/*保存書信息的選擇*/charch;/*接收回車字符*/printf("Areyousuretoshurubook?(Y/N)\n");scanf("%c%c",&ch,&sid);if(sid=='y'||sid=='Y'){fp=fopen("d:\yao.out","w+");if(fp==NULL)/*判斷文件是否為空*/{printf("\nCan'topenthefile!");exit(0);}printf("pleaseinputbook'sbenshu:");scanf("%d",&N);for(i=0;i<N;i++){printf("\nbook%d",i+1);printf("\npleaseinputbooknumber:");scanf("%s",book[i].num);printf("pleaseinputbookname:");scanf("%s",book[i].name);printf("pleaseinputbookwriter:");scanf("%s",book[i].writer);printf("pleaseinputbookfenleihao:");scanf("%s",book[i].fenleihao);printf("pleaseinputbookproduct:");scanf("%s",book[i].product);printf("pleaseinputbookproducttime:");scanf("%s",book[i].producttime);printf("pleaseinputbookprice:");scanf("%s",book[i].price);}fprintf(fp,"%d\n",N);/*將實(shí)際書本數(shù)寫入文件中長期保存*/fwrite(book,sizeof(BOOK),N,fp);/*將N個(gè)書本的信息長期保存在fp指向的文件中*/fclose(fp);}}voidshuchu(){fp=fopen("d:\yao.out","r");if(fp==NULL){printf("cann'topenthefile!");exit(0);}fscanf(fp,"%d\n",&N);fread(book,sizeof(BOOK),N,fp);printf("\nnumber\tname\twriter\tfenleihaoproduct\tpriducttime\tprice");for(i=0;i<N;i++){printf("\n%s\t%s\t%s\t%s\t%s\t%s\t%s",book[i].num,book[i].name,book[i].writer,book[i].fenleihao,book[i].product,book[i].producttime,book[i].price);}fclose(fp);}voidchazhao()/*完成指定書本按登錄號(hào)查找*/{charch[10];intflag=0;/*查找成功與否的標(biāo)記*/intt;/*保存用戶查詢方式*/fp=fopen("d:\yao.out","r");if(fp==NULL){printf("cann'topenthefile!");exit(0);}fscanf(fp,"%d\n",&N);fread(book,sizeof(BOOK),N,fp);printf("pleaseinputchoice1:bynumber2:byname");scanf("%d",&t);if(t==1){printf("\npleaseinputthenumberyouwanttosearch:");scanf("%s",ch);for(i=0;i<N;i++){if(strcmp(book[i].num,ch)==0){printf("\nnumber\tname\twriter\tfenleihaoproduct\tpriducttime\tprice");printf("\n%s\t%s\t%s\t%s\t%s\t%s\t%s",book[i].num,book[i].name,book[i].writer,book[i].fenleihao,book[i].product,book[i].producttime,book[i].price);flag=1;}}if(flag==0){printf("\nThebookdoes'texist!");}flag=0;/*恢復(fù)初始值*/}if(t==2)/*按姓名查找*/{printf("\npleaseinputthenameyouwanttosearch:");scanf("%s",ch);printf("\nnumber\tname\twriter\tfenleihaoproduct\tpriducttime\tprice");for(i=0;i<N;i++){if(strcmp(book[i].name,ch)==0){printf("\n%s\t%s\t%s\t%s\t%s\t%s\t%s",book[i].num,book[i].name,book[i].writer,book[i].fenleihao,book[i].product,book[i].producttime,book[i].price);flag=1;}}if(flag==0)printf("\nThebookdoes'texist!");flag=0;/*恢復(fù)初始值*/}fclose(fp);}voidxiugai(){charch[10],choice,m;intflag=0;/*查找成功與否的標(biāo)記*/intt;/*保存用戶查詢方式*/fp=fopen("d:\yao.out","r+");if(fp==NULL){printf("cann'topenthefile!");exit(0);}fscanf(fp,"%d\n",&N);fread(book,sizeof(BOOK),N,fp);printf("\npleaseinputthenumberthatyouwanttoxiugai:");scanf("%s",ch);for(i=0;i<N;i++){if(strcmp(book[i].num,ch)==0){printf("\nnumber\tname\twriter\tfenleihaoproduct\tpriducttime\tprice");printf("\n%s\t%s\t%s\t%s\t%s\t%s\t%s",book[i].num,book[i].name,book[i].writer,book[i].fenleihao,book[i].product,book[i].producttime,book[i].price);printf("\nAreyousuretoxiugaithisbook(Y/N)?");flag=1;scanf("%c%c",&m,&choice);if(choice=='y'||choice=='Y'){printf("pleaseinputthenewinformation:\n");/*提示用戶輸入新的信息*/printf("\npleaseinputbooknumber:");scanf("%s",book[i].num);printf("pleaseinputbookname:");scanf("%s",book[i].name);printf("pleaseinputbookwriter:");scanf("%c%c",&ch,&book[i].writer);printf("pleaseinputbookfenleihao:");scanf("%s",book[i].fenleihao);printf("pleaseinputbookproduct:");scanf("%s",book[i].product);printf("pleaseinputbookproducttime:");scanf("%s",book[i].producttime);printf("pleaseinputbookprice:");scanf("%s",book[i].price);printf("success!\n");}}}if(flag==0)/*若不存在要修改的員工則給出提示*/{printf("NOexisttheworker!");system("pause");}}voidcharu(){charch[10],choice,m;fp=fopen("d:\yao.out","r+");if(fp==NULL){printf("cann'topenthefile!");exit(0);}fscanf(fp,"%d\n",&N);fread(book,sizeof(BOOK),N,fp);printf("Areyousuretocharubook(Y/N)\n");scanf("%c%c",&m,&choice);if(choice=='Y'||choice=='y'){printf("\npleaseinputtheinformationyouwanttocharu!");printf("\npleaseinputbooknumber:");scanf("%s",book[i].num);printf("pleaseinputbookname:");scanf("%s",book[i].name);printf("pleaseinputbookwriter:");scanf("%c%c",&ch,&book[i].writer);printf("pleaseinputbookfenleihao:");scanf("%s",book[i].fenleihao);printf("pleaseinputbookproduct:");scanf("%s",book[i].product);printf("pleaseinputbookproducttime:");scanf("%s",book[i].producttime);printf("pleaseinputbookprice:");scanf("%s",book[i].price);printf("success!\n");N++;/*插入成功后,學(xué)生實(shí)際人數(shù)加1*/}rewind(fp);/*將修改以后的學(xué)生信息重新寫回文件*/fprintf(fp,"%d\n",N);fwrite(book,sizeof(BOOK),N,fp);fclose(fp);}voidshanchu(){charch[10],choice,m;fp=fopen("d:\yao.out","r+");if(fp==NULL){printf("cann'topenthefile!");exit(0);}fscanf(fp,"%d\n",&N);fread(book,sizeof(BOOK),N,fp);printf("\npleaseinputthenumberyouwanttoshanchu:");scanf("%s",ch);for(i=0;i<N;i++){if(strcmp(book[i].num,ch)==0){printf("\nnumber\tname\twriter\tfenleihaoproduct\tpriducttime\tprice");printf("\n%s\t%s\t%s\t%s\t%s\t%s\t%s",book[i].num,book[i].name,book[i].writer,book[i].fenleihao,book[i].product,book[i].producttime,book[i].price);printf("\nAreyousuretodeletethisbook(Y/N)?");scanf("%c%c",&m,&choice);if(choice=='y'||choice=='Y'){for(j=i+1;j<=N-1;j++)book[j-1]=book[j];N--;/*圖書實(shí)際數(shù)目減一*/}}}rewind(fp);/*將修改以后的圖書信息重新寫回文件*/fprintf(fp,"%d\n",N);fwrite(book,sizeof(BOOK),N,fp);fclose(fp);}voidpaixu(){inta,b;BOOKt;intk;intflag=0;fp=fopen("d:\yao.out","r+");fscanf(fp,"%d\n",&N);fread(book,sizeof(BOOK),N,fp);if(fp==NULL){printf("\ncannotopenthefile!");exit(0);}printf("\n1:bynumber2:byname");printf("\npleaseinputyourchiocetopaixu:");scanf("%d",&a);if(a==1){printf("\n1:byup2:bydown");printf("\npleaseinputyourchiocetopaixu:");scanf("%d",&b);if(b==1){for(i=0;i<N-1;i++){k=i;for(j=i+1;j<=N-1;j++)if(strcmp(book[j].num,book[k].num)<0)k=j;if(k!=i){t=book[i];book[i]=book[k];book[k]=t;}}flag=1;}if(b==2){for(i=0;i<N-1;i++){k=i;for(j=i+1;j<=N-1;j++)if(strcmp(book[j].num,book[k].num)>0)k=j;if(k!=i){t=book[i];book[i]=book[k];book[k]=t;}}flag=1;}}if(a==2){ printf("\n1:byup2:bydown");printf("\npleaseinputyourchiocetopaixu:");scanf("%d",&b);if(b==1){for(i=0;i<N-1;i++){k=i;for(j=i+1;j<=N-1;j++)if(strcmp(book[j].name,book[k].name)<0)k=j;if(k!=i){t=book[i];book[i]=book[k];book[k]=t;}}flag=1;}if(b==2){for(i=0;i<N-1;i++){k=i;for(j=i+1;j<=N-1;j++)if(strcmp(book[j].name,book[k].name)>0)k=j;if(k!=i){t=book[i];book[i]=book[k];book[k]=t;}}flag=1;}}if(flag==1)printf("\npaixusuccess!");if(flag==0)printf("\npaixunotsuccess!");rewind(fp);fprintf(fp,"%d\n",N);fwrite(book,sizeof(BOOK),N,fp);fclose(fp);}main()/*主函數(shù)*/{intt;while(1){clrscr();gotoxy(1,1);textcolor(YELLOW);textbackground(BLUE);window(1,1,99,99);clrscr();printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");printf("\n\t|Thisisamanagementsystem!\t|\n");printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");printf("\n\t|1:shuru2:shuchu3:chazhao4:xiugai|\n");printf("\n\t|5:charu6:shanchu7:paixu8:tuichu|\n");printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");printf("\npleaseinputyourchoice(1-8):");scanf("%d",&t);switch(t){case1:shuru();break;case2:shuchu();break;case3:chazhao();break;case4:xiugai();break;case5:charu();break;case6:shanchu();break;case7:paixu();break;case8:exit(0);break;default:printf("choiceerror!");}getch();}}4.函數(shù)調(diào)用本次設(shè)計(jì)共用到了七個(gè)函數(shù),其中mian函數(shù)為主函數(shù),其它為子函數(shù),他們之間的調(diào)用關(guān)系。如圖3-1所示。main()main()booknumberbookpricebooktimebookproductbookfenleibookwri

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論