C语言程序设计报告—歌曲信息管理系统

合集下载

歌曲管理系统c语言课程设计

歌曲管理系统c语言课程设计

歌曲管理系统c语言课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握歌曲管理系统的基本原理和C语言编程;技能目标要求学生能够运用C语言编写简单的歌曲管理程序;情感态度价值观目标要求学生培养对计算机科学和编程的兴趣,提高解决问题的能力。

二、教学内容教学内容主要包括C语言基础知识、歌曲管理系统的设计与实现。

具体安排如下:1.第一部分:C语言基础知识(2课时)介绍C语言的基本语法、数据类型、运算符、控制结构等。

2.第二部分:歌曲管理系统的设计与实现(4课时)介绍歌曲管理系统的基本功能、设计思路和实现方法。

三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。

1.讲授法:用于讲解C语言的基本语法和概念。

2.案例分析法:通过分析实际案例,让学生掌握歌曲管理系统的设计与实现。

3.实验法:让学生动手编写代码,培养实际编程能力。

四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:《C程序设计语言》2.参考书:《C语言编程教程》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络环境五、教学评估本课程的评估方式包括平时表现、作业和考试。

平时表现占30%,主要评估学生的课堂参与度和提问回答;作业占30%,主要评估学生的编程能力和对知识的掌握;考试占40%,主要评估学生的综合运用能力。

评估方式客观、公正,全面反映学生的学习成果。

六、教学安排教学进度共安排8课时,每课时45分钟。

第1-2课时进行C语言基础知识讲解,第3-6课时进行歌曲管理系统的设计与实现教学,第7-8课时进行课程总结和复习。

教学地点选在计算机实验室,确保学生能够动手实践。

教学安排合理、紧凑,确保在有限的时间内完成教学任务,同时考虑学生的实际情况和需要。

七、差异化教学根据学生的不同学习风格、兴趣和能力水平,本课程将设计差异化的教学活动和评估方式。

对于学习风格偏向实践的学生,提供更多动手实践的机会;对于学习风格偏向理论的学生,提供更多理论学习的机会。

C语言课程设计歌曲信息管理源代码

C语言课程设计歌曲信息管理源代码

C语言课程设计歌曲信息管理源代码#include "stdio.h"#include "string.h"#include "conio.h"#include "stdlib.h"struct music_list{char name[10];char singer[25];char ci[25];char qu[25];char zhuanji[25];char fxtime[25];char fxgongsi[25];int flag;};int count=0;const int MAX_COUNT = 100;void new_music(struct music_list musics[]);void delete_music_byname(struct music_list musics[],char* name); void search_music(struct music_list musics[],char*name);void show_all(struct music_list musics[]);int main(){ int choice;char name[10];struct music_list musics[MAX_COUNT];int i;for(i=0;i<MAX_COUNT;i++){musics[i].flag = 0;}T:do{printf("*******************************************************\n");printf("\nselect:1:new music 2:search 3:delete 4:show all 0:Exit\n");printf("*******************************************************\n");printf("please:");scanf("%d",&choice);switch(choice){case 1:new_music(musics);break;case 2:printf("Name:");scanf("%s",name);search_music(musics,name);break;case 3:printf("Name:");scanf("%s",name);delete_music_byname(musics,name);break;case 4:show_all(musics);break;case 0:break;default:choice = 0;}}while(choice !=0);printf("Thanks,Bye!\n");getch();return 0;}void new_music(struct music_list musics[]) {if(count==MAX_COUNT){printf("address list is full!\n");return;}int i,j;for(i=0;i<MAX_COUNT;i++){if(musics[i].flag == 0){j = i;break;}}printf("name:");scanf("%s",musics[j].name);printf("geshou:");scanf("%s",musics[j].singer);printf("zuoci:");scanf("%s",musics[j].ci);printf("zuoqu:");scanf("%s",musics[j].qu);printf("zhuanji:");scanf("%s",musics[j].zhuanji);printf("chubanshijian:");scanf("%s",musics[j].fxtime);printf("chubangongsi:");scanf("%s",musics[j].fxgongsi);musics[j].flag = 1;count++;}void search_music(struct music_list musics[],char*name){int i,j,flag=0;if(count==0){printf("Music list is empty!\n");return;}for(i=0;i<MAX_COUNT;i++){if(strcmp(name,musics[i].name)==0 && musics[i].flag == 1){if(flag == 0) {printf("====================================================== =\n");printf("name\t",musics[i].name);printf("singer\t",musics[i].singer);printf("ci\t",musics[i].ci);printf("qu\t",musics[i].qu);printf("zhuanji\t",musics[i].zhuanji);printf("fxtime\t",musics[i].fxtime);printf("fxgongsi\t",musics[i].fxgongsi);printf("\n==================================================== ===\n");flag=1;}printf("%s\t",musics[i].name);printf("%s\t",musics[i].singer);printf("%s\t",musics[i].ci);printf("%s\t",musics[i].qu);printf("%s\t",musics[i].zhuanji);printf("%s\t",musics[i].fxtime);printf("%s\t\n",musics[i].fxgongsi);}}if(flag!=1){printf("No such a music!");}}void show_all(struct music_list musics[]){if(count==0){printf("Music list is empty!\n");return;}int i,flag=0;;for(i=0;i<MAX_COUNT;i++){if(musics[i].flag == 1){if(flag == 0) {printf("====================================================== =\n");printf("name\t",musics[i].name);printf("singer\t",musics[i].singer);printf("ci\t",musics[i].ci);printf("qu\t",musics[i].qu);printf("zhuanji\t",musics[i].zhuanji);printf("fxtime\t",musics[i].fxtime);printf("\n==================================================== ===\n");flag=1;}printf("%s\t",musics[i].name);printf("%s\t",musics[i].singer);printf("%s\t",musics[i].ci);printf("%s\t",musics[i].qu);printf("%s\t",musics[i].zhuanji);printf("%s\t",musics[i].fxtime);printf("%s\t\n",musics[i].fxgongsi);}}}void delete_music_byname(struct music_list musics[],char* name){int i,j,flag=0;if(count==0){printf("Music list is empty!\n");return;}for(i=0;i<MAX_COUNT;i++){if(strcmp(name,musics[i].name)==0 && musics[i].flag == 1){musics[i].flag = 0;count --;if(flag == 0) {printf("The music \" %s \" was deleted.\n",musics[i].name);printf("====================================================== =\n");printf("name\t",musics[i].name);printf("singer\t",musics[i].singer);printf("ci\t",musics[i].ci);printf("qu\t",musics[i].qu);printf("zhuanji\t",musics[i].zhuanji);printf("fxtime\t",musics[i].fxtime);printf("\n==================================================== ===\n");flag=1;}printf("%s\t",musics[i].name);printf("%s\t",musics[i].singer);printf("%s\t",musics[i].ci);printf("%s\t",musics[i].qu);printf("%s\t",musics[i].zhuanji);printf("%s\t",musics[i].fxtime);printf("%s\t\n",musics[i].fxgongsi);}}if(flag!=1){printf("No such a music!");}}。

C语言程序设计报告—歌曲信息管理系统

C语言程序设计报告—歌曲信息管理系统

目录1 C语言程序设计目的 (1)2题目及需求分析 (1)2.1系统基本功能 (1)2.2具体设计思想 (1)2.3系统的总体流程图 (1)3 .总体设计 (1)3.1主函数设计 (1)3.2各个函数的设计具体设计思想和流程图 (1)4.详细设计 (2)4.1主函数设计 (2)4.2各功能模块设计 (3)4.2.1 输入模块 (3)4.2.2 删除模块 (4)4.2.3 浏览模块 (5)4.2.4 查找模块 (5)4.2.5 公共函数 (7)5 上机操作 (8)6 心得体会 (15)一、C语言课程设计的目的:高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。

其目的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。

提高学生适应实际,实践编程的能力。

二、题目:歌曲信息管理系统需求分析:制作一个歌曲信息管理系统使之有以下功能1 歌曲信息包括歌曲名,作者,演唱者,发行年月等。

2 可以对歌曲信息进行输入,删除,浏览。

3 可以查询歌曲名,作者,演唱者信息。

4 可以提供按作者显示功能。

