图书库存管理系统闪退问题
这个程序在学校电脑上可以运行出来,虽然查询图书功能不能用,但是在我的电脑上直接不出来,闪退,有人可以指导一下吗?#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "conio.h"
#include "stdlib.h"
#define STACK_INIT_SIZE 10
#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR 0
struct book /*定义书的类型*/
{
int booknum;
char bookname[10];
char bookcreat[10];
int turefalse; /*该变量为判断书籍是否借出*/
}book[1000];
void findbook() /*…………查找图书…………*/
{
FILE *fp;
char bookname[10];
int ture,i;
fp=fopen("book.txt","r");
printf("请输入你要查找的书名\n");
scanf("%s",bookname);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{if(strcmp(bookname,book[i].bookname)!=0)
{
if(book[i].turefalse==1)
{
printf("这本书的详细资料是 :\n 序号<%d>\t书名<%s>\t作者<%s>\n 此书现在无人借阅\n",book[i].booknum,book[i].bookname,book[i].bookcreat);
}
else {printf("这本书已有人借出\n");fclose(fp);return;}
fclose(fp);
return;
}
}
printf("没有你要查询的书籍\n"); /*没有你要查询的书籍*/
fclose(fp);
return;
}
chabook() /*…………查询图书…………*/
{
char ch2;
do
{
printf("****************Welcome to book Search System ****************\n"); /*欢迎进入图书查询系统*/
printf(" 1:<bookname search>\n"); /*按书名查找*/
printf(" 0:<Return Enter>\n"); /*输入0返回*/
scanf("%s",&ch2);
switch(ch2)
{
case '1':findbook();getchar();break;
case '0':break;
default:printf("Error\n");getchar();break;
}
void addbook() /*…………添加图书…………*/
{
FILE *fp;
int i=0;
char choice='y';
fp=fopen("book.txt","a+");
while(choice=='y'||choice=='Y')
{
printf("请输入第n本书的序号\n",i+1); /*请输入第-本书的序号*/
scanf("%d",&book[i].booknum);
printf("请输入书名\n"); /*请输入书名*/
scanf("%s",book[i].bookname);
printf("请输入书的作者\n"); /*请输入书的作者*/
scanf("%s",book[i].bookcreat);
printf("请输入1或者0,1代表书还没被借,0表示已经借出\n"); /*请输入1或者0,1代表书还没被借,0表示已经借出*/
printf("请设定书的状态\n"); /*请设定书的状态*/
scanf("%d",&book[i].turefalse);
fwrite(&book[i],sizeof(struct book),1,fp);
printf("是否要输入下一本书? \n"); /*是否要输入下一本书*/
scanf("%s",&choice);
}
fclose(fp);
}
void delbook() /*…………删除图书…………*/
{
FILE *fp,*fp2;
int i;
char bookname[10],choice;
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
printf("请输入要删除的书名\n");
printf("如果你输入的书名存在,系统自动删除该信息!如果不存在,系统不做任何改动\n");
/*如果你输入的书名存在,系统自动删除该信息!如果不存在,系统不做任何改动*/
scanf("%s",bookname);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(bookname,book[i].bookname)!=0)
{
fwrite(&book[i],sizeof(struct book),1,fp2);
}
}
fclose(fp);
fclose(fp2);
printf("是否要删除该书籍,删除后该书籍的所有信息将无法恢复\n"); /*是否要删除该书籍,删除后该书籍的所有信息将无法恢复*/
scanf("%s",&choice);
if(choice=='y'||choice=='Y')
{
fp=fopen("book.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++)
{
fwrite(&book[i],sizeof(struct book),1,fp);
}
fclose(fp);
fclose(fp2);
fp2=fopen("bookl.txt","w");
fclose(fp2);
getchar();
return;
}
else
{
printf("Enter\n");
getchar();
return;
}
}
void bookcount() /*…………图书统计…………*/
{
FILE *fp;
int i,n=0;
fp=fopen("book.txt","r");
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(book[i].booknum!=0&&strlen(book[i].bookname)!=0&&strlen(book[i].bookcreat)!=0)
{
printf("第 %d 本书 <编号:%d 书名:%s 作者:%s 状态:%d>\n",i+1,book[i].booknum,book[i].bookname,book[i].bookcreat,book[i].turefalse);
n=n+1;
}
}
fclose(fp);
printf("目前共有 %d 本书\n",n); /*目前共有()本书*/
getchar();
}
void main() /*…………主菜单开始…………*/
{char ch1='1',ch2;
do
{
printf("**************** 图书库存管理系统****************\n"); /*管理菜单*/
printf(" 1:查找书籍\n"); /*查找书籍*/
printf(" 2:添加书籍\n"); /*添加书籍*/
printf(" 3:删除书籍\n"); /*删除书籍*/
printf(" 4:书籍统计\n"); /*书籍统计*/
printf(" 0:退出\n");
printf("请输入 0--4 \n");
scanf("%s",&ch1);
switch(ch1)
{case '1':chabook;break;
case '2':addbook();break;
case '3':delbook();break;
case '4':bookcount();break;
case '0':break;
}}while(ch1!='0');
getchar();getchar();}