[说明]电话计费器任务书
电话计费器任务书
#include
#include #include #include #include #define STACK_INIT_SIZE 10 #define OK 1
#define TRUE 1
#define FALSE 0 #define ERROR 0
struct student /*定义student结构,储存学生所借出
的书籍信息*/
{
int carnum;
char lendbook[10]; }student[1000];
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];
main() /*…………主菜单开始…………*/
{
char ch1,ch2,ch3,ch4,ch5;
do
{
printf("**************Welcome to****************\n"); /*主菜单*/
printf("**************Main Menu**************\n");
printf(" 1:\n"); /*查询图书*/
printf(" 2:\n"); /*借阅图书*/
printf(" 3:\n"); /*管理系统*/
printf(" 4:\n"); /*还书 */
printf(" 0:\n");
printf("Please input 0--4\n");
scanf("%s",&ch1);
switch(ch1)
{
case '1':chabook();break;
case '2':lendbook();;break;
case '3':{
do
{
printf("**************** Welcome to Manager
menu****************\n"); /*管理菜单*/
printf(" 1:\n"); /*添加图书*/
printf(" 2:\n"); /*删除图书*/
printf(" 3:\n"); /*修改图书资料*/
printf(" 4:\n"); /*书籍统计*/
printf(" 5:\n");
printf(" 0:\n");
printf("Please input 0--5 \n");
scanf("%s",&ch2);
switch(ch2)
{
case '1':addbook();
break;
case '2':delbook();break;
case '3':changebook();break;
case '4':bookcount();getch();break;
case '5':{do
{
printf("****************jie shu ka guan li
system****************\n"); /*借书卡管理菜单*/
printf(" 1:\n"); /*申请新卡*/
printf(" 2:\n"); /*删除卡号*/
printf(" 3:\n"); /*借书统计*/
printf(" 4:\n"); /*卡号统计*/
printf(" 0:\n"); printf("Please input :0--4 \n"); /*请输入0-4,其它错误*/
scanf("%s",&ch4);
switch(ch4)
{
case '1':addcar();break;
case '2':delcar();break;
case '3':lendcount();break;
case '4':carcount();break;
case '0':break;
default:printf("Error\n");getch();break; }
}while(ch4!='0');}break;
case '0':break;
default:printf("Error\n");getch();break; }
}while(ch2!='0');}break;
case '4':huanbook();break;
case '0':break;
default:printf("Error\n");getch();break; }
}while(ch1!='0');
}
chabook() /*…………查询图书…………*/
{
char ch5;
do
{
printf("****************Welcome to book Search System
****************\n"); /*欢迎进入图书查询系统*/
printf(" 1:\n"); /*按书名查找*/
printf(" 0:\n"); /*输入0返回*/
scanf("%s",&ch5);
switch(ch5)
{
case '1':findbook();getch();break; case '0':break;
default:printf("Error\n");getch();break; }
}while(ch5!='0');
}
findbook() /*…………查找图书…………*/
{
FILE *fp;
char bookname[10];
int ture,i;
fp=fopen("book.txt","r");
printf("Please input ni yao cha zhao de shu ming\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("zhe ben shu de xiang xi zi liao shi :\n Num<%d>\tbookname<%s>\tzuo zhe<%s>\n ci shu xian zai wu ren jie yue\n",book[i].booknum,book[i].bookname,book[i].bookcreat);
/*这本书的详细资料是———此书现在无人借阅*/
}
else {printf("zhe ben shu yi you ren jie
chu\n");fclose(fp);return;} /*这本书已有人借出*/
fclose(fp);
return;
}
}
printf("Sorry mei you ni yao cha xun de shu ji\n"); /*没有你要查询的书籍*/
fclose(fp);
return;
}
lendbook() /*…………借阅图书…………*/
{
FILE *fp,*fp2;
int i,n;
int carnum;
printf("Plase input your carhao\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("Please input books name\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("Sorry,gai shu yi bei jie
chu!\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("OK,Enter\n"); /*借书完毕,按任意键返回*/
getch();
return;
}
}
printf("Sorry,mei you zhe ben shu \n"); /*对不起,没有这本书*/
fclose(fp);
getch();
return;
}
}
printf("Error,mei you gai ka,please shen qing xin ka\n"); /*
无此卡号,请申请新卡*/
fclose(fp);
getch();
}
huanbook() /*…………还书函数…………*/
{
FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/ int i,n;
int carnum;
char lendbook[10];
printf("Please input your carhao\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("Please input your name to the book also\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("huan book ok!Enter\n"); /*还书完毕,任意键返回*/
getch();
return;
}
}
printf("sorry,ni mei you jie chu gai shu\n"); /*Sorry你没有借出该书*/
fclose(fp);
getch();
return;
}
}
printf("mei you gai ka, please Enter\n"); /*没有该卡请重新输入*/
fclose(fp);
getch();
}
addbook() /*…………添加图书…………*/
{
FILE *fp;
int i=0;
char choice='y';
fp=fopen("book.txt","a+");
while(choice=='y'||choice=='Y')
{
printf("Please input di %d ben book num\n",i+1);
/*请输入第-本书的序号*/
scanf("%d",&book[i].booknum);
printf("Please input book name\n");
/*请输入书名*/
scanf("%s",book[i].bookname);
printf("Please input book zuo zhe\n"); /*请输入书
的作者*/
scanf("%s",book[i].bookcreat);
printf("Please input 1 OR 0 ?\n1 dai biao shu hai mei bei ren
jie\n 0 biao shi yi jing jie chu\n she qi ta zhi,cheng xu cuo
wu\n"); /*请输入1或者0,1代表书还没被借,0表示已经借出
*/
printf("Pleas she ding shu de zhuang tai\n"); /*请设定
书的状态*/
scanf("%d",&book[i].turefalse);
fwrite(&book[i],sizeof(struct book),1,fp);
printf("Input next book? \n"); /*是否要输入下一本书*/
scanf("%s",&choice);
}
fclose(fp);
}
delbook() /*…………删除图书…………*/
{
FILE *fp,*fp2;
int i;
char bookname[10],choice;
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
printf("Please input yao shan chu de shu ming\n");
printf("ru guo ni shu ru de shu ming cun zai,xi tong zi dong shan chu gai xin xi~ru guo bu cun zai ,xi tong bu zuo ren he
gai dong\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("Shi fou yao shan chu gai shu ji,Shan chu hou gai shu
ji de suo you xin xi jiang wu fa hui fu《Y/N》\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);
printf("Enter\n");
getch();
return;
}
else
{
printf("Enter\n");
getch();
return;
}
}
changebook() /*…………修改图书资料…………*/
{
FILE *fp,*fp2;
char bookname[10],choice;
int i;
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
printf("Please input yao xiu gai de shu de ming zi\n");
/*请输入要修改的书的名字*/
scanf("%s",bookname);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(book[i].bookname,bookname)==0)
{
printf("Ni suo yao xiu gai de shu de zi liao ru xia,Please xuan ze ni yao xiu gai de nei rong\n"); /*你所要修改的书的资料如下,请选择你要修改的
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
*/
printf("NUM:〈%d〉 Bookname:〈%s〉 Zuo zhe:〈%s〉
\n",book[i].booknum,book[i].bookname,book[i].bookcreat);
printf("1:Xiu gai book num\n"); /*修改书的序号*/
printf("2:Xiu gai book name\n"); /*修改书的名字*/
printf("3:Xiu gai zuo zhe\n"); /*修改书的作者*/
printf("Please input 1-3:");
scanf("%s",&choice);
switch(choice)
{
case '1':
{
printf("Please input new num\n");
/*请输入新的序号*/
scanf("%d",&book[i].booknum);
fwrite(&book[i],sizeof(struct book),1,fp2); }break;
case '2':
{
printf("Please input new book name\n"); /*
请输入新的书名*/
scanf("%s",book[i].bookname);fwrite(&book[i],sizeof(struct book),1,fp2); }break;
case '3':
{
printf("Please input new zuo zhe \n"); /*
请输入新的作者*/
scanf("%s",book[i].bookcreat);
fwrite(&book[i],sizeof(struct book),1,fp2); }break;
defaut:printf("Error");break;
}
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);
fp2=fopen("bookl.txt","w");
fclose(fp2);
printf("Enter\n");
getchar();
return;
}
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("Di %d ben shu\n",i+1,book[i].booknum,book[i].bookname,book[i].bo
okcreat,book[i].turefalse);
n=n+1;
}
}
fclose(fp);
printf("Mu qian gong you %d ben shu\n",n); /*
目前共有--本书*/
printf("Enter\n");
}
addcar() /*…………申请新卡…………*/
{
FILE *fp;
int i=0;
fp=fopen("car.txt","a+");
printf("please input ka hao\n"); /*请输入卡号*/
scanf("%d",&car[i].carnum);
printf("please input student name\n"); /*请输入学生姓名*/
scanf("%s",car[i].studentname);
printf("please input class\n"); /*请输入班级*/
scanf("%d",&car[i].studentclass);
fwrite(&car[i],sizeof(struct car),1,fp); fclose(fp);
printf("input OK ,Enter\n"); /*输入完毕,任意键返回*/
getch();
}
delcar()
{
FILE *fp,*fp2;
int i;
int carnum;
char choice;
fp=fopen("car.txt","r");
fp2=fopen("bookl.txt","w");
printf("Plese input your ka hao\n"); /*请输入你的卡号*/
printf("ru guo shu ru de ka hao cun zai,system jiang zi dong
shan chu gai xin xi~fou ze ,system bu zuo ren he gai dong!\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("zhen de yao shan chu gai ka ma,shan chu hou gai shu
ji de suo you xin xi jiang wu fa hui fu《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("Enter\n");
getch();
return;
}
else
{
printf("Enter\n");
getch();
return;
}
}
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("ka hao:%d jie chu de books :%s
\n",student[i].carnum,student[i].lendbook);
n=n+1;
}
fclose(fp);
printf("There are now %dbook lending \n",n); /*目前借出的书籍*/
printf("Enter\n");
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("di %d zhang ka\n",i+1,car[i].carnum,car[i].studentname,car[i].s
tudentclass);
n=n+1;
}
fclose(fp);
printf("gong you %d ben shu\n",n); /*目前共有多少本书*/
printf("Enter\n"); /*返回*/ getch();
}