程序设计报告图书管理系统
图书管理系统设计报告
图书管理系统设计报告第一篇:图书管理系统设计报告图书管理系统设计报告一系统开发的目标与意义1.1设计题目此次VFP课程设计是综合应用所学过的数据库理论知识,自行设计并实现一个较为完整的应用系统。
结合一个实际信息系统开发,初步掌握数据库管理信息系统的方案设计、论证和分析方法。
正确运用所学课程的基本理论和知识,了解在Windows环境下,使用Visual FoxPro 6.0开发管理信息系统所需的计算机软、硬件环境。
进一步深刻理解Visual FoxPro 6.0,合理设计并建立数据库,建立数据库中表与表之间的关系。
在理论教学的基础上,进一步理解可视化编程的基本概念,熟练掌握可视化编程的方法和步骤。
通过编程和上机调试,提高计算机应用与开发水平,特别是VFP平台的开发水平和能力,提高解决实际问题的能力。
从软件工程的角度,初步树立正确的程序设计思想,从系统分析、系统设计、系统实现、系统评价出发。
培养分析问题、解决问题的能力。
提高收集、查阅资料和撰写项目文档的能力。
1.2开发意义针对图书馆特点,图书管理系统实现后,能够使界面友好美观操作简单易行。
全面自动化信息管理,可随时掌握图书的进存、借阅等信息,查询灵活方便,数据存储安全可靠。
进而提高工作效率。
改善后的图书管理系统将功能全面,实用性强。
1.3系统开发过程1.3.1 分析阶段本阶段主要工作是信息的收集,正所谓好的开度等于成功的一半。
通过信息的收集工作来确定系统的目标、软件的总体思路以及所需要的时间。
1.3.2设计阶段在本阶段认真设计可以体会到什么叫事半功倍。
详细的规划具体需要完成的任务、输入输出的程序以及采用的数据结构,最好通过一定的算法描述工具详细描述算法。
1.3.3实施阶段本阶段要运用(1)系统论思想,把所做的大系统分解成几个小系统,但要保证小系统即个功能模块受高一级系统控制。
(2)“自上而下”的设计思想。
每一给小程序都可独立、精确运行,但严格受制与高一级程序。
c语言程序设计报告--图书管理系统_第二组
C语言课程设计报告图书信息管理系统设计第二组指导老师:韩晶C语言程序设计C语言程序设计实践是学习C语言的重要一环。
在实践中我们运用所有所学的C语言知识完成此次项目。
任何上机实践都增强我们对C语言的理解及运用能力。
虽然此次项目对我们初学者来说是一个巨大的工程,但组员之间的合作让我们顺利解决了各种难题。
谨以此成果献给所有费尽心血的第二小组成员及不断给予指导的韩老师。
一.题目要求1.设计题目:图书信息管理系统2.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格3.系统实现以下功能:1)系统以菜单方式工作。
2)图书信息录入功能——输入。
3)图书信息浏览功能——输出。
4)查询和排序功能:(1)按书名查询(2)按作者名查询(3)按登录号排序(4)按图书价钱排序5)图书信息的删除与修改。
二.设计分析概括根据题目要求分析可知我们需要程序提供一个结构体及文件的输入输出功能。
图书信息以结构体的形式存入固定文件中,在此基础上实现图书信息的浏览,查询和排序,删除与修改功能。
并将各种功能分为不同的子程序,在主程序上进行调用及运行。
程序界面菜单以键盘输入选择的方式来运行各种功能。
三.总体设计根据题目要求将程序分为以下部分:1.管理员登陆系统模块2.菜单选择模块3.图书信息录入功能模块4.图书信息浏览功能模块5.图书信息查询功能模块6.图书信息的删除与修改模块四.具体编程#include<stdio.h>typedef struct bkInfo /*图书信息结构体*/{char idNum[20]; /*图书编号*/char bkName[20]; /*书名*/char writer[10]; /*作者名*/char press[10]; /*出版社*/char pubTime[10]; /*出版时间*/char price[10]; /*价格*/char claNum[14]; /*分类号*/} ;#define x 4#define y 6int main(){void menua(); /*管理员菜单*/void menub(); /*读者菜单*/void bkadd(); /*图书信息添加*/int choice1,chlan;int choice2,idcode=1615,passcode=123,idcheck,passcheck;clrscr();1.登录菜单printf("\n==============================================================");printf("\n ||\t\t\t\t\t\t\t\t ||");printf("\n ||\t\t *** WELCOME TO THE *** ||");printf("\n ||\t\t\t\t\t\t\t\t ||");printf("\n || UNITED ADMINISTRATION AND INQUIRY OF BOOK INFORMATION ||"); printf("\n ||\t\t\t\t\t\t\t\t ||");printf("\n ||\t\t *** STANDERD SYSTEM *** \t\t ||");printf("\n ||\t\t\t ( ALPHA-X-%d.%d )\t\t\t ||",x,y);printf("\n ||\t\t\t\t\t\t\t\t ||");printf("\n ||\t\t\tpowered by Group II \t\t\t ||");printf("\n ||\t\t\t\t\t\t\t\t ||");printf("\n==============================================================");printf("\n\n\t ---------------------------------------");printf("\n\t\t >>> ENTER THE SYSTEM? Y/N <<<");printf("\n\t ---------------------------------------\n");printf("\n\n\t[] Enter 1 for YES or 2 for NO"); /*是否选择进入*/printf("\n\nYOU CHOOSE:");scanf("%d",&choice1);2.管理员模式/读者模式进入while(choice1!=1&&choice1!=2) /*选择号错误*/{printf("\n\n\t[] Unidentified option,please recheck!");printf("\n\t[] Enter 1 for YES or 2 for NO");printf("\n\nYOU CHOOSE:");scanf("%d",&choice1);}switch(choice1){case 1: /*选择进入系统*/printf("\n\n\t\t ACCESS confirmed loading...");printf("\n\n\t[] Is this an Administrator Visit or a General Visit?");printf("\n\n\t[] Enter 1 for your Administrator Visit or 2 for the other.\n\n"); printf("\nYOU CHOOSE:"); /*选择管理员模式或读者模式*/ scanf("%d",&choice2);while(choice2!=1&&choice2!=2) /*进入模式选择号错误*/ {printf("\n\n\t[] Unidentified option,please recheck!");printf("\n\t[] Enter 1 for your Administrator Visit or 2 for the other.");printf("\n\nYOU CHOOSE:");scanf("%d",&choice2);}if(choice2==1) /*进入管理员模式*/{printf("\n\n\t ----------------------------------------------------");printf("\n\t LOGIN >>>please enter your ID CODE & PASSWORD<<<");printf("\n\t ----------------------------------------------------\n");printf("\nYOUR ID:");scanf("%d",&idcheck);printf("\nPASSWORD:");scanf("%d",&passcheck);while(idcheck!=idcode || passcheck!=passcode)/*通行证与密码错误*/ {printf("\n\n\t[] Unidentified ID or wrong PASSWORD,ACCESS refused,please recheck!");printf("\n\t[] please enter your ID CODE & PASSWORD");printf("\n\nYOUR ID:");scanf("%d",&idcheck);printf("\nPASSWORD:");scanf("%d",&passcheck);}if(idcheck==idcode && passcheck==passcode)/*进入管理员模式菜单*/ {printf("\n\n\n\n\t[] ACCESS for Noble Class has been authorisedloading...");printf("\n\n\t[] Administor System at your service !");printf("\n\n\n\t[] Please choose a language service: 1.Chinese 2.English3.French");printf("\n\nYOU CHOOSE:"); /*语言选择*/scanf("%d",&chlan);while(chlan!=2){if(chlan>3){printf("\n\n\t[] Unidentified option,please recheck!");printf("\n\t[] Please choose a language service: 1.Chinese 2.English3.French");}else{printf("\n\n\t[] ERROR: NO LANGUAGE PACKAGE HAS BEEN FOUND !");printf("\n\t[] Please choose a language service: 1.Chinese 2.English3.French");}printf("\n\nYOU CHOOSE:");scanf("%d",&chlan);}if(chlan==2){menua();}}}if(choice2==2) /*进入读者模式*/{printf("\n\n\n\n\t[] OPTION CONFIRMED,LANGUAGE PACKAGE is laoding...please wait...\n");printf("\n\t[] ACCESS authorised loading...");printf("\n\n\t[] Visitor System operational...");menub();}break;case 2: /*选择不进入系统*/printf("\n\n\t\t\t\t ***QUIT***");printf("\n\t\t\tTHANKS FOR USING,SO LONG !!!\n");printf("\n\n UNITED ADMINISTRATION AND INQUIRY OF BOOK INFORMATION-STANDERD SYSTEM-%d.%d",x,y);printf("\n\t\t powered by Group II in 3.2012");printf("\n\n\n\t\t\t SPECIAL THANKS FOR\n");printf("\n\t[] Peter Horuce ^_^ for Main Function & Debugging");printf("\n\t[] WangYueWei ^_^ for Program Design & ...");printf("\n\t[] ZhangYanDong ^_^ for Book Data Input Function");printf("\n\t[] ZhangBeiBei ^_^ for the ...");printf("\n\t[] GuoXinYu ^_^ for the ...");printf("\n\t[] SongShaoXiu ^_^ for the ...");printf("\n\t[] GuLingKai ^_^ for the ...");printf("\n\t[] ZhenYiFeng ^_^ for the ...");printf("\n\t[] WangJieYao ^_^ for the ...");printf("\n\t[] LiLuZi ^_^ for the ...");printf("\n\t[] WangSanHu ^_^ for the ...");printf("\n\t[] HuangFangHao ^_^ for the ...");printf("\n");getch();break;}return 0;}3.管理员模式系统void menua(){int ch,out;printf("\n\n\n\t[] OPTION CONFIRMED,LANGUAGE PACKAGE is laoding...please wait...\n\n");printf("\n\t\t*********************************");printf("\n\t\t*\t\t\t\t*");printf("\n\t\t* CENTRAL BOOK ADMINISTRATION *");printf("\n\t\t*\t\t\t\t*");printf("\n\t\t*********************************\n\n");printf("\t\t\t <<< M E N U >>>\n\n");printf("\t\t 1.Book Data Input\t2.bkamend\n\n");printf("\t\t 3.bkdelete\t\t4.bkorder\n\n");printf("\t\t 5.bksearch\t\t6.bkview\n\n");printf("\t\t 7.QUIT\n\n\n");printf("PLEASE CHOOSE A SERVICE:");scanf("%d",&ch); /*服务选择*/while(ch>7){printf("\n\n\t[] Unidentified option,please recheck!\n");printf("\n\nPLEASE CHOOSE A SERVICE:");scanf("%d",&ch);}switch(ch){case 1:printf("\n\t[] As you wish!\n");bkadd();break;case 2:printf("\n\t[] As you wish!\n");break;case 3:printf("\n\t[] As you wish!\n");break;case 4:printf("\n\t[] As you wish!\n");break;case 5:printf("\n\t[] As you wish!\n");break;case 6:printf("\n\t[] As you wish!\n");break;case 7:printf("\n\n\t\t\t\t ***QUIT***");printf("\n\t\t\tTHANKS FOR USING,SO LONG !!!\n");printf("\n\n UNITED ADMINISTRATION AND INQUIRY OF BOOK INFORMATION-STANDERD SYSTEM-%d.&d",x,y);printf("\n\t\t powered by Group II in 3.2012");printf("\n\n\n\t\t\t SPECIAL THANKS FOR\n");printf("\n\t[] Peter Horuce ^_^ for Main Function & Debugging");printf("\n\t[] WangYueWei ^_^ for Program Design & ...");printf("\n\t[] ZhangYanDong ^_^ for Book Data Input Function");printf("\n\t[] ZhangBeiBei ^_^ for the ...");printf("\n\t[] GuoXinYu ^_^ for the ...");printf("\n\t[] SongShaoXiu ^_^ for the ...");printf("\n\t[] GuLingKai ^_^ for the ...");printf("\n\t[] ZhenYiFeng ^_^ for the ...");printf("\n\t[] WangJieYao ^_^ for the ...");printf("\n\t[] LiLuZi ^_^ for the ...");printf("\n\t[] WangSanHu ^_^ for the ...");printf("\n\t[] HuangFangHao ^_^ for the ...");printf("\n");getch();break;}}4.读者模式系统void menub(){int cho,out;printf("\n\n\n\t\t ***** INQUIRY OF BOOK INFORMATION *****");printf("\n--------------------------------------------------------------------------------");printf("\n\n\t\t\t <<< M E N U >>>\n\n");printf("\t\t 1.[restricted]\t 2.[restricted]\n\n");printf("\t\t 3.[restricted]\t 4.[restricted]\n\n");printf("\t\t 5.bksearch\t\t 6.bkview\n\n");printf("\t\t 7.QUIT\n\n\n");printf("PLEASE CHOOSE A SERVICE:");scanf("%d",&cho); /*服务选择*/while(cho>7 || cho<5){if(cho>7)printf("\n\n\t[] Unidentified option,please recheck!\n");if(cho>=1 && cho<=4)printf("\n\n\t[] Restricted option! You are not an authorised administor!\n"); printf("\n\nPLEASE CHOOSE A SERVICE:");scanf("%d",&cho);}switch(cho){case 5:break;case 6:break;case 7:printf("\n\n\t\t\t\t ***QUIT***");printf("\n\t\t\tTHANKS FOR USING,SO LONG !!!\n");printf("\n\n UNITED ADMINISTRATION AND INQUIRY OF BOOK INFORMATION-STANDERD SYSTEM-%d.&d",x,y);printf("\n\t\t powered by Group II in 3.2012");printf("\n\n\n\t\t\t SPECIAL THANKS FOR\n");printf("\n\t[] Peter Horuce ^_^ for Main Function & Debugging");printf("\n\t[] WangYueWei ^_^ for Program Design & ...");printf("\n\t[] ZhangYanDong ^_^ for Book Data Input Function");printf("\n\t[] ZhangBeiBei ^_^ for the ...");printf("\n\t[] GuoXinYu ^_^ for the ...");printf("\n\t[] SongShaoXiu ^_^ for the ...");printf("\n\t[] GuLingKai ^_^ for the ...");printf("\n\t[] ZhenYiFeng ^_^ for the ...");printf("\n\t[] WangJieYao ^_^ for the ...");printf("\n\t[] LiLuZi ^_^ for the ...");printf("\n\t[] WangSanHu ^_^ for the ...");printf("\n\t[] HuangFangHao ^_^ for the ...");printf("\n");getch();break;}}5.图书添加void bkadd(){struct bkInfo book;FILE *fp;int n,i,j;char message[2];if((fp=fopen("e:\\bkInfo.txt","a"))==NULL){if((fp=fopen("e:\\bkInfo.txt","w"))==NULL){printf("Failed to open the file\n");return;}}printf("\n\n\n\t\t==========================\n");printf("\t\t Book Information Input \n");printf("\t\t==========================\n\n");printf("\t[] The number of your books that are to write in is(are):");scanf("%d",&n);gets(message);for(i=1;i<=n;i++){printf("\n\n\t[] Now please write in the info:\n\n\n");printf("\t1.BOOK'S ID: ");gets(book.idNum);printf("\t2.BOOK'S NAME: ");gets(book.bkName);printf("\t3.AUTHOR'S NAME: ");gets(book.writer);printf("\t4.PRESS OF BOOK: ");gets(book.press);printf("\t5.BOOK'S PRICE: ");gets(book.price);printf("\t6.PUBLISHED TIME: ");gets(book.pubTime);printf("\t7.CLASSIFICATION: ");gets(book.claNum);fprintf(fp,"%s %s %s %s %s %s %s\n",&book.idNum,&book.bkName,&book.writer, &book.press,&book.price,&book.pubTime,&book.claNum);}printf("\n\n\n\t[] All data have been saved!\n\n\t[] Back to MENU(1) or just QUIT(2) ?");printf("\n\nYOU CHOOSE:"); /*服务选择*/scanf("%d",&j);while(j!=1&&j!=2){printf("\n\n\t[] Unidentified option,please recheck!");printf("\n\t[] Enter 1 for MENU or 2 for QUIT");printf("\n\nYOU CHOOSE:");scanf("%d",&j);}if(j==1) /*返回菜单*/{printf("\n");menua();}if(j==2) /*选择结束*/{ printf("\n\n\t\t\t\t ***QUIT***");printf("\n\t\t\tTHANKS FOR USING,SO LONG !!!\n");printf("\n\n UNITED ADMINISTRATION AND INQUIRY OF BOOK INFORMATION-STANDERD SYSTEM-%d.&d",x,y);printf("\n\t\t powered by Group II in 3.2012");printf("\n\n\n\t\t\t SPECIAL THANKS FOR\n");printf("\n\t[] Peter Horuce ^_^ for Main Function & Debugging");printf("\n\t[] WangYueWei ^_^ for Program Design & ...");printf("\n\t[] ZhangYanDong ^_^ for Book Data Input Function");printf("\n\t[] ZhangBeiBei ^_^ for the ...");printf("\n\t[] GuoXinYu ^_^ for the ...");printf("\n\t[] SongShaoXiu ^_^ for the ...");printf("\n\t[] GuLingKai ^_^ for the ...");printf("\n\t[] ZhenYiFeng ^_^ for the ...");printf("\n\t[] WangJieYao ^_^ for the ...");printf("\n\t[] LiLuZi ^_^ for the ...");printf("\n\t[] WangSanHu ^_^ for the ...");printf("\n\t[] HuangFangHao ^_^ for the ...");printf("\n");getch();}fclose(fp);}五.后记1. 课程设计中遇到的主要问题和解决方法2. 创新和得意之处•界面美观•管理员有固定的登录名和密码•有语言包的选择:满足大部分人群需求•管理员和读者都可登录:系统包容性大•错选反馈:人机交互性强•一次性多重输入:方便操作•退出送别3. 设计中存在的不足及改进的设想由于编译器的局限,我们未能实现语言多重化的目标,目前系统中只存在英文版本。
图书管理系统设计报告
图书管理系统设计报告一、引言在当今信息化的社会中,图书管理系统的设计和实施对于图书馆和其他知识管理机构的高效运作至关重要。
本文旨在介绍一个完善的图书管理系统设计方案,以满足图书馆的管理需求,提高工作效率和用户体验。
二、系统设计方案1.系统结构本系统采用客户端-服务器架构,客户端通过互联网访问服务器端的数据库,实现对图书管理系统的各项功能操作。
服务器端负责数据存储和处理,客户端则为用户提供友好的界面和操作体验。
2.功能模块(1)图书查询模块:用户可以通过关键词搜索、分类检索、作者查找等方式快速找到所需图书信息。
(2)借阅管理模块:用户可在线办理图书借阅、还书手续,系统支持借阅期限管理、逾期罚款等功能。
(3)读者管理模块:包括读者注册、身份验证、权限管理等功能,确保图书管理系统的安全性和稳定性。
(4)统计报表模块:系统可生成借阅排行榜、热门图书统计、阅读趋势分析等报表,帮助管理员及时了解图书馆的运行情况。
3.技术选型本系统采用主流的前端技术HTML、CSS、JavaScript,后端采用Java语言开发,数据库使用MySQL。
同时,引入Spring、MyBatis等框架,确保系统的稳定性、扩展性和安全性。
三、系统实施方案1.系统部署系统部署在云服务器上,确保系统的24小时不间断运行。
同时设置定时备份、灾难恢复机制,以应对意外情况,并确保数据的完整性和安全性。
2.系统测试在系统实施前,进行全面的功能测试、性能测试、安全测试等,确保系统的稳定性和功能完整性。
同时邀请用户参与测试,收集用户反馈,不断改进系统的用户体验。
3.系统培训在系统上线前,对管理员和用户进行培训,教授操作技巧、管理方法,提高用户对系统的熟练度和使用效率。
四、总结通过本设计方案的实施,图书馆可以实现图书借阅管理的自动化、智能化,提高工作效率、提升服务质量。
希望本设计报告能为图书管理系统的设计和实施提供参考,推动图书馆信息化建设的进一步发展。
c语言课程设计报告图书管理系统
c语言课程设计报告图书管理系统一、教学目标本课程的目标是使学生掌握C语言的基本语法,熟悉图书管理系统的开发流程,培养学生运用C语言解决实际问题的能力。
具体目标如下:1.知识目标:–掌握C语言的基本语法和数据结构。
–理解图书管理系统的需求和设计原理。
2.技能目标:–能够使用C语言编写简单的程序。
–学会使用C语言实现图书管理系统的功能。
3.情感态度价值观目标:–培养学生的团队协作意识和沟通能力。
–增强学生对计算机科学和编程的兴趣和热情。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构以及图书管理系统的开发。
具体安排如下:1.C语言的基本语法:–变量和数据类型–运算符和表达式–函数和数组–指针和引用2.数据结构:3.图书管理系统的开发:–系统测试和优化三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:用于讲解C语言的基本语法和数据结构。
2.案例分析法:通过分析具体的图书管理系统案例,使学生更好地理解系统设计和功能实现。
3.实验法:让学生动手编写程序,巩固所学知识,提高实际操作能力。
4.小组讨论法:鼓励学生分组讨论,培养团队协作意识和沟通能力。
四、教学资源本课程所需的教学资源包括:1.教材:《C语言程序设计》2.参考书:《C Primer Plus》、《数据结构与算法分析》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络设备以上教学资源将用于支持教学内容和教学方法的实施,丰富学生的学习体验。
五、教学评估本课程的评估方式包括平时表现、作业、考试等。
评估方式应客观、公正,能够全面反映学生的学习成果。
具体安排如下:1.平时表现:包括课堂参与度、提问回答、小组讨论等,占总评的20%。
2.作业:包括编程练习和理论作业,占总评的30%。
3.考试:包括期中和期末考试,占总评的50%。
期中和期末考试将涵盖C语言基本语法、数据结构以及图书管理系统的开发内容。
C语言课程设计-书店管理系统精选全文
计算机程序设计(C语言)课程设计报告题目:图书管理系统学院:专业:班级:学号:姓名:指导教师:设计日期:2013年06月24日一、选题背景:设计一个图书管理系统,管理员通过登陆账号来进行下一步,使用错误账号和密码会被视为非法登陆。
图书信息包括:每种图书都有书名、ISBN、一名或多名作者(译者)、出版社、定价和内容简介等;读者信息包括:借书证记录有借阅者的姓名、密码、所在单位和类别等;读者凭借书证借书二、设计思想:(1)整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。
主要实现了图书的录入、存储、查询、添加、删除、修改、借书、还书等功能。
(2)、Cbook();这是一个指针函数,它主要实现了链表的创建,并且在创建过程中从文件读取信息到链表中,以用于后面其他函数的操作。
它返回的时一个单向链表的头。
其他函数调用时只需调用它返回的头即可。
(3)、mainmenu();、menu1();、glm enu();、cxmenu();、jhmenu();这五个函数时整个图书管理系统的全部菜单函数,mainmenu();为系统主界面,进入时可选择进入程序和退出程序。
menu1();为进程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。
glmenu();此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书等操作。
cxmenu();为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书。
jhmenu();为借书还书的子菜单,在此可以选择借书还书操作。
操作完成后按提示信息进行文件的保存操作。
三、程序流程图会员登陆系统系统管理界面收银系统管理系统报表系统退出系统四、主要解决问题的方法及技术关键通过自己定义的函数和声明一个结构,主要方法是先使用int函数定义,不同的选择进入不同的定义函数,通过for语句进行判断,然后使用heart数组的各种方式打开此文件,然后通过while函数和for函数关闭文件,在不同的取用数值里,分别使用for,while语句进行判断是否进行下条语句。
简易图书管理系统设计报告
简易图书管理系统设计报告1. 引言本报告旨在设计一款简易的图书管理系统,以满足用户对图书的管理、查询和借阅等需求。
本系统设计在功能上主要包括图书的添加、删除、查询和借阅等,为读者和图书管理员提供便捷的操作方式。
2. 系统需求分析2.1 功能需求本系统主要实现以下功能:1. 图书的添加与删除:图书管理员可以通过系统界面添加新的图书,也可以根据特定条件删除已有图书。
2. 图书的查询与展示:读者可以通过系统界面按关键字、作者、分类等条件进行图书的查询,并展示查询结果。
3. 图书的借阅与归还:读者可以通过系统界面借阅图书,并在归还时进行操作。
2.2 非功能需求1. 界面友好:系统的操作界面需要简洁明了,方便用户使用。
2. 响应及时:系统对用户的操作需求需要能够迅速响应,并给予相应的反馈。
3. 安全可靠:系统需要保护用户的个人信息和借阅信息不被非法获取或篡改。
3. 系统设计方案3.1 数据库设计本系统的数据库主要包括两个表:图书表和借阅记录表。
图书表的字段包括:图书编号、图书名称、作者、出版社、分类等。
借阅记录表的字段包括:借阅编号、读者编号、图书编号、借阅日期、归还日期等。
3.2 系统架构设计本系统采用客户端-服务器(C/S)架构模式。
客户端部分包括图书管理员端和读者端,服务器部分包括业务逻辑层和数据访问层。
- 业务逻辑层负责处理客户端请求,进行逻辑计算和数据处理。
- 数据访问层负责与数据库进行数据交互。
3.3 GUI设计本系统的图形用户界面(GUI)分为图书管理员界面和读者界面两部分。
图书管理员界面包括以下几个功能按钮:添加图书、删除图书、查询图书。
读者界面包括以下几个功能按钮:借书、还书、查询图书。
4. 系统实现4.1 开发工具本系统的开发使用以下工具:Java语言、MySQL数据库、Eclipse 集成开发环境(IDE)。
4.2 实现步骤1. 建立数据库:使用MySQL创建两个表格,分别为图书表和借阅记录表。
图书管理系统程序设计
图书管理系统程序设计图书管理系统是图书馆日常工作中不可或缺的一部分,它通过计算机技术实现对图书的自动化管理,提高图书馆的管理效率和服务质量。
下面将详细介绍图书管理系统的程序设计。
系统需求分析在设计图书管理系统之前,首先要进行需求分析,明确系统需要实现的功能。
一般来说,一个基本的图书管理系统应包括以下几个功能模块:1. 用户管理:包括用户注册、登录、权限分配等。
2. 图书管理:包括图书的添加、删除、修改和查询。
3. 借阅管理:实现图书的借出、归还、续借等功能。
4. 查询统计:提供图书查询、借阅记录查询、逾期统计等。
5. 系统维护:包括数据备份、恢复、系统设置等。
系统设计1. 系统架构:通常采用B/S(浏览器/服务器)架构,用户通过浏览器访问系统。
2. 数据库设计:数据库是图书管理系统的核心,需要设计合理的数据表结构,如用户表、图书表、借阅记录表等。
3. 用户界面设计:界面应简洁明了,操作方便,提供良好的用户体验。
技术选型1. 前端技术:HTML、CSS、JavaScript,可能还会使用框架如React或Vue.js。
2. 后端技术:Java、Python、Node.js等,根据开发团队熟悉度选择。
3. 数据库技术:MySQL、PostgreSQL、SQLite等关系型数据库。
功能实现1. 用户管理- 用户注册:收集用户信息,如用户名、密码、邮箱等,并存储到数据库。
- 用户登录:验证用户信息,提供登录服务。
- 权限控制:根据用户角色分配不同的操作权限。
2. 图书管理- 图书录入:允许管理员添加新图书信息,包括书名、作者、ISBN、出版社等。
- 图书修改:提供图书信息的更新功能。
- 图书删除:允许管理员从系统中移除不再需要的图书记录。
- 图书查询:提供多种查询方式,如按书名、作者、ISBN等。
3. 借阅管理- 借书操作:记录用户借阅的图书信息,包括借阅日期和预计归还日期。
- 还书操作:更新图书的借阅状态,记录归还日期。
图书管理系统c课程设计报告
图书管理系统c 课程设计报告一、教学目标本课程旨在通过学习图书管理系统的设计与实现,使学生掌握数据库的基本操作、编程语言的应用以及软件工程的实践方法。
在知识目标上,学生应理解数据库的概念、结构及其在图书管理中的应用;掌握至少一种编程语言的基本语法和编程技巧;了解软件开发的流程和规范。
技能目标则要求学生能够独立设计简单的图书管理系统数据库;编写程序实现图书的增删改查等操作;运用软件工程的方法完成一个小型的图书管理项目。
情感态度价值观目标强调培养学生对计算机科学的兴趣,增强创新意识和团队协作精神,同时培养学生的信息素养,使其能够合法、合理地使用信息技术。
二、教学内容本课程的教学内容围绕图书管理系统的设计与实现展开,具体包括以下几个部分:1.数据库基础:介绍数据库的基本概念、数据模型以及SQL语言的使用,让学生掌握如何创建、查询和管理数据库。
2.编程语言应用:通过实例教学,使学生熟悉至少一种编程语言(如C语言)的基本语法,培养学生编写程序解决问题的能力。
3.软件工程实践:讲解软件开发的生命周期,包括需求分析、设计、编码、测试和维护等环节,强调编程规范和团队合作的重要性。
4.项目实现:指导学生利用所学知识设计并实现一个简易的图书管理系统,涵盖图书的录入、查询、借阅等功能。
三、教学方法为了提高教学效果,将采用多种教学方法相结合的方式进行授课:1.讲授法:用于传授数据库理论基础、编程语言的基本语法和软件工程的概念。
2.案例分析法:通过分析具体的图书管理案例,使学生理解数据库设计和程序实现的过程。
3.实验法:安排实验室实践环节,让学生动手编写代码,实际操作数据库,加深理解和实践能力。
4.小组讨论法:学生分组完成项目设计,鼓励学生相互讨论、协作解决问题,培养团队精神和沟通能力。
四、教学资源教学资源将包括:1.教材:《数据库原理与应用》、《C程序设计》等,为学生提供理论学习的坚实基础。
2.多媒体资料:包括教学PPT、案例视频等,增强课堂的互动性和趣味性。
图书管管理系统net程序设计报告
《.net程序设计》大作业1.设计目的本系统是根据实际情况,按照一定的要求进行系统分析、设计,具体包括菜单设计、数据输入、查询、删除、修改等设计。
从而使本系统完全能满足经济性、灵活性、系统性及可靠性的要求。
本系统的实现的主要功能有:读者信息管理、书籍信息管理,报表,以及读者和书籍的查询和修改,等等的功能,是一个可以满足借阅者和图书馆工作人员的需要的数据库。
本系统为学校的图书馆信息而设计,实现信息处理的自动化、规范化,主要用于处理图书日常借阅和还书、图书入库、各种查询操作,系统具有以下功能:(1)图书借阅处理(2)图书与读者信息查询与修改、删除(3)图书入库与图书的信息修改、删除(4)员工信息的修改、删除2.设计内容(1)系统功能设计①系统目标设计②系统功能设计③开发工具选择(2)数据库的设计与实现①系统数据库设计②数据库的实现(3)主窗体设计①菜单设计②工具栏设计③主体窗代码的实现(4)主要功能模块的实现①登陆窗体设计②图书信息管理模块设计③读者信息管理模块设计④图书借阅处理模块设计⑤图书查询处理模块设计⑥员工管理模块设计3.需求描述3.1 功能结构设计要求系统实现图书馆日常管理事务最主要的功能,包括图书的借出于还回,图书信息的录入、修改和查询,读者信息的录入、修改和查询,员工信息的录入、修改和查询。
实现这些基本功能,组建了图书管理系统的基本框架,根据功能的关联关系和集中分组的原则,将系统细化如图1所示的功能结构图。
图1 功能结构图本系统共分为六个模块:(1)借阅处理,实现读者结束处理和还书处理。
(2)信息查询,可以通过查询界面进行读者信息查询、借阅信息查询和图书信息查询。
(3)图书信息管理,此模块可以实现图书信息的维护,包括图书入库,修改图书信息和删除图书信息。
(4)读者信息管理,此模块可以实现读者信息的维护,包括添加读者信息,修改读者信息和删除读者信息。
(5)员工信息管理,此模块可以实现员工信息的维护,包括添加员工信息,修改员工信息和删除员工信息。
书籍管理系统课程设计报告
书籍管理系统课程设计报告一、引言本次课程设计旨在开发一款实用的书籍管理系统,以方便图书馆或书店等机构对书籍进行高效管理。
通过该系统,管理员可以轻松地添加、查询、修改和删除书籍信息,提高工作效率,减少人工操作错误。
二、系统需求分析1. 用户管理:系统应支持管理员和普通用户两种角色,管理员具有所有权限,普通用户只能进行查询和浏览操作。
2. 书籍信息管理:管理员可以添加、修改和删除书籍信息,包括书名、作者、出版社、ISBN号、价格、库存等。
3. 查询功能:普通用户可以通过书名、作者或ISBN号查询书籍信息。
4. 报表生成:系统应支持生成各类报表,如销售报表、库存报表等。
5. 系统安全性:系统应保证数据的安全性,防止数据泄露和非法访问。
三、系统设计1. 数据库设计:采用关系型数据库管理系统,设计合理的表结构和字段名称,以满足系统需求。
2. 系统架构:采用B/S架构,客户端通过浏览器访问系统,服务器端处理请求并返回数据。
3. 界面设计:界面简洁明了,易于操作,支持多语言显示。
4. 模块划分:将系统划分为用户管理模块、书籍信息管理模块、查询模块、报表生成模块和系统管理模块。
四、系统实现1. 开发环境:采用Java语言开发,使用Spring框架进行MVC模式开发。
2. 数据库连接:使用JDBC连接数据库,实现数据的增删改查操作。
3. 界面实现:使用HTML、CSS和JavaScript实现界面交互功能。
4. 功能实现:通过编写Java代码实现各模块功能,包括用户管理、书籍信息管理、查询、报表生成和系统管理等。
5. 安全性实现:采用加密技术保证数据传输安全,使用权限控制保证系统安全性。
五、系统测试1. 功能测试:对系统的各个功能进行测试,确保功能正常实现。
2. 性能测试:测试系统的响应速度和并发处理能力。
3. 安全性测试:测试系统的安全性,包括数据传输安全和权限控制等。
4. 用户手册编写:编写用户手册,提供系统的使用说明和操作指南。
c语言课程设计报告图书管理系统
C语言课程设计报告: 图书管理系统1. 引言本报告旨在介绍一个基于C语言的图书管理系统的设计与实现。
图书管理系统是一个用于管理图书馆图书的软件,它能够方便地进行图书的借阅、归还、查询等操作,提高图书馆的管理效率。
2. 系统需求分析在设计图书管理系统之前,我们首先需要明确系统的需求。
根据需求分析,该系统需要具备以下功能:•图书的录入与管理:管理员可以添加、修改和删除图书信息,包括书名、作者、出版社、ISBN等。
•读者的管理:管理员可以添加、修改和删除读者信息,包括姓名、学号、联系方式等。
•图书借阅与归还:读者可以借阅图书,并在归还时完成相应的操作。
•图书查询:管理员和读者都可以通过关键字查询图书信息。
•预约图书:读者可以预约图书,待图书可用时通知读者。
•罚款管理:系统可以自动计算读者逾期归还图书的罚款金额,并进行相应的处理。
3. 系统设计与实现3.1 数据结构设计为了实现图书管理系统的各项功能,我们需要设计合适的数据结构来存储图书信息、读者信息等。
以下是我们设计的数据结构:•图书结构体:包括书名、作者、出版社、ISBN等信息;•读者结构体:包括姓名、学号、联系方式等信息;•借阅记录结构体:包括图书信息、读者信息、借阅日期、归还日期等信息;3.2 系统模块设计根据系统需求,我们可以将图书管理系统划分为以下几个模块:•图书管理模块:包括图书的添加、修改和删除功能;•读者管理模块:包括读者的添加、修改和删除功能;•图书借阅模块:包括图书的借阅和归还功能;•图书查询模块:包括关键字查询功能;•预约图书模块:包括图书的预约功能;•罚款管理模块:包括读者逾期归还图书的罚款管理功能;3.3 系统实现根据系统设计,我们使用C语言编写相应的代码来实现整个图书管理系统。
我们使用结构体来存储图书、读者和借阅记录的信息,并使用文件来存储这些数据。
我们可以通过菜单方式来实现用户和管理员的交互,用户可以根据需求选择相应的功能。
图书管理系统程序设计报告
C++大程设计报告--图书管理系统一、总体说明1、功能分析__________________________ 12、体系架构__________________________ 13、编译环境__________________________ 14、核心类介绍________________________ 1二、功能实现及调用函数_______________________ 4三、C++思想及知识____________________________ 9四、总结______________________________________ 11五、人员分工__________________________________ 11一、 总体说明设计并实现一个在Dos 系统下的图书管理系统, 具有图书管理、读者管理、借书、还书等功能。
1、功能分析(1) 图书管理,增添、修改、删除、查询图书信息。
(2) 读者管理,增添、修改、删除、查询读者信息。
(3) 创建管理员功能。
(4) 借书模块,进行借书操作。
(5) 还书模块,进行还书操作。
读者和图书数据保存在文本文件中。
程序中需要用到的C++知识有:编译预处理、函数、数组、类、封装、继承、多态、重载等。
2、体系架构3、编译环境Microsoft Visual Studio 20104、核心类介绍(1)class Admin :保存管理员信息——账号和密码,并包含获取账号和密码的函数。
(2)class AdminDataBase :实现管理员的操作。
{ private :vector<Admin> Admins; //用容器来在程序运行时保存管理员信息 public :bool CheckAdmin(const string& Id,const string& Pwd); //检查管理员身份 void BookBorrow(RDatabase& RD,BDatabase &BD); //实现借书功能void BookReturn(RDatabase& RD,BDatabase &BD); //实现还书功能管理员登陆 图书管理 读者管理 借书操作 还书操作退出 删管理员申请图书管理系统读者登录void AddAdmin(); //新增管理员vector<Admin>::iterator QueryName(string ID );void saveAdminDataBase(); //保存管理员信息到文件中AdminDataBase(); //构造函数,将管理员信息从文件读出到容器中~AdminDataBase();};(3)class Book:保存图书信息,包括编号(id),书名(name),作者(author),出版者(press),总量(num),在架库存数量(shelfnum),是否已被删除(isdel),包含了设置私有变量、读取私有变量的函数,以及显示所有图书函数“void Disp()”。
图书馆管理系统程序设计
图书馆管理系统程序设计图书馆管理系统是信息管理领域中一个重要的组成部分,它涉及到图书的采购、分类、借阅、归还、维护等一系列流程。
设计一个有效的图书馆管理系统程序可以大大提高图书馆的工作效率和服务质量。
以下是图书馆管理系统程序设计的一个基本概述。
系统需求分析在设计图书馆管理系统之前,首先需要进行需求分析,明确系统需要实现的功能。
通常,一个基本的图书馆管理系统应包括以下功能:1. 用户管理:包括用户注册、登录、用户信息管理等。
2. 图书管理:包括图书的录入、修改、删除和查询。
3. 借阅管理:包括图书的借出、归还、续借和借阅状态查询。
4. 分类管理:对图书进行分类,便于检索和管理。
5. 库存管理:监控图书的库存情况,及时补充或淘汰。
6. 报表统计:生成各类统计报表,如借阅排行、图书流通情况等。
7. 系统维护:包括数据备份、恢复、用户权限设置等。
系统设计1. 数据库设计图书馆管理系统的核心是数据库,需要设计合理的数据结构来存储图书信息、用户信息、借阅记录等。
常见的数据库设计包括:- 图书表:存储图书的ISBN、书名、作者、出版社、分类、库存数量等信息。
- 用户表:存储用户的用户名、密码、联系方式、借阅权限等信息。
- 借阅记录表:记录每次借阅的图书ID、用户ID、借阅日期、归还日期等信息。
- 分类表:存储图书的分类信息。
2. 系统架构设计系统架构通常采用三层架构模式,即表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。
- 表示层:负责与用户交互,展示数据和接收用户输入。
- 业务逻辑层:处理具体的业务逻辑,如借阅流程、图书检索等。
- 数据访问层:负责与数据库交互,执行数据的增删改查操作。
3. 技术选型根据项目需求和团队技术栈,选择合适的开发技术。
常见的技术选型包括:- 前端:HTML/CSS/JavaScript,可能使用框架如React或Vue.js。
- 后端:Java/Spring Boot、Python/Django、Node.js/Express等。
图书管理系统设计报告
图书管理系统系统设计目和内容图书管理系统重要目是对图书馆种类繁多书籍进行管理,并且合理管理好顾客借还信息。
提高图书馆工作效率,减少管理成本。
其开发重要包括后台数据库建立和维护,以及前端应用程序开发。
前者规定建立起数据一致性各完整性强、数据安全性好数据库。
而后者则规定应用程序具有功能完备、易用等特点。
因此本系统结合开放式图书馆规定,采用.NET技术系统需求分析图书馆在正常运行中面对大量书籍、读者信息,以及两者间互相产生借书信息、还书信息。
既有人工记录措施即效率低又错误过多,大大影响了图书馆正常管理工作。
因需要对书籍、读者资源、借书信息、还书信息进行管理,及时理解各个环节中信息变更,有助于管理效率提高。
对于图书馆管理系统,需求分析是数据库信息管理系统开发第一步也是最重要一步。
可以将需求分析分为两个过程,一是理解需求,二是分析需求。
理解需求(1)在进入系统之后首先是登录系统,根据顾客输入内容判断顾客合法身份。
合法顾客分为一般顾客和系统管理员,其中系统顾客拥有所有权限而一般顾客没有顾客管理权限。
(2)进入读者信息维护界面可以进行读者信息增长、删除、变化和查询,以及遍历记录。
(3)进入图书信息维护界面可以进行图书信息增长、删除、变化和查询,以及遍历记录。
(4) 进入出版社信息维护界面可以进行出版社信息增长、删除、变化和查询,以及遍历记录。
(5)进入读者借还书界面可以实现读者借书、还书和查询读者借阅记录功能,并在读者借还书过程中同步实现对应数据库数据变动。
(6)进入打印报表界面可以根据顾客选择,以报表形式打印出顾客选择数据表所有记录。
(7)进入综合查询界面可以通过顾客选择数据表和对应查询条件来显示查询到成果。
(8)系统客户端运行在Windows平台下,服务端可以运行在Windows平台或者Unix平台下。
系统还应当有一种很好图形顾客界面。
(9)系统应当有很好可扩展性。
需求分析需求分析就是描述系统需求,通过定义系统中关键类来建立模型。
程序设计报告-图书馆管理系统
程序设计报告(2014 / 2015 学年第1 学期)题目:南邮图书馆管理系统专业组长学号姓名组员学号姓名指导教师指导单位日期题目:南邮图书管理系统一、课题内容和要求该系统要求建立一个南邮图书馆管理系统,并具有排序、查找、计算、显示等功能。
通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些算法思想的应用。
(1)图书的信息应包括:索引号,名称,馆藏地址(三牌楼、仙林)、类别(人文、科技、外语等),数量,价格,入库日期,归还日期,借阅次数,借阅状态(可借、不可借)。
(2)需要实现的功能1) 对已图书信息进行更新操作,包括添加和删除一种书的信息、修改图书信息(例如图书被借阅,书的数目减1,借阅次数加1,如果数量为0则状态为不可借);2)通过按图书的名称查询图书信息;3)显示所有即将到期的图书(归还日期在三天之内);4)按借阅次数对所有图书进行排序;5)将图书的所有相关信息内容存为文件。
(3)界面友好,输入信息符合逻辑。
二、需求分析在整个系统中一共主要有三个部分:图书借阅、图书管理和图书搜索。
其中图书借阅包含借出时间、归还时间、是否归还(1)可根据ID账号找到某本书的索引值,从而获取图书信息,进行借阅,系统将自动添加可借阅时间,并将信息记录(2)可分页显示借书记录,借阅信息(3)分页显示即将到期的图书图书管理部分包含图书列表,添加书,删除图书信息(1)将所有图书进行排序,入库,并记录图书信息(2)添加一本书,删除图书信息(可删除一本或者删除全部索引值为一个的全部图书信息)(3)修改图书信息,可根据索引值找到图书并进行修改(4)分页显示所有图书列表搜索图书(1)可用索引值搜索书本信息,以以及图书在数组中的位置(2)也可根据图书名搜索图书所在数组位置,返回图书信息三、概要设计1)主要结构体:在library这整个类中,由mainscreen()这个函数进入brrowbook()、bookmager()、searchbook()这三个函数分别提供借书、管理图书、搜索图书三种功能在借书功能包含借书与还书,而管理图书中则包含添加、删除、修改、查看等功能。
程序设计报告图书管理系统
题目:图书管理系统一、课题内容ﻩ基于角色管理得简易图书管理系统实现功能:1、角色管理。
设有图书管理员与普通用户两类角色,她们设有不同得权限,各类用户进入系统时需先登录。
2、图书管理员角色,图书管理员可对图书信息得录入、删除、及修改、统计;3、普通用户角色,普通用户可借阅图书、归还图书。
提高要求:使用文本文件存储各类信息,界面友好,有出错处理。
实现语言:C语言或C++语言二、课题要求ﻩ1、熟练运用C或C++课程所学习得理论与概念.2、熟练运用循环结构、分支结构、顺序结构。
3、熟练掌握函数得定义与调用方法。
4、熟悉对于文件得打开、关闭与文件得读写。
5、熟练掌握对于C中结构体或C++中类得操作.6、按照分析、设计、编码、调试与测试得软件开发过程独立完成管理系统设计.三、需求分析1、该程序可实现对于普通用户(即学生)与管理员两种角色对于图书管理系统得操作。
2、普通用户(即学生)登陆后可对图书进行查询、借阅、归还。
3、管理员登陆后可对图书进行增加、删除、修改、统计,以及对图书馆中职员与学生得信息统计,方便对学生补办借书卡以及人员统计得管理.4、该程序中得查询图书功能有按书名与作者两类查找方式,以满足不同用户得需要.四、概要设计ﻩ采用模块化得程序设计方法,即将较大得任务按照一定得原则分为一个个较小得任务,然后分别设计各个小任务。
1、模块功能说明:(1)、图书查询:可以通过对书名或作者两类方式得查找,查找到所要查找得书籍.(2)、图书借阅:进入该模块时需要普通用户登录,即学生输入自己得卡号,输入正确可进入借阅模块,输入错误则进行返回.(3)、管理员系统:进入管理员模式,进入该模块时需要管理员登陆,即输入管理员个人密码,进入后可以对图书进行增加、删除、修改、统计,以及对图书馆内职工与学生得信息管理。
(4)、图书归还:进入该模块时需要普通用户登陆,即学生输入自己得卡号,输入正确可进入还书模块,输入错误则进行返回。
程序设计综合实习报告-图书馆管理系统
一、?可行性研究报告?随着科学技术的不断提高,计算机科学日渐成熟, 作为计算机应用的一局部,使用计算机对图书信息进展管理,具有手工管理所无法比较的优点。
本系统主要实现对图书馆信息的管理。
其内容主要可分为两大块:图书信息的效劳系统和图书的综合管理系统。
图书的使用对象是借阅者,例如学生,教师;管理者是图书馆的管理员。
因此根据这些信息,本系统的主要功能就是:实现图书馆图书信息的管理和维护,如用户信息管理,图书馆规那么维护,新书入库,整理图书,修改图书信息和进展查询等;以及效劳系统的图书信息查询,图书的借出和归还等功能图书信息管理系统能够为用户提供充足的信息和快捷的查询手段。
这些优点能够极大地提高图书信息管理的效率,也是图书管理的科学化、数字化、正规化管理,与世界接轨的重要条件。
用计算机制作的图书信息管理系统还可以通过功能强大的Internet网络及时的向读者发布图书的最新动态,所以,开发这样一套管理软件成为很有必要的事情。
现在,这类相关的管理系统已广泛的应用在各行各业,成为各行业提高相关管理效率的重要手段。
图书信息管理系统也在日益广泛地应用于各图书馆的管理中,大大提高了图书管理的相关管理效率。
2可选方案〔1〕借书:输入读者借书证号。
系统首先检查借书证是否有效,假设有效,于第一次借书的读者,在借书证上建立档案。
否那么,查阅借书文件,检查该读者所借图书是否超过20本,假设已达20,拒借,未达20本,办理借书〔检查库存,修改库存目录并将读者借书情况录入借书文件。
〕〔2〕还书:从借书文件中读出与读者有关的记录,查阅所借日期,如超期〔1个月〕作罚款处理。
〔3〕查询:通过借书文件,库存目录文件查询读者情况、图书借阅及库存情况,打印统计表。
3可行性本次可行性分析是按照软件工程的标准步骤进展的,即按复查工程目标和规模,研究目前正使用的系统,导出新系统的高层逻辑模型,重新定义问题这一循环反复的过程进展。
然后提出系统的实现方案,推荐最正确方案,对所推荐的方案进展经济、技术、用户操作和法律的可行性分析,最后给出系统是否值得开发的结论。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:图书管理系统、课题内容基于角色管理的简易图书管理系统实现功能:1.角色管理。
设有图书管理员和普通用户两类角色,他们设有不同的权限,各类用户进入系统时需先登录。
2.图书管理员角色,图书管理员可对图书信息的录入、删除、及修改、统计;3.普通用户角色,普通用户可借阅图书、归还图书。
提高要求:使用文本文件存储各类信息,界面友好,有出错处理。
实现语言:C语言或C++语言、课题要求1.熟练运用C或C++课程所学习的理论和概念。
2.熟练运用循环结构、分支结构、顺序结构。
3.熟练掌握函数的定义和调用方法。
4.熟悉对于文件的打开、关闭和文件的读写。
5.熟练掌握对于C中结构体或C++Φ类的操作。
6.按照分析、设计、编码、调试和测试的软件开发过程独立完成管理系统设计。
三、需求分析1 .该程序可实现对于普通用户(即学生)和管理员两种角色对于图书管理系统的操作。
2.普通用户(即学生)登陆后可对图书进行查询、借阅、归还。
3.管理员登陆后可对图书进行增加、删除、修改、统计,以及对图书馆中职员和学生的信息统计,方便对学生补办借书卡以及人员统计的管理。
4.该程序中的查询图书功能有按书名和作者两类查找方式,以满足不同用户的需要。
四、概要设计采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。
1.模块功能说明:(1).图书查询:可以通过对书名或作者两类方式的查找,查找到所要查找的书籍。
(2).图书借阅:进入该模块时需要普通用户登录,即学生输入自己的卡号,输入正确可进入借阅模块,输入错误则进行返回。
(3).管理员系统:进入管理员模式,进入该模块时需要管理员登陆,即输入管理员个人密码,进入后可以对图书进行增加、删除、修改、统计,以及对图书馆内职工和学生的信息管理。
(4).图书归还:进入该模块时需要普通用户登陆,即学生输入自己的卡号,输入正确可进入还书模块,输入错误则进行返回。
(5).退出系统:选择该选项,自动退出图书管理系统。
2.描述算法的流程图:(1) 主流程:图书管理系统,进入后有查询图书、借阅图书、归还图书等功能,还可以进入管理员模式,或者退出系统。
其中,借阅图书和归还图书是针对普通用户(学生)设立的,进入时需要登录,即输入学生的借书卡卡号。
在管理员模式下,只有指定的管理员允许进入,进入前需先登录,即输入管理员密码,进入后可对图书进行增、删、查、改,同时可以实现对管理员和学生的信息管理。
图书管理系统返回主菜单图1■主流程(2)各主要模块流程:①普通用户模式下的还书功能:步骤:a.输入学生卡号;b.系统通过文件读取卡号记录;C判断卡号是否存在,卡号存在则跳转d,否则跳转到f;d.输入归还书籍;e.选择是否继续归还,是则跳转d,否则跳转f;f.结束,进行返回。
开始Y输入归还书籍N结束图2.普通用户模式下的还书功能② 普通用户模式下的借书功能: 步骤:a 输入卡号;b. 系统通过文件读取卡号记录;c. 判断卡号是否存在,卡号存在则跳转 d,否则跳转hd. 输入借阅书籍;e. 判断该书是否借出,借出则跳转f,否则跳转g;f. 提示借书失败;g. 提示借书成功;h. 结束,进行返回。
开始步骤:a.输入录入书籍的相关信息;b.标记该书是否借出;c.选择是否录入下一本,若选择是,跳转到a若选择否,跳转到d;d.结束,进行返回。
N图3.普通用户模式下的借书功能图4.管理员模式下的录入书籍功能④管理员模式下的删除书籍功能:步骤:a.输入要删除的书籍;b.选择是否真的要删除该书籍,若选择是,则跳转c.删除书籍;d.结束,进行返回。
图5.管理员模式下的删除书籍功能c,否则跳转d;⑤管理员模式下的修改书籍功能:步骤:a.输入所要修改的书名;b.系统显示该书信息;c.输入所要修改的内容;d.选择修改序号、修改书名、修改作者,进行相应修改;e.结束,进行返回。
图6.管理员模式下的修改书籍功能⑥管理员模式下的书籍统计功能:步骤:a.系统自动对书籍编号和数量赋初值;b.判断是否读入到文件尾部,若读到尾部则跳转到f,否则跳转到c;c.输出图书信息;d. 书籍数量和编号系统自动进行加一操作;e.判断是否读入到文件尾部,若读到尾部则跳转到f. 输出书籍的本数;g. 结束,进行返回。
⑦ 管理员模式下的借书卡管理功能:步骤:a.选择申请新卡、删除卡号、借书统计、卡号统计,进行相应操作;b. 结束,进行返回f ,若否则跳转到c;图7.管理员模式下的书籍统计功能开始结束L I_____________________ »图8.管理员模式下的借书卡管理功能五、源程序代码#in ClUdevStdio.h>#in clude<stri ng.h>#in clude<c Oni o.h>#in clude<stdlib.h>#define STACK_INIT_SIZE 10StrUCt StUde nt{int carnum;Char Ien dbook[10];}stude nt[1000];/*定义学生类型,用于存放借出的书籍*//*学生借书卡卡号*//*借书书名*/StrUCt employ{int emplo ynum;Char emplo yname[15];int employage;Char employsex[2];Char employleve[10];Iong int employtage;/*定义管理员类型*//*管理员序号*//*管理员姓名*//*管理员年龄*//*管理员性别*/ /*管理员学历*//*管理员工资*/}employ[50] ;StrUCt book{int book num;Char book name[10];/*定义书的类型*//*书的序号*//*书名*//*书的作者*/int turefalse; }book[1000];struct car{int carnum; charstudentname[10]; intstudentclass; }car[100]; /* 借书卡的数据类型 *//* 卡号 */ /* 学生姓名 */ /* 学生班级 */{if(car[i].carnum==carnum)/* 卡号存在,进入下一循环 */{n=i; fclose(fp);printf(" 请输入你要还的书的名字 \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)huanbook() {FILE *fp,*fp2; 时文件用,防止数据遭破坏 */ /* 还书函数 *//* 定义两个文件指针, fp2 用于修改数据时设立临int i,n; int carnum; char lendbook[10]; printf(" 请你输入你的卡号 \n"); scanf("%d",&carnum); fp=fopen("car.txt","r"); /* 读取卡号记录 */ for(i=0;fread(&car[i],sizeof(struct否存在*/ car),1,fp)!=0;i ++)/*for 循环判断卡号是/* 用于借书和还书模块判断一本书是否借出的条件 *//* 借阅了}的记录写入临时文件,防止因为修改信息破坏以前的记录 */{if(i==n){book[i].turefalse=1; fwrite(&book[i],sizeof(structbook),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);将临时文件写回 */continue;/* 删除还掉的书的借书记录 */}fwrite(&student[i],sizeof(structstudent),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(structstudent),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(structbook),1,fp)!=0;i++)/*将书/* 将/*fclose(fp);fclose(fp2);fopen("bookl.txt","w");/* 清临时文件 */fclose(fp2);printf(" 还书完毕,按任意键返回 \n");getch();system("cls");return 1;}}printf(" 你没有借该书 ! 任意键返回 \n"); /* 出错提示 */fclose(fp);getch();system("cls");return 0;}}printf(" 无此卡号 !!! 按任意键返回 \n"); /* 出错提示 */fclose(fp);getch();system("cls");}findbook()/* 查询书籍函数 2*/{FILE *fp;char bookname[10]; int ture,i; fp=fopen("book.txt","r");printf(" 请输入要查找的书名 \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(" 这本书的详细资料是: %d %s %s 此书现在无人借阅回∖n ",book[i].book nu m,book[i].book name,book[i].bookcreat);}else{printf(" 此书已借出∖n");fclose(fp);return 0;}fclose(fp);return false;}}printf(" 没有你要查询的书籍∖n");fclose(fp);return false;}findbook1()籍函数 1*/{FILE *fp;char bookcreat[10];int ture,i;fp=fopen("book.txt","r");printf(" 请输入你要查找的作者名∖n");scanf("%s",bookcreat); for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++){if(strcmp(bookcreat,book[i].bookcreat)==0){if(book[i].turefalse==1){printf(" 这本书的详细资料是: %d %s %s 此书现在无人借阅回∖n ",book[i].book nu m,book[i].book name,book[i].bookcreat);}else{printf(" 这本书已经有人借出∖n");fclose(fp);return 0;∖n 按任意键返/* 查询书∖n 按任意键返}fclose(fp); return false;}}printf(" 没有你要查询的书籍 \n"); fclose(fp);return false;}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(" 卡号: %d 借出的书籍: %s \n",student[i].carnum,student[i].lendbook);n=n+1;}fclose(fp);printf(" 目前共有 %d 本书借出 \n",n);printf(" 按任意键 \n");getch();return n;}chabook(){char ch5;do{printf(">>>>>>>>>>>>>> 欢迎进入图书管理系统 !<<<<<<<<<<<<<<\n"); printf(" |1 :<按书名查找 >\n");printf(" |2 : <按作者查找 >\n");printf(" |0 : <返回 >\n");printf(" 请输入 0--2\n");scanf("%s",&ch5);switch(ch5){case '1':system("cls");findbook();getch();break; case'2':system("cls");findbook1();getch();break;case '0':system("cls");break; default:printf(" 无此操作 \n");getch();break;}}while(ch5!='0');return false;}lendbook()/* 借书函数*/ {FILE *fp,*fp2;int i,n;int carnum;printf(" 请你输入你的卡号 \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(" 请输入你要借阅的书的名字 \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(" 对不起,此书已借出 !\n"); fclose(fp);getch();return;}elsefclose(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(structbook),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(" 借书完毕,按任意键返回 \n"); getch();system("cls");return;}}printf(" 无此书籍 ! 任意键返回 \n"); fclose(fp);getch(); system("cls");return;}}printf(" 你的卡号不存在 ! 按任意键返回 \n"); fclose(fp);getch(); system("cls");}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(" 第 %d 张卡 < 卡号: %d 姓名: %s级: %d>\n",i+1,car[i].carnum,car[i].studentname,car[i].studentclass);n=n+1;}fclose(fp);printf(" 目前共有 %d 本书 \n",n);printf(" 按任意键 \n");getch();}/* 删除借书卡函数 */ delcar(){FILE *fp,*fp2;int i;int carnum; char choice; fp=fopen("car.txt","r"); fp2=fopen("bookl.txt","w");printf(" 请输入你要删除的卡号 \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(" 是否要删除该卡 ?<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(structcar),1,fp);} fclose(fp); fclose(fp2); fp2=fopen("bookl.txt","w"); fclose(fp2);printf(" 按任意键返回 \n"); getch(); system("cls");return;}else{printf(" 按任意键返回 \n"); getch(); system("cls"); return;}}addcar()/* 增加借书卡函数*/{FILE *fp;int i=0;fp=fopen("car.txt","a+"); printf(" 请你输入卡号 \n"); scanf("%d",&car[i].carnum); printf(" 请你输入学生姓名 \n"); scanf("%s",car[i].studentname); printf(" 请你输入班级\n"); scanf("%d",&car[i].studentclass); fwrite(&car[i],sizeof(struct car),1,fp); fclose(fp);printf(" 输入完毕,任意键返回 \n"); getch();system("cls");changemploy(){FILE *fp,*fp2;char employname[10],choice;int i;fp=fopen("employ.txt","r");fp2=fopen("bookl.txt","w");printf(" 请你输入要修改的职工的名字 \n"); scanf("%s",employname);for(i=0;fread(&employ[i],sizeof(struct employ),1,fp)!=0;i++){ if(strcmp(employ[i].employname,employname)==0){printf(" 你所要修改的职工的资料如下,请选择你要修改的内容 \n");printf("< 职工号 :%d 职工名: %s 年龄: %d 性别: %s 学历: %s 工资: %d>\n",employ[i].employnum,employ[i].employname,employ[i].employage,employ[i].empl oysex,employ[i].employleve,employ[i].employtage);printf("2 :修改职工名 \n");printf("3 :修改职工年龄\n");printf("4 :修改职工工资\n");printf("5 :修改职工学历\n");printf(" 请输入 1-5:");scanf("%s",&choice);switch(choice){case '1':{printf(" 请输入新的职工号 \n"); scanf("%d",&employ[i].employnum);fwrite(&employ[i],sizeof(struct employ),1,fp2);}break;case '2':{printf(" 请输入新的职工姓名 \n"); scanf("%s",employ[i].employname);fwrite(&employ[i],sizeof(struct employ),1,fp2);}break;case '3':{printf(" 请输入新的年龄 \n"); scanf("%d",&employ[i].employage);fwrite(&employ[i],sizeof(struct employ),1,fp2); } break;case '4':{printf(" 请输入新的职工工资 \n"); scanf("%d",&employ[i].employtage);fwrite(&employ[i],sizeof(struct employ),1,fp2); } break;case '5':{printf(" 请输入新的职工学历 \n"); scanf("%s",employ[i].employleve);fwrite(&employ[i],sizeof(struct employ),1,fp2); }default:printf(" 没有这样的操作 ");break;} continue;}fwrite(&employ[i],sizeof(struct employ),1,fp2);} fclose(fp); fclose(fp2); fp=fopen("employ.txt","w"); fp2=fopen("bookl.txt","r"); for(i=0;fread(&employ[i],sizeof(struct employ),1,fp2)!=0;i++){ fwrite(&employ[i],sizeof(struct employ),1,fp);} fclose(fp); fclose(fp2); fp2=fopen("bookl.txt","w"); fclose(fp2);printf(" 按任意键返回 \n"); getchar(); system("cls");return;}delemploy(){FILE *fp,*fp2;int i;char employname[10],choice;fp=fopen("employ.txt","r");fp2=fopen("bookl.txt","w");printf(" 请输入你要删除的职工名 \n"); scanf("%s",employname);for(i=0;fread(&employ[i],sizeof(struct employ),1,fp)!=0;i++) {if(strcmp(employname,employ[i].employname)!=0) {fwrite(&employ[i],sizeof(struct employ),1,fp2); }}fclose(fp);fclose(fp2);printf(" 是否真的要删除该职工信息 ?<Y/N>\n"); scanf("%s",&choice);if(choice=='y'||choice=='Y'){fp=fopen("employ.txt","w");fp2=fopen("bookl.txt","r"); for(i=0;fread(&employ[i],sizeof(structemploy),1,fp2)!=0;i++) {fwrite(&employ[i],sizeof(struct employ),1,fp);}fclose(fp);fclose(fp2);fp2=fopen("bookl.txt","w");fclose(fp2);printf(" 按任意键返回 \n");getch();system("cls");return true;}else{printf(" 按任意键返回 \n");getch(); system("cls"); return false;employcount(){FILE *fp;int i,n=0;fp=fopen("employ.txt","r"); for(i=0;fread(&employ[i],sizeof(structemploy),1,fp)!=0;i++){Printf("第%d职工的信息如下:\n<职工号:%d职工名:%s年龄:%d性别:%s学历:%s 工资: %d>\n",n+1,emPloy[i].emPloynum,emPloy[i].emPloyname,emPloy[i].emPloyage,emPloy[i].e mPloysex,emPloy[i].emPloyleve,emPloy[i].emPloytage);n++;}fclose(fP);Printf(" 目前共有 %d 个职工 \n",n);Printf(" 按任意键返回 \n");}addemPloy(){FILE *fP; char choice='y';int i=1;fP=foPen("emPloy.txt","a+"); while(choice=='y'||choice=='Y'){Printf(" 请你输入职工号码 \n"); scanf("%d",&emPloy[i].emPloynum);Printf(" 请你输入职工名 \n"); scanf("%s",emPloy[i].emPloyname);Printf(" 请输入职工年龄 \n"); scanf("%d",&emPloy[i].emPloyage);Printf(" 请你输入性别 \n");scanf("%s",emPloy[i].emPloysex); Printf(" 请你输入职工的学历水平 \n");scanf("%s",emPloy[i].emPloyleve);Printf(" 请输入职工的工资 \n");scanf("%d",&employ[i].employtage);fwrite(&employ[i],sizeof(struct employ),1,fp); printf(" 是否要输入下个职工信息 ?[N/Y]\n"); scanf("%s",&choice);system("cls");}printf(" 按任意键返回 \n");fclose(fp);}addbook(){ FILE *fp;int i=0;char choice='y'; fp=fopen("book.txt","a+");while(choice=='y'||choice=='Y'){printf(" 请你输入第 %d 本书的序号 \n",i+1);scanf("%d",&book[i].booknum);printf(" 请你输入书名 \n"); scanf("%s",book[i].bookname);printf(" 请你输入书的作者 \n");scanf("%s",book[i].bookcreat);printf(" 请设为 1 或 0, 1 代表书还没人借, 0 表示书已经借出 printf(" 请你设定书的状态 \n");scanf("%d",&book[i].turefalse);fwrite(&book[i],sizeof(struct book),1,fp); printf(" 是否要输入下本书 [N/Y]\n");scanf("%s",&choice);} fclose(fp);}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(" 第 %d 本 书 < 序 号 : %d 书 名 : %s 作 者 : %s 状态: %d>\n",i+1,book[i].booknum,book[i].bookname,book[i].bookcreat,book[i].turefalse);n=n+1;/* 录入书籍函数 */\n");/* 书籍统计函数 */}}fclose(fp);printf(" 目前共有 %d 本书 \n",n);printf(" 按任意键 \n");}delbook() /* 删除书籍函数 */{FILE *fp,*fp2;int i;char bookname[10],choice;fp=fopen("book.txt","r");fp2=fopen("bookl.txt","w");printf(" 请输入你要删除的书名 \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(" 是否真的要删除该书籍 ?<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(" 按任意键返回 \n"); getch();system("cls");return;}else{printf(" 按任意键返回 \n");getch();system("cls");return;}}changebook() /* 修改书籍函数 */ {FILE *fp,*fp2;char bookname[10],choice;int i;fp=fopen("book.txt","r"); fp2=fopen("bookl.txt","w"); printf(" 请输入要修改的书名\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(" 你所要修改的书的资料如下,请选择你要修改的内容 \n");printf(" 序号:〈 %d 〉书名:〈 %s 〉作者:〈 %s 〉\n",book[i].booknum,book[i].bookname,book[i].bookcreat);printf("1 :修改书的序号 \n"); printf("2 :修改书名 \n"); printf("3 :修改作者 \n"); printf(" 请输入 1-3:"); scanf("%s",&choice);switch(choice) {case '1':{printf(" 请输入新的序号 \n"); scanf("%d",&book[i].booknum);fwrite(&book[i],sizeof(struct book),1,fp2);}break;case '2':{printf(" 请输入新的书名 \n");scanf("%s",book[i].bookname); fwrite(&book[i],sizeof(structbook),1,fp2);}break;case '3':{printf(" 请输入新的作者 \n");scanf("%s",book[i].bookcreat); fwrite(&book[i],sizeof(structbook),1,fp2);}break;default:printf(" 没有这样的操作 ");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(fp2);fp2=fopen("bookl.txt","w");fclose(fp2);printf(" 按任意键返回 \n");getchar();system("cls");return;}main(){char xuehao[15];char ch1,ch2,ch3,ch4,ch5;do{ printf(">>>>>>>>>>>>>> 欢迎进入图书管理系统 !<<<<<<<<<<<<<<\n"); printf("\t 请选择你的操作 :\n");printf("1 :<查询图书 >\n"); printf("2:<借阅图书 >( 普通用户进入 )\n"); printf("3:<管理系统 >( 管理员进入 )\n"); printf(" 4:<归还图书 >( 普通用户进入 )\n"); printf(" 0:<退出 >\n");printf(" 请输入 0--4\n"); scanf("%s",&ch1);switch(ch1){case '1':system("cls");chabook();break;case '2':system("cls");lendbook();break;case '3':system("cls");{printf(" 请输入管理员密码 :\n"); scanf("%s",&xuehao);if(strcmp(xuehao,"11002805zouji")==0) {system("cls");do{printf(" ------- 欢迎进入管理系统 ! ---------- \n")printf("1 printf("2 printf("3 printf("4 printf("5 printf("6 printf(" 0 printf(" 请输入 0--6\n");scanf("%s",&ch2);switch(ch2){case '1':system("cls");addbook();break;case '2':system("cls");delbook();break;case '3':system("cls");changebook();break;case '4':system("cls");bookcount();getch();break; case '5':<增加图书 >\n"); <删除图书 >\n"); <修改图书资料 >\n"); <书籍统计 >\n"); <职工管理系统 >\n"); <学生管理系统 >\n");<返回 >\n");{system("cls");do{printf(" ------ 欢迎进入职工管理系统 ! ----------- \n") printf(" 1 printf(" 2 printf(" 3 printf(" 4 printf(" 0 printf(" 请输入 0--4\n");scanf("%s",&ch3);switch(ch3){case '1':system("cls");addemploy();getch();break; case '2':system("cls");delemploy();break;case '3':system("cls");changemploy();break;case '4':system("cls");employcount();getch();break;case '0':system("cls");break;default:printf(" 无此操作 \n");getch();break;} }while(ch3!='0');}break;case '6':{system("cls");do{ printf(" --- --- 欢迎进入学生管理系统 ! --- --- \n");printf(" 1:< 申请新卡 >\n"); printf(" 2 :<删除卡号 >\n");printf(" 3 :<借书统计 >\n");printf(" 4 :<卡号统计 >\n");printf(" 0:<返回 >\n");printf(" 请输入 0--4\n");scanf("%s",&ch4);switch(ch4){case '1':system("cls");addcar();break; case'2':system("cls");delcar();break;< 增加员工 >\n");< 删除员工 >\n");< 修改员工资料 >\n"); < 员工统计 >\n");<返回 >\n");CaSe 3:SyStem("cls");Ie ndco Un t();break;CaSe '4':SyStem("cls");CarCo Un t();break;CaSe '0':SyStem("clS");break; default:Printf("无此操作 \n");getch();break;}}while(ch4!='0');}break;CaSe '0':SyStem("cls");break;default:Printf("无此操作 \n");getch();break;}}while(ch2!='0');}else{SyStem("cls");Printf("密码错误,无法进入!!!\n");}}break;CaSe '4':SyStem("cls");hua nbook();break;CaSe '0':SyStem("cls");break;default:Printf("无此操作 \n");getch();break;}}while(ch1!='0');}六、测试数据及其结果分析主界面:菅理 >gt!<<<<<<<<<<<<<< i≡:f c r C < C ^H > > 入的图聲 进你询阖理 迎择查埴届 欢选< < < < >>⅛-ii 2j 3141l ≡查询图书模块:借阅图书模块:归还图书模块:管理员系统界面:增加图书模块:请你输入第1本书的序号7请你输入书名春你输入书的作者GG请设为i或0 i代表书还没人借,0表示书己经借出请捺设定∙⅛的扶态1是否要输入下本书INZVl删除图书模块:请输入你要删除的书名G是否真的要删除该书籍y按任意键返回书籍统计模块:名⅛fr>的名者崙r修修修耿IK⅛Γ■■S驚择瞬改的内容<Afi管理员员工管理模块:管理员学生借书卡管理模块: 请输入仍--4结果分析:查询图书模块为公共权限。