1、信管班:阮班鹏、宋耀、徐成名、熊章帅、李夏至、郭伯冰信管班:阮班鹏、宋耀、徐成名、熊章帅、李夏至、郭伯冰C+程序设计案例目录需求分析1系统总体结构图2主要类说明3主要数据结构45全局变量和函数说明6重点函数分析需求分析(一)基本功能和要求(二)查找功能(四)系统的操作(三)统计功能(1)统计馆藏书籍总数、已借出数据总数、在馆书籍数等(2)统计馆藏书籍总金额、馆藏书籍的平均价格。(1)有文件的保存(2)有文件的打开和载入(3)系统在退出时,要有相应的提示(1)可以根据图书的作者查找。(2)可以根据图书的名称查找。(1)根据登陆方式,选择相应的操作方式(2)能够对图书基本信息、图书的借阅人信息进行
2、统计(3)图书基本信息、图书的借阅人信息存储在相应的文件中。(3)可以根据图书的出版社查找。需求分析系统总体结构图开始加载文件显示登录界面保存文件退出进入系统退出失败成功程序开始运行后,随着用程序开始运行后,随着用户命名的输入,执行相应户命名的输入,执行相应的步骤,完成各种功能的步骤,完成各种功能主要类图说明UserReaderAdminLibrarian基类基类User类是基类,实现了其它类共有的功能,类是基类,实现了其它类共有的功能,并提供虚函数接口。并提供虚函数接口。Reader类实现了与读者相关的功能。类实现了与读者相关的功能。Librarian类实现了与图书管理员相关的功能。类实现了
3、与图书管理员相关的功能。Admin类实现了与系统管理员相关的功能。类实现了与系统管理员相关的功能。User类:classUserpublic:User(constchar*name,constchar*password);virtualUser();constchar*GetName();/获得用户名constchar*GetPassword();/获得密码voidExit();/退出系统voidChangePassword();/修改密码voidFindBook();/查找图书voidShowFindBook(constchar*str,intn);/显示查找结果voidPrintBook(
4、constBOOKINFO&book);/输出图书信息voidCountBook();/统计图书信息voidShowBook();/显示全部图书信息voidEditBook();/编辑图书信息voidAddBook();/添加图书新voidModifyBook();/修改图书信息voidDeleteBook();/删除图书信息virtualvoidShowMenu();/显示菜单virtualboolIsExist();/判断是否存在改用户private:charm_name20;/用户名charm_password10;/密码;各个类代码说明Reader类:classReader:publi
5、cUserpublic:Reader(constchar*name,constchar*password);Reader();voidBorrowBook();/借阅图书virtualvoidShowMenu();/显示菜单virtualboolIsExist();/判断是否存在该用户;各个类代码说明Librarian类:classLibrarian:publicUserpublic:Librarian(constchar*name,constchar*password);Librarian();virtualvoidShowMenu();/显示菜单virtualboolIsExist();/
6、判断是否存在该用户;各个类代码说明Admin类classAdmin:publicUserpublic:Admin(constchar*name,constchar*password);Admin();voidAddLibrarian();/添加管理员voidAddReader();/添加读者virtualvoidShowMenu();/显示菜单各个类代码说明主要虚函数接口virtual void ShowMenu();用于显示登录后的系统菜单,根据登录的不同身份,显示不同的菜单。virtual bool IsExist();用于验证用户名和密码是否存在,根据登录的不同身份,查找相应的数据数据储
7、存结构保存用户信息的结构体:typedef struct UserInfochar name20;/用户名称char password10;/用户密码USERINFO;数据储存结构保存图书信息的结构typedef struct BookInfochar id10;/图书编号char name20;/图书名称char author20;/图书作者char press20;/出版社char date20;/出版日期int count;/借出次数double price;/图书单价BOOKINFO;系统主要功能User类:1.查找图书:可以按图书编号、书名、作者、出版社、出版日期等进行查找2.统计功
8、能:可以统计图书馆现有图书的信息3.查看图书:可以浏览全部馆藏图书信息4.修改密码:可以修改用户密码5.退出系统:退出前自动保存文件数据系统主要功能Reader类:除了从基类继承的功能外,增加了借阅图书功能Librarian类:除了从基类继承的功能外,增加了编辑图书数据功能Admin类:除了从基类继承的功能外,增加了创建新用户功能全局变量和函数说明listg_allReader;/读者数据listg_allLibrarian;/图书管理员listg_allAdmin;/系统管理员listg_books;/图书数据boolLoadFiles();/加载数据文件voidSaveFiles();/保
9、存数据文件voidShowLoginMenu(char&ch);/显示登录菜单boolLogin(charch);/登录系统重点函数分析Login函数是实现登录系统功能的主要函数,本函数利用了C+的多态特性,使用了虚函数的动态绑定技术,实现了统一的登录接口boolLogin(charch)User*pUser=NULL;charname20;charpassword10;coutname;coutpassword;switch(ch)casea:caseA:重点函数分析pUser=newReader(name,password);break;caseb:caseB:pUser=newLibra
10、rian(name,password);break;casec:caseC:pUser=newAdmin(name,password);break;casee:caseE:returntrue;重点函数分析default:returnfalse;if(pUser-IsExist()pUser-ShowMenu();/动态绑定子类elsecout用户名或密码错误!endl;system(pause);deletepUser;returnfalse;程序运行结果显示登录界面显示读者登录界面显示读者登录界面显示程序运行结果显示读者主界面显示图书管理员登录界面显图书管理员登录界面显示示程序运行结果显示
11、图书管理员主界面显示系统管理员登录界面显系统管理员登录界面显示示程序运行结果显示系统管理员主界面显示查阅所有图书查阅所有图书总结本系统实现了图书管理系统的典型功能,包括借阅、修改、记录与查询所有记录的信息,添加查找等功能,而且具有较高的安全性。但是因为自己团队几人才疏学浅,通过借鉴别人结合所学相关知识完成且能力有限,还有部分功能未能完善,例如更新添加书本资料退出后会出现记录丢失等,这些局限性都是有待逐步完善的方面。而且通过这次课程设计,我们培养了自己对C+编程的兴趣,编程能力也有所提高,但仍存在许多不足,不能独自写出功能很齐全的代码,写代码要参考很多资料,所以今后应培养自己独立写代码的能力。谢谢观看!Thanks