声明这一部分有一些也是参考了一些网上的代码,但思路和主要都是自己写的。
#include<stdio.h>
#include<string.h>#include<stdlib.h>
#include<conio.h>
#define N 80
int j=0;
struct tushu
{
char name[80],author[80],haoma[80],chuban[80],day[80],hao[80],money[80];
}tushu[80];
void Input()
{
FILE *fp;
int n,i;
char c;
printf("输入管理员密码: \n");
scanf("%d",&n);
if(n!=18)
{
printf("密码有误将返回主菜单→\n");
return ;
}
else
{
fp=fopen("tushu","w+");//进行追加。
for(i=0;i<=N;i++)
{
printf("输入n或N时返回主菜单,否则进入添加书本信息功能→\n");
getchar();
scanf("%c",&c);
if(c=='N'||c=='n')
{
fclose(fp);
return;
}
else
{
printf("请输入登入号 书名 作者名 分类号 出版单位 出版时间 价格\n");
scanf("%s%s%s%s%s%s%s",&tushu[j].hao,tushu[j].name,tushu[j].author,tushu[j].haoma,tushu[j].chuban,tushu[j].day,&tushu[j].money);
fwrite(&tushu[j],sizeof(struct tushu),1,fp);//成功返回1
j++;
}
}
fclose(fp);
}
}
void liulan()
{
FILE *fp;
int i;
fp=fopen("tushu","r+");
printf("◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");
printf(" 图书列表\n");
printf("-----------------------------------------------------------\n");
printf("登录号 书名 作者名 分类号 出版单位 出版时间 价格\n");
printf("-----------------------------------------------------------\n");
for(i=0;fread(&tushu[i],sizeof(struct tushu),1,fp)==1;/*数据读取为1时数据仍存在,不为1则取出*/i++)
{
printf("%s %8s %8s %8s %8s %8s %8s\n",tushu[i].hao,tushu[i].name,tushu[i].author,tushu[i].haoma,tushu[i].chuban,tushu[i].day,tushu[i].money);
}