版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 一 引言</b></p><p> 在現(xiàn)在的日常生活中,人們對娛樂的要求越來越高。因為隨著科技的突飛猛進,娛樂形式、娛樂設(shè)備也越來越多。而聽音樂則是其中一種十分重要而實現(xiàn)起來又十分簡單的娛樂形式,所以說,音樂無處不在。因此,我們對音樂的管理就十分有必要了?,F(xiàn)在的生活節(jié)奏越來越快,人們想要更加方便而快捷的管理自己的音樂,節(jié)省自己的時間。而目前我們學(xué)習(xí)過如何使C語
2、言來進行編程,所以就有了這個簡單的設(shè)計。</p><p> 隨著各種便攜式音樂播放器以及電子計算機的普及,人們所擁有的音樂越來越多,風(fēng)格,演唱者,各不相同,而人們在不同的心情,不同的天氣時對音樂的愛好是不同的。人們需要更加快捷而方便的管理自己的音樂,讓自己的音樂列表井然有序??梢愿鶕?jù)不同的場合,不同的心情快速的找到自己所需要的音樂。讓音樂匹配自己的心情,通過音樂來表達自己的感受是很多人習(xí)慣。音樂是一種娛樂,同時
3、也是一種特別的表達方式。歌手通過歌曲來表達自己的某種情感,產(chǎn)生與聽眾的共鳴。當聽眾想要表達相同的情感時,直接就可以引用自己聽過的歌。我們讓這種娛樂,或者更著重于對自己情感的表達實現(xiàn)起來更加容易。</p><p> 運用音樂管理程序可以更加方便而快捷的管理自己喜歡的音樂,省去了繁瑣的過程,讓聽音樂更加方便快捷,節(jié)省自己的寶貴時間。音樂管理是每個音樂播放器必須實現(xiàn)的功能之一。隨著各個電子廠商退出自己的便攜是播放器,
4、只有高效便捷的的音樂管理方式才能在競爭中脫穎而出。好的音樂管理程序是對消費者的負責(zé),更是對自己責(zé)任的負責(zé)。</p><p> 以前的操作系統(tǒng)等系統(tǒng)軟件主要是由匯編語言編寫的(包括UNIX操作系統(tǒng)在內(nèi))。由于匯編語言指令時機器所不能直接識別、理解和執(zhí)行的,最好改用高級語言,但一般高級語言難以實現(xiàn)匯編語言的某些功能(匯編語言可以直接對硬件進行操作,例如,對內(nèi)存地址的操作、位操作等)。人們設(shè)想能否找到一種既具有一般高
5、級語言特性,又具有低級語言特性的語言,集它們的優(yōu)點于一身。于是,C語言就在這種情況下應(yīng)運而生了。本次課設(shè)我選擇歌曲管理程序的設(shè)計,考察我對結(jié)構(gòu)體,數(shù)組的操作,以及C語言算法的掌握。從而讓我們把書上學(xué)習(xí)到的東西與實際情況聯(lián)系起來,讓我們對用C語言進行編程有進一步的了解和深刻的認識。</p><p> 課設(shè)要求要求使用C語言進行編程,并且盡可能學(xué)習(xí)其他語言來穿插在程序中,使程序進一步簡單而實用、方便。要求在程序中使
6、用結(jié)構(gòu)體、數(shù)組等操作,并且能完整顯示出其各種功能。所以完成此道題目要求較強的設(shè)計能力,尤其是要有一種大局觀的意識,這是對整體觀念的一種鍛煉。如何調(diào)程序也非常重要,通過這個程序可以學(xué)習(xí)到以前調(diào)試短程序沒有的的經(jīng)驗。其主要實現(xiàn)錄入、修改、查找、刪除、顯示等功能。</p><p><b> 二 程序總體設(shè)計</b></p><p><b> 2.1程序功能&l
7、t;/b></p><p> (1)增加歌曲信息 (2)查看歌曲信息 (3)查找 (4)刪除 </p><p> (5)修改 (6)作者 (7)保存 (8)退出 </p><p><b> 2.2程序功能圖</b></p><p><b> 圖1 程
8、序功能圖</b></p><p><b> 2.3主函數(shù)流程圖</b></p><p><b> 0 </b></p><p><b> 0 </b></p><p> 非0
9、 </p><p><b> 0</b></p><p><b> 非0</b></p><p><b> 0</b></p><p><b> 0</b></p><p><b>
10、; 0</b></p><p><b> 非0</b></p><p><b> 0</b></p><p><b> 非0</b></p><p><b> 非0</b></p><p><
11、;b> 非0</b></p><p><b> 圖2 主函數(shù)流程圖</b></p><p><b> 主函數(shù)源代碼:</b></p><p> void main()</p><p><b> {</b></p><p>
12、 int choose=0;</p><p> FILE *fp=NULL;</p><p> char yesorno;</p><p> if((fp=fopen("C://list.dat","rb"))==NULL)</p><p><b> {</b></p
13、><p> printf("\n=========>文件不存在,是否要創(chuàng)建一個?(y/n)\n");</p><p> scanf("%c",&yesorno);</p><p> if(yesorno=='y'||yesorno=='Y')</p><p&g
14、t;<b> { </b></p><p> fp=fopen("C://list.dat","wb");</p><p> fclose(fp);</p><p><b> }</b></p><p><b> else</b>
15、;</p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> Number=dq(st);
16、 //要是文件已經(jīng)有數(shù)據(jù) 將數(shù)據(jù)初始化到數(shù)組中</p><p><b> }</b></p><p> system("cls");</p><p><b> while(1) </b></p><p><b> { </b></p>
17、<p> display();</p><p> printf(" ========>請選擇:");</p><p> scanf("%d",&choose);</p><p> system("cls");</p>
18、;<p> switch(choose)</p><p><b> {</b></p><p> case 0: exit(0);</p><p><b> //退出 </b></p><p><b> break; </b></p>&l
19、t;p> case 1: add();</p><p> back();//增加曲目列表</p><p><b> break; </b></p><p> case 2: lookover();</p><p> back();//查看曲目列表</p><p><b>
20、 break; </b></p><p> case 3: find();</p><p> back();// 查找 </p><p><b> break;</b></p><p> case 4: del(); </p><p> back();//刪除 </p
21、><p><b> break;</b></p><p> case 5: change();</p><p> back();//修改</p><p><b> break; </b></p><p> case 6:author();</p><
22、p> back();//作者</p><p><b> break;</b></p><p> case 7:keepa();</p><p> back();//保存 </p><p><b> break;</b></p><p><b> d
23、efault:</b></p><p> if (choose<0||choose>7)</p><p> printf ("按回車繼續(xù)");</p><p><b> break;</b></p><p><b> }</b></p>
24、<p> fflush(stdin); </p><p> getchar();</p><p> system("cls");</p><p><b> }</b></p><p><b> }</b></p><p> /*-
25、----------------------------------------------------------------------------------------保存*/</p><p> void keepa()</p><p><b> {</b></p><p> printf("\t=====程序在運行時已
26、自動保存.....\n");</p><p><b> }</b></p><p> /*-----------------------------------------------------------------------------------------返回*/</p><p> void back()</p
27、><p><b> {</b></p><p> printf("\t===>按Enter鍵返回主菜單\n");</p><p><b> }</b></p><p><b> 三 程序詳細設(shè)計</b></p><p>
28、3.1 增加歌曲信息函數(shù)的實現(xiàn)</p><p> 增加記錄前如圖3所示。</p><p> 圖3 增加記錄前效果圖</p><p> 輸入一條記錄信息:選擇1,回車。輸入記錄如圖4所示。</p><p> 圖4 輸入記錄效果圖</p><p><b> 增加后如圖5所示。</b><
29、/p><p> 圖5 增加記錄后效果圖</p><p> 增加函數(shù)代碼流程圖,如圖6所示。</p><p> 圖6 增加函數(shù)流程圖</p><p><b> 增加源代碼:</b></p><p><b> 增加函數(shù)源代碼:</b></p><p>
30、; void add()</p><p><b> {</b></p><p> int numberTemp=0;</p><p><b> int i=0;</b></p><p> struct list temp; //臨時保存信息</p><p> pr
31、intf("請輸入要增加歌曲信息的個數(shù):");</p><p> scanf("%d",&numberTemp);</p><p> for(i=0;i<numberTemp;i++)</p><p><b> {</b></p><p> printf(&q
32、uot;輸入第%d個歌曲信息\n",i+1);</p><p> printf("歌名:");</p><p> scanf("%s",temp.name);</p><p> printf("歌手:");</p><p> scanf("%s"
33、,temp.singer);</p><p> printf("風(fēng)格:");</p><p> scanf("%s",&temp.style);</p><p> st[Number++]=temp; //將剛添加的寫入到數(shù)組</p><p> keep(&temp); //將剛
34、添加的寫入到文件</p><p><b> }</b></p><p> printf("添加成功\n");</p><p><b> }</b></p><p> /*---------------------------------------------------
35、-------------------------------------保存*/</p><p> void keep(struct list *st)</p><p><b> {</b></p><p> FILE *fp=NULL;</p><p> fp=fopen("C://list.dat
36、","ab+");</p><p> fwrite(st,sizeof(struct list),1,fp);</p><p> fclose(fp);</p><p><b> }</b></p><p> 3.2 查看歌曲信息函數(shù)的實現(xiàn)</p><p>
37、 查看記錄前如圖7所示。</p><p> 圖7 查找記錄前效果圖</p><p> 輸入一條記錄信息:如圖8所示:</p><p> 圖8 輸入記錄效果圖</p><p> 查看記錄后如圖9所示。</p><p> 圖9 查找記錄后效果圖</p><p> 查看函數(shù)代碼流程圖,如圖
38、10所示。</p><p><b> 非0</b></p><p> 圖10 查看函數(shù)流程圖</p><p><b> 查看源代碼:</b></p><p> void lookover()</p><p><b> {</b></p&g
39、t;<p><b> int i=0;</b></p><p> printf("以下是歌曲列表\n");</p><p> printf("\t歌名\t歌手\t風(fēng)格\n");</p><p> for(i=0;i<Number;i++)</p><p>
40、;<b> {</b></p><p> printf("\t%s\t%s\t%s\n",st[i].name,st[i].singer,st[i].style);</p><p><b> }</b></p><p><b> }</b></p><p
41、> 3.3 查找函數(shù)的實現(xiàn)</p><p> 查找記錄前如圖11所示。</p><p> 圖11 查找記錄前效果圖</p><p> 輸入一條記錄信息:選擇3,回車</p><p><b> 如圖12所示。</b></p><p> 圖12 輸入記錄效果圖</p>
42、<p> 查找記錄后如圖13所示。</p><p> 圖13 查找記錄后效果圖</p><p> 查找函數(shù)代碼流程圖,如圖14所示。</p><p><b> 圖1</b></p><p> 圖14 查找函數(shù)流程圖</p><p><b> 查找源代碼:<
43、;/b></p><p> void find()</p><p><b> {</b></p><p><b> int n=0;</b></p><p> printf("1 按歌名查找\n");</p><p> printf(&qu
44、ot;2 按歌手查找\n"); </p><p> scanf("%d",&n);</p><p><b> switch(n)</b></p><p><b> {</b></p><p> case 1: findbyname();</p>
45、;<p><b> break;</b></p><p> case 2: findbysinger();</p><p><b> break;</b></p><p> default: printf("輸入有誤,結(jié)束!\n");</p><p><
46、;b> break;</b></p><p><b> } </b></p><p><b> }</b></p><p> void findbyname()//按歌名查找 </p><p><b> {</b></p><p&
47、gt; char name[60];</p><p><b> int i=0;</b></p><p> printf("請輸入要查找歌曲名稱:");</p><p> scanf("%s",name);</p><p> system("cls")
48、;</p><p> printf("\t歌名\t歌手\t風(fēng)格\n");</p><p> for (i=0;i<Number;i++)</p><p><b> {</b></p><p> if (strcmp(name,st[i].name)==0)</p><
49、p><b> {</b></p><p> printf("\t%s\t%s\t%s\n",st[i].name,st[i].singer,st[i].style); </p><p><b> }</b></p><p><b> }</b></p>
50、<p><b> }</b></p><p> void findbysinger()//按歌手查找 </p><p><b> { </b></p><p> char singer[60];</p><p><b> int i=0;</b></p
51、><p> printf("請輸入要查找的歌手:");</p><p> scanf("%s",singer);</p><p> system("cls");</p><p> printf("\t歌名\t歌手\t風(fēng)格\n");</p><
52、;p> for (i=0;i<Number;i++)</p><p><b> {</b></p><p> if (strcmp(singer,st[i].singer)==0)</p><p><b> {</b></p><p> printf("\t%s\t%
53、s\t%s\n",st[i].name,st[i].singer,st[i].style);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 3.4 刪除函數(shù)的實現(xiàn)</p
54、><p> 刪除記錄前如圖15所示。</p><p> 圖15 刪除記錄前效果圖</p><p> 輸入一條記錄信息:選擇4,回車后, 如圖16所示:</p><p> 圖16 輸入記錄效果圖</p><p><b> 選擇1,如圖17</b></p><p> 圖
55、17 選擇刪除方法后效果圖</p><p> 未刪除前的列表,如圖18</p><p> 刪除后的列表,如圖19</p><p> 選擇其他刪除方法效果類似。</p><p> 刪除函數(shù)代碼流程圖,如圖20所示。</p><p> 圖20 刪除函數(shù)流程圖</p><p><b&g
56、t; 刪除源代碼:</b></p><p> void del()//刪除 </p><p><b> {</b></p><p><b> int n=0;</b></p><p> printf("1 按歌名刪除\n");</p><
57、p> printf("2 按歌手刪除\n");</p><p> printf("3 按風(fēng)格刪除\n");</p><p> scanf("%d",&n);</p><p><b> switch(n)</b></p><p><b&
58、gt; {</b></p><p> case 1: songdele();</p><p><b> break;</b></p><p> case 2: singerdele();</p><p><b> break;</b></p><p>
59、 case 3: styledele();</p><p><b> }</b></p><p><b> }</b></p><p> void songdele()//按歌名刪除 </p><p><b> {</b></p><p> F
60、ILE *fp=NULL;</p><p> char name[60];</p><p><b> int i=0;</b></p><p><b> int j=0;</b></p><p> printf("請輸入要刪除歌曲名稱:");</p><
61、;p> scanf("%s",name);</p><p> for(i=0;i<Number;i++)</p><p><b> {</b></p><p> if (strcmp(name,st[i].name)==0) //如果查找到就刪除</p><p><b>
62、 {</b></p><p> for (j=i;j<Number-1;j++)</p><p><b> {</b></p><p> st[j]=st[j+1];</p><p><b> }</b></p><p><b> Nu
63、mber--;</b></p><p><b> }</b></p><p><b> }</b></p><p> //將剩余數(shù)據(jù)寫入文件 重新一寫的方式打開文件 把以前的數(shù)據(jù)擦除了</p><p> fp=fopen("C://list.dat",&quo
64、t;wb");</p><p> for (i=0;i<Number;i++)</p><p><b> {</b></p><p> fwrite(&st[i],sizeof(struct list),1,fp);</p><p><b> }</b></p&
65、gt;<p> fclose(fp);</p><p> printf("刪除成功;\n");</p><p><b> }</b></p><p> void singerdele()//按歌手刪除 </p><p><b> {</b></p&g
66、t;<p> FILE *fp=NULL;</p><p> char singer[60];</p><p><b> int i=0;</b></p><p><b> int j=0;</b></p><p> printf("請輸入要刪除歌手姓名:"
67、;);</p><p> scanf("%s",singer);</p><p> for(i=0;i<Number;i++)</p><p><b> {</b></p><p> if (strcmp(singer,st[i].singer)==0) //如果查找到就刪除</p
68、><p><b> {</b></p><p> for (j=i;j<Number-1;j++)</p><p><b> {</b></p><p> st[j]=st[j+1];</p><p><b> }</b></p>
69、<p><b> Number--;</b></p><p><b> }</b></p><p><b> }</b></p><p> //將剩余數(shù)據(jù)寫入文件 重新一寫的方式打開文件 把以前的數(shù)據(jù)擦除了</p><p> fp=fopen("
70、;C://list.dat","wb");</p><p> for (i=0;i<Number;i++)</p><p><b> {</b></p><p> fwrite(&st[i],sizeof(struct list),1,fp);</p><p><b
71、> }</b></p><p> fclose(fp);</p><p> printf("刪除成功;\n");</p><p><b> }</b></p><p> void styledele()//按風(fēng)格刪除 </p><p><b&g
72、t; {</b></p><p> FILE *fp=NULL;</p><p> char style[60];</p><p><b> int i=0;</b></p><p><b> int j=0;</b></p><p> printf(
73、"請輸入要刪除的歌曲風(fēng)格:");</p><p> scanf("%s",style);</p><p> for(i=0;i<Number;i++)</p><p><b> {</b></p><p> if (strcmp(style,st[i].style)=
74、=0) //如果查找到就刪除</p><p><b> {</b></p><p> for (j=i;j<Number-1;j++)</p><p><b> {</b></p><p> st[j]=st[j+1];</p><p><b> }
75、</b></p><p><b> Number--;</b></p><p><b> }</b></p><p><b> }</b></p><p> //將剩余數(shù)據(jù)寫入文件 重新一寫的方式打開文件 把以前的數(shù)據(jù)擦除了</p><p
76、> fp=fopen("C://list.dat","wb");</p><p> for (i=0;i<Number;i++)</p><p><b> {</b></p><p> fwrite(&st[i],sizeof(struct list),1,fp);</p
77、><p><b> }</b></p><p> fclose(fp);</p><p> printf("刪除成功;\n");</p><p><b> }</b></p><p> 3.5修改函數(shù)的實現(xiàn)</p><p>
78、 修改記錄前如圖21所示。</p><p> 圖21 修改記錄前效果圖</p><p> 輸入一條記錄信息:如圖22所示:</p><p> 圖22 輸入記錄效果圖</p><p> 修改記錄后如圖23所示。</p><p> 圖23 修改記錄后效果圖</p><p> 修改函數(shù)代碼
79、流程圖,如圖24所示。</p><p> 圖24 修改函數(shù)流程圖</p><p><b> 修改源代碼:</b></p><p> void change()</p><p><b> {</b></p><p> int way=0;</p><
80、;p> FILE *fp=NULL;</p><p> char name[60];</p><p><b> int i=0;</b></p><p> int changeIndex=0;</p><p> int index=0;</p><p> printf("
81、;請輸入要修改的歌曲名稱:");</p><p> scanf("%s",name);</p><p> for (i=0;i<Number;i++)</p><p><b> {</b></p><p> if (strcmp(name,st[i].name))</p&
82、gt;<p><b> {</b></p><p> changeIndex=i; //保存要修改的歌曲的下標</p><p><b> }</b></p><p><b> }</b></p><p> printf("\t%s\t%s\t%
83、s\n\n",st[changeIndex].name,st[changeIndex].singer,st[changeIndex].style);</p><p> printf("請重新輸入此歌曲信息");</p><p> printf("歌名:");</p><p> scanf("%s&qu
84、ot;,st[changeIndex].name);</p><p> printf("歌手:");</p><p> scanf("%s",st[changeIndex].singer);</p><p> printf("風(fēng)格:");</p><p> scanf(&qu
85、ot;%s",st[changeIndex].style);</p><p> //信息修改后重新更新文件里面的數(shù)據(jù) 以保持數(shù)據(jù)一致性</p><p> fp=fopen("C://list.dat","wb");</p><p> for (i=0;i<Number;i++)</p>&l
86、t;p><b> {</b></p><p> fwrite(&st[i],sizeof(struct list),1,fp);</p><p><b> }</b></p><p> fclose(fp);</p><p><b> }</b><
87、/p><p> 3.6作者函數(shù)的實現(xiàn)</p><p> 作者記錄前如圖25所示。</p><p> 圖25 作者記錄前效果圖</p><p> 輸入一條記錄信息:如圖26所示:</p><p> 圖26 輸入記錄效果圖</p><p> 作者記錄后如圖27所示。</p>&
88、lt;p> 圖27 作者記錄后效果圖</p><p><b> 作者源代碼:</b></p><p> void author()</p><p><b> {</b></p><p> printf("\t++++++++++++++++++++++++++++++++\
89、n\n");</p><p> printf("\t 唐山學(xué)院 \n\n");</p><p> printf("\t 信息工程系 \n\n");</p><p> printf("\t 通信工程
90、 \n\n");</p><p> printf("\t 歡迎交流 \n\n");</p><p> printf("\t 4080214228 王洪偉 \n\n"); </p><p> printf("\t+++++
91、+++++++++++++++++++++++++++\n\n");</p><p> }10保存函數(shù)的實現(xiàn)</p><p> 保存記錄前如圖28所示。</p><p> 圖28 保存記錄前效果圖</p><p><b> 輸入一條記錄信息:</b></p><p> 圖29
92、輸入記錄效果圖</p><p> 保存記錄后如圖30所示。</p><p> 圖30 保存記錄后效果圖</p><p><b> 保存源代碼:</b></p><p> /*----------------------------------------------------------------------
93、-------------------保存*/</p><p> void keepa()</p><p><b> {</b></p><p> printf("\t=====程序在運行時已自動保存.....\n");</p><p><b> }</b></p&
94、gt;<p> /*-----------------------------------------------------------------------------------------返回*/</p><p> void back()</p><p><b> {</b></p><p> printf(&q
95、uot;\t===>按Enter鍵返回主菜單\n");</p><p><b> }</b></p><p><b> 四 總結(jié)</b></p><p> 通過C語言程序課程設(shè)計,是我對C語言有了更深一步的認識。編程是一件十分鍛煉人的工作。編程要首先對所做的事有一個整體上的把握,編出的程序要有效率,有
96、更簡單的代碼實現(xiàn)同樣的功能。編程是一件鍛煉人耐心的事情。編程遇到問題時要謙虛的向別人請教。編程對于自己是毫無拘束的,但對于別人是要清晰明了的。這也是一種交流。</p><p> 課程設(shè)計是把我們所學(xué)的理論知識進行系統(tǒng)的總結(jié)并運用于實際的良好機會,有利于我們運用理論知識解決實際問題的能力,進而加強了我們對知識認識的實踐能力,鞏固我們的理論知識,加深我們對知識的認識。這次課設(shè)我遇到了好多困難和麻煩,得到了老師的幫助
97、和指導(dǎo),才能使這次課設(shè)順利進行下去。 </p><p> 通過本次論文設(shè)計,我初步學(xué)會了論文設(shè)計的基本方法,學(xué)會了怎樣去借鑒別人的方法和經(jīng)驗,知道如何去查找資料和整合處理這些資料的能力,這為以后的大學(xué)畢業(yè)設(shè)計論文打下了一個初步的基礎(chǔ)。</p><p><b> 五 參考文獻</b></p><p> [1] 凱利(美),波爾A(美);.C
98、語言教程.機械工業(yè)出版社,2007</p><p> [2] 劉振安 劉燕君.C 程序設(shè)計教程.機械工業(yè)出版社,2008</p><p> [3] 徐寶文, 李志.C 程序設(shè)計語言.北京:機械工業(yè)出版社,2000</p><p><b> 附錄</b></p><p><b> 附程序源代碼</b
99、></p><p> #include <stdio.h></p><p> #include <stdlib.h></p><p> #include <string.h></p><p> struct list</p><p><b> {</b
100、></p><p> char name[60];</p><p> char singer[60];</p><p> char style[60];</p><p><b> };</b></p><p> /*---------------------------------
101、----------------------------------------------*/</p><p> int dq(struct list st[]);</p><p> void display();//顯示</p><p> void keep(struct list st[]);</p><p> void ad
102、d(); /*增加*/</p><p> void lookover(); /*查看*/</p><p> void find();/*查找*/</p><p> void findbyname(); /*歌名查找*/</p><p> void findbysinger(); /*歌手查找*/</p><p&
103、gt; void del(); /*刪除*/</p><p> void songdele();/*按歌名刪除*/</p><p> void singerdele();/*按歌手刪除*/</p><p> void styledele();/*按歌曲風(fēng)格刪除*/</p><p> void change(); /*修改*/&
104、lt;/p><p> void keepa();</p><p> void back();</p><p> void author();</p><p> struct list st[300]; //這個數(shù)組用來保存所有的歌曲信息 和文件里面的一致</p><p> int Number=0; //記錄總的
105、歌曲數(shù)目 也就是數(shù)組/文件里面的歌曲數(shù)目</p><p> /*-----------------------------------------------------------------------------主函數(shù)*/</p><p> void main()</p><p><b> {</b></p><
106、p> int choose=0;</p><p> FILE *fp=NULL;</p><p> char yesorno;</p><p> if((fp=fopen("C://list.dat","rb"))==NULL)</p><p><b> {</b>
107、</p><p> printf("\n=========>提示:文件不存在,是否要創(chuàng)建一個?(y/n)\n");</p><p> scanf("%c",&yesorno);</p><p> if(yesorno=='y'||yesorno=='Y')</p>
108、<p><b> { </b></p><p> //這里僅為了建立文件</p><p> fp=fopen("C://list.dat","wb");</p><p> fclose(fp);</p><p><b> }</b>&l
109、t;/p><p><b> else</b></p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {<
110、/b></p><p> Number=dq(st); //要是文件已經(jīng)有數(shù)據(jù) 將數(shù)據(jù)初始化到數(shù)組中</p><p><b> }</b></p><p> system("cls");</p><p><b> while(1) </b></p>&
111、lt;p><b> { </b></p><p> display();</p><p> printf(" ========>請選擇:");</p><p> scanf("%d",&choose);</p>&
112、lt;p> system("cls");</p><p> switch(choose)</p><p><b> {</b></p><p> case 0: exit(0);</p><p><b> //退出 </b></p><p>
113、;<b> break; </b></p><p> case 1: add();</p><p> back();//增加歌曲信息</p><p><b> break; </b></p><p> case 2: lookover();</p><p> ba
114、ck();//查看歌曲信息</p><p><b> break; </b></p><p> case 3: find();</p><p> back();// 查找 </p><p><b> break;</b></p><p> case 4: del()
115、; </p><p> back();//刪除 </p><p><b> break;</b></p><p> case 5: change();</p><p> back();//修改</p><p><b> break; </b></p>
116、<p> case 6:author();</p><p> back();//作者</p><p><b> break;</b></p><p> case 7:keepa();</p><p> back();//保存 </p><p><b> break;
117、</b></p><p><b> default:</b></p><p> if (choose<0||choose>7)</p><p> printf ("錯誤的選擇也可能有美麗的邂逅,但這次不是,回車吧");</p><p><b> break;&
118、lt;/b></p><p><b> }</b></p><p> fflush(stdin);//不懂</p><p> getchar();//不懂</p><p> system("cls");</p><p><b> }</b>
119、</p><p><b> }</b></p><p> /*-----------------------------------------------------------------------------------------保存*/</p><p> void keepa()</p><p><
120、;b> {</b></p><p> printf("\t=====程序在運行時已自動保存.....\n");</p><p><b> }</b></p><p> /*----------------------------------------------------------------
121、-------------------------返回*/</p><p> void back()</p><p><b> {</b></p><p> printf("\t===>按Enter鍵返回主菜單\n");</p><p><b> }</b><
122、/p><p> /*-----------------------------------------------------------------------------------------修改*/</p><p> void change()</p><p><b> {</b></p><p> int
123、way=0;</p><p> FILE *fp=NULL;</p><p> char name[60];</p><p><b> int i=0;</b></p><p> int changeIndex=0;</p><p> int index=0;</p>&l
124、t;p> printf("請輸入要修改的歌曲名稱:");</p><p> scanf("%s",name);</p><p> for (i=0;i<Number;i++)</p><p><b> {</b></p><p> if (strcmp(nam
125、e,st[i].name)==0)</p><p> {changeIndex=i; //保存要修改的歌曲的下標</p><p><b> }</b></p><p><b> break;</b></p><p><b> }</b></p><p
126、> printf("\t%16s\t%16s%16s\n\n",st[changeIndex].name,st[changeIndex].singer,st[changeIndex].style);</p><p> printf("請重新輸入此歌曲信息");</p><p> printf("歌名:");</p
127、><p> scanf("%s",st[changeIndex].name);</p><p> printf("歌手:");</p><p> scanf("%s",st[changeIndex].singer);</p><p> printf("風(fēng)格:"
128、);</p><p> scanf("%s",st[changeIndex].style);</p><p> //信息修改后重新更新文件里面的數(shù)據(jù) 以保持數(shù)據(jù)一致性</p><p> fp=fopen("C://list.dat","wb");</p><p> for (
129、i=0;i<Number;i++)</p><p><b> {</b></p><p> fwrite(&st[i],sizeof(struct list),1,fp);</p><p><b> }</b></p><p> fclose(fp);</p>&
130、lt;p><b> }</b></p><p> /*------------------------------------------------------------------------------------------刪除*/</p><p> void del()//刪除 </p><p><b> {
131、</b></p><p><b> int n=0;</b></p><p> printf("1 按歌名刪除\n");</p><p> printf("2 按歌手刪除\n");</p><p> printf("3 按風(fēng)格刪除\n");&
132、lt;/p><p> scanf("%d",&n);</p><p><b> switch(n)</b></p><p><b> {</b></p><p> case 1: songdele();</p><p><b> b
133、reak;</b></p><p> case 2: singerdele();</p><p><b> break;</b></p><p> case 3: styledele();</p><p><b> }</b></p><p><b&
134、gt; }</b></p><p> void songdele()//按歌名刪除 </p><p><b> {</b></p><p> FILE *fp=NULL;</p><p> char name[60];</p><p><b> int i=0;&
135、lt;/b></p><p><b> int j=0;</b></p><p> printf("請輸入要刪除歌曲名稱:");</p><p> scanf("%s",name);</p><p> for(i=0;i<Number;i++)</p>
136、;<p><b> {</b></p><p> if (strcmp(name,st[i].name)==0) //如果查找到就刪除</p><p><b> {</b></p><p> for (j=i;j<Number-1;j++)</p><p><b&g
137、t; {</b></p><p> st[j]=st[j+1];</p><p><b> }</b></p><p><b> Number--;</b></p><p><b> }</b></p><p><b>
138、 }</b></p><p> //將剩余數(shù)據(jù)寫入文件 重新一寫的方式打開文件 把以前的數(shù)據(jù)擦除了</p><p> fp=fopen("C://list.dat","wb");</p><p> for (i=0;i<Number;i++)</p><p><b>
139、 {</b></p><p> fwrite(&st[i],sizeof(struct list),1,fp);</p><p><b> }</b></p><p> fclose(fp);</p><p> printf("刪除成功;\n");</p>&
140、lt;p><b> }</b></p><p> void singerdele()//按歌手刪除 </p><p><b> {</b></p><p> FILE *fp=NULL;</p><p> char singer[60];</p><p>&l
141、t;b> int i=0;</b></p><p><b> int j=0;</b></p><p> printf("請輸入要刪除歌手姓名:");</p><p> scanf("%s",singer);</p><p> for(i=0;i<
142、Number;i++)</p><p><b> {</b></p><p> if (strcmp(singer,st[i].singer)==0) //如果查找到就刪除</p><p><b> {</b></p><p> for (j=i;j<Number-1;j++)<
143、/p><p><b> {</b></p><p> st[j]=st[j+1];</p><p><b> }</b></p><p><b> Number--;</b></p><p><b> }</b></p&
144、gt;<p><b> }</b></p><p> //將剩余數(shù)據(jù)寫入文件 重新一寫的方式打開文件 把以前的數(shù)據(jù)擦除了</p><p> fp=fopen("C://list.dat","wb");</p><p> for (i=0;i<Number;i++)</p&
145、gt;<p><b> {</b></p><p> fwrite(&st[i],sizeof(struct list),1,fp);</p><p><b> }</b></p><p> fclose(fp);</p><p> printf("刪除成功
146、;\n");</p><p><b> }</b></p><p> void styledele()//按風(fēng)格刪除 </p><p><b> {</b></p><p> FILE *fp=NULL;</p><p> char style[60];&
147、lt;/p><p><b> int i=0;</b></p><p><b> int j=0;</b></p><p> printf("請輸入要刪除的歌曲風(fēng)格:");</p><p> scanf("%s",style);</p>&l
148、t;p> for(i=0;i<Number;i++)</p><p><b> {</b></p><p> if (strcmp(style,st[i].style)==0) //如果查找到就刪除</p><p><b> {</b></p><p> for (j=i;j&
149、lt;Number-1;j++)</p><p><b> {</b></p><p> st[j]=st[j+1];</p><p><b> }</b></p><p><b> Number--;</b></p><p><b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計--學(xué)生信息管理
- c語言課程設(shè)計--職工信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--- 學(xué)生信息管理系統(tǒng)
- 職工信息管理系統(tǒng)c語言課程設(shè)計
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計——學(xué)生信息管理系統(tǒng)
- 教師信息管理系統(tǒng)(c語言課程設(shè)計)
- c語言課程設(shè)計報告課程信息管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)-c語言課程設(shè)計
- c語言課程設(shè)計——歌曲信息管理系統(tǒng)
- c語言課程設(shè)計職工信息管理系統(tǒng)
- c語言課程信息管理系統(tǒng)課程設(shè)計報告
- c語言課程設(shè)計-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計—圖書信息管理
- c語言課程設(shè)計——職工信息管理系統(tǒng)
- c語言課程設(shè)計——歌曲信息管理系統(tǒng)
評論
0/150
提交評論