




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C語言程序設計實驗報告系別專業班級姓名學號時間實驗題目 圖書信息管理系統一、實驗目的(1)熟練掌握C語言的相關操作。 (2)綜合應用C語言的知識,獨立完成一個完整的系統,提高編程能力,體會軟件程序的開發過程。二、實驗內容(1)運用數組、循環、文件等編輯一個圖書管理系統,其中具有輸入、修改、刪除、添加、查詢、排序、統計、保存、讀取模塊。(2)執行編譯操作,并根據提示調試此程序,排除所有的錯誤和警告。直到編譯成功為止。(3)執行運行操作,逐一對每個模塊進行調試,直到全部程序運行成功為止。(4)請老師檢查,向老師演練此程序,并能回答老師提出的相關問題。三、 需求分析(1)該圖書信息管理系統,使之能夠
2、完成圖書信息的輸入、打印、修改、刪除、添加、查詢、排序、統計、保存、讀取、退出。 每個模塊的功能如下: 1、輸入模塊能夠按照圖書號的先后順序完成圖書號、書名、出版社、出版日期、作者、所在書庫、價格。 2、打印模塊能輸出剛剛輸入的信息。 3、修改模塊中輸入要修改相應的圖書號后,選擇需要須改的項目就能完成修改操作。4、刪除模塊中輸入相應的圖書號后可完成刪除操作。5、添加模塊能完成添加新書的操作。 6、查詢模塊能夠按圖書名稱查詢該書的全部信息。 7、排序模塊能按照圖書的價格進行排行。 8、統計模塊能根據輸入的圖書名統計該書的種數。 9、保存模塊能夠將所有圖書的信息保存。10、讀取模塊能讀取已保存的圖
3、書信息并顯示。 11、退出模塊可直接退出此程序,結束操作。(2)創建該圖書信息管理系統目的就是能夠對圖書信息進行輸入、打印、修改、刪除、添加、查詢、排序、統計、保存、讀取、退出等功能。(3)該圖書信息管理系統是在VC中文簡體環境下運行。 該系統要測試的數據如下: 輸入模塊:第1種圖書圖書號-圖書名稱-出版社-出版日期(年-月-日)-作者-所在書庫-價格 01 履歷表 人文 2008-8-7 幾米 文藝 23第2種圖書圖書號-圖書名稱-出版社-出版日期(年-月-日)-作者-所在書庫-價格02 沙漏 湖南 2007-6-5 饒雪漫 文藝 22 第3種圖書圖書號-圖書名稱-出版社-出版日期(年-月-
4、日)-作者-所在書庫-價格03 世界是平的 科技 2003-11-2 托馬斯 經濟 56 第4種圖書圖書號-圖書名稱-出版社-出版日期(年-月-日)-作者-所在書庫-價格 04 天使與魔鬼 人文 2007-9-8 丹布朗 文藝 29第5種圖書圖書號-圖書名稱-出版社-出版日期(年-月-日)-作者-所在書庫-價格 05 向左走向右走 人文 2005-6-23 幾米 文藝 26 修改模塊:(修改天使與魔鬼的價格)(輸入)04(修改圖書號)(輸入)6(修改價格的選項)(輸入)(修改后的分數) 插入模塊:(插入06傲慢與偏見) (輸入圖書號)06 (輸入書名)傲慢與偏見 (輸入出版社)人文 (輸入出版
5、日期)2006-5-21 (輸入作者)簡奧斯丁 (輸入所在書庫)文藝 (輸入價格)24查詢模塊:(查詢沙漏的基本信息) 沙漏(輸入書名即可查詢)刪除模塊:(刪除世界是平的) 03(輸入圖書號即可刪除) 排序模塊:(輸入排序模塊的執行鍵即可完成) 輸出模塊:(輸入輸出模塊的執行鍵即可完成) 退出模塊:(輸入)0 四、概要設計(1)、主函數結構圖主函數ti 輸入模塊打印模塊修改模塊刪除模塊添加模塊查詢模塊排序模塊統計模塊保存模塊讀取模塊退出系統2)、模塊功能詳細說明 A、輸入模塊: 它可以通過循環完成對全部圖書基本信息(包括: 圖書號、書名、出版社、出版日期、作者、所在書庫、價格)的一次性錄入,其
6、中書名、出版社定義為10個字節的字符型,作者、所在書庫定義為20個字節的字符型圖書號和價格則定義為整型。 B、打印模塊:輸出所有的圖書信息。 C、修改模塊: 在輸入要修改圖書的相應的序號后,系統便開始查找該圖書號,如果存在該圖書號,只要選擇1-7選項可以分別完成對、出信息中好圖書基本信息中圖書名稱、出版社、出版日期、作者、所在書庫、價格的修改及退出。D、刪除模塊:輸入圖書號即可完成刪除該書信息的操作。 E、添加模塊: 輸入一個圖書的全部信息后,該程序會按照書號由小到大的順序查找到相應的位置,并把輸入該圖書的全部信息插入到相關位置。 F、查詢模塊: 此模塊按書名進行查詢,它也是通過指針和鏈表進行
7、推移查找,如果找到則顯示該圖書的全部信息,否則,將輸出沒有查到該圖書信息,以便給以提示. G、排序模塊:該模塊利用循環按圖書價格由低到高進行排序并顯示排序結果。 H、統計模塊: 該模塊根據輸入的圖書名統計該圖書的本數,若沒有相應信息則顯示有0本該書。I、 保存模塊:該模塊將已輸入的圖書信息保存。J、 讀取模塊:該模塊將通過打開指定的文件讀取已有的信息。 H、退出模塊: 可直接退出此程序,結束操作。五、詳細設計及運行結果(1)函數之間的相互調用主函數調用輸入函數調用打印函數調用修改函數調用刪除函數調用添加函數調用排序函數調用查詢函數調用統計函數調用保存函數調用讀取函數結束結束結束結束結束結束結束
8、結束結束結束 (2)該圖書信息管理系統的源代碼。#include"stdio.h"#include"string.h"#include"stdlib.h"#include"conio.h"#define MAX 10#define N 5;/*日期結構體類型*/typedef struct int year; int month; int day;DATE;/*圖書結構體類型*/typedef struct int num; /* 圖書編號 */ char name10; /*圖書名稱*/ char press10
9、; /* 出版社 */ DATE pro_time; /*出版日期*/ float price; /* 價格 */ char author20; /* 作者 */ char add20; /* 所在書庫*/BOOK;/*保存信息*/void save_file(BOOK books,int sum) FILE*fp; int i; char filename40; /clrscr(); printf("n input SAVE filename="); scanf("%s",filename); if ( (fp=fopen(filename, &quo
10、t;w") = NULL) printf("n %s file NOT open! press any key exit system."); getch(); exit(0); for(i=0;i<sum;i+) fprintf(fp,"%d %s %s %d-%d-%d %s %s %fn",booksi.num,,booksi.press, _time.year ,_time.month, _time.day,booksi.author,booksi.
11、add,booksi.price);fclose(fp);/*讀取信息*/void write_file(BOOK books,int *sum) FILE *fp; int i; char filename40; printf("n input READ filename="); scanf("%s",filename); if ( (fp=fopen(filename, "r") = NULL) printf("n %s file NOT open! press any key exit system.");
12、getch(); i=0;while(feof(fp)=0)fscanf(fp,"%d %s %s %d-%d-%d %s %s %f",&booksi.num,,booksi.press, &_time.year,&_time.month, &_time.day,booksi.author,booksi.add,&booksi.price); i+;fclose(fp);*sum=i-1; /*輸入模塊*/int input(BOOK books) i
13、nt i=0; float f;char isCon; system("cls");flushall();printf("is Continue(y/n)?:");scanf("%c",&isCon); printf("nn 錄入圖書信息 (最多%d種) n",MAX); printf("-n"); while(isCon='Y' | isCon='y') printf("n 第%d種圖書",i+1); printf("n&q
14、uot;); printf("n 圖書號:"); flushall(); scanf("%d",&booksi.num); printf("n 圖書名稱:"); flushall(); scanf("%s",); printf("n 出版社:"); flushall(); scanf("%s",booksi.press); printf("n 出版日期(yyyy-mm-dd):"); flushall(); scanf(&qu
15、ot;%d-%d-%d",&_time.year ,&_time.month, &_time.day); printf("n 作者: "); flushall(); scanf ("%s",booksi.author); printf("n 所在書庫:"); flushall(); scanf ("%s",booksi.add); printf("n 價格:"); flushall(); scanf(&
16、quot;%f",&f); booksi.price=f; i+; flushall();printf("is Continue(y/n)?:");scanf("%c",&isCon); printf("n -%d種圖書信息輸入完畢!-n",i); printf("n 按任意鍵返回主菜單!"); getchar( ); return i;/*輸出模塊*/void output(BOOK books,int *sum) int i=0,j=0,page=1; int n;n=*sum; sy
17、stem("cls"); printf("nn -圖書信息表- nn" ); printf("圖書號-圖書名稱-出版社-出版日期(年-月-日)-作者-所在書庫-價格n"); printf("-n"); for (i=0;i<n;i+) printf("%4d %8s %8s %15d-%2d-%2d %8s %8s %10fn",booksi.num, ,booksi.press,_time.year, _time.month,
18、_time.day,booksi.author,booksi.add, booksi.price); printf("-n"); flushall(); printf("按任意鍵返回主菜單!"); getchar();/*添加新書*/int append( BOOK books,int sum )int flag; char choice; do system("cls"); printf("n 輸入要添加的圖書號:"); scanf("%d",&bookssum.n
19、um); printf("n 輸入要添加的圖書名稱:"); flushall(); scanf("%s",), printf("n 輸入要添加的圖書出版社:"); flushall(); scanf("%s",bookssum.press); printf("n 輸入要添加的圖書出版日期:"); flushall(); scanf("%d%d%d", &_time.year,&_time
20、.month,&_time.day); printf("n 輸入要添加的作者:"); flushall(); scanf("%s",bookssum.author); printf("n 輸入要添加圖書的所在書庫:"); flushall(); scanf("%s",bookssum.add); printf("n 輸入要添加的圖書價格:"); flushall(); scanf("%f",&bookssum.price); sum+;
21、 printf("nn 繼續添加嗎?(Y/N)"); flushall(); choice=getchar(); if(choice='Y'|choice='y') flag=1; printf("n 繼續!n"); else flag=0; while(flag=1); printf("n 按任意鍵返回主菜單!"); getchar(); /bioskey(0); flushall();return sum;return 0;/*修改信息*/void modify(BOOK books,int sum
22、) int i=0,j=0,choice,modify_num,flag; do system("cls"); printf("n 輸入要修改的圖書號:"); scanf("%d",&modify_num); for(i=0;i<sum;i+) if(booksi.num=modify_num) printf("n -圖書信息- n"); printf("n 您要修改哪一項? n"); printf("n 1.名 稱 n"); printf("n 2.
23、出 版 社 n"); printf("n 3.出版日期 n"); printf("n 4.作 者 n"); printf("n 5.所在書庫n"); printf("n 6.價 格 n"); printf("n 7.請選擇(1-7):"); scanf("%d",&choice); switch(choice) case 1:printf("n 輸入修改后的名稱 :"); scanf("%s",)
24、;break; case 2:printf("n 輸入修改后的出版社 :"); scanf("%s",booksi.press);break; case 3:printf("n 輸入修改后的出版日期 :"); scanf("%d-%d-%d",&_time.year, &_time.month, &_time.day);break; case 4:printf("n 輸入修改后的價格 :"); scanf(&qu
25、ot;%f",&booksi.price);break; case 5:printf("n 輸入要添加的作者:"); scanf("%s",bookssum.author); case 6:printf("n 輸入要添加圖書的所在書庫:"); scanf("%s",bookssum.add); printf("n -圖書信息-n"); printf("圖書號- 圖書名稱-出版社-出版日期(年-月-日)-作者-所在書庫-價格n"); printf("
26、-n"); printf("%4d %8s %8s %15d-%2d-%2d %8s %8s %10fn",booksi.num, ,booksi.press,_time.year, _time.month,_time.day,booksi.author,booksi.add, booksi.price); break; else j+; if(j=sum) printf("n 該圖書信息不存在!n"); /bioskey(0); flushall(); prin
27、tf("nn 繼續修改嗎?(Y/N)"); flushall(); choice=getchar(); if ( choice='Y'|choice='y' ) flag=1; printf("n 繼續!n"); else flag=0; while(flag=1); printf("n 按任意鍵返回主菜單!"); getchar(); /bioskey(0); flushall(); /*刪除信息*/int del(BOOK books,int sum) int i,j=0,flag; int num
28、,choice; do system("cls"); printf("nn 請輸入要刪除的圖書號:" ); scanf("%d",&num); for( i=0;i<sum;i+ ) if( booksi.num=num ) for(j=i;j<sum;j+) booksj=booksj+1; sum-; printf("刪除成功!n"); break; else j+; if(j=sum) printf("n 該圖書信息不存在! n"); /bioskey(0); flus
29、hall(); printf("nn 繼續刪除嗎?(Y/N)"); flushall(); choice=getchar(); if ( choice='Y'|choice='y' ) flag=1; printf("n 繼續!n"); else flag=0; while(flag=1); printf("n 按任意鍵返回主菜單!"); getchar(); /bioskey(0); flushall(); return sum; /*查詢模塊*/void inquire(BOOK books,int
30、 sum) int i=0,j=0, flag; char choice; char inquire_name10; do system("cls"); printf("n *查詢系統*"); printf("n 輸入要查詢的圖書名稱:"); scanf("%s", inquire_name); for(i=0;i<sum;i+) if( strcmp( ,inquire_name )=0 ) printf("n -圖書信息-n"); printf("圖書號
31、-圖書名稱-出版社-出版日期(年-月-日)-作者-所在書庫-價格 n"); printf("-n"); printf("%4d %8s %8s %15d-%2d-%2d %8s %8s %10fn",booksi.num, ,booksi.press,_time.year, _time.month,_time.day,booksi.author,booksi.add, booksi.price); else j+; if(j=sum) printf("n
32、 該圖書不存在!"); /bioskey(0); flushall(); printf("nn 繼續查詢嗎?(Y/N)"); flushall(); choice=getchar(); if (choice='Y'|choice='y') flag=1; printf("n 繼續!n"); else flag=0; while(flag=1); printf("n 按任意鍵返回主菜單!"); getchar(); /bioskey(0); flushall();/*排序模塊*/void sor
33、t(BOOK books,int sum) BOOK t; int i,j,k; system("cls"); printf("n 圖書按價格排行n"); printf("-n"); printf("n 排名 圖書號 圖書名稱 出版社 作者 所在書庫 價格n"); for( i=0;i<sum;i+ ) k=i; for(j=i+1;j<sum;j+) if(booksk.price>booksj.price) k=j; if (k!=i) t=booksi; booksi=booksk; boo
34、ksk=t; output(books,&sum); /bioskey(0); flushall();/*統計信息*/void count( BOOK books,int sum) int i,t,j,flag; char count_name10; char choice; do system("cls"); t=0,j=0; printf("n 請輸入要統計的圖書名稱:"); scanf("%s",count_name); for(i=0;i<sum;i+) if ( strcmp(,count
35、_name)=0 ) t+; else j+; printf(" 該種圖書共有 %d 本! ",t); if(j=sum) printf("n 該種圖書不存在!"); /bioskey(0); flushall(); printf("nn 繼續統計嗎?(Y/N)"); flushall(); choice=getchar(); if( choice='Y'|choice='y' ) flag=1; printf("n 繼續!n"); else flag=0; while(flag=1); printf("n 按任意鍵返回主菜單!"); getchar(); /bioskey(0);flushall();/*圖書信息管理主程序*/void main() BOOK booksMAX; int c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 舞蹈常用術語
- 華貴大氣的牡丹動態模板
- 愛麗斯特元宵歡樂嘉年華活動策劃
- 貸款還款合同
- 火力發電廠環保設施承包合同
- 2025年購銷合同范本
- 2025租房合同協議標準版
- 2025包含擔保條款的借款合同范本
- 2025年新合同法對合同權利義務終止的具體規定
- 2025商場租賃合同格式
- 中華人民共和國特種設備安全法簡介(131張)課件
- 【iSlidePPT作品】埃隆-馬斯克人物生平PPT課件
- COOK培養箱主要特點參數
- 送達地址確認書(法院最新版)
- 四肢骨折的固定搬運課件
- (高清正版)T_CAGHP 055—2019 滑坡崩塌防治削方減載工程設計規范(試行)
- 預制箱梁回彈強度偏低及原因報告
- 有效提升投訴客戶滿意度QC小組成果材料
- F5負載均衡運維配置手冊V10
- 管道支架重量計算表(計算支架)
- 關于進一步提高干部考察材料撰寫質量的思考
評論
0/150
提交評論