C語(yǔ)言課程設(shè)計(jì)報(bào)告對(duì)雜志的訂閱進(jìn)行管理_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告對(duì)雜志的訂閱進(jìn)行管理_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告對(duì)雜志的訂閱進(jìn)行管理_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告對(duì)雜志的訂閱進(jìn)行管理_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告對(duì)雜志的訂閱進(jìn)行管理_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、中 國(guó) 地 質(zhì) 大 學(xué)本科生課程論文封面課程名稱 計(jì)算機(jī)高級(jí)語(yǔ)言課程設(shè)計(jì)(c)教師姓名 zzzzzz 本科生姓名 zzzzzz 本科生學(xué)號(hào) zzzzzzzzzzzz 本科生專業(yè) zzzzzzzzzzzz 所在院系 地球科學(xué)學(xué)院 類別: c. 本科生 日期: 2014-1-12 課程設(shè)計(jì)評(píng)語(yǔ)對(duì)課程論文的評(píng)語(yǔ):平時(shí)成績(jī):課程論文成績(jī):總 成 績(jī):評(píng)閱人簽名:注:1、無(wú)評(píng)閱人簽名成績(jī)無(wú)效;2、必須用鋼筆或圓珠筆批閱,用鉛筆閱卷無(wú)效;3、如有平時(shí)成績(jī),必須在上面評(píng)分表中標(biāo)出,并計(jì)算入總成績(jī)。目 錄1題目要求12需求分析13總體設(shè)計(jì)14詳細(xì)設(shè)計(jì)15上機(jī)操作16總結(jié)27致謝2參考文獻(xiàn)21題目要求 使用計(jì)算

2、機(jī)對(duì)一種雜志的訂閱進(jìn)行管理,該雜志擁有最多訂戶不超過10人,每個(gè)訂戶的 信息包括:姓名、性別、地址、電話號(hào)碼、雜志單價(jià)、訂閱數(shù)、訂閱的期限(至*年*月). 現(xiàn)要求用菜單選擇并完成下述的功能:(1) 增加新訂戶,即將訂戶的全部信息輸入到文件中。(2) 根據(jù)當(dāng)天的日期對(duì)訂戶文件進(jìn)行查詢,刪除已到期的訂戶記錄。(3) 統(tǒng)計(jì)本期雜志訂戶數(shù)并打印運(yùn)算結(jié)果。本期訂戶信息表定戶名 訂閱數(shù) 單價(jià) 金額李平 2 5.5 11.0黃海 1 5.5 5.5合計(jì) 3 5.5 16.52需求分析本題目是對(duì)雜志的訂閱進(jìn)行管理。首先,將雜志訂閱信息作出有利的整理和分類,利用我們?cè)O(shè)計(jì)的程序進(jìn)行規(guī)劃和整理,接下來(lái),對(duì)已存入的信

3、息數(shù)據(jù)進(jìn)行調(diào)用,修改及刪除。最后得到數(shù)據(jù)庫(kù)的完善。這就是我們對(duì)此數(shù)據(jù)的需求分析。3總體設(shè)計(jì)菜單開始根據(jù)菜單輸入n的值選擇程序保存結(jié)束是否繼續(xù)進(jìn)行 ny yy5添加訂戶信息6修改訂戶信息2瀏覽訂戶信息3查詢訂戶信息4刪除訂戶信息7退出1錄入訂戶信息圖1.系統(tǒng)的總體流程圖3詳細(xì)設(shè)計(jì)雜志訂閱管理系統(tǒng)源程序代碼/*雜志訂閱管理軟件*(1)增加新訂戶,即將訂戶的全部信息輸入到文件中。要求:使用計(jì)算機(jī)對(duì)一種雜志進(jìn)行訂閱管理,該雜志擁有最多訂戶不超過10人,每個(gè)訂戶的信息包括:姓名、性別、地址、電話號(hào)碼、雜志單價(jià)、訂閱數(shù)、訂閱期限、(至*年*月)。*(2)根據(jù)當(dāng)天的日期對(duì)訂戶文件進(jìn)行查詢,刪除已到期的訂戶記

4、錄。*(3)統(tǒng)計(jì)本期雜志訂戶數(shù)并打印運(yùn)算結(jié)果*/#include <stdio.h>#include <string.h>#include <stdlib.h>#define max 10 /最多訂戶不超過10人/存儲(chǔ)每個(gè)訂戶的信息的數(shù)據(jù)結(jié)構(gòu) struct magazinechar name6;char sex3;char addr13;char phone_number12;char unit_price5;char amount4;char time_limit9; ordermax;void menu();void add();void search(

