C語言實現(xiàn)的圖書信息管理系統(tǒng)_第1頁
C語言實現(xiàn)的圖書信息管理系統(tǒng)_第2頁
C語言實現(xiàn)的圖書信息管理系統(tǒng)_第3頁
C語言實現(xiàn)的圖書信息管理系統(tǒng)_第4頁
C語言實現(xiàn)的圖書信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

CreatedonDATE\@"M/d/yyyyh:mm:ssam/pm"6/19/20125:05:54PMC語言課程設計報告題目:圖書信息管理系統(tǒng)系部名稱:計算機與信息技術學院專業(yè)名稱:班級:學號:學生姓名:指導教師:時間:2010年7月10日2010年一、課程設計目的1)對C各部分知識的綜合應用能力2)提高程序設計的能力3)提升對于較大程序的抽象分析設計能力4)學習調(diào)試和測試的技巧二、課程設計內(nèi)容1)熟悉C實驗環(huán)境,按給定的上機步驟練習完成;2)熟悉C程序的編輯,編譯,鏈接和運行的過程。3)編譯一個應用系統(tǒng)程序,形成一個軟件系統(tǒng)。三、需求分析隨著當今社會發(fā)展,信息化水平逐步提高,對圖書管理有了新的要求,因此,編寫一個信息管理系統(tǒng)是十分有必要的。該軟件主要是實現(xiàn)對圖書信息進行系統(tǒng)化的管理,首先可以對學生基本信息進行輸入和讀取,其次查找并顯示特定圖書的相關信息,然后可以插入圖書的相關信息,以求達到簡易操作的目的。四、概要設計(或總體設計)1.系統(tǒng)結構圖(功能模塊圖)和數(shù)據(jù)變量說明主菜單主菜單輸入列表查找刪除退出修改2.功能模塊說明1.輸入模塊2.列表模塊-1-1-1-1開始輸入輸入數(shù)據(jù)i=-1i=-1返回主程序返回主程序返回主程序開始開始輸出列表返回主程序3.查找模塊開始開始讀文件數(shù)據(jù)輸入choosestrcmp(ans,stu[i].author)==0?輸出數(shù)據(jù)返回主函數(shù)返回主函數(shù)YNchoose==1?strcmp(ans,stu[i].name)==0?Y輸出數(shù)據(jù)返回主函數(shù)NN Y N開始讀文件數(shù)據(jù)列出數(shù)據(jù)輸入sstu[i].num==s?N開始讀文件數(shù)據(jù)列出數(shù)據(jù)輸入sstu[i].num==s?刪除數(shù)據(jù)Y返回主函數(shù)返回主函數(shù)輸出數(shù)據(jù)開始讀文件數(shù)據(jù)輸入numstu[i].num==num?輸出數(shù)據(jù)返回主函數(shù)YN顯示數(shù)據(jù)修改數(shù)據(jù)返回主函數(shù)五、運行情況主菜單錄入數(shù)據(jù)3.輸出數(shù)據(jù)3.查找數(shù)據(jù)5.刪除數(shù)據(jù)6.修改數(shù)據(jù)7.退出系統(tǒng)六、設計體會和反思通過兩周的上機實習,我對C語言又有了嶄新的認識。C語言的學習是一個系統(tǒng)的過程,需要長期的知識積累和儲備并輔以大量的上級實際操作練習,自己也應該有所體會,在實踐中成長,在實踐中求知。這次我設計的課題是圖書信息管理系統(tǒng)。課題要求對圖書信息實現(xiàn)一系列基本操作。我選擇通過結構體數(shù)組來實現(xiàn)這個設計。通過fread和fwrite兩個函數(shù)實現(xiàn)對文件的讀寫,過程比較簡潔(這里也有參考《C程序設計》中某例題的思想)。通過大量的符號和printf語句,使得操作界面更加和諧友善,這些都是我通過這次實習積累的經(jīng)驗。同時,設計完成后我也發(fā)現(xiàn)了代碼中的一些不足,例如在錄入數(shù)據(jù)時要求輸入序號的值,這個我認為操作比較復雜,但由于時間緊迫,未能提出完美的解決方案,但此問題并不影響程序的運行和要求的實現(xiàn)。另外,在查詢信息時,只會輸出一條符合要求的圖書信息,且輸出多次。經(jīng)過實際檢驗,只要按照程序要求輸入,就能夠?qū)崿F(xiàn)??傊?,通過這次實習,我也認識到了我自己在程序設計這門課程上的不足,在以后的學習實踐中,要更加的嚴謹踏實,對知識的把握要更加的細致入微,要活學活用,爭取在這個學科上取得更大的進步。七、參考文獻譚浩強著.C程序設計(第三版).北京:清華大學出版社,2005CreatedonDATE\@"M/d/yyyyh:mm:ssam/pm"6/19/20125:05:54PM八、程序源代碼#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#defineMAX100structStudent{ intnum;/*登錄號*/ charname[100];/*書名*/ charauthor[100];/*作者名*/ charfn[100];/*分類號*/ charplace[100];/*出版單位*/ charday[100];/*出版時間*/ floatmoney;/*價格*/}stu[MAX];main()/*主函數(shù)*/{ voidInput();/*輸入*/ voidDisplay();/*輸出*/ voidFind();/*查找*/ voidModify();/*刪除*/ voidChange();/*修改*/ intn;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"); printf("※▲6.退出系統(tǒng)▲※\n");printf("※※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n");printf("請輸入選擇項(1-6):");scanf("%d",&n);printf("\n\n\n\n");if(n>0&&n<7) { switch(n) { case1:Input();break;case2:Display();break;case3:Find();break;case4:Modify();break; case5:Change();break;case6:printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("※※\n");printf("※謝謝使用!※\n");printf("※再見!※\n");printf("※※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");exit(0); } }else { printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("※※\n");printf("※輸入錯誤!※\n");printf("※請退出!※\n");printf("※※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※\n"); break; } }}voidFind()/*查找*/{ FILE*fp; inti; intchoose,t; charans[100]; do { printf("1.按書名查找\n"); printf("2.按作者名查找\n"); printf("返回主菜單(其他數(shù)字)\n"); scanf("%d",&choose); if(choose==1) { printf("輸入所查書名:\n"); scanf("%s",ans); t=-1; if(choose==1) { for(i=0;i<MAX;i++)if(strcmp(ans,stu[i].name)==0) { t=i;fp=fopen("student","rb"); for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++) printf("%d%s%s%s%s%s%f\n",stu[t].num,stu[t].name,stu[t].author,stu[t].fn,stu[t].place,stu[t].day,stu[t].money); } } if(t==-1)printf("不存在該信息\n"); } elseif(choose==2) { printf("輸入所查作者名:\n"); scanf("%s",ans); t=-1; if(choose==2) { for(i=0;i<MAX;i++) if(strcmp(ans,stu[i].author)==0) {t=i;fp=fopen("student","rb"); for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++) printf("%d%s%s%s%s%s%f\n",stu[t].num,stu[t].name,stu[t].author,stu[t].fn,stu[t].place,stu[t].day,stu[t].money); } } if(t==-1)printf("不存在該信息\n"); } elsereturn; }while(1);}voidDisplay()/*輸出*/{ FILE*fp;inti;fp=fopen("student","rb");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("圖書列表\n");printf("-----------------------------------------------------------\n");printf("登錄號書名作者名分類號出版單位出版時間價格\n");printf("-----------------------------------------------------------\n");for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++) { printf("%6d%8s%8s%8s%8s%8s%8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money); } fclose(fp);}voidInput()/*輸入*/{ FILE*fp; intn; fp=fopen("student","wb"); for(n=0;n<MAX;n++) { printf("n=%d輸入序號n(當輸入n=-1時,返回),n=",n++);scanf("%d",&n); if(n==-1) { fclose(fp); return; } else { printf("請輸入登錄號書名作者名分類號出版單位出版時間價格\n"); scanf("%d%s%s%s%s%s%f",&stu[n].num,stu[n].name,stu[n].author,stu[n].fn,stu[n].place,stu[n].day,&stu[n].money); fwrite(&stu[n],sizeof(structStudent),1,fp); } } fclose(fp);}voidModify()/*刪除*/{ FILE*fp; inti,flag,n,s,j;fp=fopen("student","rb+");rewind(fp);printf("圖書列表\n");printf("-----------------------------------------------------------\n");printf("登錄號書名作者名分類號出版單位出版時間價格\n");printf("-----------------------------------------------------------\n");for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++) {printf("%6d%8s%8s%8s%8s%8s%8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money);printf("\n"); } n=i; printf("輸入待刪除圖書號:\n"); scanf("%d",&s); for(i=0,flag=1;flag&&i<n;i++) { if(s==stu[i].num) { for(j=i;j<n-1;j++) { stu[j].num=stu[j+1].num; strcpy(stu[j].name,stu[j+1].name);strcpy(stu[j].author,stu[j+1].author); strcpy(stu[j].fn,stu[j+1].fn); strcpy(stu[j].place,stu[j+1].place); strcpy(stu[j].day,stu[j+1].day); stu[j].money=stu[j+1].money; } flag=0; } } if(!flag) n=n-1; else printf("沒有此號\n"); fp=fopen("student","wb"); for(i=0;i<n;i++) fwrite(&stu[i],sizeof(structStudent),1,fp);fclose(fp); fp=fopen("student","r");printf("圖書列表\n");printf("-----------------------------------------------------------\n");printf("登錄號書名作者名分類號出版單位出版時間價格\n");printf("-----------------------------------------------------------\n");for(i=0;i<n;i++) {fread(&stu[i],sizeof(structStudent),1,fp);printf("%6d%8s%8s%8s%8s%8s%8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money);printf("\n"); }fclose(fp);} voidChange()/*修改*/{ FILE*fp;inti,num,n;intflag=0;printf("請輸入要修改的圖書號:");scanf("%d",&num);for(i=0;i<=MAX;i++)if(stu[i].num==num) {printf("圖書列表\n");printf("-----------------------------------------------------------\n");printf("登錄號書名作者名分類號出版單位出版時間價格\n");printf("-----------------------------------------------------------\n");printf("%6d%8s%8s%8s%8s%8s%8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money);printf("-----------------------------------------------------------\n\n");n=i;flag=1;break; }if(flag==0) { printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

溫馨提示

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

評論

0/150

提交評論