5 用文件存储信息。

三总体设计根据分析,整个系统可设计为以下4个模块:信息输入模块,删除模块,浏览模块。

查找模块。

信息删除:根据输入的歌曲名,作者,演唱者等一项可以删除对应的其他项信息浏览:可以直接浏览歌曲,作者,演唱者,发行年月。

信息查找:可以查找歌曲,作者等。

四详细设计1主函数主函数的设计提供数据输入、数据处理和数据输出以及各种函数的调用。

其中各功能模块用菜单方式选择;另外,部分菜单也可以写成函数。

(流程图如下图1 )[程序]void main(){void menu();void function1();void function2();void function3();void function4();menu();return;}(图 1 )2 各功能模块设计(1)输入模块信息输入时直接按顺序结构(如图2)输入:void input(){ char ch;n=0;if((fp=fopen("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(song[n].name);printf("\n时间:");gets(song[n].year);printf("\n作者:");gets(song[n].author);printf("\n歌手:");gets(song[n].singer);n++;printf("继续输入吗?(y/n)\n");ch=getchar();getchar();if(ch=='n')break;}fwrite(song,sizeof(song[0]),n,fp);fclose(fp);}( 图2)2删除模块:用户输入要删除的信息,如输入歌曲名,根据歌曲名找到其他记录并删除。

歌曲信息管理系统

歌曲信息管理系统

题目要求该系统应该具有下列功能:(1)歌曲信息包括歌曲名,作者,演唱者,发行年月等。

(2)可以对歌曲信息进行输入,删除,浏览。

(3)可以查询歌曲名,作者,演唱者信息。

(4)可以提供按作者分组显示功能。

(5)用文件存储信息。

输入要求:应用程序运行后,在屏幕上显示一个菜单。

用户根据需求,选定相应的操作项目。

进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。

输出要求:要求用应用程序应用后,要在屏幕上显示一个菜单。

用户输入数据后,要给出清晰明确的提示信息,包括输入的数据内容、格式及结束方式等。

提示:设计时可采用结构体和一维数组类型,用来保存学生证的内容。

总体设计本题可采用结构体类型来保存学生证的内容,学生信息应该使用数组来进行过程中使用指针链表使其更方便。

根据要求,此程序需要设计以下几个模块:添加新歌曲模块,删除指定歌曲板块,修改指定歌曲显示,查询指定歌曲模块。

因此,可知其主要模式为:歌曲管理流程图否是具体设计,1、主函数歌曲的信息有歌曲名,作者,演唱者,发行年月。

因此用一个数组来保存学生证信息:struct song{char name[25];char writer[25];char singer[25];char year[25];}s[N],s1,s2,s3;menu( ) // 输入菜单int n;printf("\t****************************MENU************************* ***\n\n");printf("\t\t\t 1.Enter record\n"); /*输入记录*/printf("\t\t\t 2.List the file\n"); /*显示记录*/printf("\t\t\t 3.Search record\n"); /*查找记录*/printf("\t\t\t 4.Delete a record\n"); /*删除记录*/printf("\t\t\t 5.Add a record\n"); /*插入记录*/printf("\t\t\t 6.save the file\n"); /*保存文件*/printf("\t\t\t 7.Read the file\n"); /*读文件*/printf("\t\t\t 8.Display record on order\n"); /*按序号显示记录*/printf("\t\t\t 9.Sort record by writer\n"); /*按作者排序*/printf("\t\t\t 0.Exit\n"); /*退出*/printf("\n\n\t***************************************************** ****\n");do{printf("\n Choice your number(0-9):");scanf("%d",&n);}while(n<0||n>9);switch(n){case 1:length=enter();menu();break;case 2:list(length);break;case 3:search(length);break;case 4:length=delete(length);menu();break; case 5:length=add(length);menu();break; case 6:save(length);break;case 7:read();break;case 8:display(length);break;case 9:sort(length);break;case 0:exit(0);}}/***********主函数**********/main(){menu();}2、各功能模块设计(1)输入模块输入到song[]中,各个元素依次输入【程序】int enter() /*输入记录*/{int i;for(i=0;i<N;i++){printf("\n please input record or direct press Q to exit"); printf("\n Enter name:");scanf("%s",&s[i].name);if(s[i].name[0]=='Q'&&s[i].name[1]=='\0')break;printf(" Enter writer:");scanf("%s",&s[i].writer);printf(" Enter singer:");scanf("%s",&s[i].singer);printf(" Enter year:");scanf("%s",&s[i].year);printf("\nname writer singer year \n");printf("----------------------------------------------------\n");printf("%s, %s, %s,%s\n",s[i].name,s[i].writer,s[i].singer,s[i].year);printf("----------------------------------------------------\n");}return i;}(2)显示记录模块【程序】void list(int n) /*显示记录*/{int i;printf("\n\n\t************************LIST************************* *******\n\n");printf("\n name writer singer year \n");printf("\t----------------------------------------------------\n");for(i=0;i<n;i++)printf(" %s, %s, %s, %s\n",s[i].nam e,s[i].writer,s[i].singer,s[i].year);printf("\n\n\t***************************END*********************** *******\n");menu();}(3)查找模块【程序】void search(int n) /*查找记录*/{int m,i;printf("\n Search by:\n");printf("\n ");printf("\n 2.writer");printf("\n 3.singer");printf("\n 0.back");do{printf("choice your number(0-3):");scanf("%d",&m);}while(m<0||m>3);switch(m){case 1:printf("please enter name to search.\n");break; case 2:printf("please enter writer to search.\n");break; case 3:printf("please enter singer to search.\n");break;case 0:menu();}i=find(n,m);if(i>n-1)printf("not found\n");else{printf("\n name writer singer year \n");printf("----------------------------------------------------\n");printf(" %s, %s, %s, %s\n",s[i].name,s[i].wr iter,s[i].singer,s[i].year);printf("----------------------------------------------------\n");}menu();}int find(int n,int b){int i;switch(b){case 1:scanf("%s",);for(i=0;i<n;i++)if(strcmp(,s[i].name)==0) return i;break;case 2:scanf("%s",s3.writer);for(i=0;i<n;i++)if(strcmp(s3.writer,s[i].writer)==0) return i;break;case 3:scanf("%s",s3.singer);for(i=0;i<n;i++)if(strcmp(s3.singer,s[i].singer)==0) return i;break;}return i;}(4)删除模块【程序】int delete(int n) /*删除记录*/ {char delete[25];int i,j,p,ch;printf("\n Delete by:\n");printf("\n ");printf("\n 2.writer");printf("\n 3.singer");printf("\n 0.back");do{printf("choice your number(0-3):");scanf("%d",&p);}while(p<0||p>3);switch(p){case 1:printf("please enter name to delete.\n");break;case 2:printf("please enter writer to delete.\n");break;case 3:printf("please enter singer to delete.\n");break;case 0:return 0;}i=find(n,p);if(i>n-1)printf("not found to delete \n");else{printf("\n name writer singer year \n"); printf("----------------------------------------------------\n"); printf("%s,%s,%s,%s\n",s[i].name,s[i].writer,s[i].singer,s[i].year); printf("----------------------------------------------------\n");printf("Are you sure to delete it?(1/0)");scanf("%d",&ch);if(ch==1){for(j=i+1;j<n;j++){strcpy(s[j-1].name,s[j].name);strcpy(s[j-1].writer,s[j].writer);strcpy(s[j-1].singer,s[j].singer);strcpy(s[j-1].year,s[j].year);}n--;}}return n;(5)插入模块int add(int n) /*插入记录*/ {char locate[25];int i,j;printf("\n please input record or direct press Q to exit\n"); printf("\n Enter name:");scanf("%s",&);if([0]=='Q'&&[0]=='\0')return n;printf(" Enter writer:");scanf("%s",&s1.writer);printf(" Enter singer:");scanf("%s",&s1.singer);printf(" Enter year:");scanf("%s",&s1.year);printf("\nname writer singer year \n");printf("----------------------------------------------------\n"); printf("%s, %s, %s, %s\n",,s1.writer,s1.singer,s1.year); printf("----------------------------------------------------\n");printf("please input locate name\n"); i=find(n,1);for(j=n-1;j>=i;j--){strcpy(s[j+1].name,s[j].name);strcpy(s[j+1].writer,s[j].writer); strcpy(s[j+1].singer,s[j].singer); strcpy(s[j+1].year,s[j].year);}strcpy(s[i].name,);strcpy(s[i].writer,s1.writer);strcpy(s[i].singer,s1.singer);strcpy(s[i].year,s1.year);n++;return n;}(6)保存到文件int save(int n) /*保存文件*/ {int i;FILE*fp;if((fp=fopen("record.txt","w"))==NULL){printf("can not open file\n");return NULL;}printf("\nSaving file\n");for(i=0;i<n;i++)fprintf(fp,"%s %s %s%s\n",s[i].name,s[i].writer,s[i].singer,s[i].year);fclose(fp);printf("**********save success**********\n");menu();return 1;}(7)读取文件int read() /*读文件*/{int i;FILE*fp;if((fp=fopen("record.txt","r"))==NULL){printf("can not open file\n");return NULL;}printf("\n name writer singer year \n"); printf("----------------------------------------------------\n"); for(i=0;!feof(fp);i++){fscanf(fp,"%s %s %s%s\n",s[i].name,s[i].writer,s[i].singer,s[i].year);printf(" %s %s %s %s\n",s[i].name,s[i] .writer,s[i].singer,s[i].year);}printf("----------------------------------------------------\n");fclose(fp);printf("you have successed reading record from file!\n");menu();return 1;}(8)全部显示int display(int n) /*按序号显示记录*/{int a;FILE*fp;if((fp=fopen("record.txt","r"))==NULL){printf("can not open file\n");return NULL;}printf("Enter order number \n");scanf("%d",&a);if(a>=0&&a<n){fseek(fp,(a-2)*sizeof(s),1);printf("\n name writer singer year \n");printf("----------------------------------------------------\n");printf(" %s, %s, %s, %s\n",s[a-1].name,s[a-1].writer,s[a-1].singer,s[a-1].year);printf("----------------------------------------------------\n");}elseprintf("no %d number record!\n",a);fclose(fp);menu();}void sort(int n) /*按作者排序*/ {int i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if((strcmp(s[i].writer,s[j].writer))>0){s1=s[i];s[i]=s[j];s[j]=s1;}printf("\n name writer singer year \n"); printf("----------------------------------------------------\n"); for(i=0;i<n;i++)printf(" %s %s %s %s\n",s[i].name,s[i] .writer,s[i].singer,s[i].year);printf("----------------------------------------------------\n");printf("sort success!\n");menu();}void menu(){int n;printf("\t****************************MENU************************* ***\n\n");printf("\t\t\t 1.Enter record\n"); /*输入记录*/printf("\t\t\t 2.List the file\n"); /*显示记录*/printf("\t\t\t 3.Search record\n"); /*查找记录*/printf("\t\t\t 4.Delete a record\n"); /*删除记录*/printf("\t\t\t 5.Add a record\n"); /*插入记录*/printf("\t\t\t 6.save the file\n"); /*保存文件*/printf("\t\t\t 7.Read the file\n"); /*读文件*/printf("\t\t\t 8.Display record on order\n"); /*按序号显示记录*/printf("\t\t\t 9.Sort record by writer\n"); /*按作者排序*/printf("\t\t\t 0.Exit\n"); /*退出*/printf("\n\n\t***************************************************** *******\n");do{printf("\n Choice your number(0-9):");scanf("%d",&n);}while(n<0||n>9);switch(n){case 1:length=enter(s);break;case 2:list(length);break;case 3:search(length);break;case 4:length=delete(length);menu();break; case 5:length=add(length);menu();break; case 6:save(length);break;case 7:read();break;case 8:display(length);break;case 9:sort(length);break;case 0:exit(0);}}运行结果输入查找删除添加保存到文件读取文件按作者排序总结通过这次C程序设计,我掌握了模块化设计方法,能够深入的理解结构化程序设计思想,熟练运用结构化程序设计方法,提高了运用C语言进行程序设计的能力。

C语言课设之歌曲信息管理系统

C语言课设之歌曲信息管理系统

歌曲信息管理系统 一. 题目要求
1. 歌曲信息包括歌曲名,作者,演唱者,发行年月等。 2. 可以对歌曲信息进行输入,删除,浏览。 3. 可以查询歌曲名,作者,演唱者信息。 4. 可以提供按作者分组显示功能。
二. 需求分析
根据题目要求,数据以文件的形式存储,所以应提供文件的输入,输出等操作;还需 要文件具有查找,替换,修改数据的功能。
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,通系电1,力过根保管据护线生高0不产中仅工资2艺料22高试2可中卷以资配解料置决试技吊卷术顶要是层求指配,机置对组不电在规气进范设行高备继中进电资行保料空护试载高卷与中问带资题负料2荷试2,下卷而高总且中体可资配保料置障试时2卷,32调需3各控要类试在管验最路;大习对限题设度到备内位进来。行确在调保管整机路使组敷其高设在中过正资程常料1工试中况卷,下安要与全加过,强度并看工且25作尽52下可22都能护可地1关以缩于正小管常故路工障高作高中;中资对资料于料试继试卷电卷连保破接护坏管进范口行围处整,理核或高对者中定对资值某料,些试审异卷核常弯与高扁校中度对资固图料定纸试盒,卷位编工置写况.复进保杂行护设自层备动防与处腐装理跨置,接高尤地中其线资要弯料避曲试免半卷错径调误标试高方中等案资,,料要编试求5写、卷技重电保术要气护交设设装底备备置。4高调、动管中试电作线资高气,敷料中课并设3试资件且、技卷料中拒管术试试调绝路中验卷试动敷包方技作设含案术,技线以来术槽及避、系免管统不架启必等动要多方高项案中方;资式对料,整试为套卷解启突决动然高过停中程机语中。文高因电中此气资,课料电件试力中卷高管电中壁气资薄设料、备试接进卷口行保不调护严试装等工置问作调题并试,且技合进术理行,利过要用关求管运电线行力敷高保设中护技资装术料置。试做线卷到缆技准敷术确设指灵原导活则。。:对对在于于分调差线试动盒过保处程护,中装当高置不中高同资中电料资压试料回卷试路技卷交术调叉问试时题技,,术应作是采为指用调发金试电属人机隔员一板,变进需压行要器隔在组开事在处前发理掌生;握内同图部一纸故线资障槽料时内、,设需强备要电制进回造行路厂外须家部同出电时具源切高高断中中习资资题料料电试试源卷卷,试切线验除缆报从敷告而设与采完相用毕关高,技中要术资进资料行料试检,卷查并主和且要检了保测解护处现装理场置。设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

歌曲管理系统c语言课程设计

歌曲管理系统c语言课程设计

歌曲管理系统c语言课程设计一、课程目标知识目标:1. 理解C语言在开发歌曲管理系统中的应用,掌握基本的程序结构和编程语法。

2. 学习并运用数组、结构体、文件操作等C语言知识模块,实现对歌曲信息的管理。

3. 掌握模块化编程思想,将歌曲管理系统拆分为多个功能模块,并实现各模块间的协同工作。

技能目标:1. 能够运用C语言编写程序,创建并管理一个歌曲管理系统。

2. 学会使用C语言进行数据存储和读取,实现对歌曲信息的增加、删除、修改和查询功能。

3. 通过课程设计,提高编程实践能力,培养解决实际问题的编程思维。

情感态度价值观目标:1. 培养学生对C语言的兴趣和热情,激发学习积极性,树立编程自信心。

2. 培养学生的团队协作精神,学会与他人共同解决问题,提高沟通与协作能力。

3. 通过课程设计,使学生认识到编程在现实生活中的应用价值,激发他们将所学知识应用于解决实际问题的意识。

本课程针对高年级学生,课程性质为理论与实践相结合。

在分析课程性质、学生特点和教学要求的基础上,将课程目标分解为具体的学习成果,以便后续的教学设计和评估。

通过本课程的学习,使学生能够掌握C语言编程技能,提高解决实际问题的能力,并培养良好的团队协作和沟通能力。

二、教学内容1. C语言基础知识复习:数据类型、运算符、控制结构、函数等。

2. 数组与字符串操作:一维数组、二维数组、字符串处理,为歌曲信息存储打下基础。

3. 结构体与文件操作:结构体定义、结构体数组、结构体与文件读写,用于歌曲信息的管理。

4. 模块化编程:函数的定义与调用、模块划分、模块间数据传递,实现系统功能分解。

5. 歌曲管理系统功能实现:歌曲的增加、删除、修改、查询等操作。

6. 项目实践:以小组为单位,设计并实现一个完整的歌曲管理系统。

教学内容依据课程目标,结合教材相关章节进行选择和组织。

教学大纲安排如下:第一周:C语言基础知识复习;第二周:数组与字符串操作;第三周:结构体与文件操作;第四周:模块化编程;第五周:歌曲管理系统功能设计与实现;第六周:项目实践与展示。

C语言歌曲信息管理系统

C语言歌曲信息管理系统

学院:计算机学院专业:网络工程班级:***********姓名:**********学号:***********课题:歌曲信息管理系统指导老师:***********#include<stdio.h>#include<string.h>#include <stdlib.h>#define N 10struct song{char name_1[20]; /*the song name*/char name_2[20]; /*the writer name*/char name_3[20]; /*the singer name*/char album[20]; /*the ablum*/char date[20]; /*the date*/}Song[N]; /*每个数组元素对应一首歌曲信息*/void back() /*选择继续浏览还是返回主菜单*/{int w,n;void menu();void browse();n=0;do{printf("What do you want to do ?\\t n\n1.browse all now\t 2.back: [ ]\b\b"); scanf("%d",&w);if(w<1||w>2){n=1;printf("Input Error Please choice again\n\n\n\n");}else n=0;}while(n==1);switch(w){case 1:browse();break;case 2:menu();break;}}void input(int i){scanf("%s",Song[i].name_1);scanf("%s",Song[i].name_2);scanf("%s",Song[i].name_3);scanf("%s",Song[i].album);scanf("%s",Song[i].date);}/******************输入模块*****************/void enter(){FILE *fp;int i,n;n=N;printf("How many songs(0-%d)?",N-1);for(i=0;i<n;i++)printf("\nNow please enter %dth song information:\n",i+1);scanf("%s %s %s %s %s",Song[i].name_1,Song[i].name_2,Song[i].name_3,Song[i].album,Song[i ].date);}if((fp=fopen("d:/music.txt","a"))==NULL){printf("\n Cannot open file\n");}for(i=0;i<n;i++){fprintf(fp,"%s %s %s %s %s\n",Song[i].name_1,Song[i].name_2,Song[i].name_3,Song[i].album,S ong[i].date);}fclose(fp);back();}int load(){FILE *fp;int i;if((fp=fopen("d:/music.txt","r"))==NULL)printf("\nCannot open file\n");for(i=0;!feof(fp);i++)fscanf(fp,"%s %s %s %s %s",Song[i].name_1,Song[i].name_2,Song[i].name_3,Song[i].album,So ng[i].date);return(i-1); /* 返回记录个数*/}void print(int i){printf("%dth song:",i+1);printf("%s %s %s %s %s\n",Song[i].name_1,Song[i].name_2,Song[i].name_3,Song[i].album,Son g[i].date);}/******************浏览模块*****************/void browse(){int i,n;n=load();for(i=0;i<n;i++) /*利用循环逐个输出歌曲信息*/{print(i);puts("\n");}back();}/******************查找模块*****************/开始void search(){char s[20];int i,n,w,a;void print();void getch();w=0;n=load();do{printf("Please input the song's name you want:"); scanf("%s",s);for(i=0;i<n;i++)if(strcmp(s,Song[i].name_1)==0){print(i);w=1;}if(w==0){printf("\nThis song is not existed\n");}printf("do you want to continue?\n");printf("1.yes\n2.no\n");scanf("%d",&a);getch();}while(a==1);back();}/******************删除模块******************/void del(){FILE *fp;int i,j,n,flag,a;char name[20];n=load();printf("\n original songs:\n");for(i=0;i<n;i++)printf(" %dth:%s ",i+1,Song[i].name_1);n=i;do{printf("\n input song name deleted:\n"); scanf("%s",name);for(flag=1,i=0;flag&&i<n;i++){if(strcmp(Song[i].name_1,name)==0) {for(j=i;j<n-1;j++){strcpy(Song[j].name_1,Song[j+1].name_1); strcpy(Song[j].name_2,Song[j+1].name_2); strcpy(Song[j].name_3,Song[j+1].name_3); strcpy(Song[j].album,Song[j+1].album); strcpy(Song[j].date,Song[j+1].date);}flag=0;}}if(!flag)n=n-1;elseprintf("\n not found\n");printf("Now the songs are:\n\n");if((fp=fopen("d:/music.txt","w"))==NULL) {printf("\n Cannot open file\n");}for(i=0;i<n;i++)fwrite(&Song[i],sizeof(struct song),1,fp); fclose(fp);fp=fopen("d:/music.txt","r");for(i=0;i<n;i++)print(i);fclose(fp);puts("\n");printf("do you want to continue?\n"); printf("1.yes\n2.no\n");scanf("%d",&a);getch();}while(a==1);back();}/*******************按作者显示模块*******************/开始利用strcmp函数将作者名按从大到小的顺序排序用循环输出排序后的所有歌曲信息调用back()函数结束void list(){struct song s[1];int i,j,n;n=load();for(i=0;i<n-1;i++)for(j=i+1;j<n;j++){if((strcmp(Song[i].name_2,Song[j].name_2))>0){s[0]=Song[i];Song[i]=Song[j];Song[j]=s[0];}}for(i=0;i<n;i++){printf("%dth song:",i+1);printf("%s %s %s %s %s\n",Song[i].name_1,Song[i].name_2,Song[i].name_3,Song[i].album,Son g[i].date);}back();}/****************************主界面***************************/void menu(){int n,w;do{ puts("\n");puts("\t\t*********************MENU*********************\n\n");puts("\t\t\t\t 1.Enter new song");puts("\t\t\t\t 2.Browse all");puts("\t\t\t\t 3.Search");puts("\t\t\t\t 4.Delete");puts("\t\t\t\t 5.List by singer");puts("\t\t\t\t 6.Exit");puts("\n\n\t\t******************************************\n");printf("Choice your number(1-6): [ ]\b\b");scanf("%d",&n);if(n<1||n>6) /*对所选数字进行判断*/{w=1;printf("Input Error Please choice agin");}else w=0;}while(w==1);switch(n){case 1:enter();break;case 2:browse();break;case 3:search();break;/*search the information by song's name*/ case 4:del();break;case 5:list();break;/*find by writer*/case 6:exit(0);}}/*******主函数********/main(){ menu();}。

C语言课设.歌曲信息管理系统

C语言课设.歌曲信息管理系统

C语言课程设计实习报告姓名:汪通辉学号:20161003364 专业:电子信息工程班学号:071162院(系):机械与电子信息学院指导教师:董理君2016 年 1 2月2016.12 中国地质大学C语言课程设计 1第一章§1.1题目描述1.题目与要求1)制作一个歌曲信息管理系统2) 歌曲信息包括歌曲名,作者,演唱者,发行年月等。

3) 可以对歌曲信息进行输入,删除,浏览。

4) 可以查询根据歌曲名,作者,演唱者歌曲信息。

