版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、目 錄一、設(shè)計(jì)任務(wù)書3二、本組課題及本人任務(wù)3三、程序功能簡介4四、主體內(nèi)容41設(shè)計(jì)分析42程序結(jié)構(gòu)53各模塊的功能及程序說明54. 源程序65操作方法.176試驗(yàn)結(jié)果187設(shè)計(jì)體會(huì)22五、附錄231.流程圖23 2.過程列表26一、設(shè)計(jì)任務(wù)書1.目的1)復(fù)習(xí)、鞏固C語言的基礎(chǔ)知識(shí),進(jìn)一步加深對(duì)C語言的理解和掌握。2)課程設(shè)計(jì)為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來,鍛煉學(xué)生的分析解決實(shí)際問題的能力。提高學(xué)生適應(yīng)實(shí)際,實(shí)踐編程的能力。3)培養(yǎng)學(xué)生在項(xiàng)目開發(fā)中團(tuán)隊(duì)合作精神、創(chuàng)新意識(shí)及能力。2.要求:1)對(duì)系統(tǒng)進(jìn)行功能模塊分析、控制模塊分析正確,符合課題
2、要求,實(shí)現(xiàn)相應(yīng)功能;可以加以其他功能或修飾,使程序更加完善、合理。2)系統(tǒng)設(shè)計(jì)要實(shí)用,編程簡練,可用,功能全面。3)說明書、流程圖要清楚。4)記錄設(shè)計(jì)情況(備查,也為編寫設(shè)計(jì)說明書作好準(zhǔn)備)。5)要求采用模塊化程序設(shè)計(jì)方法,及鋸齒型書寫格式,要求上機(jī)調(diào)試通過和按設(shè)計(jì)報(bào)告格式。6)設(shè)計(jì)上交內(nèi)容:設(shè)計(jì)報(bào)告一份(按格式書寫);源程序一份,能編譯成可執(zhí)行文件并能正常運(yùn)行。二、本組課題及本人任務(wù)課題:圖書信息管理系統(tǒng)設(shè)計(jì)圖書信息包括:登錄號(hào)、書名、作者名、分類號(hào)、出版單位、出版時(shí)間、價(jià)格等。試設(shè)計(jì)一圖書信息管理系統(tǒng),使之能提供以下功能:1.系統(tǒng)以菜單方式工作。2.圖書信息錄入功能(圖書信息用文件保存)輸
3、入。3.圖書信息瀏覽功能輸出。4.查詢和排序功能:(至少一種查詢方式)算法。a. 按書名查。b.按作者名查詢。本人任務(wù):負(fù)責(zé)設(shè)計(jì)和編寫圖書信息管理系統(tǒng)的修改圖書信息部分。三、程序功能簡介 本系統(tǒng)是以visual C+ 6.0 環(huán)境下用C語言開發(fā)的一個(gè)圖書管理系統(tǒng)。本系統(tǒng)具有圖書信息錄入、瀏覽、刪除、修改、查找(包括按書名、作者查找)功能。其中圖書信息包括登錄號(hào)、書名、作者名、分類號(hào)、出版單位、出版時(shí)間、價(jià)格,并且對(duì)信息以文件形式儲(chǔ)存。另外本系統(tǒng)具備實(shí)用性的同時(shí)代碼邏輯謹(jǐn)慎清晰易懂,且界面美觀。四、主體內(nèi)容1設(shè)計(jì)分析本系統(tǒng)共分為一個(gè)主頁面模塊(主函數(shù)部分),五個(gè)功能模塊(功能函數(shù))分別為圖書信息
4、錄入、圖書信息瀏覽、圖書信息查詢、圖書信息刪除、圖書信息修改。設(shè)計(jì)時(shí)應(yīng)該先寫好主函數(shù)、定義好全局變量和功能函數(shù),再對(duì)五個(gè)功能函數(shù)進(jìn)行設(shè)計(jì)。在每個(gè)功能函數(shù)和主函數(shù)應(yīng)中加入控制條件使用戶可以隨時(shí)退出系統(tǒng),并在用戶輸入指令錯(cuò)誤的時(shí)候給予提醒和退出選項(xiàng)。小組中的五個(gè)人分別承擔(dān)一個(gè)功能模塊進(jìn)行設(shè)計(jì)。并在每個(gè)人設(shè)計(jì)完成后通過主函數(shù)進(jìn)行鏈接調(diào)試正確后方為完成。2程序結(jié)構(gòu)(流程圖)系統(tǒng)運(yùn)行選擇功能1.信息錄入鍵入信息2.信息瀏覽返回主菜單返回主菜單3.信息查詢按書名查找按作者查找返回主菜單輸入書名輸入作者信息存在?是否輸出信息返回主菜單4.信息刪除輸入刪出信息代號(hào)輸出刪除后的信息返回主菜單5.信息修改輸入修改
5、信息代號(hào)修改信息存在?是信息修改否返回主菜單輸出修改后的信息6.退出系統(tǒng)3各模塊的功能及程序說明A、錄入模塊:本模塊主要執(zhí)行信息錄入功能。B、瀏覽模塊:本模塊主要是執(zhí)行把已有信息輸出瀏覽功能。C、查詢模塊:本模塊主要是執(zhí)行按書名和按作者名查找圖書信息的功能。D、刪除模塊:本模塊主要執(zhí)行刪除圖書信息的功能。E、修改模塊(本人設(shè)計(jì)模塊):本模塊主要執(zhí)行圖書信息修改功能。在用戶選擇該功能后。首先,系統(tǒng)會(huì)彈出已存在信息列表并讓用戶選擇所要修改的信息項(xiàng)目。然后,當(dāng)用戶選定要修改的信息后會(huì)彈出信息目錄,用戶需按順序依次修改信息內(nèi)容。最好當(dāng)所有信息項(xiàng)目都修改完成之后,按回車鍵會(huì)在窗口上輸出修改后的內(nèi)容。4.
6、 源程序#include#include#include#include#define MAX 100struct Studentint num;/*登錄號(hào)*/char name100;/*書名*/char author100;/*作者名*/char fn100;/*分類號(hào)*/char place100;/*出版單位*/char day100;/*出版時(shí)間*/float money;/*價(jià)格*/stuMAX;main()/*主函數(shù)*/void Input();/*輸入*/void Display();/*輸出*/void Find();/*查找*/void Modify();/*刪除*/voi
7、d Change();/*修改*/int n; for(;)printf(n); printf(n); printf( n); printf( 歡迎來到圖書信息管理系統(tǒng) n); printf( n); printf( n);printf( 主菜單 n);printf( n); printf( 1.圖書信息錄入 n); printf( n);printf( 2.圖書信息瀏覽 n); printf( n);printf( 3.圖書信息查詢 n); printf( n);printf( 4.圖書信息刪除 n); printf( n);printf( 5.圖書信息修改 n); printf( n);p
8、rintf( 6.退出系統(tǒng) n); printf( n); printf(nn); printf(請(qǐng)輸入選擇項(xiàng)(1-6):); scanf(%d,&n); printf(nnnn); if(n0&n7)switch(n) case 1:Input();break; case 2:Display();break; case 3:Find();break; case 4:Modify();break; case 5:Change();break; case 6:printf(n); printf( n); printf( 謝謝使用! n); printf( 再見! n); printf( n);
9、printf(n); exit(0); else printf(n); printf( n); printf( 輸入錯(cuò)誤! n); printf( 請(qǐng)退出! n); printf( n); printf(n); break;void Find()/*查找*/ FILE *fp;int i;int choose,t;char ans100; doprintf(1.按書名查找n);printf(2.按作者名查找n);printf(返回主菜單(其他數(shù)字)n);scanf(%d,&choose);if(choose=1)printf(輸入所查書名:n);scanf(%s,ans);t=-1;if(ch
10、oose=1)for(i=0;iMAX;i+) if(strcmp(ans,)=0) t=i; fp=fopen(student,rb);for(i=0;fread(&stui,sizeof(struct Student),1,fp)=1;i+)printf(%d %s %s %s %s %s %fn,stut.num,,stut.author,stut.fn,stut.place,stut.day,stut.money);if(t=-1) printf(不存在該信息n);else if(choose=2)printf(輸入所查作者名:n);scanf(%s
11、,ans);t=-1;if(choose=2)for(i=0;iMAX;i+)if(strcmp(ans,stui.author)=0) t=i; fp=fopen(student,rb);for(i=0;fread(&stui,sizeof(struct Student),1,fp)=1;i+) printf(%d %s %s %s %s %s %fn,stut.num,,stut.author,stut.fn,stut.place,stut.day,stut.money);if(t=-1) printf(不存在該信息n);else return;while(1);void
12、 Display()/*輸出*/FILE *fp; int i; fp=fopen(student,rb); printf(n); printf( 圖書列表n); printf(-n); printf(登錄號(hào) 書名 作者名 分類號(hào) 出版單位 出版時(shí)間 價(jià)格n); printf(-n); for(i=0;fread(&stui,sizeof(struct Student),1,fp)=1;i+)printf(%6d %8s %8s %8s %8s %8s %8.2fn,stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.
13、money);fclose(fp);void Input()/*輸入*/FILE *fp;int n;fp=fopen(student,ab+); for(n=0;nMAX;n+)printf(n=%d 輸入序號(hào)n(當(dāng)輸入n=-1時(shí),返回),n=,n+); scanf(%d,&n);if(n=-1) fclose(fp);return;elseprintf(請(qǐng)輸入登錄號(hào) 書名 作者名 分類號(hào) 出版單位 出版時(shí)間 價(jià)格n);scanf(%d%s%s%s%s%s%f,&stun.num,,stun.author,stun.fn,stun.place,stun.day,&stun.
14、money); fwrite(&stun,sizeof(struct Student),1,fp);fclose(fp);void Modify()/*刪除*/FILE *fp;int i,flag,n,s,j; fp=fopen(student,rb+); rewind(fp); printf( 圖書列表n); printf(-n); printf(登錄號(hào) 書名 作者名 分類號(hào) 出版單位 出版時(shí)間 價(jià)格n); printf(-n); for(i=0;fread(&stui,sizeof(struct Student),1,fp)=1;i+) printf(%6d %8s %8s %8s %8
15、s %8s %8.2fn,stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.money); printf(n); n=i;printf(輸入待刪除圖書號(hào):n);scanf(%d,&s);for(i=0,flag=1;flag∈i+)if(s=stui.num)for(j=i;jn-1;j+)stuj.num=stuj+1.num; strcpy(,stuj+1.name); strcpy(stuj.author,stuj+1.author); strcpy(stuj.fn,stuj+1.fn)
16、; strcpy(stuj.place,stuj+1.place);strcpy(stuj.day,stuj+1.day);stuj.money=stuj+1.money;flag=0;if(!flag)n=n-1;else printf(沒有此號(hào)n);fp=fopen(student,wb);for(i=0;in;i+)fwrite(&stui,sizeof(struct Student),1,fp); fclose(fp);fp=fopen(student,r); printf( 圖書列表n); printf(-n); printf(登錄號(hào) 書名 作者名 分類號(hào) 出版單位 出版時(shí)間 價(jià)格n
17、); printf(-n); for(i=0;in;i+) fread(&stui,sizeof(struct Student),1,fp); printf(%6d %8s %8s %8s %8s %8s %8.2fn,stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.money); printf(n); fclose(fp);void Change()/*修改*/ FILE *fp; int i,num,n; int flag=0; fp=fopen(student,rb); printf(n); printf(
18、圖書列表n); printf(-n); printf(登錄號(hào) 書名 作者名 分類號(hào) 出版單位 出版時(shí)間 價(jià)格n); printf(-n); for(i=0;fread(&stui,sizeof(struct Student),1,fp)=1;i+)printf(%6d %8s %8s %8s %8s %8s %8.2fn,stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.money);fclose(fp); printf(請(qǐng)輸入要修改的圖書號(hào):); scanf(%d,&num); for(i=0;i=MAX;i+)
19、if(stui.num=num) printf( 圖書列表n); printf(-n); printf(登錄號(hào) 書名 作者名 分類號(hào) 出版單位 出版時(shí)間 價(jià)格n); printf(-n); printf(%6d %8s %8s %8s %8s %8s %8.2fn,stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.money); printf(-nn); n=i; flag=1; break; if(flag=0)printf(n); printf( 輸入錯(cuò)誤!n); printf( 請(qǐng)返回!n); printf(n
20、); return; printf(nnn); fp=fopen(student,rb+); fseek(fp,n*sizeof(struct Student),0); printf(登錄號(hào) 書名 作者名 分類號(hào) 出版單位 出版時(shí)間 價(jià)格n); scanf(%d%s%s%s%s%s%f,&stun.num,,stun.author,stun.fn,stun.place,stun.day,&stun.money); fwrite(&stui,sizeof(struct Student),1,fp); fclose(fp); fp=fopen(student,rb); print
21、f( 圖書列表n); printf(-n); printf(登錄號(hào) 書名 作者名 分類號(hào) 出版單位 出版時(shí)間 價(jià)格n); printf(-n); for(i=0;fread(&stui,sizeof(struct Student),1,fp)=1;i+) printf(%6d %8s %8s %8s %8s %8s %8.2fn,stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.money); printf(-nn); fclose(fp);5操作方法(流程)第一步:雙擊打包好的.exe程序,打開程序。第二步:根據(jù)窗
22、口提示內(nèi)容作出選擇。第三步:根據(jù)彈出的二級(jí)菜單作出選擇。第四步:根據(jù)所選內(nèi)容進(jìn)行相應(yīng)的操作。第五步:操作完畢,根據(jù)提示返回主菜單會(huì)直接退出該系統(tǒng)。6試驗(yàn)結(jié)果A、圖書信息錄入:數(shù)據(jù)輸入:數(shù)據(jù)輸出:B、圖書信息瀏覽輸入數(shù)據(jù):數(shù)據(jù)輸出:C、圖書信息查詢輸入數(shù)據(jù):輸出數(shù)據(jù):D、圖書信息刪除:輸入數(shù)據(jù):輸出數(shù)據(jù):E、圖書信息修改輸入數(shù)據(jù):輸出數(shù)據(jù):F、系統(tǒng)退出輸入數(shù)據(jù):數(shù)據(jù)輸出:7設(shè)計(jì)體會(huì)。在這一周的程序設(shè)計(jì)實(shí)習(xí)當(dāng)中并不是一帆風(fēng)順的。剛開始到電腦面前聽完老師講了一大堆,我根本就不知道要做什么,用什么做。 我并沒有被眼前的一點(diǎn)小困難所擊倒,我相信困難總是有辦法解決的。于是開始的兩天我就在網(wǎng)上找各種相關(guān)的文
23、章、視頻。剛開始我就只是看著網(wǎng)上的東西照貓畫虎的做一些小程序,慢慢的通過這些模仿我也漸漸的懂了一些東西。通過兩天的原始知識(shí)積累后,我開始嘗試著按照自己的想法做了一些小系統(tǒng)。起初會(huì)出現(xiàn)很多問題,不是這兒少了就是那錯(cuò)了。在這樣那樣的錯(cuò)誤中我明白編程是一件很嚴(yán)謹(jǐn)?shù)氖?,容不得半點(diǎn)錯(cuò)誤,一步走錯(cuò),全盤皆輸!在出現(xiàn)錯(cuò)誤時(shí)我通常是上網(wǎng)搜索相關(guān)的答案,聽聽大家的想法,往往一個(gè)問題的解決方法是多種多樣的,各自有其精妙之處。有的解決方法淺顯易懂,但是易出現(xiàn)漏洞;有的復(fù)雜難懂,但是邏輯緊密,無絲毫破綻。編程是一門邏輯的游戲,一但了解其游戲規(guī)則,便發(fā)現(xiàn)樂趣無窮。有時(shí)候自己有很多的想法,但由于自己的水平有限不能很好地實(shí)
24、現(xiàn),每到那時(shí)候我就有一種強(qiáng)烈的愿望想要把問題解決,做出自己想的東西。一但解決了問題,那種快樂非親身經(jīng)歷者不能感受! 說實(shí)話,在網(wǎng)上雖然信息很多,但是會(huì)讓人暈了頭腦,做起來也不是那么容易的。也許我的程序比起別人的來說可能會(huì)有些許不足,但是那個(gè)個(gè)代碼都是出自我手,每一寸屏幕都是我自己的想法,都是我自己的。我覺得不成功沒關(guān)系,重要的是要有自己努力成功的心,而要成功光是抄襲別人的是不行的,得拿出自己的東西,自己的創(chuàng)新,要敢于嘗試! 王杰 2013.7.9七、附錄1.流程圖主頁面:信息錄入:信息瀏覽:信息查詢:信息刪除:信息修改:系統(tǒng)退出:2.主要過程列表A、程序開頭定義:#include:#inclu
25、de是編譯預(yù)處理指令,就是在編譯前將stdio.h這個(gè)文件里的函數(shù)都添加到你寫的cpp文件中。#include:在編譯前C語言里面關(guān)于字符數(shù)組的函數(shù)定義的頭文件,就是在編譯前將stdio.h這個(gè)文件里的函數(shù)都添加到你寫的cpp文件中。#include:在編譯前將stdlib.h這個(gè)文件里的函數(shù)都添加到你寫的cpp文件中。#include:在編譯前將conio.h這個(gè)文件里的函數(shù)都添加到你寫的cpp文件中。#define MAX 100:#define 就是在編譯器編譯之前對(duì)代碼進(jìn)行字符串替換,即是把MAX換成100.B、struct Student:結(jié)構(gòu)體,定義的結(jié)構(gòu)體是整個(gè)程序的共用體,即是
26、該結(jié)構(gòu)體可在每個(gè)模塊中不從新定義就使用。C、main()主函數(shù)模塊主要變量、函數(shù):void Input():自定義輸入函數(shù)。void Display():自定義輸出函數(shù)。void Find():自定義查找函數(shù)。void Modify():自定義刪除函數(shù)。void Change():自定義修改函數(shù)。for():循環(huán)函數(shù)。switch():選擇函數(shù),判斷用戶輸入的數(shù)字進(jìn)行功能選擇。exit():退出循環(huán)函數(shù)。D、void Input()輸入模塊主要變量、函數(shù):FILE *fp:聲明fp是指針,用來指向FILE類型的對(duì)象。fopen():fopen函數(shù)用來打開一個(gè)文件。printf():輸出函數(shù),以
27、程序員規(guī)定數(shù)據(jù)類型把數(shù)據(jù)輸出到窗口上。scanf():輸入函數(shù),以程序員規(guī)定的的數(shù)據(jù)類型輸入數(shù)據(jù)。if()else:條件判斷函數(shù)。fclose():關(guān)閉文件的函數(shù),功能為關(guān)閉打開的文件,以防止數(shù)據(jù)丟失。fwrite():向文件寫入一個(gè)數(shù)據(jù)塊。sizeof():以字節(jié)形式給出了其操作數(shù)的存儲(chǔ)大小。for():循環(huán)函數(shù)。E、void Display()輸出函數(shù)主要變量、函數(shù): FILE *fp:聲明fp是指針,用來指向FILE類型的對(duì)象。fread():在文件中讀出一個(gè)數(shù)據(jù)塊賦值給某一個(gè)變量fopen():fopen函數(shù)用來打開一個(gè)文件。fclose():關(guān)閉文件的函數(shù),功能為關(guān)閉打開的文件,以防止數(shù)據(jù)丟失。p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《證券基本知識(shí)培訓(xùn)》課件
- 七年級(jí)英語Peopleandwork課件
- 2025年寫人要抓住特點(diǎn)
- 大學(xué)計(jì)算機(jī)專業(yè)介紹
- 《試驗(yàn)室管理》課件
- 單位管理制度集粹選集【職員管理篇】
- 單位管理制度范例選集人員管理十篇
- 單位管理制度呈現(xiàn)合集人員管理十篇
- 單位管理制度呈現(xiàn)大合集人事管理篇
- (高頻選擇題50題)第1單元 中華人民共和國的成立和鞏固(解析版)
- 2025屆江西省景德鎮(zhèn)市八年級(jí)數(shù)學(xué)第一學(xué)期期末質(zhì)量跟蹤監(jiān)視試題含解析
- 小學(xué)美術(shù)桂美版三年級(jí)上冊(cè)《第8課畫身邊的小物件》省級(jí)名師授課教案課教案獲獎(jiǎng)教案公開課教案A001
- 光電子技術(shù)(第二版)全套課件電子教案板
- 統(tǒng)編版(2024新版)七年級(jí)上冊(cè)歷史期末復(fù)習(xí)全冊(cè)知識(shí)點(diǎn)考點(diǎn)提綱
- 高中英語單詞默寫卡片新人教版必修二Unit1
- 無菌技術(shù)操作評(píng)分標(biāo)準(zhǔn)
- 《社群運(yùn)營》全套教學(xué)課件
- 兒童版畫(版畫基礎(chǔ))
- 中央2024年國家國防科工局重大專項(xiàng)工程中心面向應(yīng)屆生招聘筆試歷年典型考題及考點(diǎn)附答案解析
- 車輛提檔委托書樣本
- 充值消費(fèi)返利合同范本
評(píng)論
0/150
提交評(píng)論