数据结构课程设计说明书学生姓名:学号:学院:专业:题目:图书借阅管理系统成绩指导教师11设计目的《数据结构》课程主要介绍最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。进行数据结构课程设计要达到以下目的:了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。2.设计内容和要求设计内容:主要分为两大功能:(1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);(2)会员管理(增加会员、查询会员、删除会员、借书信息)。设计要求:(1)符合课题要求,实现相应功能;(2)要求界面友好美观,操作方便易行;(3)注意程序的实用性、安全性;3.本设计所采用的数据结构structBOOK:图书的结构体;voidpage_title(char*menu_item):打印页眉的函数;voidbook_out(void):借出图书;voidbook_in(void):还入图书;voidbook_add(void):增加图书。4.功能模块详细设计4.1详细设计思想2用户提示信息图书检索程序图书信息数据库身份确认程序用户资料数据库图书借还程序图书借阅数据库读者借还图书处理流程管理员提示信息图书更新程序图书信息数据库身份确认程序管理员数据库更新图书资料处理流程34.2核心代码定义结构体,用于存放书籍和借书的信息:structBOOK{intid,total,store;charname[31],writer[21];}books[100];打印页眉的函数,同时通过函数menu_item,可以显示当前的状态:structBOOK*h_book;图书管理系统管理员模块维护图书资料维护用户资料借阅图书更新个人资料归还图书插入删除修改创建修改注销用户模块检索图书4voidpage_title(char*menu_item){clrscr();printf(\n\n%s\n\n,menu_item);}返回前请求确认,以便于在返回前观察结果:voidreturn_confirm(void){printf(\nPressanykeytoenterthemenu......\n);getch();}在数组中找到图书号匹配的记录,显示其信息并返回数组下标,如果找不到相应记录则提示错误并返回-1:intsearch_book(void){intn,i;printf(InputBookNum:);scanf(%d,&i);for(n=0;n100;n++){if(books[n].id==i)5{printf(BookName:%s\n,books[n].name);printf(BookWriter:%s\n,books[n].writer);printf(Store:%dof,books[n].store);printf(%d\n,books[n].total);returnn;}}printf(\nThereisnoNum%dBookontheList.\n,i);return-1;}借书的函数,首先调用找书函数:voidbook_out(void){intn,s,l,d;page_title(BookBorrow);if((n=search_book())!=-1&&books[n].store0){books[n].store--;}return_confirm();}6voidbook_in(void){intn,s,l;page_title(BookReturn);if((n=search_book())!=-1&&books[n].storebooks[n].total){books[n].store++;}if(n!=-1&&books[n].store==books[n].total)printf(Returnbooksucc!\n);return_confirm();}输出图书信息(包括查询信息):voidbook_add(void){intn;page_title(AddNewBook);for(n=0;n100;n++)if(books[n].id==0)break;printf(BookID:);scanf(%d,&books[n].id);7printf(BookName:);scanf(%s,&books[n].name);printf(BookWriter:);scanf(%s,&books[n].writer);printf(Store:);scanf(%d,&books[n].total);books[n].store=books[n].total;return_confirm();}voidprint_book(structbook*h){structbook*p;p=h;page_title(PrintMessage);printf(\n\t\tNUM\tNAME\tTOAL\tSTORE\n\n\n\n\n\n);return_confirm();}程序初始主界面:voidmain(void){menu:page_title(\t\t\tWelcomeTo\n);printf(\t\tTheManageSystemOfBorrowAndRead\n\n);8printf(\t\t\tAuthor:LiChen0921010411\n\n);printf(********************************************************************************\n);printf(\t\t\t1.AddBook\n);printf(\t\t\t2.BorrowBook\n);printf(\t\t\t3.ReturnBook\n);printf(\t\t\t4.PrintMessage\n);printf(\t\t\t0.ExitTheProgram\n);printf(\n\t\t\tEnteryourchoice(0~4):);switch(getch()){case'1':book_add();break;case'2':book_out();break;case'3':book_in();break;case'4':print_book(h_book);break;case'0':exit(0);}gotomenu;}5.课程设计心得及存在问题这次课程设计是我的第一次独立设计一个完整的应用程序,任务需求的会员管理功能还无法设计完成,总之遇到了大量的问题,也学会了解决这些问题,希望自己可以在今后的程序设计中能够实现更多的功能。