5、);void statistic();int load_record();void input(int i);void save(int n);void print_one(int i);void print_n(int n);int main()file *fp;fp = fopen("record.txt","w");fclose(fp);menu();return 0; /主菜單,與用戶進(jìn)行交互 void menu() int n,w; do printf("tt*nnn"); printf("tt 歡迎來(lái)到雜志訂閱系

6、統(tǒng) nnn"); printf("tt*nnn"); printf("tt*nn"); printf("tt 1:訂戶信息添加 n"); printf("tt 2:訂戶信息瀏覽 n"); printf("tt 3:訂戶信息統(tǒng)計(jì) n"); printf("tt 4:退出系統(tǒng) nn"); printf("tt*nn"); printf("選擇您的操作(1-4): bb"); scanf("%d",&n)

7、; if(n < 1 | n > 4) w = 1; getchar(); else w = 0; while(w); switch(n) case 1:add();break; case 2:search();break;case 3:statistic();break;case 4:exit(0);break; /增加新訂戶,即將訂戶的全部信息輸入到文件中 void add() printf("addn"); int t,m,i; t = load_record(); /加載文件中已有用戶的個(gè)數(shù) printf("您希望添加幾組訂戶的信息?n&quo

8、t;);printf("請(qǐng)輸入數(shù)字: bbb");scanf("%d",&m);for(i = 0;i < m;i +)printf("n請(qǐng)輸入第%d組訂戶記錄!n",i+1);input(t+i); /讀取第t+i個(gè)用戶的數(shù)據(jù) save(t+m); /把新用戶的數(shù)據(jù)存儲(chǔ)到文件中 menu(); void input(int i) printf("調(diào)用了input函數(shù)n"); printf("請(qǐng)輸入:n姓名 性別 地址 電話號(hào)碼 雜志單價(jià) 訂閱數(shù) 訂閱期限n"); scanf(&q

9、uot; %s%s%s%s%s%s%s",&,&orderi.sex, &orderi.addr,&orderi.phone_number,&orderi.unit_price,&orderi.amount,&orderi.time_limit); /根據(jù)當(dāng)天的日期對(duì)訂戶文件進(jìn)行查詢,刪除已到期的訂戶記錄 void search() printf("searchn"); file* fp; char date9,str2; int t,i,sum = 0;t = load_record(

10、);printf("請(qǐng)輸入日期: bbbbbbbbb"); scanf(" %s",date);printf("n");if(fp = fopen("record.txt","w") = null)printf("文件無(wú)法打開!nn");exit(0);printf("n");for(i=0;i<t;i+)if(strcmp(orderi.time_limit,date) < 0)sum +;printf("n");prin

11、t_one(i);printf("nn此用戶信息已過期!");printf("nn您希望刪除此條信息嗎?('y'或'n'): bb");scanf(" %s",str); if(strcmp(str,"y") = 0 | strcmp(str,"y") = 0)continue;fwrite(&orderi,sizeof(struct magazine),1,fp);fclose(fp);if(sum = 0)printf("找不到您要的信息!n

12、n");printf("nnn任意鍵返回上一步.nn");getchar();getchar(); menu(); void print_one(int i) printf("%-10s %-5s %-10s %-11s %-4s %3s %-10snn", ,orderi.sex,orderi.addr,orderi.phone_number,orderi.unit_price,orderi.amount,orderi.time_limit); /統(tǒng)計(jì)本期雜志訂戶數(shù)并打印運(yùn)算結(jié)果 void statistic() pri

13、ntf("statisticn"); int t; t = load_record(); print_n(t); printf("nnn任意鍵返回.nn"); getchar(); getchar(); menu(); void print_n(int n) int j;printf("姓名 性別 地址 電話號(hào)碼 雜志單價(jià) 訂閱數(shù) 訂閱期限nn");for(j=0;j<n;j+)if(j+1) % 11 = 0)printf("nn任意鍵繼續(xù).");getchar();puts("nn")

14、; print_one(j); int load_record() printf("load_record()n"); file* fp; if(fp = fopen("record.txt","r") = null) printf("n 文件無(wú)法打開 n");exit(0); int i; for(i=0;!feof(fp);i+) fread(&orderi,sizeof(struct magazine),1,fp); fclose(fp); return (i-1); void save(int n)

15、 printf("調(diào)用了save函數(shù)n"); file* fp;int i;fp = fopen("record.txt","w");if(fp = null)printf("n 文件無(wú)法打開!n");exit(0); for(i=0;i<n;i+)fwrite(&orderi,sizeof(struct magazine),1,fp);fclose(fp); 各模塊的功能和實(shí)現(xiàn)1.菜單模塊:顯示雜志訂閱管理系統(tǒng)的主菜單,供用戶選擇所需的功能,通過自己定義的void menu()函數(shù)來(lái)實(shí)現(xiàn)。2.輸入模

16、塊:輸入訂戶的姓名以及其它的一些職工的相關(guān)信息,通過自己定義的void input()函數(shù)來(lái)實(shí)現(xiàn)。3.保存模塊:將內(nèi)存中訂戶的信息輸出到磁盤文件中,可以通過自己定義的void save(int)函數(shù)來(lái)實(shí)現(xiàn)。4.瀏覽模塊:瀏覽所有職工的相關(guān)信息,通過自己定義的void display()函數(shù)來(lái)實(shí)現(xiàn)。5.刪除模塊:刪除需要?jiǎng)h除的訂戶的所有信息,通過自己定義的void del()函數(shù)來(lái)實(shí)現(xiàn)。6.添加模塊:添加需要添加的訂戶的相關(guān)信息,通過自己定義的void add()函數(shù)來(lái)實(shí)現(xiàn)。7.按雜志訂閱期限查詢模塊:可以按志訂閱期限來(lái)查詢職工的相關(guān)信息,通過自己定義的void search_num()函數(shù)來(lái)實(shí)

