音乐.docx
《音乐.docx》由会员分享,可在线阅读,更多相关《音乐.docx(27页珍藏版)》请在冰豆网上搜索。
音乐
#include
#include
#include
#include
#include
#defineSTACK_INIT_SIZE10
#defineOK1
#defineTRUE1
#defineFALSE0
#defineERROR0
structstudent/*定义学生类型,用于存放借出的书籍*/
{
intcarnum;//学生卡号为0-1的数字
charlendbook[10];
}student[30000];
structemploy/*定义职工类型*/
{
intemploynum;
charemployname[20];
intemployage;
charemploysex[2];
charemployleve[10];
longintemploytage;
}employ[100];
structbook/*定义书的类型*/
{
intbooknum;
charbookname[20];
charbookpublisher[30];
charbooktype[10];
intbookmonth;
intbookday;
intbookyear;
intbookprice;
charbookcreat[20];
intturefalse;/*用于借书和还书模块判断一本书是否借出的条件*/
}book[100000000];
structcar/*借书卡的数据类型*/
{
intcarnum;//卡号
charstudentname[20];//学生姓名
intstudentclass;//学生所在班级
}car[30000];
/*还书函数*/
huanbook()
{
FILE*fp,*fp2;/*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/
inti,n;
intcarnum;
charlendbook[20];
printf("请你输入你的卡号\n");
scanf("%d",&carnum);
fp=fopen("car.txt","r");/*读取卡号记录*/
for(i=0;fread(&car[i],sizeof(structcar),1,fp)!
=0;i++)/*for循环判断卡号是否存在*/
{
if(car[i].carnum==carnum)/*卡号存在,进入下一循环*/
{
n=i;
fclose(fp);
printf("请输入你要还的书的名字\n");
scanf("%s",lendbook);
fp=fopen("record.txt","r");
for(i=0;fread(&student[i],sizeof(structstudent),1,fp)!
=0;i++)/*判断是否借阅了输入的书*/
{
if(strcmp(student[i].lendbook,lendbook)==0)/*借阅了该书,进入下一循环,否则出错显示*/
{
fclose(fp);
fp=fopen("record.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&student[i],sizeof(structstudent),1,fp)!
=0;i++)
{
if(strcmp(student[i].lendbook,lendbook)==0)
{
continue;/*删除还掉的书的借书记录*/
}
fwrite(&student[i],sizeof(structstudent),1,fp2);/*写入原来没还的书的记录*/
}
fclose(fp);
fclose(fp2);
fp=fopen("record.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&student[i],sizeof(structstudent),1,fp2)!
=0;i++)
{
fwrite(&student[i],sizeof(structstudent),1,fp);/*将借书记录信息写回*/
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w");/*清临时文件的记录*/
fclose(fp2);
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&book[i],sizeof(structbook),1,fp)!
=0;i++)/*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/
{
if(i==n)
{
book[i].turefalse=1;
fwrite(&book[i],sizeof(structbook),1,fp2);/*将还的书的原来状态设为无人借阅的*/
continue;
}
fwrite(&book[i],sizeof(structbook),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("book.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&book[i],sizeof(structbook),1,fp2)!
=0;i++)
{
fwrite(&book[i],sizeof(structbook),1,fp);/*将临时文件写回*/
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w");/*清临时文件*/
fclose(fp2);
printf("还书完毕,按任意键返回\n");
getch();
return1;
}
}
printf("你没有借过这样的书,任意键返回\n");/*出错提示*/
fclose(fp);
getch();
return0;
}
}
printf("系统没这样的卡,请和管理员联系,按任意键返回\n");/*出错提示*/
fclose(fp);
getch();
}
/*图书查询函数(按书名)*/
findbook()
{
FILE*fp;
charbookname[20];
intture,i;
fp=fopen("book.txt","r");
printf("请输入你要查找的书名\n");
scanf("%s",bookname);
for(i=0;fread(&book[i],sizeof(structbook),1,fp)!
=0;i++)
{
if(strcmp(bookname,book[i].bookname)==0)
{
if(book[i].turefalse==1)
{
printf("这本书的详细资料是:
%d%s%s此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);
}
else{printf("这本书已经有人借出\n");fclose(fp);return0;}
fclose(fp);
returnFALSE;
}
}
printf("没有你要查询的书籍\n");
fclose(fp);
returnFALSE;
}
/*图书查询函数(按作者姓名)*/
findbook1()
{
FILE*fp;
charbookcreat[20];
intture,i;
fp=fopen("book.txt","r");
printf("请输入你要查找的作者名\n");
scanf("%s",bookcreat);
for(i=0;fread(&book[i],sizeof(structbook),1,fp)!
=0;i++)
{
if(strcmp(bookcreat,book[i].bookcreat)==0)
{
if(book[i].turefalse==1)
{
printf("这本书的详细资料是:
%d%s%s此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);
}
else{printf("这本书已经有人借出\n");fclose(fp);return0;}
fclose(fp);
returnFALSE;
}
}
printf("没有你要查询的书籍\n");
fclose(fp);
returnFALSE;
}
/*借出书籍统计函数*/
lendcount()
{
FILE*fp;
inti,n=0;
fp=fopen("record.txt","r");
for(i=0;fread(&student[i],sizeof(structstudent),1,fp)!
=0;i++)
{
printf("卡号:
%d借出的书籍:
%s\n",student[i].carnum,student[i].lendbook);
n=n+1;
}
fclose(fp);
printf("目前共有%d本书借出\n",n);
printf("按任意键\n");
getch();
returnn;
}
/*图书查询系统函数*/
chabook()
{
charch5;
do
{
printf("---------------欢迎进入图书查询系统!
--------------\n");
printf("1:
<按书名查找>\n");
printf("2:
<按作者查找>\n");
printf("0:
<返回>\n");
printf("请输入0--2,其他输入为非法输入!
\n");
scanf("%s",&ch5);
switch(ch5)
{
case'1':
findbook();getch();break;
case'2':
findbook1();getch();break;
case'0':
break;
default:
printf("无此操作\n");getch();break;
}
}while(ch5!
='0');
returnFALSE;
}
//学生管理系统
/*借书函数*/
lendbook()
{
FILE*fp,*fp2;
inti,n;
intcarnum;
printf("请你输入你的卡号:
\n");
scanf("%d",&carnum);
fp=fopen(