C語言程式設計(2)

2021-10-03 08:23:39 字數 3163 閱讀 9439

問題重述:模擬圖書館管理系統。每名讀者只能借一本書,讀者可借書或還書。管理員可對圖書和讀者資訊進行錄入、修改和刪除。圖書資訊至少應包括:編號、書名、數量,讀者資訊至少應包括:編號、姓名、所借圖書。可根據圖書名稱或編號進行圖書資訊查詢,可查詢某本書現在被哪些讀者借走。

演算法描述:由於目標是乙個綜合系統,將其精簡成各個子程式,分別實現不同的功能,使用switch在主程式中,有好多功能在case中,每個功能都由子程式來實現。分別進行子程式中功能的實現,最終進行呼叫,形成乙個綜合系統。

源**:

#include

#include

#include

#define size 1000

//最多有1000首歌曲

struct mc

music[size]

;intjc(

char name[15]

)//點歌時檢查是否存在該歌曲,如果存在則返回1;並且輸出歌曲資訊

return0;

fclose

(fp);}

void

add(

)//新增歌曲部分

}fclose

(fp);}

void

del(

)/*刪除歌曲功能(把歌曲資訊從music.txt中刪除),這裡用到的乙個shan,該標誌定義在結構體中,shan初始是1;

如果刪除歌曲與歌曲資訊相同則shan變成0;有了這個標誌,可以選擇的把歌曲資訊重新錄入tmp.txt檔案中*/

//讀出歌曲資訊

k=i;

printf

("請輸入要刪除的歌曲名稱:\n");

gets

(name)

;int a=

jc(name);if

(a==0)

for(j=

0;j<

(k-1

);j++)}

//把原來的歌曲資訊從music.txt中刪除

for(j=

0;j<

(k-1

);j++)}

fclose

(fo)

;fclose

(fp)

;//選擇性重新錄入歌曲資訊

remove

("music.txt");

//刪除原檔案

rename

("tmp.txt"

,"music.txt");

//將臨時檔名改為原檔名

printf

("刪除成功\n");

}void

choose1()

//只有在music.txt裡面存了該歌曲才可以開啟該歌詞,否則就算歌詞存在也沒有用

//檢擦是否存在 該歌曲,若存在輸出歌曲資訊,若不存在printf("該歌曲不存在,請新增\n");結束該分支

strcat

(name,

".txt");

file* fp=

fopen

(name,

"r");if

(fp==

null

)//歌詞不存在時打不開

for(i=0;

!feof

(fp)

;i++

)//輸出歌詞

fclose

(fp);}

void

choose2()

//同理,copy del中的讀取,判斷情況

int i,j,k=0;

//k用來記是否有該歌手歌曲

for(i=0;

!feof

(fp)

;i++

)fread

(&music[i]

,sizeof

(struct mc),1

,fp)

;for

(j=0

;j(strcmp

(music[j]

.singer ,singer)==0

)if(k==0)

printf

("沒有該歌手的歌曲;\n");

else

choose1()

;//輸入歌手,輸出歌手所有的歌曲,然後跳到choose1;進行點歌

fclose

(fp);}

void

scan()

//瀏覽所有曲目

void

out(

)//退出系統

}int

main()

//主函式

}}

測試結果不予展示

(1)問題重述:程式自動生成乙個位於99內的隨機數,要求使用者猜這個數。使用者輸入乙個數後,程式有三種應答:too big,too small,you win。

演算法描述:系統產生乙個非偽隨機數,所以用srand函式,使用者輸入數字,數猜對則退出。

源**:

#include

#include

#include

intmain()

else

if(belse

if(b=a)

}return0;

}

(2)問題重述:產生一組隨機數,要求每個數字不能重複。例如:1,20,3,17,80,4,35,88符合要求, 3,20,1,17,80,3,35,88不符合要求。

演算法描述:計算機產生一組隨機數,使用者可以控制產生隨機數的數量和範圍,寫乙個函式判斷產生的隨機數是否與之前相同,在主函式中呼叫這個函式,判斷如果相同,則重新產生,直到產生夠使用者所需要的數目

源**:

#include

#include

#include

intpd

(int a,

int b)

//判斷前面是否有數字相等的數字

return0;

}int

main()

//判斷與之前是否相同

printf

("%d "

,a[i]);

}return0;

}

這次對當初c語言程式進行複習,發現自己有很多關於c的細節都已經記不清了,所以大部分參考了當初提交的實驗報告。同時感嘆python和c++的便利強大。

python天下第一(滑稽

C語言程式設計(2)

題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提10 利潤高 於10萬元,低於20萬元時,低於10萬元的部分按10 提成,高於10萬元的部分,可可提 成7.5 20萬到40萬之間時,高於20萬元的部分,可提成5 40萬到60萬之間時高於 40萬元的部分,可提成3 60萬到1...

《C 語言程式設計》(2)

1 程式設計工作主要包括資料結構和演算法的設計。演算法要由一系列控制結構組成 2 c語言已經不能滿足運用物件導向方法開發軟體的需要。c 比c更安全,c 的編譯系統能檢查出更多的型別錯誤 3 物件是程式的基本單位,物件的靜態屬性往往需要用某種型別的資料來表示,物件的動態屬性要由成員屬性來實現,而函式的...

c語言程式設計作業2

通過對迴圈控制這一章的學習,了解了相較於之前更為複雜的c語言結構,並且開始解決一生活中常見的問題,將c語言程式設計進一步推向了實際應用。c語言提供for while do while三種迴圈語句。其中while語句 for語句屬於當型迴圈結構,do while語句屬於直到型迴圈語句,這三種語句各有各...