用c语言编写小型管理系统 (c语言3个功能的管理系统)

本人是一名大三学生, 今天跟大家分享下我写的信息管理系统 ,请各位大佬帮我看看,说说哪里错了,长话短说 想学习c语言c++小伙伴们 可以加一下这个群C语言C++学习交流群 590750544 很不错的!群里很多学习资料和编程工具

#include<stdio.h>

#include <stdlib.h>

#include <string>

void input();

void del();

void liulan();

void searchname();

void menu();

struct song{

char name[20];

char year[20];

char author[20];

char singer[20];

}song[];

int main()

{

menu();

return 0;

}

void input()

{

FILE *fp;

char ch;

int n,m=0;

if((fp=fopen("song.txt","a"))==NULL)

{

printf("can’t open file song.txt");

//exit(0);

}

printf("Please input a record:");

scanf ("%d",&n);

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("继续输入吗?\n");

ch=getchar();

getchar();

if(ch==’n’)

{

break;

}

fwrite(song,sizeof(song[0]),n,fp);

fclose(fp);

}

}

void del()

{

int n,m,k=0;

long a;

char namekey[8];

FILE* fp;

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].singer);

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].singer);

printf("\n确认删除,按1;不删除,按0:");

scanf("%d",&m);

if(m==1)

{

fseek(fp,a,0);

fprintf(fp,"%s %s %s %s\n"," "," "," "," ");

}

}

else

printf("\n对不起,查无此人");

fclose(fp);

}

void liulan()

{

FILE *fp;

int n=0;

if((fp=fopen("song.txt","rb"))==NULL)

{

printf("can’t open the file song.txt");

//exit(0);

}

printf("歌名\n作者\n歌手\n时间\n");

while(fread(&song[n],sizeof(song[0]),1,fp)==1)

{

printf("%6s %5s %10s %5s\n",song[n].name,song[n].year,song[n].author,song[n].singer);

n++;

}

fclose(fp);

}

void searchname()

{

FILE *fp;

int a=0;

char ch;

int n;

char numstr[5];

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].singer);

fclose(fp);

}

有上面指正的地方,希望大家指出...

(加群: 571545210 学习编程)获得学习视频和资料及工具

最后希望我们大家能继续努力......