![程序設(shè)計(jì)實(shí)踐_第1頁(yè)](http://file4.renrendoc.com/view/100e233283b0a5db2676aa9149a645ca/100e233283b0a5db2676aa9149a645ca1.gif)
![程序設(shè)計(jì)實(shí)踐_第2頁(yè)](http://file4.renrendoc.com/view/100e233283b0a5db2676aa9149a645ca/100e233283b0a5db2676aa9149a645ca2.gif)
![程序設(shè)計(jì)實(shí)踐_第3頁(yè)](http://file4.renrendoc.com/view/100e233283b0a5db2676aa9149a645ca/100e233283b0a5db2676aa9149a645ca3.gif)
![程序設(shè)計(jì)實(shí)踐_第4頁(yè)](http://file4.renrendoc.com/view/100e233283b0a5db2676aa9149a645ca/100e233283b0a5db2676aa9149a645ca4.gif)
![程序設(shè)計(jì)實(shí)踐_第5頁(yè)](http://file4.renrendoc.com/view/100e233283b0a5db2676aa9149a645ca/100e233283b0a5db2676aa9149a645ca5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
程序設(shè)計(jì)實(shí)踐程序設(shè)計(jì)實(shí)踐程序設(shè)計(jì)實(shí)踐xxx公司程序設(shè)計(jì)實(shí)踐文件編號(hào):文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計(jì),管理制度蘇州科技學(xué)院二○一四~二○一五學(xué)年第二學(xué)期電子與信息工程學(xué)院課程設(shè)計(jì)報(bào)告書課程名稱:班級(jí):學(xué)號(hào):姓名:指導(dǎo)教師:二○一五年三月1.題目小型圖書信息管理系統(tǒng)2.功能 1、信息錄入,包括記錄的追加和插入;2、信息刪除;3、信息修改;4、信息排序和查詢; 5、信息的保存和裝載; 6、簡(jiǎn)單的幫助。3.要求(1)整個(gè)系統(tǒng)均用C語(yǔ)言實(shí)現(xiàn);(2)利用指針、鏈表來(lái)實(shí)現(xiàn)圖書館的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);(3)系統(tǒng)具有輸入、顯示、查詢、刪除、排序、插入,保存、讀取基本功能;(4)系統(tǒng)的各個(gè)功能模塊都用函數(shù)的形式來(lái)實(shí)現(xiàn);(5)可以將圖書信息保存在文件中。(6)可以將圖書信息從文件中讀取出來(lái)。4.設(shè)計(jì)內(nèi)容整個(gè)系統(tǒng)除了主函數(shù)外,另外還有6個(gè)函數(shù),實(shí)現(xiàn)八大功能:輸入功能,查找功能,插入功能,保存功能,刪除功能,讀取功能。各個(gè)函數(shù)的詳細(xì)設(shè)計(jì)說(shuō)明分別如下:主函數(shù)main()利用無(wú)限次循環(huán)for(;;)實(shí)現(xiàn)各函數(shù)的調(diào)用,系統(tǒng)根據(jù)輸入的數(shù)字選項(xiàng)來(lái)調(diào)用相應(yīng)的函數(shù)。初始化函數(shù)book*create()這是一個(gè)無(wú)參函數(shù),它的作用是使鏈表初始化,使head的值為NULL。輸入函數(shù)Insert(book*head)這是一個(gè)無(wú)參函數(shù),用來(lái)執(zhí)行圖書信息的輸入。算法:先聲明一個(gè)首節(jié)點(diǎn)head,并將head->next設(shè)為NULL。每輸入一個(gè)數(shù)據(jù)就聲明一個(gè)新節(jié)點(diǎn)p,把p->next設(shè)為NULL,并且鏈接到之前列表的尾端。N-S流程圖如下:while(p->next!=NULL) 輸入圖書信息 INSERTSUCCESS 修改函數(shù)change(book*head)用于修改圖書信息。算法:輸入需修改圖書的書名,判斷是否有本書,若有,再進(jìn)行修改。N-S流程圖如下:當(dāng)輸入的圖書名存在 輸入新的圖書信息 Pd=1 當(dāng)pd=0,沒有此書顯示記錄函數(shù)voidPrint(book*head)這是一個(gè)不返回值的有參函數(shù),將記錄的輸出。算法:先將p結(jié)點(diǎn)的指針指向第一個(gè)結(jié)點(diǎn),將p結(jié)點(diǎn)的數(shù)據(jù)輸出,再將p結(jié)點(diǎn)的指針指向下一結(jié)點(diǎn),將下一結(jié)點(diǎn)的數(shù)據(jù)輸出。重復(fù)執(zhí)行此步聚直到p指針指向NULL為止。N-S流程圖如下:p=head,使指向第一個(gè)結(jié)點(diǎn) 輸出p所指向的結(jié)點(diǎn) p指向一下個(gè)結(jié)點(diǎn) 當(dāng)p指的不是表尾查找記錄函數(shù)voidsearch(book*head)這是一個(gè)不返回值的有參函數(shù),形參為“鏈表頭的指針”,實(shí)現(xiàn)按書名對(duì)某書進(jìn)行查找,并顯示所查找到的記錄。算法:采用線性查找法往下一個(gè)節(jié)點(diǎn)查找。輸入所要查找的圖書的名稱,設(shè)一個(gè)指針變量p,先指向第一個(gè)結(jié)點(diǎn),當(dāng)strcmp(p->name,name1)&&p!=NULL時(shí),使p后移一個(gè)結(jié)點(diǎn),如果p!=NULL,輸出p所指的結(jié)點(diǎn)。N-S流程圖如下:輸入要查找的學(xué)生的學(xué)號(hào)sp=head,使p指向第一結(jié)點(diǎn)當(dāng)記錄的書名不是要找的,或指針不為空時(shí) p=p->nextp!=NULL如果指針不為空 是 否 顯示沒有該 輸出p所指向的結(jié)點(diǎn) 圖書刪除記錄函數(shù)Delete(book*head)這是一個(gè)有參函數(shù),形參為“鏈表頭的指針”,先輸入要?jiǎng)h除的圖書的名稱,找到后進(jìn)行刪除。算法:從p指向的第一個(gè)結(jié)點(diǎn)開始,檢查該結(jié)點(diǎn)中的bookname是否等于輸入的要求刪除的那個(gè)書名。如果相等就將該結(jié)點(diǎn)刪除,如不相等,就將p后移一個(gè)結(jié)點(diǎn),再如此進(jìn)行下去,直到遇到表尾為止。N-S流程圖如下:p=head 輸入入要?jiǎng)h除的圖書當(dāng)(strcmp(p->bookname,temp)==0) pd=1p=p->next; p是要?jiǎng)h除的結(jié)點(diǎn)是 否刪除成功 未找到本書
調(diào)試分析在編寫完程序后,點(diǎn)擊編譯,顯示是1個(gè)錯(cuò)誤。但是往上看的時(shí)候,卻是很多。改的時(shí)候發(fā)現(xiàn)有些是句子寫錯(cuò)了,然后再看看書,上網(wǎng)查下,就改好了。還有2處是打錯(cuò)字母了……最后0error(s),0warning(s)。但是在信息錄入的時(shí)候,輸入到pubtime后出錯(cuò),程序停止運(yùn)行,仔細(xì)看了程序,才發(fā)現(xiàn)在輸入pubtime和price時(shí),句子中&忘記打了……后面程序中也有幾處關(guān)于&的問(wèn)題,還有是%d與%f寫錯(cuò)了。能輸入信息后,在瀏覽和查詢時(shí),輸出的信息和上面對(duì)應(yīng)的項(xiàng)目不對(duì)應(yīng),還有一些是地址。然后輸入數(shù)據(jù),多次更改后,把數(shù)據(jù)對(duì)應(yīng)了起來(lái)。總結(jié)通過(guò)這個(gè)作業(yè),我又對(duì)鏈表,指針等有了一些了解,能更好的運(yùn)用。還上網(wǎng)查了一些資料,對(duì)這門課有了加強(qiáng)。當(dāng)編寫完這個(gè)程序,并成功運(yùn)行起來(lái),我感覺到有一種成就感,我覺得這種感覺對(duì)學(xué)習(xí)是很有幫助的,能幫我在學(xué)習(xí)中找到樂趣。程序如下#include<>#include<>#include<>structbook{ charauthor[25]; charbookname[25]; charpublisher[25]; intpubtime; intinnum; floatprice; structbook*next;};structbook*create(){ structbook*head; head=(structbook*)malloc(sizeof(structbook)); head->next=NULL; returnhead;}voidSave(structbook*head){ structbook*p; FILE*fp; p=head; if((fp=fopen("","w+"))==NULL) { printf("cannotopenthisfile\n");exit(0); } fprintf(fp,"innumbooknameauthorpublisherpubtimeprice\n"); while(p->next!=NULL) { p=p->next; fprintf(fp,"%-6d%-10s%-10s%-10s%-10d%-8f",p->innum,p->bookname,p->author,p->publisher,p->pubtime,p->price); fclose(fp); printf("信息已保存!\n"); }}voidInsert(structbook*head){ structbook*s,*p; p=head; while(p->next!=NULL) { p=p->next; } s=(structbook*)malloc(sizeof(structbook)); printf("inputtheinnum:\n"); scanf("%d",&s->innum); printf("inputthebookname:\n"); scanf("%s",s->bookname); printf("inputtheauthorname:\n"); scanf("%s",s->author); printf("inputthepublisher:\n"); scanf("%s",s->publisher); printf("inputthepubtime:\n"); scanf("%d",&s->pubtime); printf("inputtheprice:\n"); scanf("%f",&s->price); printf("\n"); p->next=s; p=s; s->next=NULL; printf("INSERTSUCCESS!\n");} voidSearch(structbook*head){ structbook*p; charname1[20]; p=head; if(head==NULL||head->next==NULL) printf("libraryisempty!"); else printf("inputthename1:\n"); scanf("%s",name1); while(p->next!=NULL) { p=p->next; if(strcmp(p->bookname,name1)==0) { printf("found!\n"); printf("innum:%d\n",p->innum); printf("bookname:%s\n",p->bookname); printf("author:%s\n",p->author); printf("pubtime:%d\n",p->pubtime); printf("publisher:%s\n",p->publisher); printf("price:%f\n",p->price); } if(p->next==NULL) printf("\n查詢結(jié)束!"); }}voidPrint(structbook*head){ structbook*p; if(head==NULL||head->next==NULL) { printf("\n\t無(wú)記錄\n"); return; } p=head; printf("\n登錄號(hào)書名作者出版單位出版時(shí)間價(jià)格\n"); while(p->next!=NULL) { p=p->next; printf("%-d%-8s%-8s%-8s%-5d%-8f\n",p->innum,p->bookname,p->author,p->publisher,p->pubtime,p->price); }}voidchange(structbook*head){ structbook*p; intpd=0; chartemp[20]; p=head; printf("要修改的書名:"); scanf("%s",temp); while(p->next!=NULL) { p=p->next; if(strcmp(p->bookname,temp)==0) { printf("輸入登錄號(hào)碼: "); fflush(stdin); scanf("%d",&p->innum); printf("輸入書名: "); fflush(stdin); scanf("%s",p->bookname); printf("輸入作者名:"); fflush(stdin); scanf("%s",p->author); printf("輸入出版社:"); fflush(stdin); scanf("%s",p->publisher); printf("輸入出版時(shí)間:"); fflush(stdin); scanf("%d",&p->pubtime); printf("輸入價(jià)格:"); fflush(stdin); scanf("%d",&p->price); printf("\n"); pd=1; } } if(pd==0) { printf(" 沒有記錄 "); } return;}voidDelete(structbook*head){ structbook*s,*p; chartemp[20]; intpd; pd=0; p=s=head; printf("請(qǐng)輸入要?jiǎng)h除的書名!"); scanf("%s",temp); while(p!=NULL) { if(strcmp(p->bookname,temp)==0) { pd++; break; } p=p->next; } if(pd==1) { for(;s->next!=p;) { s=s->next; } s->next=p->next; free(p); printf("刪除成功!"); } else { printf("未找到本書"); } return;}intmain(void){ structbook*head; charchoice; head=NULL; for(;;) {
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 1《白鷺》說(shuō)課稿-2024-2025學(xué)年統(tǒng)編版語(yǔ)文五年級(jí)上冊(cè)
- 2025技術(shù)咨詢合同書
- 2025大連市住宅小區(qū)物業(yè)管理委托合同
- 2024年五年級(jí)品社下冊(cè)《同是炎黃子孫》說(shuō)課稿 山東版001
- 5《玲玲的畫》說(shuō)課稿-2024-2025學(xué)年語(yǔ)文二年級(jí)上冊(cè)統(tǒng)編版
- 2023二年級(jí)數(shù)學(xué)下冊(cè) 6 有余數(shù)的除法第5課時(shí) 解決問(wèn)題(1)說(shuō)課稿 新人教版
- 27我的伯父魯迅先生(說(shuō)課稿)-2024-2025學(xué)年六年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版001
- 2024-2025學(xué)年高中地理下學(xué)期第4周說(shuō)課稿(世界的自然資源)
- 2023三年級(jí)數(shù)學(xué)上冊(cè) 一 動(dòng)物趣聞-克、千克、噸的認(rèn)識(shí) 信息窗2噸的認(rèn)識(shí)說(shuō)課稿 青島版六三制
- 蕪湖廠房推拉棚施工方案
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第五章運(yùn)動(dòng)中的中樞控制
- 財(cái)務(wù)部規(guī)范化管理 流程圖
- 蘇教版2023年小學(xué)四年級(jí)數(shù)學(xué)下冊(cè)教學(xué)計(jì)劃+教學(xué)進(jìn)度表
- 小學(xué)作文指導(dǎo)《難忘的一件事》課件
- 斷絕關(guān)系協(xié)議書范文參考(5篇)
- 量子力學(xué)課件1-2章-波函數(shù)-定態(tài)薛定諤方程
- 最新變態(tài)心理學(xué)課件
- 工程洽商記錄表格
- 【自考練習(xí)題】石家莊學(xué)院概率論與數(shù)理統(tǒng)計(jì)真題匯總(附答案解析)
- 農(nóng)村集體“三資”管理流程圖
- 高中英語(yǔ) 牛津譯林版必修第三冊(cè) Unit 2詞匯全解
評(píng)論
0/150
提交評(píng)論