c语言程序设计报告 图书管理系统文档_第1页
c语言程序设计报告 图书管理系统文档_第2页
c语言程序设计报告 图书管理系统文档_第3页
c语言程序设计报告 图书管理系统文档_第4页
c语言程序设计报告 图书管理系统文档_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

第一章§1.1题目描述图书管理系统设计:【要求】图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。试设计一图书管理系统(1)新图书基本信息的输入;(2)图书基本信息的查询;,使之能提供以下功能:(3)对撤销图书信息的删除;(4)办理借书手续;(5)办理还书手续;【提示】建立图书馆里信息结构体,结构体成员包括图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号。存在状态设为整型,可用不同数字代表借还状态。借书和还书手续要注意修改结构体的成员变量存在状态的值。§1.2算法设计1.设计思想:在整个系统编写的过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。由此进一步加深、巩固了所学的课程的基本理论知识,培养了综合分析、解决问题的能力。在设计程序时,参考了学校图书馆的图书管理系问题统,实现了程序的模块化、结构化。在主函数中调用各种函数,操作界面简单,易操作,人机互动性较强。2.实现注释:这个实用的小型图书管理系统录入、修改和保存等功能,所有信息以磁盘文件方式保存,方便用户使用。本图书管理系统分为管理员和学生两个部分,其基本功能包括了对图书信息的存储、查询、添加、手续办理等。查询时可按书名、编号等方式查询,找到后输出这本书查询图书的在库状态,方便用户进行借书、还书操作。在借书还书成功后图书的在库状态自动改变,并更新信息到数据库。系统中主要的数据结构就是图书名称、图书编、性别、学号等。在处理过程中各项可以作为一本图书的不同属性来进行程序以结构体数组指针操作完成,并实现文件信息的删除和借书、还书的所有信息。可号、单价、作者、存在状态、借书人姓名处理。3.结构体系设计

图1.1:主函数结构;图1.2:新书信息录入流程;图1.3:图书信息查询(管理员)流程;图1.4:图书信息查询(学生)流程;图1.5:图书信息删除流程;图1.6:办理

1.程序设计:下面,我大致介绍一下我的系统的主要功能和注意事项:当运行此程序时,首先进入系统主界面,然后可以选择[1].管理员登陆(密码:123),[2].学生登陆,[0].退出系统;选择[1]后进入管理员系统,验证密码成功后显示管理员功能菜单,按数字键选择所需服务。管理员功能菜单中,[1].新书信息录入,[2].图书信息查询,[3].图书信息删除,[4].返回主菜单,[0].退出系统;当出现“请选择”时,输入选项前的数字,输完之后按回车(下同)。首次运行系统需要先选择[1]录入库存书籍信息,图书各信息项须用空格键隔开,输入完毕后信息自动储存并更新至数据库,然后等操作,需要注意的是每次磁盘文件信息不会改变。选择[2]后进入学生系统,然后显示学生功能菜单,按数字键选择所需服务。学生功[1].图书信息查询,[2].办理借书手续,[3].办理函数手续,[4].返回主菜单,[0].退出系统;当出现前的数字。当进入办理借书和还书确认等操作,盘文件信息不再选择其他操作。当选择[3]时会进入图书信息删除,在这里可以选择删除图书信息执行删除操作需要手动选择保存图书信息的操作,不然能菜单中,“请选择”时,输入选项手续功能时需要注意的是每次执行操作需要手动选择否子磁会改变。所有信息最后均以磁盘文件方式用户在使用时必须要按这种格式输入,否则会出现2.代码分析:保存,而且格式固定,输入和输出均按这种格式,文件信息错误。/**********源程序#include<stdio.h>#include<stdlib.h>#include<string.h>#defineLONGsizeof(structBook)structBook代码**********/{chartitle[100];charauthor[50];charpress[100];charyear[5];charclaim_number[30];intcollection;intcan_borrow;charunit_price[10];charstudent_name[50];charsex[5];charstudent_id[20];longlongintnumber;};

/**********函数声明**********/voidmain_meun();//【主界面函数】voidmanager_menu();//【管理员功能界面函数】voidstudent_meun();//【学生功能界面函数】intbook_add(intback);//【新书信息录入函数】intsearch_2(intback);//【图书信息查询(学生版)】intsearch_1(intback);//【图书信息查询函数(管理员版)】intsearch_number(intback);//【按编号查询函数(管理员版)】intsearch_title(intback);//【按书名查询函数(管理员版)】voidsearch_menu();//【图书查询函数界面(管理员版)】intbook_delete(intback);//【图书信息删除函数】intborrow(intback);//【办理借书手续函数】intreturn_book(intback);//【办理还书手续函数】/**********主函数**********/intmain(){inta,b,c,z;intback=0,back2=0,back3=0;为一个标志位,用于从子函数返回主界面back=0;back2=0;back3=0;main_meun();//【主界面函数】while(1)//主程序循环运行{switch(a){case1://进入管理员界面{登陆密码【123】:if(z!=123)gotoA;为一个标志位,用于从子函数返回管理员功能界面back=0;back2=0;back3=0;manager_menu();//【管理员功能界面函数】while(1){

