C語言課設(shè).歌曲信息管理系統(tǒng)_第1頁
C語言課設(shè).歌曲信息管理系統(tǒng)_第2頁
C語言課設(shè).歌曲信息管理系統(tǒng)_第3頁
C語言課設(shè).歌曲信息管理系統(tǒng)_第4頁
C語言課設(shè).歌曲信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C語言課程設(shè)計(jì)實(shí)習(xí)報(bào)告姓專院汪通輝學(xué)號:20161003364電子信息工程班學(xué)號:071162機(jī)械與電子信息學(xué)院指導(dǎo)教師:董理君2016年12月2016.12中國地質(zhì)大學(xué)C語言課稈設(shè)計(jì) #2016.12中國地質(zhì)大學(xué)C語言課稈設(shè)計(jì) 第一章1.1題目描述題目與要求1)制作一個(gè)歌曲信息管理系統(tǒng)歌曲信息包括歌曲名,作者,演唱者,發(fā)行年月等可以對歌曲信息進(jìn)行輸入,刪除,瀏覽。可以查詢根據(jù)歌曲名,作者,演唱者歌曲信息??梢蕴峁┌醋髡叻纸M顯示功能。用文件存儲信息。需求分析1)根據(jù)題目要求,數(shù)據(jù)以文件的形式存儲,所以應(yīng)提供文件的輸入,輸出等操作;還需要文件具有查找,修改數(shù)據(jù),刪除等功能。1.2算法設(shè)計(jì)1.流程

2、圖根據(jù)上面的需求分析,可以將這個(gè)系統(tǒng)的設(shè)計(jì)分為如下五大模塊*(其中“分組顯示”功能未在程序中實(shí)現(xiàn))1.3程序設(shè)計(jì)及代碼分析1.定義聲明程序:structsongcharname20;charauthor20;charsinger20;/定義結(jié)構(gòu)體chardata20;soN;voidmenu();voidinput(inti);voidsave(intn);voidenter();voidbrowse();voiddelet();/聲明調(diào)用函數(shù)voidsearch();voidback();main函數(shù)程序:intmain()system(color74);menu();exit(0);ret

3、urn0;/改變界面顏色2016.12中國地質(zhì)大學(xué)C語言課稈設(shè)計(jì) 2016.12中國地質(zhì)大學(xué)C語言課稈設(shè)計(jì) printf(ttttttprintf(ttttttprintf(ttttttprintf(ttttttprintf(ttttttprintf(nnttttmenu函數(shù)程序:voidmenu()intn;system(cls);printf(nnnnnnntttt*歌曲管理系統(tǒng)*nnn);存入歌曲。n);瀏覽所有曲目。n);刪除歌曲。n);分類查詢歌曲。n);退出。n);*n);printf(nntttt請輸入一個(gè)數(shù)字(1-5)選擇一項(xiàng)功能:);scanf(%d,&n);printf(%

4、d,n);if(n0&n6)switch(n)case1:enter();break;case2:browse();break;case3:delet();break;case4:search();break;case5:exit(0);/選擇語句,調(diào)用函數(shù)elseprintf(aaaa);menu();return;存入功能程序:voidenter()inti,n;system(cls);printf(nnnn你想輸入幾首歌?nn);scanf(%d,&n);printf(開始輸入歌曲!nn);printf(*n);for(i=0;in;i+)/依次輸入數(shù)據(jù)printf(n請輸入第小首歌信息

5、n,i+1);input(i);/調(diào)用輸入函數(shù)if(i!=0)/調(diào)用儲存函數(shù)save(n);printf(n存儲成功!n);back();return0;2016.12中國地質(zhì)大學(xué)C語言課稈設(shè)計(jì) 2016.12中國地質(zhì)大學(xué)C語言課稈設(shè)計(jì) 瀏覽功能程序:voidbrowse()FILE*fp;inti;if(fp=fopen(song.txt,r)=NULL)printf(無法打開此文件n);exit(0);system(cls);printf(nnn歌曲名作者演唱者發(fā)布日期nn);for(i=0;!feof(fp)&iN;i+)/從文件中讀并輸出到屏幕上直到結(jié)尾fscanf(fp,%s%s%s

6、%s,,soi.author,soi.singer,soi.data);printf(%s%s%s%sn,,soi.author,soi.singer,soi.data);fclose(fp);back();return0;刪除功能匹配輸入字符串并與結(jié)構(gòu)體重寫文件將文件中數(shù)據(jù)讀出并輸出在頻幕上程序:voiddelet()chars20;inti,n,j;FILE*fp;fp=fopen(song.txt,r);if(fp=NULL)printf(無法打開此文件n);exit(0);system(cls);printf(nnnn所有歌曲記錄如下:n);for(i=

7、0;!feof(fp);i+)fscanf(fp,%s%s%s%s,,soi.author,soi.singer,soi.data);printf(%s%s%s%sn,,soi.author,soi.singer,soi.data);j=i-1;printf(n請輸入你要?jiǎng)h除的歌曲名字:n);scanf(%s,s);printf(%sn共有歌曲小首n”,s,j);for(i=0;ij;i+)if(strcmp(s,)=0)n=i;printf(刪除第d首”,n+1);fclose(fp);fp=fopen(song.txt,w);for(i=0;

8、ij;i+)if(i!=n)fprintf(fp,%s%s%s%sn,,soi.author,soi.singer,soi.data);fclose(fp);printf(”刪除成功!”);back();return;說明因?yàn)橐褜⑺械那繑?shù)據(jù)輸出到屏幕上,所以選擇時(shí)未加入容錯(cuò)功能。2016.12中國地質(zhì)大學(xué)C語言課稈設(shè)計(jì) #2016.12中國地質(zhì)大學(xué)C語言課稈設(shè)計(jì) 查找功能程序:voidsearch()FILE*fp;intn=100,k;intch;inti;charc20;if(fp=fopen(song.txt,r)=NULL)printf(無法打開此文件”);exit