5) 可以提供按作者分组显示功能。

6) 用文件存储信息。

[需求分析]1)根据题目要求,数据以文件的形式存储,所以应提供文件的输入,输出等操作;还需要文件具有查找,修改数据,删除等功能。

§1.2算法设计1.流程图根据上面的需求分析,可以将这个系统的设计分为如下五大模块:*(其中“分组显示”功能未在程序中实现)2汪通辉 2016.12§1.3程序设计及代码分析1.定义声明程序:struct song { char name[20]; char author[20]; char singer[20]; char data[20];}so[N]; //定义结构体void menu(); void input(int i); void save(int n); void enter(); void browse(); void delet(); void search();void back(); //声明调用函数2.main 函数程序: int main() {system("color 74"); //改变界面颜色 menu(); exit(0); return 0; }2016.12 中国地质大学C语言课程设计 3 3.menu函数程序:void menu(){int n;system("cls");printf("\n\n\n\n\n\n\n\t\t\t\t ***************歌曲管理系统***************\n\n\n");printf("\t\t\t\t\t\t 1.存入歌曲。

c语言课程设计歌曲信息管理系统

c语言课程设计歌曲信息管理系统

告设计报课程歌曲信息管理系统题计目:课程设********学号:***姓名:专外包务业:电子商与软件*******:级班***指导教师:062014 月01 年日课程设计评分表学号:林禹森班级:学生姓名:课程设计题目:歌曲信息管理系统目录1.需求分析: (4)2.总体设计: (4)3.详细设计: (5)(1)主函数main(): (5)(2)初始化函数 (6)(3)歌曲录入函数 (8)(4)文件输入函数。