switch(b){case1:{back2=book_add(back2);if(back2==1)gotoB;}//进入新书信息录入图书信息查询case2:{back2=search_1(back2);if(back2==1)gotoB;}//进入case_3:{back2=book_delete(back2);if(back2==1)gotoB;}//进入图书信息删除case4:gotoA;//返回主菜单case0://退出系统{感谢使用,再见!=-exit(0);}}}}break;case2://进入学生界面{为一个标志位,用于从子函数返回学生功能界面back=0;back2=0;back3=0;student_meun();//【学生功能界面函数】while(1){switch(c){case1:{back3=search_2(back3);if(back3==1)gotoC;}//进入图书信息查询case2:{back3=borrow(back3);if(back3==1)gotoC;}//办理case3:{back3=return_book(back3);if(back3==1)gotoC;}//case4:gotoA;//返回主菜单借书手续办理还书手续

case0://退出系统{感谢使用,再见!=-exit(0);}}}}break;case0://退出系统{感谢使用,再见!=-exit(0);}}}}/**********其他函数**********/voidmain_meun()//【主界面函数】{欢迎使用图书管理系统

管理员登陆[2].学生登陆[0].退出系统请选择:}voidmanager_menu()//【管理员功能界面函数】{新书信息录入图书信息查询图书信息删除返回主菜单退出系统

请选择:}voidstudent_meun()//【学生功能界面函数】{图书信息查询办理借书手续办理还书手续返回主菜单退出系统请选择:}intbook_add(intback)//【新书信息录入函数】{FILE*fp;structBook*p1;

longlonginta,b;intn;图书信息数据库数据库打开错误!请检查while(1){为一个标志位,用于返回本函数首界面p1=(structBook*)malloc(LONG);fseek(fp,-11,SEEK_END);if(a<0)a=20011001;fseek(fp,0,SEEK_END);上一本图书编号:请输入新图书信息:书名作者出版社年份索取号单价数量p1->number=a+1;未知未知未知>claim_number,p1->unit_price,&p1->collection);p1->can_borrow=p1->collection;r,p1->press,p1->year,p1->claim_number,p1->unit_price,p1->collection,p1->can_borrow,p1->student_name,p1->sex,p1->student_id,p1->number);fflush(fp);if(1<p1->collection){for(b=2;b<=p1->collection;b++){p1->number=a+b;

r,p1->press,p1->year,p1->claim_number,p1->unit_price,p1->collection,p1->can_borrow,p1->student_name,p1->sex,p1->student_id,p1->number);fflush(fp);}}继续录入[2].结束录入请选择:switch(n){case1:gotoA;case2:{fclose(fp);back=1;return(back);}}}}intsearch_2(intback)//【进入图书信息查询(学生版)】{FILE*fp;chartitle[100];structBook*p;inta1=0,b1;为一个标志位,用于返回本函数首界面back=0;请输入书名:图书信息数据库数据库打开错误!请检查p=(structBook*)malloc(LONG);while(!feof(fp)){

->press,p->year,p->claim_number,p->unit_price,&p->collection,&p->can_borrow,p->student_name,p->sex,p->student_id,&p->number);if(strcmp(title,p->title)==0){a1=1;书名作者出版社年份索取号馆藏可借year,p->claim_number,p->collection,p->can_borrow);break;}}if(a1==1){fclose(fp);继续搜索[2].返回学生功能菜单[0].退出系统请选择:while(1){switch(b1){case1:gotoA;break;case2:return(back=1);case0:{感谢使用,再见!=-

exit(0);}}}}if(a1==0){fclose(fp);未找到与条件相符的图书!继续搜索[2].返回学生功能菜单[0].退出系统请选择:while(1){switch(b1){case1:gotoA;break;case2:return(back=1);case0:{感谢使用,再见!=-exit(0);}}}

}}intsearch_1(intback)//【进入图书信息查询函数(管理员版)】{inta,back3;为一个标志位,用于返回本函数首界面back=0;back3=0;search_menu();while(1){switch(a){case1:{back3=search_number(back3);if(back3==1)gotoA;}//进入编号查询case2:{back3=search_title(back3);if(back3==1)gotoA;}//进入书名查询case3:return(back=1);}}}intsearch_number(intback)//【按编号查询函数(管理员版)】{FILE*fp;longlongintnumber;structBook*p;intb1;为一个标志位,用于返回本函数首界面back=0;请输入图书编号(数字):图书信息数据库数据库打开错误!请检查p=(structBook*)malloc(LONG);while(1){if(feof(fp)){fclose(fp);

