




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
圖書信息管理系統一、需求分析1.操作對象有多個屬性,故其類型為結構體類型2.多個對象數據的錄入采用循環實現3.圖書信息保存到文件中涉及到文件的讀寫操作4.排序操作可采用冒泡排序和選擇法排序5.主函數中根據用戶不同選擇執行不同操作可通過“多分支選擇語句switch”實現6.程序中多次使用到if語句和for循環語句7.指針變量的定義和使用二、概要設計1.系統功能組成框圖本次設計的題目是圖書信息管理系統,根據任務書要求,并經過同組同學討論,確定本系統主要包括輸入、輸出、查詢、修改、插入、刪除、排序等功能。系統功能組成圖如圖2.1所示。輸入輸入書名登錄名登錄名輸出查詢修改插入刪除排序書名圖書信息管理系統圖2.1圖書信息管理2.數據結構設計圖書信息為結構體,成員有登錄名、書名、作者名、分類號、出版單位、出版時間、價格。Struct結構體名{登錄號類型定義;書名類型定義;作者名類型定義;分類號類型定義;出版單位類型定義;出版時間類型定義;價格類型定義;}3.模塊功能說明本程序包括七個主要模塊3.1主程序模塊mian(){清屏并顯示主菜單提示用戶選擇所要執行的操作根據用戶的選擇執行相應的模塊}3.2錄入模塊實現員工信息的錄入算法:提示用戶想要錄入的書本數依次提示輸入登錄號、書名、作者等信息并保存在數組中將錄入的信息保存在磁盤文件里3.3顯示模塊實現圖書信息的顯示算法:將已經保存到文件中的圖書信息讀取并輸出到顯示器3.4查詢模塊按用戶的指定要求查詢圖書的信息算法:提示用戶輸入查詢條件(登錄號、書名)在文件中查找是否存在要查找的圖書輸出查找結果3.5修改模塊修改相應圖書的信息算法:提示用戶輸入要修改的圖書的號碼查找是否存在該圖書若存在該圖書則輸出該圖書信息,并提示用戶輸入新的信息保存修改結果3.6添加模塊添加圖書信息算法:提示用戶輸入要添加的圖書本數用循環依次輸入圖書的信息保存到文件3.7排序模塊按用戶的指定要求(登錄號、書名)進行排序算法:提示用戶選擇排序方式(按登錄號、書名)用冒泡法排序保存排序后的圖書信息3.8刪除模塊刪除指定圖書的信息算法:提示用戶輸入要刪除的圖書號查找是否存在這個圖書,若存在則輸出該圖書信息,并提示圖書是否刪除若用戶選擇要刪除,則該圖書后的圖書順序向前移1三、詳細設計1.圖書信息類型定義typedefstructbook{charnum[10];/*書本登錄號*/charname[20];/*書名*/charwriter[20];/*作者名*/charfenleihao[10];/*分類號*/charproduct[10];/*出版單位*/charproducttime[10];/*出版時間*/charprice[10];/*價格*/}BOOK;2.信息管理基本操作實現voidshuru()/*完成N本書信息的輸入*/voidshuchu()/*完成N本書信息的輸出*/voidchazhao()/*完成指定書本查找*/voidxiugai()/*完成指定書本修改*/voidcharu()/*完成指定學生信息的插入*/voidshanchu()/*完成指定學生信息的刪除*/voidpaixu()/*完成指定學生按學號的排序*/3.程序詳細代碼#include"stdio.h"#include"conio.h"#defineM100/*系統最多能容納的書本數*/intN;/*實際的書本數*/inti,j=0;/*循環變量*/FILE*fp;/*定義文件指針*/typedefstructbook{charnum[10];/*書本登錄號*/charname[20];/*書名*/charwriter[20];/*作者名*/charfenleihao[10];/*分類號*/charproduct[10];/*出版單位*/charproducttime[10];/*出版時間*/charprice[10];/*價格*/}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);/*將實際書本數寫入文件中長期保存*/fwrite(book,sizeof(BOOK),N,fp);/*將N個書本的信息長期保存在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()/*完成指定書本按登錄號查找*/{charch[10];intflag=0;/*查找成功與否的標記*/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;/*恢復初始值*/}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;/*恢復初始值*/}fclose(fp);}voidxiugai(){charch[10],choice,m;intflag=0;/*查找成功與否的標記*/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++;/*插入成功后,學生實際人數加1*/}rewind(fp);/*將修改以后的學生信息重新寫回文件*/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--;/*圖書實際數目減一*/}}}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()/*主函數*/{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.函數調用本次設計共用到了七個函數,其中mian函數為主函數,其它為子函數,他們之間的調用關系。如圖3-1所示。main()main()booknumberbookpricebooktimebookproductbookfenleibookwri
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 領導力培訓如何成為出色的領導者
- 顧客行為分析新零售策略的基石
- 風電產業發展中人才培養的機遇與挑戰
- 顧客體驗優化對洛陽零售業競爭力的影響
- 防災減災教育新員工的必 備素質
- 非遺文化的傳播與教育模式創新
- 防火材料的新篇章巖棉的研發與進步
- 青少年文化遺產保護與藝術教育并進
- 防范網絡攻擊保障數據安全
- 隱私保護與信息共享的平衡策略在銀行業的應用
- 2025年各地低空經濟政策匯編
- 2025年共青團入團考試測試題庫及答案
- 房屋建筑工程竣工驗收技術資料統一用表(2024 版)
- 2024年檢驗科生物安全培訓考核試題及答案
- 技術開發標準合同浙江省科技廳模板
- 康復醫學科治療技術操作規范2023版
- 《宮頸癌防治知識普及》課件
- 2024年度海南省國家電網招聘之電網計算機通關提分題庫(考點梳理)
- 電動汽車充換電基礎設施建設-深度研究
- 2025年貴安發展集團有限公司招聘筆試參考題庫含答案解析
- 二年級班主任經驗交流精彩演講稿
評論
0/150
提交評論