9、(0);system(cls);for(i=0;!feof(fp)&iN;i+)fscanf(fp,%s%s%s%s,,soi.author,soi.singer,soi.data);/*printf(%s%s%s%sn,,soi.author,soi.singer,soi.data);*/n=i-1;printf(nnnn你想用什么方式查詢nn1.歌名2.時(shí)間3.歌手n);scanf(%d,&ch);switch(ch)case1:printf(”請輸入歌名n);scanf(%s,c);for(i=0;in;i+)if(strcmp(c,)=0

10、)break;break;case2:printf(請輸入時(shí)間n);scanf(%s,&c);for(i=0;in;i+)if(strcmp(c,soi.data)=0)break;break;case3:printf(”請輸入歌手n);scanf(%s,c);for(i=0;in;i+)if(strcmp(c,soi.singer)=0)break;break;k=i;if(k=n)printf(”并沒有這首歌n);elseprintf(”這是第d首歌:n,k+1);printf(”歌名作者歌手時(shí)間n);printf(%s%s%s%sn,,sok.author,sok.sin

11、ger,sok.data);fclose(fp);back();各種公共函數(shù)(1)輸入函數(shù)程序:voidinput(inti)printf(”歌名:);scanf(%s,);printf(作者:”);scanf(%s,soi.author);printf(”演唱者:); 汪通輝2016.122016.12中國地質(zhì)大學(xué)C語言課稈設(shè)計(jì) 2016.12中國地質(zhì)大學(xué)C語言課稈設(shè)計(jì) scanf(%s,soi.singer);printf(”發(fā)行日期:”);scanf(%s,soi.data);(2)儲存函數(shù)程序:voidsave(intn)FILE*fp;inti;fp=fopen(so

12、ng.txt,w);if(fp=NULL)printf(ERROR:cannotopenthisfilen);return;for(i=0;i0&n6)switch(n)case1:enter();break;case2:browse();break;case3:delet();break;case4:search();break;case5:exit(0);elseprintf(aaaa);menu();關(guān)于文件讀寫由于對文件讀寫內(nèi)容的不熟,剛開始不分“r”和“rb”而且弄不清什么時(shí)候讀,什么時(shí)候?qū)?所以在讀寫文件上老是出錯(cuò)。但后來經(jīng)老師詳細(xì)解答和自己看書復(fù)習(xí),分清了兩者區(qū)別,察覺2016.

13、12中國地質(zhì)大學(xué)C語言課稈設(shè)計(jì) #2016.12中國地質(zhì)大學(xué)C語言課稈設(shè)計(jì) 二進(jìn)制讀寫目前難以駕馭,所以統(tǒng)統(tǒng)改成了格式化讀寫。代碼:if(fp=fopen(song.txt,r)=NULL)printf(無法打開此文件n);exit(0);/格式化打開文件for(i=0;!feof(fp)&iN;i+)fscanf(fp,%s%s%s%s,,soi.author,soi.singer,soi.data);printf(%s%s%s%sn,,soi.author,soi.singer,soi.data);/從文件中讀文件到結(jié)構(gòu)體中關(guān)于刪除信息的方式一開始想了很多關(guān)

14、于刪除信息的方法但大多以我目前水平難以實(shí)現(xiàn),后來找到了一個(gè)較簡潔的方法就是先找到要?jiǎng)h除的那首歌,而后除了那首歌外重寫如文件內(nèi)。代碼:for(i=0;ij;i+)if(strcmp(s,)=0)n=i;/找到要?jiǎng)h除的那首歌for(i=0;ij;i+)if(i!=n)fprintf(fp,%s%s%s%sn,,soi.author,soi.singer,soi.data);/將除了那首歌外的數(shù)據(jù)重寫進(jìn)文件里查詢歌曲的容錯(cuò)性11/n為從文件中讀到的歌曲數(shù)目代碼:for(i=0;in;i+)if(strcmp(c,soi.singer)=0)break;k=iif(k=n)printf(”并沒有這首歌n);/n=i表示比較完所有數(shù)據(jù)也沒breakelse/否則輸出該首歌printf(”這是第d首歌:n,k+1);printf(”歌名作者歌手時(shí)間n);printf(%s%s%s%sn,,sok.author,sok.singer,sok.data);1.7課程設(shè)計(jì)總結(jié)心得這次C語言課程設(shè)計(jì)給我留下了十分深刻的印象,通過一步步的摸索,更加了解C語言,一點(diǎn)點(diǎn)被C語言的魅力所感染。自己動(dòng)手起來,發(fā)現(xiàn)課本上那些生澀的邏輯和零碎的知識點(diǎn)都在上機(jī)過程中變得鮮活而具體,學(xué)起來更有趣味,而且記憶更加深刻,也許有些學(xué)科就是這樣,實(shí)踐更能夠提升,紙上得來終

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論