您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 图书管理系统VC60程序设计
福建农林大学计算机与信息学院计算机类课程设计报告课程名称:程序设计基础课程设计题目:图书管理系统姓名:曾碧滢系:数学系专业:信息与计算科学年级:13级学号:3136003038指导教师:林耀海福建农林大学计算机与信息学院计算机类课程设计结果评定评语:成绩:指导教师签字:任务下达日期:评定日期:目录一、课程设计的目的:............................................................................4二、课程设计的要求:............................................................................4三、实习地点:个人电脑........................................................................4四、主要仪器设备(实验用的软硬件环境):.......................................4五、算法的思想........................................................................................4六、设计流程图........................................................................................6七、程序代码:........................................................................................6八、程序运行的结果:.............................................................................41参考文献...................................................................................................47致谢:.......................................................................................................47两图书管理系统一、课程设计的目的:1.了解并掌握C语言的程序设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风;二、课程设计的要求:1.了解并掌握C语言程序设计的一般方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;三、实习地点:个人电脑四、主要仪器设备(实验用的软硬件环境):硬件环境:PC机,软件环境:vc6.0五、算法的思想本程序用文件来储存图书信息和读者信息。Step1:程序运行预处理,读取图书库文件和读者库文件信息,获取系统时间。读取文件的方法:通过函数fread()每次读取一个结点的信息,同时储存进链表的结点中,然后每读取一个结点,就依次在链表后面添加一个结点。Step2:弹出菜单oStep2.1:1.浏览图书信息Step2.2:2.浏览读者信息oStep2.3:3.图书登记入库Step2.4:4.读者证件办理oStep2.5:5.读者图书借阅Step2.6:6.读者图书归还oStep2.7:7.读者信息查询Step2.8:8.读者信息修改oStep2.9:9.图书信息修改Step2.10:10.图书资源搜索Step3:浏览图书信息o通过遍历单链表来实现打印所有的图书信息Step4:浏览读者信息o通过遍历单链表来实现打印所有读者信息,浏览前验证管理员权限Step5:图书登记入库o图书登记入库相当于单链表结点的添加,每登记一本图书,就插入一个结点。Step6:读者证件办理o读者证件办理相当于往读者链表里头添加结点,新增一个读者信息,就在读者链表尾部添加一个结点。办理证件前先验证管理员权限。Step7:读者信息查询o先读者登录,登录相当于在读者链表中找与之登录匹配的信息,匹配成功则登录成功,登录完成后,打印出读者的所有注册和借书信息。Step8:读者信息修改o先登录,完成后,进行读者信息修改。Step9:图书信息修改o同读者信息修改一样的实现方法。不过在修改前先验证管理员权限。Step10:图书信息搜索o这里支持图书名搜索,图书作者搜索,索书号搜索。实现原理:遍历图书链表。Step11:退出图书系统o退出前调用图书信息保存函数和读者信息保存函数。将链表信息储存进文件中。然后调用退出函数exit(0)。六、设计流程图七、程序代码://图书管理系统#includestdio.h#includestdlib.h#includestring.h#includewindows.h#includeconio.h#includetime.h/*定义图书有关的数据结构*/structbook{intBookNum;/*图书编号*/charBookName[20];/*图书名字*/charBookAuthor[15];/*图书作者*/intnowCount;/*图书现存量*/intallCount;/*图书库存量*/};/*定义与读者有关的数据结构*/structreader{intReaderNum;/*读者编号*/charReaderName[20];/*读者的姓名*/charReaderSex[8];/*读者的性别*/intReaderAge;/*读者的年龄*/charReaderTel[15];/*读者的电话*/intReaderCount;/*读者目前已经借阅的数目*/charpassword[16];/*读者证件密码*/chardate[10][100];/*读者借阅日期*/intReaderBorrow[10];/*当前已经借阅的图书编号*/charBorrowName[10][40];/*已经借阅的图书名字*/};/*定义与每条图书纪录有关的数据结构*/typedefstructbooknode{structbookdata;/*数据域*/structbooknode*next;/*指针域*/}BookNode;/*定义与每条读者纪录有关的数据结构*/typedefstructreadernode{structreaderdata;/*数据域*/structreadernode*next;/*指针域*/}ReaderNode;/*定义图书馆中读者和藏书的总数目*/structrbnum{intrnum;/*读者总个数*/intbnum;/*书籍总本数*/}allRBnum;/*******************************************//*函数声明*/BookNode*OpenBook();/*打开图书库文件*/ReaderNode*OpenReader();/*打开读者库文件*/voidInBook(BookNode*pbook);/*图书录入*/voidSaveBook(BookNode*pbook);/*图书信息保存*/voidSaveReader(ReaderNode*preader);/*读者信息保存*/voidBorrowBook(BookNode*pbook,ReaderNode*preader);/*图书借阅*/voidReturnBook(BookNode*pbook,ReaderNode*preader);/*图书归还*/voidLookBook(BookNode*pbook);/*浏览图书库*/voidLookReader(ReaderNode*preader);/*浏览读者库*/voidInReader(ReaderNode*preader);/*借书证办理*/voidFindReaderAll(ReaderNode*preader);/*读者信息查询*/ReaderNode*LoginReader(ReaderNode*preader);/*读者登陆验证*/intLoginAdmin();/*管理员登陆验证*/voidModifyReader(ReaderNode*preader);/*修改读者信息*/voidModifyBook(BookNode*pbook);/*修改图书信息*/voidGotoXY(intx,inty);/*光标定位*/voiderase(intn);/*擦除菜单选项*/voidmenu(intn);/*菜单选项*/voidFindBook(BookNode*pbook);/*图书搜索*/voidLocalTime(char*strTime);/*获取系统本地时间*//*******************************************//*打开图书文件book,将其存入链表中*/BookNode*OpenBook(){FILE*fpbook;BookNode*pb=NULL,*rb=NULL;allRBnum.bnum=0;/*初始化藏书0本*/BookNode*pbook=(BookNode*)malloc(sizeof(BookNode));/*头指针*/if(!pbook){printf(空间申请失败\n);exit(0);}pbook-next=NULL;rb=pbook;fpbook=fopen(.\\book.txt,a+);/*追加的方式打开一个二进制文件*/if(!fpbook){printf(文件打开失败\n);exit(0);}while(!feof(fpbook)){pb=(BookNode*)malloc(sizeof(BookNode));/*申请空间*/if(!pb){printf(空间申请失败\n);exit(0);}if(fread(pb,sizeof(BookNode),1,fpbook)==1){pb-next=NULL;rb-next=pb;rb=pb;/*rb指针向后移一位*/allRBnum.bnum+=pb-data.allCount;/*总图书数目统计*/}}fclose(fpbook);/*关闭文件*///printf(打开文件成功!图书馆总共藏书:%d本\n,allRBnum.bnum);returnpbook;}/*打开读者文件reader,将其存入链表中*/ReaderNode*OpenReader(){FILE*fpreader;ReaderNode*pr=NULL,*rr=NULL;allRBnum.rnum=0;/*初始化读者人数0位*/ReaderNode*preader=(ReaderNode*)malloc(sizeof(ReaderNode));/*头指针*/if(!preader){printf(空间申请失败\n);exit(0);}preader-next=NULL;rr=preader;fpreader=fopen(.\\reader.txt,a+);/*追加的方式打开一个二进制文件*/if(!fpreader){printf(文件打开失败\n);exit(0);}while(!feof(fpreader)){pr=(ReaderNode*)malloc(sizeof(ReaderNode));/*申请空间*/if(!pr){printf(空间申请失败\n);exit
本文标题:图书管理系统VC60程序设计
链接地址:https://www.777doc.com/doc-4239477 .html