(9)(5)信息修改函数。

(10)(6)歌曲删除函数。

(12)(7 按歌手查询函数。

(13)(8)按公司查询函数。

(14)(9)歌曲导出或保存函数。

(15)(10)浏览函数。

(16)4.函数功能测试。

(18)初始化函数initialize(): (18)主菜单函数menu_song(): (19)浏览函数output_song(): (19)录入函数input_song(): (20)修改函数revise_song(): (21)删除函数delete_song(): (22)查询函数search_singer():(按歌手查询) (22)查询函数search_corporation():(按公司查询) (23)导入函数load_song(): (24)保存函数save_song(): (24)5.软件使用说明书。

(25)..............................................................................................................................................25总结6.计程设理系统课歌曲信息管:分求析1.需”,以方便对根据歌曲信息管理系统的需要,建立一个“歌曲信息管理系统成绩的各项管理操作。

要求完成:能对歌曲进行录入和修改;i.能按唱片公司和歌手统计歌曲信息;ii.能对歌曲进行删除、导入和导出。

C语言程序设计报告—歌曲信息管理系统

C语言程序设计报告—歌曲信息管理系统

C语言程序设计报告—歌曲信息管理系统
随着科技的不断发展,在歌曲的学习和传播方面,人们都容易接触到更多的歌曲,但是在学习和了解这些歌曲信息时也会出现一定的困难,所以也就产生了一种能够帮助人们处理歌曲信息的系统—歌曲信息管理系统。

歌曲信息管理系统采用C语言的编程语言来完成,主要功能有:歌曲信息的保护、歌曲信息的查询、歌曲信息的增添、歌曲信息的修改和歌曲信息的删除等。

歌曲信息管理系统采用C语言编程语言,系统主要包括程序和数据库。

程序主要用于编写系统的代码,控制系统各功能模块的实现,数据库则负责存储歌曲信息。

程序的实现主要采用了输入输出结构、选择结构、循环结构等常用的程序设计技术和语句,将用户的输入和数据库的操作结合在一起,实现歌曲信息的增添、查询、修改和删除,从而实现有效的管理歌曲信息。

本歌曲信息管理系统实现简单而功能强大。

它可以有效地实现歌曲信息的统计,从而对歌曲的影响力、流行度等信息有效地管理。

另外,它的安全性得到了很好的保护。

利用数据库的安全性特点,将歌曲信息锁定,保证歌曲信息不被非法修改或删除。

总的来说,歌曲信息管理系统是一种使用C语言编写的有效的管理歌曲信息的系统,经过努力实现了对歌曲信息的完整管理,安全性也得到了很好的保护,可以更好地为大家提供歌曲信息服务。

C语言实现歌曲信息管理系统

C语言实现歌曲信息管理系统

C语言实现歌曲信息管理系统这篇文章主要为大家详细介绍了C语言实现歌曲信息管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下:系统功能:该系统以菜单方式工作,歌曲信息包括:歌名、演唱者、作词、作曲、所属专辑、出版时间、出版公司。

试设计一歌厅歌曲管理系统,使之能提供以下功能:歌曲信息录入、修改、插入、删除功能;歌曲排序浏览功能;按歌名查询、按演唱者查询等功能。

完整的实现代码如下:#include "stdio.h"#include "stdlib.h"#include "string.h"//歌曲信息包括:歌名、演唱者、作词、作曲、所属专辑、出版时间、出版公司typedef struct music{char name[20]; //歌名char singer[20]; //演唱者char authors[20]; //作词char compose[30]; //作曲char album[20]; //所属专辑char time[15]; //出版时间char company[30]; //出版公司struct music *next;}music;music *head=NULL;int length; //链表的长度void create(){music *p1,*p2;length=0;p1=(music *)malloc(sizeof(music));strcpy(p1->name,"-1");if(head==NULL)head=p1;printf("请输入音乐的歌名、演唱者、作词、作曲、所属专辑、出版时间、出版公司:/n"); while(1) //歌名为0的时候退出{p2=(music *)malloc(sizeof(music));//输入歌曲信息scanf("%s %s %s %s %s %s %s",p2->name,p2->singer,p2->authors,p2->compose,p2->album,p2->ti me,p2->company);if(strcmp(p2->name,"0")==0){printf("链表创建完成!/n");break;}length++; //链表的长度p1->next=p2;p2->next=NULL;p1=p1->next;}return ;}void ModifymusicInfo(){music *p=head->next;char name[20];printf("请输入要修改的歌曲的歌名:");getchar();scanf("%s",name);while(p!=NULL){if(strcmp(p->name,name)==0){printf("修改前,歌名为%s的歌曲的信息如下:/n",name);printf("音乐的歌名、演唱者、作词、作曲、所属专辑、出版时间、出版公司:/n");printf("%s %s %s %s %s %s %s/n",p->name,p->singer,p->authors,p->compose,p->album,p->time,p ->company);printf("请输入歌曲的新的所属专辑:");getchar();scanf("%s",p->album);printf("请输入歌曲的新出版公司:");getchar();scanf("%s",p->company);printf("修改后,歌名为%s的歌曲的信息如下:/n",name);printf("音乐的歌名、演唱者、作词、作曲、所属专辑、出版时间、出版公司:/n");printf("%s %s %s %s %s %s %s/n",p->name,p->singer,p->authors,p->compose,p->album,p->time,p ->company);return ;}p=p->next;}if(p==NULL){printf("该歌曲不存在!/n");return ;}}void display(){music *p=head->next;printf("链表中所有的歌曲信息如下:/n");printf("音乐的歌名、演唱者、作词、作曲、所属专辑、出版时间、出版公司:/n"); while(p!=NULL){printf("%s %s %s %s %s %s %s/n",p->name,p->singer,p->authors,p->compose,p->album,p->time,p ->company);p=p->next;}return ;}void search(){int num,x,flag;char name[20];music *p=head->next;printf("请选择查询的方式:/n");printf("1、按歌名查询/t 2、按演唱者查询/n");scanf("%d",&x);if(x==1){printf("需要查找的歌曲歌名为:");getchar();scanf("%s",name);while(p!=NULL){if(strcmp(p->name,name)==0){printf("歌名为%s的歌曲的信息如下:/n",name);printf("音乐的歌名、演唱者、作词、作曲、所属专辑、出版时间、出版公司:/n");printf("%s %s %s %s %s %s %s/n",p->name,p->singer,p->authors,p->compose,p->album,p->time,p ->company);return ;}p=p->next;}if(p==NULL)printf("没有这首歌曲的记录!/n");}else if(x==2){flag=0;printf("需要查找的演唱者为:");getchar();scanf("%s",name);p=head->next;while(p!=NULL){if(strcmp(p->singer,name)==0){if(flag==0){printf("演唱者为%s的歌曲的信息如下:/n",name);printf("音乐的歌名、演唱者、作词、作曲、所属专辑、出版时间、出版公司:/n");flag=1;}printf("%s %s %s %s %s %s %s/n",p->name,p->singer,p->authors,p->compose,p->album,p->time,p ->company);}p=p->next;}if(p==NULL && flag==0){printf("没有该演唱者的歌曲记录!/n");return;}}return ;}void insert(){int num,i;music *p,*q;p=head;printf("请输入你要插入位置: ");scanf("%d",&num);if(num>length){printf("找不到要插入的位置/n");return ;}else{printf("请输入你要插入的音乐的歌名、演唱者、作词、作曲、所属专辑、出版时间、出版公司:/n");q=(music *)malloc(sizeof(music));//输入歌曲信息scanf("%s %s %s %s %s %s %s",q->name,q->singer,q->authors,q->compose,q->album,q->time,q-> company);while(p!=NULL){if(strcmp(p->name,q->name)==0){printf("该歌曲已经存在,无法插入!/n");return ;}p=p->next;}p=head;for(i=0;i<num;i++)p=p->next;q->next=p->next;p->next=q;length++;printf("插入成功!/n");return ;}}void Delete(){char name[20];music *p,*q;q=head,p=head->next;printf("请输入要删除的歌曲的歌名:/n");getchar();scanf("%s",name);while(p!=NULL){if(strcmp(p->name,name)==0){q->next=p->next;free(p);length--;printf("删除成功!/n");return ;}p=p->next;q=q->next;}if(p==NULL){printf("找不到要删除的歌曲!/n");return ;}}void menu(){printf("________________________________________________________________/n"); printf("| 歌厅歌曲管理系统|/n");printf("| 0、退出系统|/n");printf("| 1、录入歌曲信息|/n");printf("| 2、显示歌曲信息|/n");printf("| 3、查找链表中的某一首歌曲|/n");printf("| 4、删除链表中指定歌曲|/n");printf("| 5、指定的位置上插入一个新结点|/n");printf("| 6、修改歌曲信息|/n");printf("________________________________________________________________/n"); return ;}int main(void){int a;menu();while(1){printf("请选择相应的功能:");scanf("%d",&a);switch(a){case 0:case 1:create();menu();break;case 2:if(head){display();menu();}else{printf("链表为空,请先建立链表!/n");menu();}break;case 3:if(head){search();menu();}else{printf("链表为空,请先建立链表!/n");menu();}break;case 4:if(head){Delete();menu();}else{printf("链表为空,请先建立链表!/n");menu();}break;case 5:if(head){menu();}else{printf("链表为空,请先建立链表!/n");menu();}break;case 6:if(head){ModifymusicInfo();menu();}else{printf("链表为空,请先建立链表!/n");menu();}break;default:break;}}system("pause");return 0;}。

c语言课程设计歌曲信息管理系统

c语言课程设计歌曲信息管理系统

c语言课程设计歌曲信息管理系统一、教学目标本课程的目标是使学生掌握C语言编程的基本技能,能够运用C语言设计简单的歌曲信息管理系统。

通过本课程的学习,学生将能够:1.理解C语言的基本语法和数据结构;2.掌握C语言的编程思想和方法;3.设计并实现一个简单的歌曲信息管理系统。

二、教学内容教学内容将围绕C语言的基本语法、数据结构、编程思想和方法展开。

具体包括以下内容:1.C语言的基本语法:变量、数据类型、运算符、表达式等;2.控制结构:条件语句、循环语句等;3.函数:函数的定义、调用、参数传递等;4.数组和字符串:数组的声明、使用、字符串的操作等;5.指针:指针的概念、使用和运算;6.结构体和文件:结构体的定义和使用,文件的读写操作;7.编程思想:模块化编程、面向对象编程等;8.歌曲信息管理系统的设计和实现:数据的、功能的实现等。

三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法进行教学。

具体包括以下方法:1.讲授法:讲解C语言的基本语法、数据结构和编程思想;2.案例分析法:通过分析实际案例,使学生理解并掌握C语言的编程方法;3.实验法:让学生通过动手实践,巩固所学知识,培养编程能力;4.讨论法:学生进行分组讨论,促进学生之间的交流和合作。

四、教学资源为了支持教学内容和教学方法的实施,将准备以下教学资源:1.教材:《C语言程序设计》;2.参考书:《C Primer Plus》、《C和指针》;3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、网络环境等。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分。

其中,平时表现占30%,作业占40%,考试占30%。

平时表现主要评估学生在课堂上的参与程度、提问回答情况和小组讨论表现等。

作业主要包括编程练习和理论题目,旨在检验学生对C语言编程思想和方法的掌握程度。

考试分为期中考试和期末考试,主要测试学生对C语言基本语法、数据结构和编程思想的掌握情况。

C语言课程设计歌曲信息管理系统

C语言课程设计歌曲信息管理系统

网络优化:优化网络传输协议, 提高数据传输速度和稳定性
数据结构优化:选择合适的数 据结构,提高数据存储和检索 效率
优化算法:选择合适的算法, 提高系统运行效率
并发处理优化:采用多线程、 多进程等技术,提高系统并发
处理能力
优化用户体验:优化界面设计, 提高用户操作便捷性和舒适度
增加用户自定义歌曲分类功能 增加歌曲搜索功能,支持关键词搜索 增加歌曲推荐功能,根据用户喜好推荐歌曲 增加歌曲评论功能,用户可以对歌曲进行评论和评分
数据统计:实现歌曲信息的统计功能,包括歌曲数量、歌手数量、专辑数量等
功能:将歌曲信息以文本或表格形式输出 输出格式:支持多种格式,如HTML、XML、JSON等 输出内容:包括歌曲名称、歌手、专辑、歌词等信息 输出方式:支持命令行输出、文件输出、网页输出等
性能测试:测试系统的响应 速度和稳定性
功能测试:确保每个功能模 块都能正常工作
输入内容:歌曲名称、歌手、专辑、 歌词、发布时间等
添加标题
添加标题
添加标题添加标题源自输入方式:键盘输入、文件导入、 数据库查询等
输入验证:检查输入内容是否符合 要求,如歌曲名称不能为空等
数据库设计:建立歌曲信息数据库,包括歌曲名称、歌手、专辑、歌词等信息
数据查询:实现歌曲信息的查询功能,包括模糊查询、精确查询等 数据更新:实现歌曲信息的更新功能,包括添加、修改、删除等
功能
系统性能:响 应速度快,稳 定性高,用户
体验良好
系统安全:保 证用户数据的 安全性和隐私

歌曲信息管理:添加、修改、删除、查询歌曲信息 用户管理:添加、修改、删除、查询用户信息 权限管理:设置用户权限,如管理员、普通用户等 报表管理:生成歌曲信息报表,如歌曲列表、用户列表等 系统设置:设置系统参数,如歌曲信息格式、用户权限等 帮助文档:提供系统使用帮助文档,如操作指南、常见问题解答等

歌曲信息管理系统

歌曲信息管理系统
printf("\n你确定要删除吗?(1/0): ");
scanf("%d",&m);
if(m==1)
{
if((fp=fopen("歌曲4.txt","r+"))==NULL)
{
printf("不能打开文件\n");
exit(0);
}
for(j=0;j<n;j++)
fscanf(fp,"\n%s %s %s %s \n",s[j].name,s[j].writer,s[j].singer,s[j].year);
}
printf("信息已删除");
}
else break;
if((fp=fopen("歌曲4.txt","w+"))==NULL)
{
printf("不能打开文件\n");
exit(0);
}
for(l=0;l<n-1;l++)
fprintf(fp,"\n%s %s %s %s \n",s[l].name,s[l].writer,s[l].singer,s[l].year);
printf("\n请选择数字(1-6):");
scanf("%d",&n);
if(n<1||n>6)/**对选择的数字做判断**/
{m=1;printf("您输入的数据不符合要求,请重新输入!!!\n\n");getchar();}
else m==0;}