17、現(xiàn)。8.修改模塊:可以修改需要修改的訂戶的相關(guān)信息,通過自己定義的void modify()函數(shù) 來(lái)實(shí)現(xiàn)。9.退出系統(tǒng)模塊:退出雜志訂閱信息管理系統(tǒng),通過頭文件windows.h中的exit(0)函數(shù)來(lái)實(shí)現(xiàn)。5上機(jī)操作(數(shù)據(jù)源說(shuō)明)(操作步驟:編譯、鏈接和運(yùn)行)(運(yùn)行結(jié)果:增加運(yùn)行效果界面,包括主界面、各功能模塊的運(yùn)行界面等)使用說(shuō)明及運(yùn)行實(shí)例1.運(yùn)行程序,進(jìn)入職工信息管理系統(tǒng)的主菜單:圖1:進(jìn)入主菜單界面2.輸入數(shù)字“1”進(jìn)行訂戶信息添加:圖2:訂戶信息添加圖3:訂戶信息添加4.輸入“2”瀏覽訂戶信息:圖4:瀏覽訂戶信息5.輸入“3”進(jìn)行訂戶信息統(tǒng)計(jì):圖5:進(jìn)行訂戶信息統(tǒng)計(jì)6.進(jìn)入主菜單輸入

18、”4”退出職工信息管理系統(tǒng)。6總結(jié)通過這次課程設(shè)計(jì),增加了我們對(duì)軟件技術(shù)的了解,雖然還不明確軟件技術(shù)包含的具體內(nèi)容,但從c語(yǔ)言課程設(shè)計(jì)這門課程開始,已發(fā)現(xiàn)程序設(shè)計(jì)的好處,它對(duì)我們數(shù)學(xué)的學(xué)習(xí)也有很大的幫助。在學(xué)習(xí)c語(yǔ)言課程設(shè)計(jì)的過程中也學(xué)到和鞏固了許多計(jì)算機(jī)應(yīng)用基礎(chǔ)知識(shí),對(duì)計(jì)算機(jī)的機(jī)體也有了一個(gè)較為詳細(xì)的了解。在具體操作中對(duì)這學(xué)期所學(xué)的c語(yǔ)言課程設(shè)計(jì)的理論知識(shí)得到鞏固加強(qiáng),達(dá)到實(shí)訓(xùn)的目的,也發(fā)現(xiàn)自己的不足之處,同時(shí)體會(huì)到c語(yǔ)言具有的語(yǔ)句簡(jiǎn)潔,使用靈活,執(zhí)行效率高等特點(diǎn)。發(fā)現(xiàn)上機(jī)操作的重要作用,特別是對(duì)數(shù)組和循環(huán)有了深刻的理解。通過實(shí)際操作,學(xué)會(huì) c語(yǔ)言程序編程的基本步驟、基本方法,開發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問題、解決問題的能力。 由于本課題中的許多知識(shí)點(diǎn)都沒有學(xué)過都要靠自己到課外的資料中去查找。在用的時(shí)候難免出現(xiàn)這樣那樣的錯(cuò)誤。如開始設(shè)計(jì)出來(lái)的菜單不是預(yù)想的那樣,而是總個(gè)窗中出現(xiàn)混亂。解決的這個(gè)問題的辦法是調(diào)整。一個(gè)系統(tǒng)的菜單和提示信息非常重要。如果沒有這些用戶根本不知道怎么用你設(shè)計(jì)的這個(gè)系統(tǒng)。在設(shè)計(jì)的調(diào)試過程中也無(wú)法順利的完成調(diào)試工作。有了一個(gè)清晰簡(jiǎn)單的菜單和一些提示信息這后,調(diào)試過程完成的非常順利?;仡櫰鸫舜握n程設(shè)計(jì),至今我們?nèi)愿锌H多,的確,從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,在這些

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論