åèä¸ä¸å§ï¼
设计å¾ä¹¦ä¿¡æ¯ç®¡çç³»ç»ï¼å¾ä¹¦ä¿¡æ¯å
æ¬ï¼ä¹¦å·ã书åãä½è
åããåºçæ¶é´ãä»·æ ¼çã
1ãç³»ç»ä»¥èåæ¹å¼å·¥ä½ï¼å¯ç ç»éã
2ãå¾ä¹¦ä¿¡æ¯çå½å
¥åè½ï¼å¢å æ°æ®ï¼ã
3ãå¾ä¹¦ä¿¡æ¯çå é¤ï¼å é¤æ°æ®ï¼ã
4ãå¾ä¹¦ä¿¡æ¯çæµè§åè½ï¼æ¥æ¾æ°æ®ï¼ã
5ãå¾ä¹¦ä¿¡æ¯çå é¤ï¼ä¿®æ¹æ°æ®ï¼ã
6ã]å¾ä¹¦ä¿¡æ¯ç计ç®å¹¶æåºã计ç®ææå¾ä¹¦çæ»ä»·æ ¼åå¹³åä»·æ ¼ï¼averï¼å精度ï¼è¾åºä¸ä½å°æ°ï¼ï¼å°å
æ¬æææ°æ®çæ°ç»å
ç´ æä»·æ ¼ä»é«å°ä½ç顺åºæåºæå°åºæ¥ã
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
#define STACK_INIT_SIZE 10
#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR 0
struct student /*å®ä¹å¦çç±»åï¼ç¨äºåæ¾ååºç书ç±*/
{
int carnum;
char lendbook[10];
}student[1000];
struct employ /*å®ä¹è工类å*/
{
int employnum;
char employname[15];
int employage;
char employsex[2];
char employleve[10];
long int employtage;
}employ[50];
struct book /*å®ä¹ä¹¦çç±»å*/
{
int booknum;
char bookname[10];
char bookcreat[10];
int turefalse; /*ç¨äºå书åè¿ä¹¦æ¨¡åå¤æä¸æ¬ä¹¦æ¯å¦ååºçæ¡ä»¶*/
}book[1000];
struct car /*å书å¡çæ°æ®ç±»å*/
{
int carnum;
char studentname[10];
int studentclass;
}car[100];
huanbook() /*è¿ä¹¦å½æ°*/
{
FILE *fp,*fp2; /*å®ä¹ä¸¤ä¸ªæ件æéï¼fp2ç¨äºä¿®æ¹æ°æ®æ¶è®¾ç«ä¸´æ¶æ件ç¨ï¼é²æ¢æ°æ®éç ´å*/
int i,n;
int carnum;
char lendbook[10];
printf("è¯·ä½ è¾å
¥ä½ çå¡å·\n");
scanf("%d",&carnum);
fp=fopen("car.txt","r"); /*读åå¡å·è®°å½*/
for(i=0;fread(&car[i],sizeof(struct car),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(struct student),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(struct student),1,fp)!=0;i++)
{
if(strcmp(student[i].lendbook,lendbook)==0)
{
continue; /*å é¤è¿æç书çå书记å½*/
}
fwrite(&student[i],sizeof(struct student),1,fp2); /*åå
¥åæ¥æ²¡è¿ç书çè®°å½*/
}
fclose(fp);
fclose(fp2);
fp=fopen("record.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++)
{
fwrite(&student[i],sizeof(struct student),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(struct book),1,fp)!=0;i++) /*å°ä¹¦çè®°å½åå
¥ä¸´æ¶æ件ï¼é²æ¢å 为修æ¹ä¿¡æ¯ç ´å以åçè®°å½*/
{
if(i==n)
{
book[i].turefalse=1;
fwrite(&book[i],sizeof(struct book),1,fp2); /*å°è¿ç书çåæ¥ç¶æ设为æ 人åé
ç*/
continue;
}
fwrite(&book[i],sizeof(struct book),1,fp2);
}
fclose(fp);
fclose(fp2);
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);
fopen("bookl.txt","w"); /*æ¸
临æ¶æ件*/
fclose(fp2);
printf("è¿ä¹¦å®æ¯ï¼æä»»æé®è¿å\n");
getch();
return 1;
}
}
printf("ä½ æ²¡æåè¿æ ·ç书ï¼ä»»æé®è¿å\n"); /*åºéæ示*/
fclose(fp);
getch();
return 0;
}
}
printf("ç³»ç»æ²¡è¿æ ·çå¡ï¼å管çåèç³»,æä»»æé®è¿å\n"); /*åºéæ示*/
fclose(fp);
getch();
}
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("è¿æ¬ä¹¦ç详ç»èµææ¯ï¼%d %s %s æ¤ä¹¦ç°å¨æ 人åé
\næä»»æé®è¿å\n",book[i].booknum,book[i].bookname,book[i].bookcreat);
}
else {printf("è¿æ¬ä¹¦å·²ç»æ人ååº\n");fclose(fp);return 0;}
fclose(fp);
return FALSE;
}
}
printf("没æä½ è¦æ¥è¯¢ç书ç±\n");
fclose(fp);
return FALSE;
}
findbook1()
{
FILE *fp;
char bookcreat[10];
int ture,i;
fp=fopen("book.txt","r");
printf("请è¾å
¥ä½ è¦æ¥æ¾çä½è
å\n");
scanf("%s",bookcreat);
for(i=0;fread(&book[i],sizeof(struct book),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);return 0;}
fclose(fp);
return FALSE;
}
}
printf("没æä½ è¦æ¥è¯¢ç书ç±\n");
fclose(fp);
return FALSE;
}
lendcount()
{
FILE *fp;
int i,n=0;
fp=fopen("record.txt","r");
for(i=0;fread(&student[i],sizeof(struct student),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();
return n;
}
chabook()
{
char ch5;
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');
return FALSE;
}
lendbook()
{
FILE *fp,*fp2;
int i,n;
int carnum;
printf("è¯·ä½ è¾å
¥ä½ çå¡å·\n");
scanf("%d",&carnum);
fp=fopen("car.txt","r");
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)
{
if(car[i].carnum==carnum)
{
n=i;
fclose(fp);
printf("请è¾å
¥ä½ è¦åé
ç书çåå\n");
scanf("%s",student[n].lendbook);
fp=fopen("book.txt","r");
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(book[i].bookname,student[n].lendbook)==0)
{
if(book[i].turefalse==0) {printf("对ä¸èµ·ï¼æ¤ä¹¦æ人ååºï¼è¯·åå
¶ä»ä¹¦\n");fclose(fp);getch();return;}
else
fclose(fp);
fp=fopen("record.txt","a+");
student[n].carnum=carnum;
fwrite(&student[n],sizeof(struct student),1,fp);
fclose(fp);
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(book[i].bookname,student[n].lendbook)==0)
{
book[i].turefalse=0;
fwrite(&book[i],sizeof(struct book),1,fp2);
continue;
}
fwrite(&book[i],sizeof(struct book),1,fp2);
}
fclose(fp);
fclose(fp2);
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);
fopen("bookl.txt","w");
fclose(fp2);
printf("å书å®æ¯ï¼æä»»æé®è¿å\n");
getch();
return;
}
}
printf("ä¸åå¨è¿æ ·ç书ï¼ä»»æé®è¿å\n");
fclose(fp);
getch();
return;
}
}
printf("ä½ çå¡å·ä¸åå¨ï¼è¯·ç³è¯·æ°å¡,æä»»æé®è¿å\n");
fclose(fp);
getch();
}
carcount()
{
FILE *fp;
int i,n=0;
fp=fopen("car.txt","r");
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)
{
printf("第%då¼ å¡<å¡å·ï¼%d å§åï¼%s ç级ï¼%d>\n",i+1,car[i].carnum,car[i].studentname,car[i].studentclass);
n=n+1;
}
fclose(fp);
printf("ç®åå
±æ%dæ¬ä¹¦\n",n);
printf("æä»»æé®\n");
getch();
}
delcar()
{
FILE *fp,*fp2;
int i;
int carnum;
char choice;
fp=fopen("car.txt","r");
fp2=fopen("bookl.txt","w");
printf("请è¾å
¥ä½ è¦å é¤çå¡å·\n");
printf("å¦æä½ è¾å
¥çå¡å·åå¨ï¼ç³»ç»èªå¨å é¤è¯¥ä¿¡æ¯ï¼å¦æä¸åå¨ï¼ç³»ç»ä¸åä»»ä½æ¹å¨\n");
scanf("%d",&carnum);
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)
{
if(car[i].carnum!=carnum)
{
fwrite(&car[i],sizeof(struct car),1,fp2);
}
}
fclose(fp);
fclose(fp2);
printf("æ¯å¦ççè¦å é¤è¯¥å¡ï¼å é¤å该书ç±çææä¿¡æ¯å°æ æ³æ¢å¤ãY/Nã\n");
scanf("%s",&choice);
if(choice=='y'||choice=='Y')
{
fp=fopen("car.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&car[i],sizeof(struct car),1,fp2)!=0;i++)
{
fwrite(&car[i],sizeof(struct car),1,fp);
}
fclose(fp);
fclose(fp2);
fp2=fopen("bookl.txt","w");
fclose(fp2);
printf("æä»»æé®è¿å\n");
getch();
return;
}
else
{
printf("æä»»æé®è¿å\n");
getch();
return;
}
}
addcar()
{
FILE *fp;
int i=0;
fp=fopen("car.txt","a+");
printf("è¯·ä½ è¾å
¥å¡å·\n");
scanf("%d",&car[i].carnum);
printf("è¯·ä½ è¾å
¥å¦çå§å\n");
scanf("%s",car[i].studentname);
printf("è¯·ä½ è¾å
¥ç级\n");
scanf("%d",&car[i].studentclass);
fwrite(&car[i],sizeof(struct car),1,fp);
fclose(fp);
printf("è¾å
¥å®æ¯ï¼ä»»æé®è¿å\n");
getch();
}
å¸æè½å¤å¸®å©å°ä½ ï¼æé纳ï¼
温馨提示:答案为网友推荐,仅供参考