c语言课程设计报告音频信息管理(修改自学生成绩管理系统)

c语言课程设计报告音频信息管理(修改自学生成绩管理系统)

. ..一引言在现在的日常生活中,人们对娱乐的要求越来越高。

因为随着科技的突飞猛进,娱乐形式、娱乐设备也越来越多。

而听音乐则是其中一种十分重要而实现起来又十分简单的娱乐形式,所以说,音乐无处不在。

因此,我们对音乐的管理就十分有必要了。

现在的生活节奏越来越快,人们想要更加方便而快捷的管理自己的音乐,节省自己的时间。

而目前我们学习过如何使C语言来进行编程,所以就有了这个简单的设计。

随着各种便携式音乐播放器以及电子计算机的普及,人们所拥有的音乐越来越多,风格,演唱者,各不相同,而人们在不同的心情,不同的天气时对音乐的爱好是不同的。

人们需要更加快捷而方便的管理自己的音乐,让自己的音乐列表井然有序。

可以根据不同的场合,不同的心情快速的找到自己所需要的音乐。

让音乐匹配自己的心情,通过音乐来表达自己的感受是很多人习惯。

音乐是一种娱乐,同时也是一种特别的表达方式。

歌手通过歌曲来表达自己的某种情感,产生与听众的共鸣。

