C程序课程设计-图书管理系统
发布网友
发布时间:2022-05-15 14:30
我来回答
共1个回答
热心网友
时间:2023-10-27 21:32
#include "stdio.h"
#include<graphics.h>
#include "conio.h"
#include<stdlib.h>
#include<string.h>
#include "tp.h"
#include<mouse.h>
#include<bios.h>
FILE *fp,*p ;
void *buf=NULL;
void main()
{ void adm1(),adm2(),build(),huan(),borrow(),dele(),kaiji();
void anniu(int x1,int y1,int x2,int y2,int color,char *f);
void no();
int d=VGA,m=VGAHI;
initgraph(&d,&m,"");
setmouse(0,629,0,459);
settextstyle(3,0,1);
kaiji();
buf=jiantou(buf);
adm1();
adm2();
}
void adm1()
{ char adp[20],password[20];
int i,n=0;
textbackground(2);
cleardevice();
fp=fopen("pass","r");
if(fp==NULL) { outtext("no exit ");getch();exit(0);}
for(;;)
{ setcolor(2);
anniu(150,1,300,20,0," ");
setcolor(15);
outtext("input password:");
gotoxy(20,1);
gets(adp);
for(i=0;adp[i]!='\0';i++);
if(i==0) exit(0);
fgets(password,i+1,fp);
if(strcmp(password,adp)==0) { cleardevice();outtext("YES");getch();adm2();}
else{ n++;
cleardevice();outtext("error");
for(i=0;i<10;i++) delay(8000);
if(n==2) { cleardevice(); outtext("once again");for(i=0;i<=10;i++) delay(8000);}
if(n==3) { cleardevice(); outtext("3 second out");for(i=0;i<=10;i++) delay(8000);
exit(0);
}
}
fclose(fp);cleardevice();
}
}
void adm2()
{
char a;
int i,j,x,y;
clrscr();
cleardevice();
for(;;)
{ setbkcolor(6);
setcolor(2);
cleardevice();
anniu(12,40,190,70,15,"built a user (B)");
setcolor(2);
anniu(12,90,190,120,15,"return book (R)");
setcolor(2);
anniu(12,140,190,170,15,"borrow books (J)");
setcolor(2);
anniu(12,190,190,220,15,"delete user (D)");
setcolor(2);
anniu(12,240,190,270,15,"exit (E)");
do{
do{
i=readmouse(&x,&y,buf,1);
r.h.ah=1;
int86(0x16,&r,&r);
j=r.h.ah;
if(j!=0) switch(j){
case 0x30:a='b';break;
case 0x13:a='r';break;
case 0x24:a='j';break;
case 0x20:a='d';break;
case 0x12:a='e';break;
}
} while(i!=1&&j==0);
if((x>12&&x<190&&y>40&y<70&&i==1)||a=='b') { setcolor(2);
anniu(12,40,190,70,2,"built a user (B)");
delay(80000);
build();
}
if((x>12&&x<190&&y>90&y<120&&i==1)||a=='r') { setcolor(2);
anniu(12,90,190,120,2,"return book (R)");
delay(80000);
huan();
}
if((x>12&&x<190&&y>140&y<170&&i==1)||a=='j') {setcolor(2);
anniu(12,140,190,170,2,"borrow books (J)");
delay(80000);
borrow();
}
if((x>12&&x<190&&y>190&y<220&&i==1)||a=='d') { setcolor(2);
anniu(12,190,190,220,2,"delete user (D)");
delay(80000);
dele();
}
if((x>12&&x<190&&y>240&y<270&&i==1)||a=='e') {setcolor(2); anniu(12,240,190,270,2,"exit (E)");
closegraph();
showBMP("zz.bmp");
for(i=0;i<100;i++)delay(10000);
exit(0);
}
i=0;j=0;
}while(i==0&&j==0);
}
}
void anniu(int x1,int y1,int x2,int y2,int color,char *f)
{ setfillstyle(1,color);
rectangle(x1,y1,x2,y2);
floodfill(x1+1,y1+1,2);
setcolor(1);
outtextxy(20,y1+10,f);
}
void build()
{ FILE *f;
char id[20],name[20],sex[2],age[3],grad[50];
cleardevice();
printf("ID number:");
scanf("%s",id);
printf("name:");
scanf("%s",name);
printf("sex:");
scanf("%s",sex);
printf("grad:");
scanf("%s",grad);
p=fopen(id,"w+");
if(p==NULL) { no("can't build it");getch();adm2();}
fprintf(p,"%s ",name);
fprintf(p,"%s ",id);
fprintf(p,"%s ",sex);
fprintf(p,"%s ",grad);
no("bulid success");
getch();
fclose(p);
adm2();
}
void huan()
{
FILE *fp,*p;
char id[20],a[5][50],name[20],c;
int i=0,m,k;
cleardevice();
printf("input ID number:");
scanf("%s",id);
p=fopen(id,"r");
if(p==NULL) { no("user no exit");getch();fclose(p);adm2();}
fscanf(p,"%s",name);
fclose(p);
fp=fopen(name,"r");
while(!feof(fp)){ fscanf(fp,"%s",a[i++]); }
for(k=0;k<i-1;k++) printf("\nbook %d: %s",k+1,a[k]);
fclose(fp);
p=fopen(name,"w+");
for(;;)
{
printf("\n\npress the book number that you want to return. \n\nPress 6 if you want to return all. \n\npress 7 to cancle.\n");
scanf("%d",&m);
if(m==7)
{ for(k=0;k<i-1;k++)
{
fprintf(p,"%s ",a[k]);
}
fclose(p);
adm2();
}
if(m==6) remove(name);
if(m<6)
{
for(k=0;k<i-1;k++)
{ if(k!=m-1)
fprintf(p,"%s ",a[k]);
}
printf("book %d has returned.",m);
}
printf("\ncontinue? (Y/N)");
c=getch();
if(c=='y') continue;
if(c=='n') { fclose(p);adm2(); }
}
}
void borrow()
{ FILE *f,*m,*p;
char id[20],book[5][50],name[20],c;
int i=0,n=0,k;
window(1,1,80,25);cleardevice();
printf("please input the user's ID:");
scanf("%s",id);
m=fopen(id,"r");
if(m==NULL) {no("user no exit"); getch();fclose(m);adm2();}
fscanf(m,"%s",name);
fclose(m);
p=fopen(name,"r");
if(p==NULL);
else
{ while(!feof(p))
{
fscanf(p,"%s",book[i]);
i++;
}
i--;
for(k=0;k<i;k++) printf("\nbook %d :%s",k+1,book[k]);
}
fclose(p);
f=fopen(name,"w");
printf("\nhow many book do you want to borrow? <=4:");
do{printf("\ninput:");scanf("%d",&n); }while(i+n>=5);
for(k=i;k<i+n;k++)
{ printf("\nbook %d :",k+1);
gets(book[k]);
}
for(k=0;k<i+n;k++) fprintf(f,"%s\n",book[k]);
fputc('\0',f);
printf("success");
fclose(f);adm2();
}
void kaiji()
{ int i,j;
char a[20]="BOOK software";
setbkcolor(0);
for(i=0;i<=50;i++)
{
cleardevice();
setcolor(i/2);
line(50,100,50,350);
line(200,100,200,350);
line(350,100,350,350);
/*arc(125, 100, 0, 180,75);画圆弧*/
ellipse(125, 100, 0, 180,75,40);/*椭圆*/
ellipse(275, 100, 0, 180,75,40);
ellipse(275, 350, 0, 180,75,40);
ellipse(125, 350, 0, 180,75,40);
settextstyle(3,0,4);
outtextxy(380,145+i,a);
settextstyle(1,0,1);
outtextxy(450,450,"procer: fuquan");
for(j=0;j<5;j++) delay(5000);
}
}
void dele()
{ FILE *fp,*f;
char id[20],a[4][20],c,b[5][50];
int i=0,j=0,k;
window(1,1,80,25);cleardevice();
printf("Input ID number:");
scanf("%s",id);
fp=fopen(id,"r");
if(fp==NULL) { no("user no exit");getch(); fclose(fp);adm2();}
else while(!feof(fp))
{ fscanf(fp,"%s",a[i++]);}
printf("\nname: %s",a[0]);
printf("\nID: %s",a[1]);
printf("\nsex: %s",a[2]);
printf("\ngrad: %s",a[3]);
f=fopen(a[0],"r");
if(f==NULL);
else {
while(!feof(f))
{ fscanf(f,"%s",b[j++]);}
for(k=0;k<j-1;k++) printf("\nbook %d: %s",k+1,b[k]);
}
printf("\nDo you want to delete? (Y/N): ");
c=getch();
fclose(fp);
fclose(f);
if(c=='y') { remove(id);remove(a[0]);no("success");getch();adm2();}
if(c=='n') adm2();
}
void no(char *f)
{ setfillstyle(1,3);
rectangle(260,200,390,220);
floodfill(301,201,1);
setcolor(1);
outtextxy(270,200,f);
}
先在当前目录下创建一个文件名为pass的文件
输入密码;
然后运行
放到turbo c的bgi文件夹里运行就ok了