数据结构大作业图书管理系统工程管理4伍杨目录一、题目要求...................................错误!未定义书签。二、总体设计...................................错误!未定义书签。三、编码实现...................................错误!未定义书签。1)定义图书结构体..........................错误!未定义书签。2)登记操作................................错误!未定义书签。3)查看操作................................错误!未定义书签。4)删除操作................................错误!未定义书签。5)Main函数...............................错误!未定义书签。四、调试与测试.................................错误!未定义书签。五、五心得体会.................................错误!未定义书签。六、用户手册...................................错误!未定义书签。一、题目要求1)目的要求本课程设计任务的目的是要求学生按照分析、设计、编码、调试和测试的软件开发过程独立完成管理系统设计,以及C语言算法的掌握,并能最终实现本系统的功能要求,通过这个程序可以学习到以前调试短程序没有的的经验。2)题目要求实现图书管理信息系统的设计。要求实现图书添加、显示全部图书、查询、借阅和归还。主要考查利用文件的操作!二、总体设计三、编码实现1)定义图书结构体structbook{charbookname[20];ddata[j].namedata[j].typedata[j].statusdata[j].count;}}();}2)查看操作vvoidsee_book()//查看书库记录{FILE*fp;longNO;charbookname[20];chartype[20];longdate;if((fp=fopen(,r))==NULL){printf(Fileopenerror!\n);exit(0);}while(!feof(fp)){fscanf(fp,%s%ld%s%ld,bookname,&NO,type,&date);printf(%-10s%-10ld%-10s%ld\n,bookname,NO,type,date);};if(fclose(fp)){printf(Cannotclosethefile!\n);exit(0);}}voidsee_person()//查看所有借书记录{FILE*fp;charname[10];charclasses[20];intnumber;chartelephone[20];intNO;charbookname[20];intborrowdate;intreturndate;if((fp=fopen(,r))==NULL){printf(Fileopenerror!\n);exit(0);}while(!feof(fp)){fscanf(fp,%s%s%ld%s%ld%s%ld%ld,name,classes,&number,telephone,&NO,bookname,&borrowdate,&returndate);printf(%-5s%-5s%ld%-5s%ld%-5s%ld%ld\n,name,classes,number,telephone,NO,bookname,borrowdate,returndate);};if(fclose(fp)){printf(Cannotclosethefile!\n);exit(0);}}3)删除操作voiddelete_books()//删除旧书{FILE*fp;structbookb;intnumber;voiddeletebooks();printf(请输入您要删除的书编号:);scanf(%d,&number);if((fp=fopen(,r))==NULL){printf(不能打开此文件!\n);exit(0);}while(!feof(fp)){fscanf(fp,%s%d%s%d,,&,,&;if==number){printf(\n\n\t***************图书信息*******************\n);printf(\n\t图书书名:%25s,;printf(\n\t-----------------------------------------);printf(\n\t图书编号:%25d,;printf(\n\t-----------------------------------------);printf(\n\t图书类型:%23s,;printf(\n\t-----------------------------------------);printf(\n\t到书日期:%25d,;printf(\n\t-----------------------------------------);deletebooks();}}}voiddeletebooks(){FILE*fp,*fp1,*fp2,*fp3;intnumber;structbookb;printf(\n\n确认删除请再次输入书编号:);scanf(%d,&number);if((fp=fopen(,r))==NULL){printf(不能打开此文件!\n);exit(0);}if((fp1=fopen(,w))==NULL){//建立一个临时文件printf(不能打开此文件!\n);exit(0);}while(!feof(fp)){fscanf(fp,%s%d%s%d,,&,,&;if==number)continue;elsefprintf(fp1,%s%d%s%d,,,,;}fclose(fp);fclose(fp1);if((fp2=fopen(,r))==NULL){printf(不能打开此文件!\n);exit(0);}if((fp3=fopen(,w))==NULL){//清空书库printf(不能打开此文件!\n);exit(0);}while(!feof(fp2)){//将临时文件的内容写人源文件fscanf(fp2,%s%d%s%d,,&,,&;fprintf(fp3,%s%d%s%d,,,,;}fclose(fp2);fclose(fp3);printf(\n删除成功!\n);}voiddelete_returnbook()//删除借书记录{FILE*fp;intnumbers;structpersonp;voiddeletereturnbook();charchoice;printf(\n请输入所还书本的书编号:);scanf(%d,&numbers);if((fp=fopen(,r))==NULL){printf(不能打开此文件!\n);exit(0);}while(!feof(fp)){fscanf(fp,%s%s%ld%s%ld%s%ld%ld,,,&,,&,,&,&;if==numbers){printf(\n\t***************图书信息*******************\n);printf(\n\t借书人姓名:%20s,;printf(\n\t-----------------------------------------);printf(\n\t借书人班级:%20s,;printf(\n\t-----------------------------------------);printf(\n\t借书人学号:%20d,;printf(\n\t-----------------------------------------);printf(\n\t借书人联系电话:%20s,;printf(\n\t-----------------------------------------);printf(\n\t图书编号:%24d,;printf(\n\t-----------------------------------------);printf(\n\t图书名称:%23s,;printf(\n\t-----------------------------------------);printf(\n\t借书日期:%25d,;printf(\n\t-----------------------------------------);printf(\n\t还书日期:%25d,;printf(\n\t-----------------------------------------);deletereturnbook();printf(\n\t您想继续吗(y/n));scanf(%c,&choice);if(choice=='Y'||choice=='y'){system(cls);delete_returnbook();}}}fclose(fp);}voiddeletereturnbook(){FILE*fp,*fp1,*fp2,*fp3;structpersonp;intnumbers;printf(\n\n确认删除请再次输入书编号:);scanf(%d,&numbers);if((fp=fopen(,r))==NULL){printf(不能打开此文件!\n);exit(0);}if((fp1=fopen(,w))==NULL){printf(不能打开此文件!\n);exit(0);}while(!feof(fp)){fscanf(fp,%s%s%d%s%d%s%d%d,,,&,,&,,&,&;if==numbers)continue;elsefprintf(fp1,%s%s%d%s%d%s%d%d,,,,,,,,;}fclose(fp);fclose(fp1);if((fp2=fopen(,r))==NULL){printf(不能打开此文件!\n);exit(0);}if((fp3=fopen(,w))==NULL){printf(不能打开此文件!\n);exit(0);}while(!feof(fp2)){//将临时文件写人源文件fscanf(fp2,%s%s%d%s%d%s%d%d,,,&,,&,,&,&;fprintf(fp3,%s%s%d%s%d%s%d%d,,,,,,,,;}fclose(fp2);fclose(fp3);printf(\n删除成功!\n);}4)Main函数intmain(void){intchoice;charchoice2;structbook;structperson;do{printf(\n\n\n图书馆管理系统\n\a);printf(*******************************************************\n);printf(***朱老师您好吖********功能选项:登记******请按1,******\n);printf(*******************************查看/查询*请按2******\n);printf(*******************************删除*****请按3******\n);printf(*******************************退出*****请按0******\n);printf(*******************************************************\n\n\n);printf(请选择功能:);scanf(%d,&choice);sw