当听众想要表达相同的情感时,直接就可以引用自己听过的歌。

我们让这种娱乐,或者更着重于对自己情感的表达实现起来更加容易。

运用音乐管理程序可以更加方便而快捷的管理自己喜欢的音乐,省去了繁琐的过程,让听音乐更加方便快捷,节省自己的宝贵时间。

音乐管理是每个音乐播放器必须实现的功能之一。

随着各个电子厂商退出自己的便携是播放器,只有高效便捷的的音乐管理方式才能在竞争中脱颖而出。

好的音乐管理程序是对消费者的负责,更是对自己责任的负责。

以前的操作系统等系统软件主要是由汇编语言编写的(包括UNIX操作系统在)。

由于汇编语言指令时机器所不能直接识别、理解和执行的,最好改用高级语言,但一般高级语言难以实现汇编语言的某些功能(汇编语言可以直接对硬件进行操作,例如,对存地址的操作、位操作等)。

人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身。

于是,C语言就在这种情况下应运而生了。

本次课设我选择歌曲管理程序的设计,考察我对结构体,数组的操作,以及C语言算法的掌握。

歌曲管理系统课程设计报告

歌曲管理系统课程设计报告

歌曲管理系统课程设计报告一、课程目标知识目标:1. 学生能理解并掌握歌曲管理系统的基本概念和功能模块,如歌曲录入、查询、修改和删除。

