C语言歌曲信息管理系统
学院: 计算机学院 专业: 网络工程 班级: *********** 姓名: ********** 学号: *********** 课题: 歌曲信息管理系统 指导老师: ***********
C语言歌曲信息管理系统
#include<stdio.h> #include<string.h> #include <stdlib.h> #define N 10
struct 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;} }
C语言歌曲信息管理系统
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++)
C语言歌曲信息管理系统
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,Song[i].date); }
fclose(fp); back();
}
C语言歌曲信息管理系统
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,Song[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,Song[i].date);
}
C语言歌曲信息管理系统
/******************浏览模块*****************/
void browse() {
int i,n;
n=load();
for(i=0;i<n;i++) /*利用循环逐个输出歌曲信息*/ {print(i); puts("\n");}
back();
}
C语言歌曲信息管理系统
/******************查找模块*****************/
C语言歌曲信息管理系统
输入歌曲名
是否找到
N
Y 提 示 没有 找 到
显 示 所查 歌 曲信息
Y
是否继续查 找
N 调 用 查找 函 数
调用 back () 函数
结 束
C语言歌曲信息管理系统
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();}
C语言歌曲信息管理系统
/******************删除模块******************/
C语言歌曲信息管理系统
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; else
printf("\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");
C语言歌曲信息管理系统
printf("do you want to continue?\n"); printf("1.yes\n2.no\n"); scanf("%d",&a); getch();} while(a==1);
back();}
C语言歌曲信息管理系统
/*******************按作者显示模块*******************/
C语言歌曲信息管理系统
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++) { }
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,Song[i].date); }
back(); }
