图书管理程序



#<stdio.h>
#<.h>
#<conio.h>
#<stdlib.h>
#<ctype.h>
#STACK_INIT_SIZE10
#OK1
#TRUE1
#FALSE0
#ERROR0
structstudent/*定义学生类型用于存放借出书籍*/
{
carnum;
charlendbook[10];
}student[1000];
structemploy/*定义职工类型*/
{
employnum;
charemployname[15];
employage;
charemploysex[2];
charemployleve[10];
longemploytage;
}employ[50];
structbook/*定义书类型*/
{
booknum;
charbookname[10];
charbookcreat[10];
turefalse;/*用于借书和还书模块判断本书是否借出条件*/
}book[1000];
structcar/*借书卡数据类型*/
{
carnum;
charstudentname[10];
student;
}car[100];
huanbook/*还书*/
{
FILE*fp,*fp2;/*定义两个文件指针fp2用于修改数据时设立临时文件用防止数据遭破坏*/
i,n;
carnum;
charlendbook[10];
prf("请你输入你卡号\\n");
scanf("%d",&carnum);
fp=fopen("car.txt","r");/*读取卡号记录*/
for(i=0;fread(&car[i],(structcar),1,fp)!=0;i)/*for循环判断卡号是否存在*/
{
(car[i].carnumcarnum)/*卡号存在进入下循环*/
{
n=i;
fclose(fp);
prf("请输入你要还名字\\n");
scanf("%s",lendbook);
fp=fopen("record.txt","r");
for(i=0;fread(&student[i],(structstudent),1,fp)!=0;i)/*判断是否借阅了输入书*/
{
(strcmp(student[i].lendbook,lendbook)0)/*借阅了该书进入下循环否则出错显示*/
{
fclose(fp);
fp=fopen("record.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&student[i],(structstudent),1,fp)!=0;i)
{
(strcmp(student[i].lendbook,lendbook)0)
{
continue;/*删除还掉借书记录*/
}
fwrite(&student[i],(structstudent),1,fp2);/*写入原来没还记录*/
}
fclose(fp);
fclose(fp2);
fp=fopen("record.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&student[i],(structstudent),1,fp2)!=0;i)
{
fwrite(&student[i],(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],(structbook),1,fp)!=0;i)/*将书记录写入临时文件防止修改信息破坏以前记录*/
{
(in)
{
book[i].turefalse=1;
fwrite(&book[i],(structbook),1,fp2);/*将还原来状态设为无人借阅*/
continue;
}
fwrite(&book[i],(structbook),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("book.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&book[i],(structbook),1,fp2)!=0;i)
{
fwrite(&book[i],(structbook),1,fp);/*将临时文件写回*/
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w");/*清临时文件*/
fclose(fp2);
prf("还书完毕按任意键返回\\n");
getch;
;
}
}
prf("你没有借这样不要耍我任意键返回\\n");/*出错提示*/
fclose(fp);


getch;
;
}
}
prf("系统没这样和管理员联系,按任意键返回\\n");/*出错提示*/
fclose(fp);
getch;
}
lendcount/*其他自己看就懂了不行也可以qq联系:258032791c版本要话跟我说愿意交爱好编程交友毕业没时间了找工作忙有些模块没写发现什么问题自己改*/
{
FILE*fp;
i,n=0;
fp=fopen("record.txt","r");
for(i=0;fread(&student[i],(structstudent),1,fp)!=0;i)
{
prf("卡号:%d借出书籍:%s\\n",student[i].carnum,student[i].lendbook);
n=n+1;
}
fclose(fp);
prf("目前共有%d本书借出\\n",n);
prf("按任意键\\n");
getch;
}
chabook
{
charch5;
do
{
prf("---------------欢迎进入图书查询系统!--------------\\n");
prf("1:<按书名查找>\\n");
prf("2:<按作者查找>\\n");
prf("0:<返回>\\n");
prf("请输入0--2,其他输入非法!\\n");
scanf("%s",&ch5);
switch(ch5)
{
’1’:findbook;getch;;
’2’:prf("按作者查找有时间再写\\n");getch;;
’0’:;
default:prf("无此操作\\n");getch;;
}
}while(ch5!=’0’);
}
lendbook
{
FILE*fp,*fp2;
i,n;
carnum;
prf("请你输入你卡号\\n");
scanf("%d",&carnum);
fp=fopen("car.txt","r");
for(i=0;fread(&car[i],(structcar),1,fp)!=0;i)
{
(car[i].carnumcarnum)
{
n=i;
fclose(fp);
prf("请输入你要借阅名字\\n");
scanf("%s",student[n].lendbook);
fp=fopen("book.txt","r");
for(i=0;fread(&book[i],(structbook),1,fp)!=0;i)
{
(strcmp(book[i].bookname,student[n].lendbook)0)
{
(book[i].turefalse0){prf("对不起此书有人借出请借其他书\\n");fclose(fp);getch;;}

fclose(fp);
fp=fopen("record.txt","a+");
student[n].carnum=carnum;
fwrite(&student[n],(structstudent),1,fp);
fclose(fp);
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&book[i],(structbook),1,fp)!=0;i)
{
(strcmp(book[i].bookname,student[n].lendbook)0)
{
book[i].turefalse=0;
fwrite(&book[i],(structbook),1,fp2);
continue;
}
fwrite(&book[i],(structbook),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("book.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&book[i],(structbook),1,fp2)!=0;i)
{
fwrite(&book[i],(structbook),1,fp);
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w");
fclose(fp2);
prf("借书完毕按任意键返回\\n");
getch;
;
}
}
prf("不存在这样任意键返回\\n");
fclose(fp);
getch;
;
}
}
prf("你卡号不存在请申请新卡,按任意键返回\\n");
fclose(fp);
getch;
}
carcount
{
FILE*fp;
i,n=0;
fp=fopen("car.txt","r");
for(i=0;fread(&car[i],(structcar),1,fp)!=0;i)
{
prf("第%d张卡<卡号:%d姓名:%s班级:%d>\\n",i+1,car[i].carnum,car[i].studentname,car[i].student);
n=n+1;
}
fclose(fp);
prf("目前共有%d本书\\n",n);
prf("按任意键\\n");
getch;
}
delcar
{
FILE*fp,*fp2;
i;
carnum;
charchoice;
fp=fopen("car.txt","r");
fp2=fopen("bookl.txt","w");
prf("请输入你要删除卡号\\n");
prf("如果你输入卡号存在系统自动删除该信息!如果不存在系统不做任何改动\\n");
scanf("%d",&carnum);
for(i=0;fread(&car[i],(structcar),1,fp)!=0;i)
{
(car[i].carnum!=carnum)
{
fwrite(&car[i],(structcar),1,fp2);
}
}
fclose(fp);
fclose(fp2);
prf("是否真要删除该卡?删除后该书籍所有信息将无法恢复Y/N\\n");
scanf("%s",&choice);
(choice’y’||choice’Y’)
{
fp=fopen("car.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&car[i],(structcar),1,fp2)!=0;i)
{
fwrite(&car[i],(structcar),1,fp);


}
fclose(fp);
fclose(fp2);
fp2=fopen("bookl.txt","w");
fclose(fp2);
prf("按任意键返回\\n");
getch;
;
}

{
prf("按任意键返回\\n");
getch;
;
}
}
addcar
{
FILE*fp;
i=0;
fp=fopen("car.txt","a+");
prf("请你输入卡号\\n");
scanf("%d",&car[i].carnum);
prf("请你输入学生姓名\\n");
scanf("%s",car[i].studentname);
prf("请你输入班级\\n");
scanf("%d",&car[i].student);
fwrite(&car[i],(structcar),1,fp);
fclose(fp);
prf("输入完毕任意键返回\\n");
getch;
}
changemploy
{
FILE*fp,*fp2;
charemployname[10],choice;
i;
fp=fopen("employ.txt","r");
fp2=fopen("bookl.txt","w");
prf("请你输入要修改职工书字\\n");
scanf("%s",employname);
for(i=0;fread(&employ[i],(structemploy),1,fp)!=0;i)
{
(strcmp(employ[i].employname,employname)0)
{
prf("你所要修改职工资料如下请选择你要修改内容\\n");
prf("<职工号:%d职工名:%s年龄:%d性别:%s学历:%s工资:%d>\\n",employ[i].employnum,employ[i].employname,employ[i].employage,employ[i].employsex,employ[i].employleve,employ[i].employtage);
prf("1:修改职工号\\n");
prf("2:修改职工名\\n");
prf("3:修改职工年龄\\n");
prf("4:修改职工工资\\n");
prf("5:修改职工学历\\n");
prf("请输入1-5:");
scanf("%s",&choice);
switch(choice)
{
’1’:
{
prf("请输入新职工号\\n");
scanf("%d",&employ[i].employnum);
fwrite(&employ[i],(structemploy),1,fp2);
};
’2’:
{
prf("请输入新职工姓名\\n");
scanf("%s",employ[i].employname);
fwrite(&employ[i],(structemploy),1,fp2);
};
’3’:
{
prf("请输入新年龄\\n");
scanf("%d",&employ[i].employage);
fwrite(&employ[i],(structemploy),1,fp2);
};
’4’:
{
prf("请输入新职工工资\\n");
scanf("%d",&employ[i].employtage);
fwrite(&employ[i],(structemploy),1,fp2);
};
’5’:
{
prf("请输入新职工学历\\n");
scanf("%s",employ[i].employleve);
fwrite(&employ[i],(structemploy),1,fp2);
}
defaut:prf("没有这样操作");;
}
continue;
}
fwrite(&employ[i],(structemploy),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("employ.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&employ[i],(structemploy),1,fp2)!=0;i)
{
fwrite(&employ[i],(structemploy),1,fp);
}
fclose(fp);
fclose(fp2);
fp2=fopen("bookl.txt","w");
fclose(fp2);
prf("按任意键返回\\n");
getchar;
;
}
delemploy
{
FILE*fp,*fp2;
i;
charemployname[10],choice;
fp=fopen("employ.txt","r");
fp2=fopen("bookl.txt","w");
prf("请输入你要删除职工名\\n");
prf("如果你输入职工存在系统自动删除该信息!如果不存在系统不做任何改动\\n");
scanf("%s",employname);
for(i=0;fread(&employ[i],(structemploy),1,fp)!=0;i)
{
(strcmp(employname,employ[i].employname)!=0)
{
fwrite(&employ[i],(structemploy),1,fp2);
}
}
fclose(fp);
fclose(fp2);
prf("是否真要删除该职工信息?删除后所有信息将无法恢复Y/N\\n");
scanf("%s",&choice);
(choice’y’||choice’Y’)
{
fp=fopen("employ.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&employ[i],(structemploy),1,fp2)!=0;i)
{
fwrite(&employ[i],(structemploy),1,fp);
}
fclose(fp);
fclose(fp2);
fp2=fopen("bookl.txt","w");
fclose(fp2);
prf("按任意键返回\\n");
getch;
;
}

{
prf("按任意键返回\\n");
getch;
;
}
}
employcount
{
FILE*fp;
i,n=0;
fp=fopen("employ.txt","r");
for(i=0;fread(&employ[i],(structemploy),1,fp)!=0;i)
{
prf("第%d职工信息如下:\\n<职工号:%d职工名:%s年龄:%d性别:%s学历:%s工资:%d>\\n",n+1,employ[i].employnum,employ[i].employname,employ[i].employage,employ[i].employsex,employ[i].employleve,employ[i].employtage);
n;


}
fclose(fp);
prf("目前共有%d个职工\\n",n);
prf("按任意键返回");
}
addemploy
{
FILE*fp;
charchoice=’y’;
i=1;
fp=fopen("employ.txt","a+");
while(choice’y’||choice’Y’)
{
prf("请你输入职工号码\\n");
scanf("%d",&employ[i].employnum);
prf("请你输入职工名\\n");
scanf("%s",employ[i].employname);
prf("请输入职工年龄\\n");
scanf("%d",&employ[i].employage);
prf("请你输入性别\\n");
scanf("%s",employ[i].employsex);
prf("请你输入职工学历水平\\n");
scanf("%s",employ[i].employleve);
prf("请输入职工工资\\n");
scanf("%d",&employ[i].employtage);
fwrite(&employ[i],(structemploy),1,fp);
prf("是否要输入下个职工信息?\\n");
scanf("%s",&choice);
}
prf("按任意键返回\\n");
fclose(fp);
}
addbook
{
FILE*fp;
i=0;
charchoice=’y’;
fp=fopen("book.txt","a+");
while(choice’y’||choice’Y’)
{
prf("请你输入第%d本书序号\\n",i+1);
scanf("%d",&book[i].booknum);
prf("请你输入书名\\n");
scanf("%s",book[i].bookname);
prf("请你输入书作者\\n");
scanf("%s",book[i].bookcreat);
prf("请设为1或01代表书还没人借0表示书已经借出设其他值运行时无法得出正常结果\\n");
prf("请你设定书状态\\n");
scanf("%d",&book[i].turefalse);
fwrite(&book[i],(structbook),1,fp);
prf("是否要输入下本书\\n");
scanf("%s",&choice);
}
fclose(fp);
}
bookcount
{
FILE*fp;
i,n=0;
fp=fopen("book.txt","r");
for(i=0;fread(&book[i],(structbook),1,fp)!=0;i)
{
(book[i].booknum!=0&&strlen(book[i].bookname)!=0&&strlen(book[i].bookcreat)!=0)
{
prf("第%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);
prf("目前共有%d本书\\n",n);
prf("按任意键\\n");
}
findbook
{
FILE*fp;
charbookname[10];
ture,i;
fp=fopen("book.txt","r");
prf("请输入你要查找书名\\n");
scanf("%s",bookname);
for(i=0;fread(&book[i],(structbook),1,fp)!=0;i)
{
(strcmp(bookname,book[i].bookname)0)
{
(book[i].turefalse1)
{
prf("这本书详细资料是:%d%s%s此书现在无人借阅\\n",book[i].booknum,book[i].bookname,book[i].bookcreat);
}
{prf("这本书已经有人借出\\n");fclose(fp);;}
fclose(fp);
;
}
}
prf("没有你要查询书籍\\n");
fclose(fp);
;
}
delbook
{
FILE*fp,*fp2;
i;
charbookname[10],choice;
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
prf("请输入你要删除书名\\n");
prf("如果你输入书名存在系统自动删除该信息!如果不存在系统不做任何改动\\n");
scanf("%s",bookname);
for(i=0;fread(&book[i],(structbook),1,fp)!=0;i)
{
(strcmp(bookname,book[i].bookname)!=0)
{
fwrite(&book[i],(structbook),1,fp2);
}
}
fclose(fp);
fclose(fp2);
prf("是否真要删除该书籍?删除后该书籍所有信息将无法恢复Y/N\\n");
scanf("%s",&choice);
(choice’y’||choice’Y’)
{
fp=fopen("book.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&book[i],(structbook),1,fp2)!=0;i)
{
fwrite(&book[i],(structbook),1,fp);
}
fclose(fp);
fclose(fp2);
fp2=fopen("bookl.txt","w");
fclose(fp2);
prf("按任意键返回\\n");
getch;
;
}

{
prf("按任意键返回\\n");
getch;
;
}
}
changebook
{
FILE*fp,*fp2;
charbookname[10],choice;
i;
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
prf("请你输入要修改书籍书字\\n");
scanf("%s",bookname);
for(i=0;fread(&book[i],(structbook),1,fp)!=0;i)
{
(strcmp(book[i].bookname,bookname)0)
{
prf("你所要修改资料如下请选择你要修改内容\\n");
prf("序号:〈%d〉书名:〈%s〉作者:〈%s〉\\n",book[i].booknum,book[i].bookname,book[i].bookcreat);
prf("1:修改书序号\\n");


prf("2:修改书名\\n");
prf("3:修改作者\\n");
prf("请输入1-3:");
scanf("%s",&choice);
switch(choice)
{
’1’:
{
prf("请输入新序号\\n");
scanf("%d",&book[i].booknum);
fwrite(&book[i],(structbook),1,fp2);
};
’2’:
{
prf("请输入新书名\\n");
scanf("%s",book[i].bookname);
fwrite(&book[i],(structbook),1,fp2);
};
’3’:
{
prf("请输入新作者\\n");
scanf("%s",book[i].bookcreat);
fwrite(&book[i],(structbook),1,fp2);
};
defaut:prf("没有这样操作");;
}
continue;
}
fwrite(&book[i],(structbook),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("book.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&book[i],(structbook),1,fp2)!=0;i)
{
fwrite(&book[i],(structbook),1,fp);
}
fclose(fp);
fclose(fp2);
fp2=fopen("bookl.txt","w");
fclose(fp2);
prf("按任意键返回\\n");
getchar;
;
}

{
charch1,ch2,ch3,ch4,ch5;
do
{
clrscr;
prf("**************欢迎进入中文图书馆管理!****************\\n");
prf("~~~~~~~~~~\\t\\t\\t~~~~~~~~~~~~\\n");
prf("制作人:邓敢\\t班级:网络学院计0111班\\t学号:hk1113183081\\n");
prf("联系地址:华中科技大学韵苑28栋****电话:027-87441972****手机:13554664800\\n");
prf("%%%%%%%%%%%%%%%%%%%%%%%%%%%\\n");
prf("\\t\\t请你选择操作类型:\\n");
prf("1:<查阅图书>\\n");
prf("2:<借阅图书>\\n");
prf("3:<管理系统>\\n");
prf("4:<还书>\\n");
prf("0:<退出>\\n");
prf("请输入0--4\\n");
scanf("%s",&ch1);
switch(ch1)
{
’1’:chabook;;
’2’:lendbook;;;
’3’:{
do
{
clrscr;
prf("---------------欢迎进入管理系统!--------------\\n");
prf("1:<增加图书>\\n");
prf("2:<删除图书>\\n");
prf("3:<修改图书资料>\\n");
prf("4:<书籍统计>\\n");
prf("5:<职工管理系统>\\n");
prf("6:<学生管理系统>\\n");
prf("0:<返回>\\n");
prf("请输入0--6,其他输入非法!\\n");
scanf("%s",&ch2);
switch(ch2)
{
’1’:addbook;
;
’2’:delbook;;
’3’:changebook;;
’4’:bookcount;getch;;
’5’:{do
{
clrscr;
prf("---------------欢迎进入职工管理系统!--------------\\n");
prf("1:<增加员工>\\n");
prf("2:<删除员工>\\n");
prf("3:<修改员工资料>\\n");
prf("4:<员工统计>\\n");
prf("0:<返回>\\n");
prf("请输入0--4,其他输入非法!\\n");
scanf("%s",&ch3);
switch(ch3)
{
’1’:addemploy;getch;;


’2’:delemploy;;
’3’:changemploy;;
’4’:employcount;getch;;
’0’:;
default:prf("无此操作\\n");getch;;
}
}while(ch3!=’0’);};
’6’:{do
{
clrscr;
prf("---------------欢迎进入学生管理系统!--------------\\n");
prf("1:<申请新卡>\\n");
prf("2:<删除卡号>\\n");
prf("3:<借书统计>\\n");
prf("4:<卡号统计>\\n");
prf("0:<返回>\\n");
prf("请输入0--4,其他输入非法!\\n");
scanf("%s",&ch4);
switch(ch4)
{
’1’:addcar;;
’2’:delcar;;
’3’:lendcount;;
’4’:carcount;;
’0’:;
default:prf("无此操作\\n");getch;;
}
}while(ch4!=’0’);};
’0’:;
default:prf("无此操作\\n");getch;;
}
}while(ch2!=’0’);};
’4’:huanbook;;
’0’:;
default:prf("无此操作\\n");getch;;
}
}while(ch1!=’0’);
}
Tags: 

延伸阅读

最新评论

  1. 我觉得怎么不对呀!!! 两个 for 里用 i ???会对吗???

发表评论