未找到与条件相符的图书!继续搜索[2].返回上一级菜单[0].退出系统请选择:while(1){switch(b1){case1:gotoA;break;case2:return(back=1);case0:{感谢使用,再见!exit(0);}}}}->press,p->year,p->claim_number,p->unit_price,&p->collection,&p->can_borrow,p->student_name,p->sex,p->student_id,&p->number);if(number==p->number){fclose(fp);编号:

}intsearch_title(intback)//【按书名查询函数(管理员版)】{FILE*fp;chartitle[100];structBook*p;inta1,b1;为一个标志位,用于返回本函数首界面back=0;a1=0;请输入书名:图书信息数据库数据库打开错误!请检查p=(structBook*)malloc(LONG);while(!feof(fp)){->press,p->year,p->claim_number,p->unit_price,&p->collection,&p->can_borrow,p->student_name,p->sex,p->student_id,&p->number);if(strcmp(title,p->title)==0){a1=1;编号:索取号:年份:单价:书名:作者:出版社:可借:馆藏:借书人信息姓名:性别:学号:

继续搜索[2].返回上一级菜单[0].退出系统请选择:while(1){switch(b1){case1:gotoA;break;case2:return(back=1);case0:{感谢使用,再见!=-exit(0);}}}}}voidsearch_menu()//【图书查询函数界面(管理员版)】{按图书编号查询按图书名称查询

索取号:年份:单价:书名:作者:出版社:可借:馆藏:借书人信息姓名:性别:学号:}}fclose(fp);if(b==1){fclose(fp);此书正在出借,无法删除信息!重新搜索[2].返回管理员功能菜单[0].退出系统请选择:while(1){switch(b){case1:gotoA;break;case2:return(back=1);case0:{感谢使用,再见!=-

}i+=1;}j=i;fclose(fp);图书信息数据库数据库打开错误!请检查i=0;while(j!=0){hor,n[i].press,n[i].year,n[i].claim_number,n[i].unit_price,n[i].collection,n[i].can_borrow,n[i].student_name,n[i].sex,n[i].student_id,n[i].number);fflush(fp);i+=1;j-=1;}fclose(fp);删除成功!继续删除[2].返回管理员功能菜单[0].退出系统请选择:while(1){switch(b){case1:gotoA;break;case2:return(back=1);case0:{

感谢使用,再见!exit(0);}}}}case2:return(back=1);}}}if(a!=1){fclose(fp);未找到与书名相符的图书!重新搜索[2].返回管理员功能菜单[0].退出系统请选择:while(1){switch(b){case1:gotoA;break;case2:return(back=1);case0:{感谢使用,再见!=-

exit(0);}}}}}intborrow(intback)//【办理借书手续函数】{FILE*fp;chartitle[100];charstudent_name[50],sex[5],student_id[20];structBook*p,n[1000];inta,b,c,d,i,j;为一个标志位,用于返回本函数首界面back=0;a=0;b=0;i=0;j=0;d=0;请输入书名:图书信息数据库数据库打开错误!请检查p=(structBook*)malloc(LONG);while(!feof(fp)){->press,p->year,p->claim_number,p->unit_price,&p->collection,&p->can_borrow,p->student_name,p->sex,p->student_id,&p->number);if(strcmp(title,p->title)==0){a=1;if(p->can_borrow!=0)b=1;书名作者出版社年份索取号馆藏可借

fclose(fp);无法办理该书借阅手续!继续搜索[2].返回学生功能菜单[0].退出系统请选择:while(1){switch(c){case1:gotoA;case2:return(back=1);case0:{感谢使用,再见!=-exit(0);}}}}if(b==1){是否办理该书借书手续?是[2].否

while(1){switch(c){case1:{请输入你的个人信息:姓名性别学号图书信息数据库数据库打开错误!请检查while(!feof(fp)){thor,&n[i].press,&n[i].year,&n[i].claim_number,&n[i].unit_price,&n[i].collection,&n[i].can_borrow,&n[i].student_name,&n[i].sex,&n[i].student_id,&n[i].number);if(strcmp(title,n[i].title)==0){未知{strcpy(n[i].student_name,student_name);strcpy(n[i].sex,sex);strcpy(n[i].student_id,student_id);d=1;}n[i].can_borrow-=1;}i+=1;}fclose(fp);

j=i;i=0;图书信息数据库数据库打开错误!请检查while(j!=0){hor,n[i].press,n[i].year,n[i].claim_number,n[i].unit_price,n[i].collection,n[i].can_borrow,n[i].student_name,n[i].sex,n[i].student_id,n[i].number);fflush(fp);i+=1;j-=1;}fclose(fp);借书办理成功!继续借书[2].返回学生功能菜单[0].退出系统请选择:while(1){switch(c){case1:gotoA;break;case2:return(back=1);case0:{感谢使用,再见!

{a=1;year,p->claim_number,p->collection,p->can_borrow);}}fclose(fp);if(a!=1){你目前没有借书记录!返回学生功能菜单[0].退出系统请选择:while(1){switch(c){case1:return(back=1);case0:{感谢使用,再见!=-exit(0);}}}

}if(a==1){请输入所还图书书名(每次一种):是否确认办理该书还书手续?是[2].否请输入:while(1){switch(c){case1:{图书信息数据库数据库打开错误!请检查while(!feof(fp)){thor,&n[i].press,&n[i].year,&n[i].claim_number,&n[i].unit_price,&n[i

温馨提示

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

评论

0/150

提交评论