版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、高級語言程序設(shè)計(jì)課程設(shè)計(jì)說明書設(shè)計(jì)題目:歌曲信息管理系統(tǒng)設(shè)計(jì)目錄1、 設(shè)計(jì)題目·····································32、 主函數(shù)·····
2、183;·································43、 輸入模塊···············
3、······················44、 刪除模塊··························
4、3;··········55、 瀏覽模塊·····································66、 查找模塊
5、·····································67、 各被調(diào)函數(shù)···········
6、83;·······················78、 設(shè)計(jì)小結(jié)·························&
7、#183;···········89、 源程序代碼···································8歌曲信息管理系統(tǒng)設(shè)
8、計(jì)1、需求分析:用文件存儲(chǔ)信息,因而要提供文件的輸入輸出操作;可對歌曲信息進(jìn)行輸入、刪除、瀏 覽,因而要提供文件的輸入、刪除和信息顯示操作;查詢歌曲信息要提供查找操作;實(shí)現(xiàn)按 作者分組顯示功能則要提供排序功能;另外要提供鍵盤式選擇菜單以實(shí)現(xiàn)功能選擇。 2、總體設(shè)計(jì):整個(gè)管理系統(tǒng)可以被設(shè)計(jì)為數(shù)據(jù)輸入模塊、數(shù)據(jù)刪除模塊、信息瀏覽模塊、信息查詢模塊和信息分組顯示模塊。 3、詳細(xì)設(shè)計(jì) 數(shù)據(jù)結(jié)構(gòu)采用結(jié)構(gòu)體,建立歌曲信息結(jié)構(gòu)體: Struct SongInfo Char name20; /歌曲名 Char author20; /作者 Char singer20; /演唱者 Char pub_date6;
9、/發(fā)行年月(yyyymm) SI; (1) 數(shù)據(jù)輸入模塊 把歌曲信息寫入文件。 (2) 數(shù)據(jù)刪除模塊 采用基本的查找算法,查找歌曲信息文件,如果是要?jiǎng)h除的歌曲,則舍棄改信息。否則 重新寫入文件。 (3) 信息瀏覽模塊 讀歌曲信息文件,顯示輸出。 (4) 信息查詢模塊 通過菜單選擇查詢字段:歌曲名 作者 演唱者。 然后采用基本查找算法在歌曲信息 文件中查找,如果找到,則輸出;否則輸出“對不起,沒有您要找的歌曲信息!。 ” (5) 信息分組顯示模塊 選擇按作者分組顯示歌曲信息,用 fread 或 fscanf 把歌曲信息文件中的信息讀取到臨時(shí) 變量中(臨時(shí)變量數(shù)據(jù)結(jié)構(gòu)可以采用歌曲信息結(jié)構(gòu)體數(shù)組)
10、,采用排序算法(冒泡、插入、 選擇等)把歌曲信息按照作者排序,然后輸出。 一: 詳細(xì)設(shè)計(jì)1 主函數(shù)主函數(shù)的設(shè)計(jì)提供數(shù)據(jù)輸入、數(shù)據(jù)處理和數(shù)據(jù)輸出以及各種函數(shù)的調(diào)用。其中各功能模塊用菜單方式選擇;另外,部分菜單也可以寫成函數(shù)。 程序 void main()void menu();void function1();void function2();void function3();void function4();menu();return;2 各功能模塊設(shè)計(jì)(1)輸入模塊信息輸入時(shí)直接按順序結(jié)構(gòu)(如圖2)輸入:void input() char ch; n=0; if(fp=fopen("
11、;song.txt","a")=NULL) printf("can't open file song.txt"); exit(0); printf("Please input a record:"); for(n=0;n<=50;) printf("nrecord %d:n歌名:",n+1); gets(); printf("n時(shí)間:"); gets(songn.year); printf("n作者:"); gets(songn.a
12、uthor); printf("n歌手:"); gets(songn.singer); n+; printf("繼續(xù)輸入嗎? (y/n)n"); ch=getchar();getchar(); if(ch='n') break; fwrite(song,sizeof(song0),n,fp); fclose(fp); 2 刪除模塊:用戶輸入要?jiǎng)h除的信息,如輸入歌曲名 ,根據(jù)歌曲名找到其他記錄并刪除。程序/*刪除模塊*/void del() int m,k=0;long a;char namekey8;printf("n請輸入您要
13、刪除的歌曲名:");scanf("%s",namekey);if(fp=fopen("song.txt","r+")=NULL) printf("n不能打開該文件!");exit(0);while(!feof(fp)a=ftell(fp); fscanf(fp,"%6s %5s %5s %10sn",,songn.year,songn.author,songn.singer);if(strcmp(namekey,)=0)k=1;break;if(
14、k=1)printf("n已查到,記錄為");printf("n%6s %5s %5s %10sn",,songn.year,songn.author,songn.singer);printf("n確實(shí)要?jiǎng)h除,按1;不刪除,按0:");scanf("%d",&m);if(m=1)fseek(fp,a,0);fprintf(fp,"%s %s %s %sn"," " ," "," "," "
15、);elseprintf("n對不起,查無此人。");fclose(fp); 3·瀏覽模塊:在用戶按下菜單后直接顯示出所有歌曲信息。void xianshi() n=0; if(fp=fopen("song.txt","rb")=NULL) printf("can't open the file song.txt"); exit(0); printf(" 歌名t 作者t 歌手 時(shí)間 n"); while(fread(&songn,sizeof(songn),1,fp)=
16、1) printf("%6s %5s %10s %5sn",,songn.author,songn.singer,songn.year); n+; fclose(fp);4·查找模塊:用戶輸入要查找的歌曲名或歌曲的任意信息,按菜單鍵。void searchname() int a=0; char ch; n=0; if(fp=fopen("song.txt","rb")=NULL) printf("can not open the file.n "); exit(0); while(f
17、read(&songn,sizeof(songn),1,fp)=1) n+; a=n; printf("用什么方式查詢?n"); printf("1.歌名 2.時(shí)間 3.歌手n"); ch=getchar();getchar(); switch(ch) case '1': printf(" 輸入你要查的歌名:n"); gets(numstr); for(n=0;n<a;) if(!strcmp(numstr,) break; n+; break; case '2': p
18、rintf("輸入你要查的歌曲時(shí)間n"); gets(numstr); for(n=0;n<a;) if(atol(numstr)=songn.year) break; n+; break; case '3': printf("輸入你要查的歌手n"); gets(numstr); for(n=0;n<a;) if(!strcmp(numstr,songn.singer) break; n+; break; printf(" 歌名 作者 歌手 時(shí)間 n"); printf("%6s %5s %5s
19、%10sn",,songn.year,songn.author,songn.singer); fclose(fp); 6 各種被調(diào)函數(shù)(1)insert函數(shù):數(shù)據(jù)的插入,用于個(gè)人的信息的補(bǔ)錄,包括姓名、工作單位、電話號碼和email地址。(2)del函數(shù):用于通訊錄中個(gè)人信息的刪除。(3)change函數(shù):用于通訊錄中個(gè)人信息的修改,輸入人名,對人名所對應(yīng)的機(jī)構(gòu)體內(nèi)容進(jìn)行修改(包括姓名、工作單位、電話號碼和email信息)。(4)searchname函數(shù):用于輸入姓名查找個(gè)人信息。如果通訊錄中沒有此人信息,顯示“查無此人!”。(5)searchnum函數(shù):用于輸入
20、電話號碼查詢個(gè)人信息。如果通訊錄中沒此人信息,顯示“查無此人!”。(6)show函數(shù):用于個(gè)人全部信息的顯示。(7)income函數(shù):用于所有原始個(gè)人信息的錄入(包括姓名、電話號碼、工作單位和email地址)。設(shè)計(jì)小結(jié):本程序大體參考與網(wǎng)上信息,說實(shí)話,這程序我無法完成,但又必須做,即使不會(huì)或者做不完美,但是也要盡力去做,做這個(gè)程序是要我們能夠使用所學(xué)的內(nèi)容,這次設(shè)計(jì),讓我重新掌握了C語言,而且還得到了用C語言解決實(shí)際問題的寶貴經(jīng)驗(yàn),也從中學(xué)到了很多東西。讓我懂得了做什么事都要有耐心,要有對什么事都認(rèn)真仔細(xì)的品質(zhì),讓我學(xué)會(huì)了很多以前不懂的東西,使我更加意識到實(shí)踐的重要性!三 :原程序#incl
21、ude <stdio.h>#include <stdlib.h>#include <malloc.h>#include <string.h>int i=0;struct system char author20;char singer20;char time20;char name20; dan100;void enter()int j;char c2;FILE *fp; if(fp=fopen("data.txt","w")=NULL)printf("Can not open the file!
22、n");exit(0);for(j=0;j<i;j+) fwrite(&danj,sizeof(struct system),1,fp); while(1)printf("Please input the author:n");scanf("%s",dani.author);printf("Please input the song's name:n");scanf("%s",);printf("Please input the singer:n"
23、;);scanf("%s",dani.singer);printf("Please input the outday:n");scanf("%s",dani.time);if(fwrite(&dani+,sizeof(struct system),1,fp)!=1)printf("File write errorn");else printf("Successful!n");printf("Is there any more?( Yesy/Non) n");scanf
24、("%s",c);if(strcmp(c,"n")=0)break; fclose(fp);void delete() int j,v,c;char w20; FILE *fp;printf("Please input the song'name which you want to delete:");scanf("%s",w); fp=fopen("data.txt","rb"); for(j=0;j<100;j+) if(fread(&danj,si
25、zeof(struct system),1,fp)!=1) break;v=j;for(j=0;j<v;j+) if(strcmp(w,)=0)c=j; fclose(fp);fp=fopen("data.txt","wb"); for(j=0;j<v;j+) if(j!=c) fwrite(&danj,sizeof(struct system),1,fp); fclose(fp);printf("Delete OK!n");i-;void browse() int j; FILE *fp; fp
26、=fopen("data.txt","rb"); for(j=0;j<100;j+) if(fread(&danj,sizeof(struct system),1,fp)=1)printf("Name:%sn",);printf("Author:%sn",danj.author);printf("Singer:%sn",danj.singer);printf("Outday:%sn",danj.time);printf("-n&quo
27、t;);else break; fclose(fp);void search() int flag,j,x;char w20;FILE *fp;char v20; printf("(1)By authorn"); printf("(2)By singern");printf("(3)By namen");printf("Please choose which you want to search:n");scanf("%d",&x); if(x=3) flag=0;printf(&quo
28、t;Please input the song's name:"); scanf("%s",&w); fp=fopen("data.txt","rb"); for(j=0;j<100;j+) if(fread(&danj,sizeof(struct system),1,fp)!=1) break; if(strcmp(,w)=0) printf("Name:%sn",);printf("Author:%sn",danj.
29、author);printf("Singer:%sn",danj.singer);printf("Outday:%sn",danj.time);printf("-n");flag=1; if(flag=0)printf("Cannot find the song!n"); fclose(fp);else if(x=2) flag=0;printf("Please input the singer:"); scanf("%s",&v); fp=fopen("d
30、ata.txt","rb"); for(j=0;j<100;j+) if(fread(&danj,sizeof(struct system),1,fp)!=1) break; if(strcmp(danj.singer,v)=0) printf("Name:%sn",);printf("Author:%sn",danj.author);printf("Singer:%sn",danj.singer);printf("Outday:%sn",danj.time);printf("-n");flag=1; if(flag=0)printf("Cannot find the song!n"); fclose(fp); else if(x=1) flag=0;printf("Please inp
溫馨提示
- 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- JJF 2160-2024激光共聚焦顯微鏡校準(zhǔn)規(guī)范
- 課件講稿職場教學(xué)課件
- 2024年展覽策劃與組織合同
- 2024年度獎(jiǎng)學(xué)金獎(jiǎng)品采購合同
- 2024年度鋼材生產(chǎn)設(shè)備采購合同
- 2024購銷違約合同范本范文
- 2024融資互相擔(dān)保合同范本
- 2024年子女撫養(yǎng)權(quán)協(xié)議書范本
- 2024年度標(biāo)的500萬元廣告發(fā)布合同
- 2024就新能源公交車采購的買賣合同
- 實(shí)驗(yàn)室定期自查制度
- 建設(shè)施工合同書證據(jù)目錄
- 7 中華民族一家親 互相尊重 守望相助 教學(xué)設(shè)計(jì)-2024-2025學(xué)年道德與法治五年級上冊統(tǒng)編版
- 2024年高考?xì)v史真題+模擬題專項(xiàng)版匯編專題03古代中國的思想文化與科技含解析
- 中醫(yī)疫病防治
- 2024九年級英語下冊 Unit 7 Work for PeaceLesson 39 Having Good Relationships in Your Community教學(xué)設(shè)計(jì)(新版)冀教版
- 《深海》中的色彩敘事與鏡像闡釋
- 2023年中考英語備考讓步狀語從句練習(xí)題(附答案)
- JGJ/T235-2011建筑外墻防水工程技術(shù)規(guī)程
- ISO9001:2015內(nèi)部質(zhì)量審核控制程序
- 柔性生產(chǎn)線設(shè)計(jì)
評論
0/150
提交評論