




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C語言課程設計報告圖書信息管理系統(tǒng)設計55071-13陳杰20071001797指導老師:劉文中C語言程序設計編程實踐是學習C語言程序設計的一重要環(huán)節(jié),上機實習和課程設計是提高同學們程序設計能力的有效途徑,能夠使同學們初步掌握程序設計的基本方法和調(diào)試技能。學校安排上機時間有限,老師也只能教給我們一些方法,而我們自己需要投入很大的時間和精力來鍛煉。1、題目要求設計“圖書信息管理系統(tǒng)”要求:圖書信息包括:登錄號,書名,作者名,分類號,出版單位,出版時間,價格等。使之提供以下功能:(1)系統(tǒng)以菜單方式工作。(2) 圖書信息錄入功能。(圖書信息用文件保存)。(3) 圖書信息瀏覽功能。(4) 圖書信息查
2、詢功能。(5) 圖書信息的刪除和修改。2、分析:根據(jù)題目要求,應當把圖書信息用結(jié)構(gòu)體形式輸入,再定義一個全局變量和文件指針進行整個程序的運行,然后把圖書信息送到文件中,所以應該提供一個結(jié)構(gòu)體和文件的輸入輸出等操作;在程序中需實現(xiàn)圖書信息錄入,瀏覽,查詢,刪除和修改等功能的操作,所以需要建立相應的模塊來實現(xiàn);另外還需提供鍵盤式選擇菜單實現(xiàn)功能,在運行時達到所要目的。3、總體設計:根據(jù)題目要求,可以將系統(tǒng)分為六個模塊:(1) 管理員登錄系統(tǒng)模塊。(2) 菜單選擇模塊。(3) 圖書信息錄入功能模塊。(4) 圖書信息瀏覽功能。(5) 圖書信息查詢功能。(6) 圖書信息的刪除和修改。圖書信息管理系統(tǒng)4、
3、詳細設計:頭函數(shù)名:#include<stdio.h>#include<stdlib.h>#include<string.h>/*圖書信息結(jié)構(gòu)體*/*包括登錄號,書名,作者名,分類號,出版單位,structbookinf出版時間,價格等*/intnum;*charbname20;*charwnameio;*charcianumi4;*charpubcomio;*charpubtimeio;*floatprice;*登錄號書名作者名分類號出版單位出版時間價格;一管理員登錄系統(tǒng)模塊:(1)來到圖書信息管理系統(tǒng)頁面voidindex()charinput;prin
4、tf("nntttprintf("tttprintf("ttt*printf("*n").圖書信息管理系統(tǒng)n");*nnn").An");注釋:運行時直接進入這個頁面printf("t<按任意鍵進入>nt");input=getchar();FILE*fp;structmanagepswd;if(fp=fopen("password.txt","r")=NULL)printf("nnntCannotopenfile!nt")
5、;elsedoprintf("nnt請輸入管理員帳號:");scanf("%s",name);printf("nnt請輸入管理員密碼:");scanf("%s",password);fp=fopen("password.txt","r");fread(&pswd,sizeof(structmanage),1,fp);fclose(fp);w=strcmp(pswd.manage_name,name);k=strcmp(pswd.password,password);a
6、dm_servelist();while(w!=0|k!=0);adm_servelist();來到功能菜單頁面voidadm_servelist()voidbook_add();voidbook_view();voidchange();voiddel();voidbook_search();voidlogin();voidpwchange();intin;charinput;doprintf("nnnt-歡迎使用信息管理系統(tǒng)-");printf("nnt1.圖書信息錄入n");printf("t2.圖書信息瀏覽n");printf(
7、"t3.圖書信息查詢n");printf("t4.圖書信息刪除n");printf("t5.圖書信息修改n");printf("t6.退出管理模式n");printf("nt請選擇服務種類:");scanf("%d",&in);if(in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6)printf("nt沒有這項服務n");printf(&
8、quot;t按任意鍵重新選擇");input=getchar();while(in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6);switch(in)case 1: book_add();break;case 2: book_view();break;case 3: book_search();break;case 4: del();break;case 5: change();break;case 6: login();break;( 3) 圖書信息錄入功能模塊注釋 :
9、菜單列出的服務種類從 1 , 2, 3, 4, 5 , 6所對應的功能進行選擇注釋 :選擇自己所需要后摁下數(shù)字鍵則 則進入此功能頁面voidbook_add()voidadm_servelist();voidbook_add();inti=0,j;FILE*fp;charinput;注釋:輸入的圖書信息structbookinfbooks;是通過文件進行structbookinfbook_taxis30;保存的printf("nnnt-請輸入圖書信息-nn");printf("t登錄號:");scanf("%d",&books
10、.num);printf("nt書名:");scanf("%s",books.bname);printf("nt作者名:");scanf("%s",books.wname);printf("nt分類號:");scanf("%s",books.clanum);printf("nt出版單位:");scanf("%s",books.pubcom);printf("nt出版時間:");scanf("%s"
11、,books.pubtime);printf("nt價格:");scanf("%f",&books.price);if(fp=fopen("book.txt","r")!=NULL)dofread(&book_taxisi,sizeof(structbookinf),1,fp);i=i+1;while(!feof(fp);fclose(fp);for(j=0;j<=i;j+)if(books.num=book_taxisj.num)printf("nnnt對不起,這個編號已經(jīng)使用過了
12、n");printf("t按任意鍵返回管理菜單");input=getchar();adm_servelist();break;if(fp=fopen("book.txt","r")=NULL)fp=fopen("book.txt","w");elsefclose(fp);fp=fopen("book.txt","a");fwrite(&books,sizeof(structbookinf),1,fp);fclose(fp);printf
13、("nnnt信息輸入完畢按任意鍵繼續(xù)n");input=getchar();adm_servelist();( 4) 圖書信息瀏覽功能模塊voidbook_view()voidadm_servelist();voidbook_view();intinp,i=0,n=0;FILE*fp;charinput;structbookinfbookview20;if(fp=fopen("book.txt","r")=NULL)n");printf("nnnt數(shù)據(jù)尚未初始化nnt請在管理菜單中增加圖書信息printf(&quo
14、t;nt<按任意鍵返回管理菜單>nt");input=getchar();adm_servelist();elsedofread(&bookviewi,sizeof(structbookinf),1,fp);i=i+1;while(!feof(fp);fclose(fp);doprintf("nt共有%d條記錄",i-1);printf("nnt登錄號:%dn",bookviewn.num);第6頁printf("nt書名:%sn",bookviewn.bname);printf("nt作者名:
15、%sn",bookviewn.wname);printf("nt分類號:%sn",bookviewn.clanum);printf("nt出版單位:%sn",bookviewn.pubcom);printf("nt出版時間:%sn",bookviewn.pubtime);printf("nt價格:%fn",bookviewn.price);printf("nnt1.上頁t2.下頁t3.回目錄n");printf("nt請選擇:");scanf("%d&qu
16、ot;,&inp);switch(inp)case 1:if(n=0)printf("nt已到達首頁nt按任意鍵重新選擇");input=getchar();elsen=n-1;break;case 2:if(n=i-2)printf("nt已到達最末頁nt按任意鍵重新選擇");input=getchar();elsen=n+1;break;case 3:adm_servelist();break;default:printf("nt沒有這項服務nt按任意鍵重新選擇");input=getchar();while(inp!=3
17、);( 5) 圖書信息修改與刪除功能模塊修改:voidchange(intx)intinp,i=0,j;voidbook_search();FILE*fp,*fp1;charinput;structbookinfbooks,book_taxis20;do?n");printf("nnnt注意:您確定要修改該記錄嗎printf("nt1.是t2.否n");printf("nt請輸入:");scanf("%d",&inp);if(inp!=1&&inp!=2)printf("nt對不起
18、沒有這項服務n");printf("t按任意鍵重新選擇nt");input=getchar();while(inp!=1&&inp!=2);if(inp=2)book_search();if(inp=1)printf("nnnt-請輸入圖書信息-nn");printf("t登錄號:");scanf("%d",&books.num);printf("nt書名:");scanf("%s",books.bname);printf("nt作
19、者名:");scanf("%s",books.wname);printf("nt分類號:");scanf("%s",books.clanum);printf("nt出版單位:");scanf("%s",books.pubcom);printf("nt出版時間:");scanf("%s",books.pubtime);printf("nt價格:");scanf("%f",&books.price);i
20、f(fp1=fopen("book.txt","r")!=NULL)dofread(&book_taxisi,sizeof(structbookinf),1,fp1);i=i+1;while(!feof(fp1);fclose(fp1);for(j=0;j<x;j+)if(books.num=book_taxisj.num)printf("nnnt對不起,這個編號已經(jīng)使用過了n");printf("t按任意鍵返回管理菜單");printf("0");input=getchar();
21、book_search();break;for(j=x+1;j<i-2;j+)if(books.num=book_taxisj.num)printf("nnnt對不起,這個編號已經(jīng)使用過了n");printf("1");printf("t按任意鍵返回管理菜單");input=getchar();book_search();break;book_taxisx=books;fp=fopen("book.txt","w");for(j=0;j<i-1;j+)fwrite(&book
22、_taxisj,sizeof(structbookinf),1,fp);fclose(fp);printf("nnt信息修改完成!按任意鍵返回");input=getchar();book_search();S刪除:voiddel(inty)charinput;FILE*fp;intinp,i=0,j;structbookinfbook_taxis20;voidbook_search();voidadm_servelist();doprintf("nnnt注意:您確定要刪除該記錄嗎?n");printf("nt1.是t2.否n");p
23、rintf("nt請輸入:");scanf("%d",&inp);if(inp!=1&&inp!=2)printf("nt對不起沒有這項服務n");printf("t按任意鍵重新選擇nt");input=getchar();while(inp!=1&&inp!=2);if(inp=2)book_search();if(inp=1)if(fp=fopen("book.txt","r")!=NULL)dofread(&book_ta
24、xisi,sizeof(structbookinf),1,fp);i=i+1;while(!feof(fp);fclose(fp);if(i>2)fp=fopen("book.txt","w");for(j=0;j<y;j+)fwrite(&book_taxisj,sizeof(structbookinf),1,fp);fclose(fp);fp=fopen("book.txt","a");for(j=y+1;j<i-1;j+)fwrite(&book_taxisj,sizeof(
25、structbookinf),1,fp);fclose(fp);elseremove("book.txt");printf("nnt記錄已刪除!nnt按任意鍵返回nt");input=getchar();adm_servelist();( 6) 圖書信息查詢功能模塊voidbook_search()voidadm_servelist();voidid_search();voidwr_search();voidbn_search();charinput;FILE*fp;intinp;if(fp=fopen("book.txt",&quo
26、t;r")=NULL)n");printf("nnnt數(shù)據(jù)尚未初始化nnt請在管理菜單中增加圖書信息printf("nt<按任意鍵返回管理菜單>nt");input=getchar();adm_servelist();elsedoprintf("nnnt1.按圖書登錄號查詢n");printf("nt2.按圖書作者查詢n");printf("nt3.按圖書名查詢n");printf("nt4.回到主菜單n");printf("nnt請選擇查詢類別:”);scanf("%d”,&inp)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學試題(工學)-土木建筑工程歷年參考題庫含答案解析(5套典型考題)
- 2025年大學試題(大學選修課)-中醫(yī)健康理論歷年參考題庫含答案解析(5套典型考題)
- 自由基聚合分解機制
- 2025年大學試題(醫(yī)學)-醫(yī)學影像診斷學歷年參考題庫含答案解析(5套典型考題)
- 2025年大學試題(體育科學)-高爾夫球會歷年參考題庫含答案解析(5套典型考題)
- 2025年國家開放大學(電大)-國家開放大學(農(nóng)村常見法律糾紛處理技巧)歷年參考題庫含答案解析(5套典型考題)
- 2025年衛(wèi)生資格(中初級)-初級中藥士歷年參考題庫含答案解析(5套典型題)
- 2025年衛(wèi)生知識健康教育知識競賽-健康教育技能知識競賽歷年參考題庫含答案解析(5套典型考題)
- 2025年醫(yī)學高級職稱-衛(wèi)生管理(醫(yī)學高級)歷年參考題庫含答案解析(5套典型題)
- 2025年企業(yè)文化企業(yè)建設知識競賽-企業(yè)檔案知識競賽歷年參考題庫含答案解析(5套典型考題)
- 貨款法人擔保協(xié)議書
- 2025年高考化學大題突破大題01化工流程綜合題(逐空突破)(原卷版+解析)
- 2025年第二屆山東省職業(yè)技能大賽(網(wǎng)絡安全賽項)備考試題庫(含答案)
- 四鐵路通信系統(tǒng)維護系統(tǒng)及設備的維護與管理參照中國鐵路總公司
- 2024年小學數(shù)學教師選調(diào)進城考試試卷含答案
- 危險性較大分部分項工程及施工現(xiàn)場易發(fā)生重大事故的部位環(huán)節(jié)的預防監(jiān)控措施和應急預案
- 委托舞臺編導合同(2025年版)
- 2025-2030年UV固化設備項目商業(yè)計劃書
- 質(zhì)保部工作流程
- 2025年舟山市專業(yè)技術(shù)人員公需課程-全面落實國家數(shù)字經(jīng)濟發(fā)展戰(zhàn)略
- 變電站全壽命周期管理-深度研究
評論
0/150
提交評論