2. 学生能了解数据库的基本原理,并运用所学知识设计简单的歌曲信息表。

3. 学生掌握基本的编程语法和逻辑结构,实现歌曲管理系统的核心功能。

技能目标:1. 学生具备使用编程语言(如Python)开发简单信息管理系统的基础能力。

2. 学生能够运用数据库知识,实现歌曲信息的存储和查询。

3. 学生通过项目实践,培养分析问题、解决问题的能力,提高团队协作和沟通能力。

情感态度价值观目标:1. 学生通过课程学习,培养对信息技术的兴趣和热情,提高学习主动性和积极性。

2. 学生在学习过程中,树立正确的价值观,尊重他人劳动成果,养成良好的编程习惯。

3. 学生通过团队合作,培养集体荣誉感,增强自信心,提高面对挑战的勇气和毅力。

课程性质分析:本课程为信息技术课程,旨在让学生在实践中掌握编程和数据库知识,培养实际操作能力。

学生特点分析:六年级学生对新鲜事物充满好奇心,具备一定的计算机操作能力,但编程和数据库知识较为陌生。

教学要求:1. 结合实际案例,激发学生兴趣,降低学习难度。

2. 注重理论与实践相结合,培养学生的动手能力。

3. 引导学生主动探究,提高解决问题的能力。

4. 关注学生个体差异,实施差异化教学。

1. 独立完成歌曲管理系统的设计与开发。

2. 掌握基本的编程语法和数据库操作。

3. 形成良好的团队协作和沟通能力,具备一定的创新意识。

二、教学内容1. 歌曲管理系统概述- 了解信息管理系统的基本概念和应用。

- 掌握歌曲管理系统的功能需求。

2. 数据库基础知识- 学习数据库的基本原理和结构。

- 掌握SQL语句的基本操作,如增删改查。

3. 编程语言基础- 学习Python编程语言的基本语法。

- 掌握变量、数据类型、条件语句和循环语句的使用。

4. 歌曲信息表设计- 学习设计简单的数据库表结构。

- 完成歌曲信息表的设计,包括歌曲名、歌手、专辑等字段。

C语言课程设计报告-歌曲信息管理系统

C语言课程设计报告-歌曲信息管理系统

中国地质大学本科生课程论文封面课程名称计算机高级语言课程设计(C)教师姓名孔春芳本科生姓名宋帅华本科生学号20101002965本科生专业地质学所在院系地球科学学院类别: C. 本科生日期: 2014.01.08课程设计评语注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录1.题目要求 (2)2.需求分析 (2)3.总体设计 (2)4.详细设计 (2)5.上机操作 (15)6.总结 (20)7.致谢 (21)参考文献 (21)1.题目要求制作一个歌曲信息管理系统功能:1)歌曲信息包括歌曲名,作者,演唱者,发行年月等)2)可以对歌曲信息进行输入,删除,浏览。

3)可以查询根据歌曲名,作者,演唱者歌曲信息。

4)可以提供按作者分组显示功能。

5)用文件存储信息。

2.需求分析根据题目要求,由于歌曲信息数据以文本文件的方式存放,所以应提供文件的输入、输出等操作;在程序中需要浏览歌曲的信息,应提供显示、查询等操作(其中查询方式可以按歌曲名、作者、演唱者或日期进行查询)。

并且要提供可以按作者进行分组的方法;另外还应提供键盘式选择菜单以实现功能选择。

3.总体设计分析一下整个系统,根据上面的需求分析,可以将系统设计分为以下七大模块。

4.详细设计1.主函数主函数一般设计比较简洁,只提供输入,处理和输出部分的函数调用。

其中各功能模块用菜单方式选择。

[流程图]N [程序]void menu() /*主界面*/{int k,w1;do{puts("\t\t*******************MENU**********************\n\n");puts("\t\t\t\t 1.enter");puts("\t\t\t\t 2.delete");puts("\t\t\t\t 3.browse");puts("\t\t\t\t 4.search");puts("\t\t\t\t 5.devide");puts("\t\t\t\t 6.add");puts("\t\t\t\t 7.exit");puts("\n\n\t\t*********************************************\n"); printf("choice your number(1-7):[ ]\b\b");scanf("%d",&k);if(k<1||k>7) /*对选择的数字作判断*/{w1=1;getchar();}else w1=0;}while(w1==1);switch(k){case 1:enter();break; /*输入模块*/case 2:delet();break; /*删除模块*/case 3:browse();break; /*浏览模块*/case 4:search();break; /*查找模块*/case 5:devide();break; /*分组模块*/case 6:add();break; /*添加模块*/case 7:exit(0);}}main() /*主函数*/{menu();}2. 各功能模块设计(1)输入模块[分析]数据信息存放在文件中,一条记录对应一个歌曲,即符合习惯也方便管理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《高级语言程序设计》课程设计说明书设计题目:歌曲信息管理系统设计目录1、设计题目 (3)2、主函数 (4)3、输入模块 (4)4、删除模块 (5)5、浏览模块 (6)6、查找模块 (6)7、各被调函数 (7)8、设计小结 (8)9、源程序代码 (8)歌曲信息管理系统设计1、需求分析:用文件存储信息,因而要提供文件的输入输出操作;可对歌曲信息进行输入、删除、浏览,因而要提供文件的输入、删除和信息显示操作;查询歌曲信息要提供查找操作;实现按作者分组显示功能则要提供排序功能;另外要提供键盘式选择菜单以实现功能选择。

2、总体设计:整个管理系统可以被设计为数据输入模块、数据删除模块、信息浏览模块、信息查询模块和信息分组显示模块。

