freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c語言課程設(shè)計(jì)--圖書信息管理系統(tǒng)說明書-文庫吧

2025-04-24 01:08 本頁面


【正文】 printf 登錄失敗 !\n 。 exit 0 。 printf 登錄成功 !\n 。 5. Create()創(chuàng)建圖書信息函數(shù) 輸入口令函數(shù)正確,當(dāng)前存在圖書信息 文件,圖書信息加載成功,當(dāng)前如果不存在,系統(tǒng)提示必須錄入新的圖書信息。 Create()函數(shù)的作用與下面的 increase()函數(shù)作用相似,但是兩者還是有區(qū)別,下面對(duì) increase()函數(shù)說明時(shí),會(huì)再次提及。創(chuàng)建圖書信息采用的是分項(xiàng)錄入,如果一次用 scanf輸入所有的圖書信息,容易把個(gè)別的信息錄入錯(cuò)誤,界面設(shè)計(jì)也不美觀。分項(xiàng)錄入的過程,每次輸入都會(huì)提示你輸入哪項(xiàng)圖書信息,用戶使用也比較方便。 當(dāng)前不存在 文件,創(chuàng)建新的 文件。 p1 p2 struct book * malloc len ,就是創(chuàng)建一個(gè)“ struct book”類型的存儲(chǔ)空間。當(dāng)輸入為“ 0”時(shí), create()函數(shù)結(jié)束,輸入數(shù)據(jù)完畢,返回記錄數(shù)到主函數(shù)。 源程序?yàn)椋? struct book *create //建立圖書庫信息函數(shù) struct book *p1,*p2,*d。 n 0。 d 0。 p1 p2 struct book * malloc len 。 printf 登錄號(hào)為 0 時(shí),取消輸入 !\n 。 printf 輸入圖書登錄號(hào) : 。 scanf %ld,amp。p1 num 。 while p1 num! 0 printf 作者名 : 。 scanf %s,p1 author 。 printf 書名 : 。 scanf %s,p1 name 。 printf 分類號(hào) : 。 scanf %s,p1 sort 。 printf 出版單位 : 。 scanf %s,p1 add 。 printf 出版時(shí)間 : 。 scanf %ld,amp。p1 time 。 printf 圖書價(jià)格 元 : 。 scanf %f,amp。p1 price 。 n n+1。 if n 1 d p1。 else p2 next p1。 p2 p1。 p1 struct book * malloc len 。 printf 輸入圖書登錄號(hào) : 。 scanf %ld,amp。p1 num 。 p2 next 0。 return d 。 6. Increase()函數(shù) Increase 函數(shù)與上面提到的 create()函數(shù)相似,但是 increase()函數(shù)是基于 文件已存在的的情況下繼續(xù)增加圖書信息, create()函數(shù)是 文件不存在的時(shí)候必須創(chuàng)立的圖書信息函數(shù)。首先也是先創(chuàng)建“ struct book”類型的存儲(chǔ)空間 p1 p2 struct book * malloc len 。當(dāng)輸入為“ 0”時(shí),create()函數(shù)結(jié)束,輸入數(shù)據(jù)完畢,返回記錄數(shù)到主函數(shù)。 創(chuàng)建一個(gè) struck book 類型的存儲(chǔ)空間 逐項(xiàng)輸入圖書信息(包括作者名、書名、登錄號(hào)、價(jià)格等) 登錄號(hào)輸入數(shù)字 0 結(jié)束 提示是否保存記錄到磁盤 是 否 調(diào)用 save 函數(shù)保存記錄到磁盤 繼 續(xù)輸入 源程序如下: struct book *increase struct book *d //添加圖書函數(shù) struct book *p1,*p2。 p1 d。 p2 struct book * malloc len 。 printf 登陸號(hào)為 0 時(shí),取消添加 !\n 。 printf 輸入圖書登錄號(hào) : 。 scanf %ld,amp。p2 num 。 if p2 num 0 return。 printf 作者名 : 。 scanf %s,p2 author 。 printf 書名 : 。 scanf %s,p2 name 。 printf 分類號(hào) : 。 scanf %s,p2 sort 。 printf 出版單位 : 。 scanf %s,p2 add 。 printf 出版時(shí)間 : 。 scanf %ld,amp。p2 time 。 printf 圖書價(jià)格 元 : 。 scanf %f,amp。p2 price 。 while p1 next! 0 p1 p1 next。 p1 next p2。 n n+1。 p2 next 0。 return d 。 7. Save 保存記錄到文件函數(shù) Save 函數(shù)在程序中是十分重要的,它用于保存數(shù)據(jù),要不然,每次打開系統(tǒng)都得重新輸入數(shù)據(jù),這樣的系統(tǒng)是沒有任何價(jià)值的。在程序中的數(shù)據(jù)輸入和輸出是以終端為對(duì)象的,當(dāng)程序關(guān)閉后,數(shù)據(jù)也就丟失了,所以 Save 函數(shù)將數(shù)據(jù)輸出到磁盤文件上保存起來,使用時(shí)從磁盤讀入到內(nèi)存中,這就用到了磁盤文件的讀寫操作。 按照文件的讀寫要求,先定義一個(gè)指向文件的指針 ,按 Wb 寫的方式打開文件,輸入保存文件路徑和文件名,如果文件不存在則系統(tǒng)自動(dòng)創(chuàng)建文件,保存在所輸?shù)奈募A中。如果文件不能正常打開,則退出程序;否則用 while 語句實(shí)現(xiàn)循環(huán)輸入。 是否保存當(dāng)前圖書庫信息 是 否 fp fopen ,wb 為 輸出打開一個(gè)文件 打開是否成功 是 否 while( p! 0) 不能打開文件 fwrite p,len,1,fp 寫入信息 fclose fp 關(guān)閉文件 退 出 程 序 源程序?yàn)椋? void save struct book *p //保存圖書函數(shù) FILE *fp。 char m。 printf 是否保存當(dāng)前圖書庫信息 ? Y/N \n 。 scanf %s,amp。m 。 if m 39。Y39。||m 39。y39。 if fp fopen ,wb 0 printf 不能打開文件 !\n 。 return。 while p! 0 if fwrite p,len,1,fp ! 1 printf 文件寫入出錯(cuò) ! \n 。 p p next。 fclose fp 。 if m 39。n39。||m 39。N39。 printf 退出程序 \n 。 exit 0 。 8. Read()函數(shù)查看圖書信息 圖書信息管理系統(tǒng)的設(shè)計(jì)要實(shí)現(xiàn)最基本的功能時(shí),必須要從磁盤中讀取數(shù)據(jù),然后再進(jìn)行其他的顯示、查找、分類等操作。 按照文件的讀寫要求,先定義一個(gè)指向文件的指針,按照 rb 的方式打開已經(jīng)保存好的文件,輸入要打開文件的路徑和文件名, fp fopen ,rb ,在程序中我采用了 fread 函數(shù)讀入一組數(shù)據(jù),而不用 fgetc 函數(shù),兩者的主要區(qū)別在于, fread 函數(shù)用來讀入一個(gè)數(shù)據(jù) 塊, fgetc 函數(shù)一般用來讀入一個(gè)字符。 輸入要打開文件的路徑和文件名 fp fopen ,rb 為讀入內(nèi)存打開一個(gè)文件 打開是否成功 是 否 輸出提示不能打開文件 退出 exit 定義一個(gè)動(dòng)態(tài)的存儲(chǔ)空間 p1 struct book * malloc len 用 Fread函數(shù)讀入數(shù)據(jù) fclose fp 。關(guān)閉文件 提示“加載數(shù)據(jù)完成 !” Return( d)返回主函數(shù) 源程序?yàn)椋? struct book *read //讀入數(shù)據(jù)文件 FILE *fp。 struct book *p1,*p2,*d。 fp fopen ,rb 。 p1 struct book * malloc len 。 d p2 p1。 while !feof fp fread p1,len,1,fp 。 p2 p1。 if p2 next 0 break。 p1 struct book * malloc len 。 p2 next p1。 p2 next 0。 fclose fp 。 printf 加載數(shù)據(jù)完成 !\n 。 return d 。 ()函數(shù)刪除圖書信息 刪除圖書信息的登錄號(hào),通過登錄號(hào)來 刪除一組數(shù)據(jù),數(shù)據(jù)從 num 開始刪除,運(yùn)用指針,指向要?jiǎng)h除的數(shù)據(jù),直到下一個(gè)為“ 0”時(shí),刪除完畢。如果輸入刪除的登錄號(hào)在“ ”文件中查找不到的時(shí)候,提示輸出“找不到該登錄號(hào)的書籍”,返回主函數(shù)。 輸入要?jiǎng)h除圖書的登錄號(hào) 是否存在該登錄號(hào) 是 否 刪除該登錄號(hào)的所有圖書信息 輸出“找不到登錄號(hào)的書籍” 是否保存 當(dāng)前 圖書庫信息 保存新的圖書庫 返回主函數(shù) 源程序?yàn)椋? struct book *del struct book *d //刪除圖書函數(shù) struct book *p1,*p2。 long q。 p1 d。 printf 輸入要?jiǎng)h除圖書的登錄號(hào): 。 scanf %ld,amp。q 。 while p1 num! q amp。amp。 p1 next! 0 p2 p1。 p1 p1 next。 if p1 num q if d p1 d p1 next。 else p2 next p1 next。 printf 刪除登錄號(hào) :%ld \n,q 。 n n1。 else printf 找不到登錄號(hào)為 :%ld 的書籍 \n,q 。 return d 。 ()函數(shù)修改圖書信息 由于錄入的記錄不是一成不變的,如某本書籍價(jià)格調(diào)低了,或某本書換了個(gè)登錄號(hào)等,這就有必要對(duì)已存在的記錄的某些信息作修改,這函數(shù)正是為此非常實(shí)用 的功能而作。 先讀入記錄,輸入要修改的對(duì)象的登錄號(hào), while 循環(huán)實(shí)現(xiàn)由登錄號(hào)開始修改,由于單個(gè)提示修改操作比較麻煩,我采用了一次覆蓋所有的信息,再重新輸入該登錄號(hào)的圖書信息,直接運(yùn)用 prinf 函數(shù)和 scanf 函數(shù)即可。不過該方法也有不足之處。如果修改的內(nèi)容是其中的一個(gè)信息,譬如:只修改書名,重復(fù)輸入它的所有數(shù)據(jù)也比較麻煩,不過由于本人熟練 c 的程度有限,還要繼續(xù)改進(jìn)方法。 輸入要修改書籍登錄號(hào) While 循環(huán)提取該圖書的所 有信 指向要修改圖書的登錄號(hào) if d num q 逐項(xiàng)修改圖書信息( num, author, name, sort, add, time, price) 顯示修改后的圖書信息 保存圖書信息 返回主函數(shù) 源程序如下: int modify struct book *d //修改函數(shù) long q。 c
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1