图书管理系统含源代码c语言-数据结构课程设计报告_第1页
图书管理系统含源代码c语言-数据结构课程设计报告_第2页
图书管理系统含源代码c语言-数据结构课程设计报告_第3页
图书管理系统含源代码c语言-数据结构课程设计报告_第4页
图书管理系统含源代码c语言-数据结构课程设计报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z.数据构造大作业图书管理系统工程管理121279044伍目录一、题目要求1二、总体设计2三、编码实现21)定义图书构造体22)登记操作23)查看操作24)删除操作25)Main函数2四、调试与测试2五、五心得体会2六、用户手册2题目要求目的要求本课程设计任务的目的是要求学生按照分析、设计、编码、调试和测试的软件开发过程独立完成管理系统设计,以及C语言算法的掌握,并能最终实现本系统的功能要求,通过这个程序可以学习到以前调试短程序没有的的经历。题目要求实现图书管理信息系统的设计。要现图书添加、显示全部图书、查询、借阅和归还。主要考察利用文件的操作!总体设计编码实现定义图书构造体structbook{charbookname[20];//书名intNO;//书编号chartype[20];//类型intdate;//到书日期};structperson{charname[10];//charclasses[20];//班级intnumber;//学号chartelephone[12];//联系intNO;//书编号charbookname[20];//书名intborrowdate;//借书日期intreturndate;//还书日期登记操作voidnew_book()//登记新书{FILE*fp; structbookb;inti,j; if((fp=fopen("shuku.txt","a"))==NULL){ printf("Fileopenerror!\n"); exit(0); } printf("请朱教师输入此次收到的书本总数:");scanf("%d",&i); for(j=0;j<i;j++){ printf("请朱教师输入书名:"); scanf("%s",b.bookname); fprintf(fp,"%s",b.bookname); printf("请朱教师输入书编号:"); scanf("%d",&b.NO); fprintf(fp,"%d",b.NO); printf("请朱教师输入类型:"); scanf("%s",b.type); fprintf(fp,"%s",b.type); printf("请朱教师输入到书日期:"); scanf("%d",&b.date); fprintf(fp,"%d",b.date); } if(fclose(fp)){ printf("Cannotclosethefile!\n"); exit(0); }}voidnew_person()//登记借书{FILE*fp; structpersonp; charchoice; if((fp=fopen("jieshujilu.txt","a"))==NULL){ printf("Fileopenerror!\n"); exit(0); } printf("请朱教师输入借书人:"); scanf("%s",); fprintf(fp,"%s",); printf("请朱教师输入借书人班级:"); scanf("%s",p.classes); fprintf(fp,"%s",p.classes); printf("请朱教师输入借书人学号:"); scanf("%d",&p.number); fprintf(fp,"%d",p.number); printf("请朱教师输入借书人联系:"); scanf("%s",p.telephone); fprintf(fp,"%s",p.telephone); printf("请朱教师输入书编号:"); scanf("%d",&p.NO); fprintf(fp,"%d",p.NO); printf("请朱教师输入书名:"); scanf("%s",p.bookname); fprintf(fp,"%s",p.bookname); printf("请朱教师输入借书日期:"); scanf("%d",&p.borrowdate); fprintf(fp,"%d",p.borrowdate); printf("请朱教师输入还书日期:"); scanf("%d",&p.returndate); fprintf(fp,"%d",p.returndate); printf("\n\t您想继续吗"(y/n)"); scanf("%c",&choice); if(choice=='Y'||choice=='y'){ system("cls"); new_person(); } if(fclose(fp)){ printf("Cannotclosethefile!\n"); exit(0); }}实现程序对文件的读取voidRead(){ inti=0; intj=0; ifstreamin("Libra.txt",ios::out); in>>i; all=i; if(i>0&&i<=Max) { for(j=1;j<=i;j++) { in>>data[j].id>>data[j].name>>data[j].type>>data[j].status>>data[j].count; } } in.close();}查看操作vvoidsee_book()//查看书库记录{FILE*fp; longNO; charbookname[20]; chartype[20]; longdate; if((fp=fopen("shuku.txt","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("jieshujilu.txt","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); }}删除操作voiddelete_books()//删除旧书{FILE*fp; structbookb; intnumber; voiddeletebooks(); printf("请输入您要删除的书编号:"); scanf("%d",&number); if((fp=fopen("shuku.txt","r"))==NULL){ printf("不能翻开此文件!\n"); exit(0); } while(!feof(fp)){ fscanf(fp,"%s%d%s%d",b.bookname,&b.NO,b.type,&b.date); if(b.NO==number){ printf("\n\n\t***************图书信息*******************\n"); printf("\n\t图书书名:%25s",b.bookname); printf("\n\t"); printf("\n\t图书编号:%25d",b.NO); printf("\n\t"); printf("\n\t图书类型:%23s",b.type); printf("\n\t"); printf("\n\t到书日期:%25d",b.date); printf("\n\t"); deletebooks(); } }}voiddeletebooks(){ FILE*fp,*fp1,*fp2,*fp3; intnumber; structbookb; printf("\n\n确认删除?请再次输入书编号:"); scanf("%d",&number); if((fp=fopen("shuku.txt","r"))==NULL){ printf("不能翻开此文件!\n"); exit(0); } if((fp1=fopen("tempshuku.txt","w"))==NULL){//建立一个临时文件printf("不能翻开此文件!\n"); exit(0); } while(!feof(fp)){ fscanf(fp,"%s%d%s%d",b.bookname,&b.NO,b.type,&b.date); if(b.NO==number) continue; else fprintf(fp1,"%s%d%s%d",b.bookname,b.NO,b.type,b.date); } fclose(fp); fclose(fp1); if((fp2=fopen("tempshuku.txt","r"))==NULL){ printf("不能翻开此文件!\n"); exit(0); } if((fp3=fopen("shuku.txt","w"))==NULL){//清空书库printf("不能翻开此文件!\n"); exit(0); } while(!feof(fp2)){//将临时文件的容写人源文件fscanf(fp2,"%s%d%s%d",b.bookname,&b.NO,b.type,&b.date); fprintf(fp3,"%s%d%s%d",b.bookname,b.NO,b.type,b.date); } fclose(fp2); fclose(fp3); printf("\n删除成功!\n");}voiddelete_returnbook()//删除借书记录{FILE*fp; intnumbers; structpersonp; voiddeletereturnbook(); charchoice; printf("\n请输入所还书本的书编号:"); scanf("%d",&numbers); if((fp=fopen("jieshujilu.txt","r"))==NULL){ printf("不能翻开此文件!\n"); exit(0); } while(!feof(fp)){ fscanf(fp,"%s%s%ld%s%ld%s%ld%ld",,p.classes,&p.number,p.telephone,&p.NO,p.bookname,&p.borrowdate,&p.returndate); if(p.NO==numbers){ printf("\n\t***************图书信息*******************\n"); printf("\n\t借书人:%20s",); printf("\n\t"); printf("\n\t借书人班级:%20s",p.classes); printf("\n\t"); printf("\n\t借书人学号:%20d",p.number); printf("\n\t"); printf("\n\t借书人联系:%20s",p.telephone); printf("\n\t"); printf("\n\t图书编号:%24d",p.NO); printf("\n\t"); printf("\n\t图书名称:%23s",p.bookname); printf("\n\t"); printf("\n\t借书日期:%25d",p.borrowdate); printf("\n\t"); printf("\n\t还书日期:%25d",p.returndate); 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("jieshujilu.txt","r"))==NULL){ printf("不能翻开此文件!\n"); exit(0); } if((fp1=fopen("tempbook.txt","w"))==NULL){ printf("不能翻开此文件!\n"); exit(0); } while(!feof(fp)){ fscanf(fp,"%s%s%d%s%d%s%d%d",,p.classes,&p.number,p.telephone,&p.NO,p.bookname,&p.borrowdate,&p.returndate); if(p.NO==numbers) continue; else fprintf(fp1,"%s%s%d%s%d%s%d%d",,p.classes,p.number,p.telephone,p.NO,p.bookname,p.borrowdate,p.returndate); } fclose(fp); fclose(fp1); if((fp2=fopen("tempbook.txt","r"))==NULL){ printf("不能翻开此文件!\n"); exit(0); } if((fp3=fopen("jieshujilu.txt","w"))==NULL){ printf("不能翻开此文件!\n"); exit(0); } while(!feof(fp2)){//将临时文件写人源文件fscanf(fp2,"%s%s%d%s%d%s%d%d",,p.classes,&p.number,p.telephone,&p.NO,p.bookname,&p.borrowdate,&p.returndate);fprintf(fp3,"%s%s%d%s%d%s%d%d",,p.classes,p.number,p.telephone,p.NO,p.bookname,p.borrowdate,p.returndate); } fclose(fp2); fclose(fp3); printf("\n删除成功!\n");}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); switch(choice){ case1: printf("登记选项:新书登记请按1,借书登记请按2,返回请按3\n"); printf("请选择:"); scanf("%d",&choice); switch(choice){ case1: system("cls");//清屏printf("新书资料登记:\n\n"); new_book();//新书登记printf("登记完毕!\n"); printf("\n"); scanf("%c",&choice2); system("cls"); break; case2: system("cls"); printf("借书资料登记:\n\n"); new_person();//借书登记printf("\npressanykey"); scanf("%c",&choice2); system("cls"); break; case3: system("cls"); break; } break; case2: printf("查看/查询选项:书库查看请按1,总借书记录查看请按2,到期记录查询请按3,返回请按4\n"); printf("请选择:"); scanf("%d",&choice); switch(choice){ case1: system("cls"); printf("欢送朱教师进入书库!\n\n"); printf("书名书编号类型到书日期\n"); printf("\n"); see_book();//书库显示printf("\npressanykey"); scanf("%c",&choice2); system("cls"); break; case2: system("cls");

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论