3、详细设计数据结构采用结构体,建立歌曲信息结构体:Struct SongInfo{ Char name[20]; //歌曲名Char author[20]; //作者Char singer[20]; //演唱者Char pub_date[6]; //发行年月(yyyymm)}SI;(1) 数据输入模块把歌曲信息写入文件。

(2) 数据删除模块采用基本的查找算法,查找歌曲信息文件,如果是要删除的歌曲,则舍弃改信息。

否则重新写入文件。

(3) 信息浏览模块读歌曲信息文件,显示输出。

(4) 信息查询模块通过菜单选择查询字段:歌曲名作者演唱者。

然后采用基本查找算法在歌曲信息文件中查找,如果找到,则输出;否则输出“对不起,没有您要找的歌曲信息!。

”(5) 信息分组显示模块选择按作者分组显示歌曲信息,用fread 或fscanf 把歌曲信息文件中的信息读取到临时变量中(临时变量数据结构可以采用歌曲信息结构体数组),采用排序算法(冒泡、插入、选择等)把歌曲信息按照作者排序,然后输出。

一:详细设计1主函数主函数的设计提供数据输入、数据处理和数据输出以及各种函数的调用。

其中各功能模块用菜单方式选择;另外,部分菜单也可以写成函数。

[程序]void main(){void menu();void function1();void function2();void function3();void function4();menu();return;}2 各功能模块设计(1)输入模块信息输入时直接按顺序结构(如图2)输入:void input(){ char ch;n=0;if((fp=fopen("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(song[n].name);printf("\n时间:");gets(song[n].year);printf("\n作者:");gets(song[n].author);printf("\n歌手:");gets(song[n].singer);n++;printf("继续输入吗?(y/n)\n");ch=getchar();getchar();if(ch=='n')break;}fwrite(song,sizeof(song[0]),n,fp);fclose(fp);}2删除模块:用户输入要删除的信息,如输入歌曲名,根据歌曲名找到其他记录并删除。

[程序]/******************删除模块*************************/void del(){int m,k=0;long a;char namekey[8];printf("\n请输入您要删除的歌曲名:");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 %10s\n",song[n].name,song[n].year,song[n].author,song[n].s inger);if(strcmp(namekey,song[n].name)==0){k=1;break;}}if(k==1){printf("\n已查到,记录为");printf("\n%6s %5s %5s %10s\n",song[n].name,song[n].year,song[n].author,song[n].si nger);printf("\n确实要删除,按1;不删除,按0:");scanf("%d",&m);if(m==1){fseek(fp,a,0);fprintf(fp,"%s %s %s %s\n"," " ," "," "," ");}}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 歌手时间\n");while(fread(&song[n],sizeof(song[n]),1,fp)==1){printf("%6s %5s %10s %5s\n",song[n].name,song[n].author,song[n].singer,song[n]. 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(fread(&song[n],sizeof(song[n]),1,fp)==1)n++;a=n;printf("用什么方式查询?\n");printf("1.歌名2.时间3.歌手\n");ch=getchar();getchar();switch(ch){case '1':printf(" 输入你要查的歌名:\n");gets(numstr);for(n=0;n<a;){if(!strcmp(numstr,song[n].name))break;n++;}break;case '2':printf("输入你要查的歌曲时间\n");gets(numstr);for(n=0;n<a;){if(atol(numstr)==song[n].year)break;n++;}break;case '3':printf("输入你要查的歌手\n");gets(numstr);for(n=0;n<a;){if(!strcmp(numstr,song[n].singer))break;n++;}break;}printf(" 歌名作者歌手时间\n");printf("%6s %5s %5s %10s\n",song[n].name,song[n].year,song[n].author,song[n].sing er);fclose(fp);}6 各种被调函数(1)insert函数:数据的插入,用于个人的信息的补录,包括姓名、工作单位、电话号码和email地址。

(2)del函数:用于通讯录中个人信息的删除。

(3)change函数:用于通讯录中个人信息的修改,输入人名,对人名所对应的机构体内容进行修改(包括姓名、工作单位、电话号码和email信息)。

(4)searchname函数:用于输入姓名查找个人信息。

如果通讯录中没有此人信息,显示“查无此人!”。

(5)searchnum函数:用于输入电话号码查询个人信息。

如果通讯录中没此人信息,显示“查无此人!”。

(6)show函数:用于个人全部信息的显示。

(7)income函数:用于所有原始个人信息的录入(包括姓名、电话号码、工作单位和email地址)。

设计小结:本程序大体参考与网上信息,说实话,这程序我无法完成,但又必须做,即使不会或者做不完美,但是也要尽力去做,做这个程序是要我们能够使用所学的内容,这次设计,让我重新掌握了C语言,而且还得到了用C语言解决实际问题的宝贵经验,也从中学到了很多东西。

让我懂得了做什么事都要有耐心,要有对什么事都认真仔细的品质,让我学会了很多以前不懂的东西,使我更加意识到实践的重要性!三:原程序#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <string.h>int i=0;struct system{char author[20];char singer[20];char time[20];char name[20];} dan[100];void enter(){int j;char c[2];FILE *fp;if((fp=fopen("data.txt","w"))==NULL) {printf("Can not open the file!\n");exit(0);}for(j=0;j<i;j++){fwrite(&dan[j],sizeof(struct system),1,fp);}while(1){printf("Please input the author:\n");scanf("%s",dan[i].author);printf("Please input the song's name:\n");scanf("%s",dan[i].name);printf("Please input the singer:\n");scanf("%s",dan[i].singer);printf("Please input the outday:\n");scanf("%s",dan[i].time);if(fwrite(&dan[i++],sizeof(struct system),1,fp)!=1) printf("File write error\n");else printf("Successful!\n");printf("Is there any more?( Yes[y]/No[n]) \n");scanf("%s",c);if(strcmp(c,"n")==0)break;}fclose(fp);}void delete(){int j,v,c;char w[20];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(&dan[j],sizeof(struct system),1,fp)!=1) break;}v=j;for(j=0;j<v;j++){if(strcmp(w,dan[j].name)==0)c=j;}fclose(fp);fp=fopen("data.txt","wb");for(j=0;j<v;j++){if(j!=c)fwrite(&dan[j],sizeof(struct system),1,fp);}fclose(fp);printf("Delete OK!\n");i--;}void browse(){int j;FILE *fp;fp=fopen("data.txt","rb");for(j=0;j<100;j++){if(fread(&dan[j],sizeof(struct system),1,fp)==1){printf("Name:%s\n",dan[j].name);printf("Author:%s\n",dan[j].author);printf("Singer:%s\n",dan[j].singer);printf("Outday:%s\n",dan[j].time);printf("---------------------------------\n");}else break;}fclose(fp);}void search(){int flag,j,x;char w[20];FILE *fp;char v[20];printf("(1)By author\n");printf("(2)By singer\n");printf("(3)By name\n");printf("Please choose which you want to search:\n");scanf("%d",&x);if(x==3){flag=0;printf("Please input the song's name:");scanf("%s",&w);fp=fopen("data.txt","rb");for(j=0;j<100;j++){if(fread(&dan[j],sizeof(struct system),1,fp)!=1) break;if(strcmp(dan[j].name,w)==0){printf("Name:%s\n",dan[j].name);printf("Author:%s\n",dan[j].author);printf("Singer:%s\n",dan[j].singer);printf("Outday:%s\n",dan[j].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("data.txt","rb");for(j=0;j<100;j++){if(fread(&dan[j],sizeof(struct system),1,fp)!=1) break;if(strcmp(dan[j].singer,v)==0){printf("Name:%s\n",dan[j].name);printf("Author:%s\n",dan[j].author);printf("Singer:%s\n",dan[j].singer);printf("Outday:%s\n",dan[j].time);printf("---------------------------------\n");flag=1;}}if(flag==0)printf("Cannot find the song!\n");fclose(fp);}else if(x==1){flag=0;printf("Please input the author:");scanf("%s",w);fp=fopen("data.txt","rb");for(j=0;j<100;j++){if(fread(&dan[j],sizeof(struct system),1,fp)!=1) break;if(strcmp(dan[j].author,w)==0){printf("Name:%s\n",dan[j].name);printf("Author:%s\n",dan[j].author);printf("Singer:%s\n",dan[j].singer);printf("Outday:%s\n",dan[j].time);printf("---------------------------------\n");flag=1;}}if(flag==0)printf("Cannot find the song!\n");fclose(fp);}else printf("Error!\n");}main(){int a;while(1){printf("\t\tWelcome to the song'system!------by flea\n");printf("\t\t******************^o^ MENU ^o^*******************\n\n");printf("\t\t\t(1).Enter\n");printf("\t\t\t(2).Delete\n");printf("\t\t\t(3).Browse\n");printf("\t\t\t(4).Search\n");printf("\t\t\t(0).exit\n");printf("\t\t*************************************************\n ");printf("\n\t\t\tPlease choose the number(0-4):");scanf("%d",&a);if(a==0) break;switch(a){case 1:enter();break;case 2:delete();break;case 3:browse();break;case 4:search();break;}}}。

相关文档
最新文档