图书管理系统课设报告

  • 格式:doc
  • 大小:188.00 KB
  • 文档页数:25

《C++程序设计》课程设计说明书题目图书信息管理系统学号1467159228姓名许闻杰指导教师郝斌日期内蒙古科技大学课程设计任务书课程名称面向对象程序设计A课程设计设计题目图书信息管理系统指导教师郝斌时间一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。

图书信息管理系统图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。

试设计一图书信息管理系统,使之能提供以下功能:❖图书信息录入功能(图书信息用文件保存)--输入❖图书信息浏览功能--输出❖查询或排序功能:(至少两种种查询方式)--算法●按书名查询●按作者名查询❖图书信息的删除与修改❖图书的借出与归还三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天选择课程设计题目,分析课题的要求第二天编程第三天编程及调试第四天写课程设计报告第五天提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。

3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。

六、建议参考资料1.《C语言程序设计》,谭浩强,清华大学出版社2.《C语言程序设计课程设计》,刘振安,机械工业出版社目录第1章需求分析 (4)第2章总体设计 (4)第3章类的设计 (4)3.1 ×××类的设计 (4)3.2 ×××类的设计 (5)第4章详细设计 (6)4.1 工程视图 (6)4.2 类图视图 (6)4.3 函数的调用关系 ......................................................................................................... 错误!未定义书签。

4.4 主程序流程图 (7)4.5 主要算法的流程图 (8)第5章测试 (8)第6章总结 (8)附录:程序代码 (8)管理员登录系统模块菜单选择模块图书信息录入功能模块图书信息浏览功能模块图书信息查询功能模块图书信息的删除和修改图书信息管理系统第1章需求分析二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。

图书信息管理系统图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。

试设计一图书信息管理系统,使之能提供以下功能:❖图书信息录入功能(图书信息用文件保存)--输入❖图书信息浏览功能--输出❖查询或排序功能:(至少两种种查询方式)--算法●按书名查询●按作者名查询❖图书信息的删除与修改❖图书的借出与归还第2章总体设计1.用结构框图表示各个功能之间的关系。

2. 将框图中系统的各个功能用文字详细的描述。

第3章类的设计3.1Book类的设计(第一个类)1.画出类图2.对类的函数成员的说明不用写出代码,用文字描述 函数的首部 //说明:输入什么参数; //进行什么操作;//返回什么结果;3.2 BDatabase 类的设计(第二个类)Class Book获取图书类型获取书名获取图书编号 获取删除标志设置书名 设置类型 删除图书 增加图书 输出图书第4章详细设计4.1 工程视图说明有几个源代码文件,可以截取工程文件视图表示4.2 类图视图每个文件包含哪些类和函数,可以截图说明Class BDatabase图书记录删除全部记录增加记录查找图书记录图书库(函数4.3主程序流程图4.4主要算法的流程图第5章测试程序的运行结果截图。

第6章总结附录:#include<iostream>#include<cstdio>#include<cstdlib>using namespace std;#include<string>class book{ protected:string isbn;string name;string writer;string publicer;string time;public:book(){}book(string a,string b,string c,string d,string e){ isbn=a;name= b;writer=c;publicer=d;time=e;}void change_name(string a){ name=a;}void change_isbn(string a){ isbn=a;}void change_writer(string a){ writer=a;}void change_publicer(string a){ publicer=a;}void change_time(string a){ time=a;}string get_name(){return name;}string get_isbn(){return isbn;}string get_writer(){return writer;}void display(){cout<<isbn<<" "<<name<<" "<<writer<<" "<<publicer<<" "<<time<<endl;}};class manager:public book{private:book buffer[100];int sum;public:manager(){sum=0;}void add(book a){if(sum>=10){ cout<<"添加失败,内存已满!"<<endl;}else{buffer[sum]=a;sum++;cout<<"添加新书目成功,以下是本书信息"<<endl;}}void delete_by_name(book a){ int flag=0;if(sum==0){cout<<"删除失败,已经没有存档了!"<<endl;}else{for(int i=0;i<sum;i++){ if(buffer[i].get_name()==a.get_name()){ cout<<"删除书目成功,以下是删除的书信息"<<endl;buffer[i].display ();for(int j=i;j<sum-1;j++){ buffer[j]=buffer[j+1]; }flag=1;sum--;break;}}if(!flag){cout<<"the book does't exist!"<<endl;}}}void search_by_name(string names){ int flag=0;for(int i=0;i<sum;i++){if(buffer[i].get_name()==names){ buffer[i].display ();flag=1;}}if(flag==0){cout<<"the book does't exist!"<<endl;}}void search_by_isbn(string names){ int flag=0;for(int i=0;i<sum;i++){if(buffer[i].get_isbn()==names){ buffer[i].display ();flag=1;}}if(flag==0){cout<<"the book does't exist!"<<endl;}}void search_by_writer(string names){int flag=0;for(int i=0;i<sum;i++){if(buffer[i].get_writer()==names){ buffer[i].display ();flag=1;}}if(flag==0){cout<<"the book does't exist!"<<endl;}}void change_isbns(string nam,string isn){for(int i=0;i<sum;i++){if(buffer[i].get_name()==nam){ buffer[i].change_isbn(isn);}}}void change_names(string nam,string isn){for(int i=0;i<sum;i++){if(buffer[i].get_name()==nam){ buffer[i].change_name(isn);}}}void change_writers(string nam,string isn) {for(int i=0;i<sum;i++){if(buffer[i].get_name()==nam){ buffer[i].change_writer(isn);}}}void change_publicers(string nam,string isn) {for(int i=0;i<sum;i++){if(buffer[i].get_name()==nam){ buffer[i].change_publicer(isn);}}}void change_times(string nam,string isn){for(int i=0;i<sum;i++){if(buffer[i].get_name()==nam){ buffer[i].change_time(isn);}}}void display_all(){for(int i=0;i<sum;i++){buffer[i].display (); }}void read(){ FILE *fp;if((fp=fopen("C:\\Users\\fei\\Desktop\\图书馆.txt","rb+"))==NULL)//注意路径{cout<<"文件打开失败\n";system("PAUSE");exit(0);}fread(&sum,4,1,fp);for(int i=0;i<sum;i++){fread(&buffer[i],sizeof(buffer[i]),1,fp);}fclose(fp);}void write(){FILE *fp2;if((fp2=fopen("C:\\Users\\fei\\Desktop\\图书馆.txt","wb+"))==NULL)//注意路径{cout<<"文件打开失败\n";system("PAUSE");exit(0);}fwrite(&sum,4,1,fp2);for(int i=0;i<sum;i++){fwrite(&buffer[i],sizeof(buffer[i]),1,fp2);}fputc('EOF',fp2);fclose(fp2);}};//主函数int main(){ manager worker;char function='0';//worker.read ();//界面while (function!= '6'){for(int i=0;i<34;i++){cout<<"*";}cout<<endl;cout<<"欢迎使用本图书管理系统,请选择操作\n"<<endl; cout<<"1 创建新书目"<<endl;cout<<"2 删除书目"<<endl;cout<<"3 查询书目"<<endl;cout<<"4 修改信息"<<endl;cout<<"5 显示所有藏书"<<endl;cout<<"6 退出系统并保存修改"<<endl;cin>>function;if(function=='1'){ string a,b,c,d,e;cout<<"请输入书的isbn编号"<<endl;cin>>a;cout<<"请输入书名"<<endl;cin>>b;cout<<"请输入书作者名"<<endl;cin>>c;cout<<"请输入书的出版社"<<endl;cin>>d;cout<<"请输入书的出版时间"<<endl;cin>>e;book newbook(a,b,c,d,e);worker.add(newbook);newbook.display();system("PAUSE");system("CLS");}else if(function=='5'){cout<<"这是所有藏书:"<<endl;worker.display_all ();system("PAUSE");system("CLS");}else if(function=='2'){ string a;cout<<"请输入要删除的书名"<<endl;cin>>a;book del(" ",a," "," "," ");worker.delete_by_name (del);system("PAUSE");system("CLS");}else if(function=='3'){ cout<<"请选择查询方式"<<endl;cout<<"1 按ISBN查询"<<endl;cout<<"2 按书名查询"<<endl;cout<<"3 按作者查询"<<endl;char j;string search;cin>>j;if(j=='1'){ cout<<"请输入ISBN号"<<endl;cin>>search;cout<<"以下是查询结果"<<endl;worker.search_by_isbn (search);system("PAUSE");system("CLS");}else if(j=='2'){ cout<<"请输入书名"<<endl;cin>>search;cout<<"以下是查询结果"<<endl;worker.search_by_name (search);system("PAUSE");system("CLS");}else if(j=='3'){ cout<<"请输入作者名"<<endl;cin>>search;cout<<"以下是查询结果"<<endl;worker.search_by_writer (search);system("PAUSE");system("CLS");}else{ cout<<"输入错误,请重新操作!"<<endl;system("PAUSE");system("CLS");}}else i f(function=='4'){ cout<<"请输入要修改的书的名字"<<endl;string changes;cin>>changes;cout<<"以下是欲修改目标现在的信息"<<endl; worker.search_by_name (changes);cout<<"请选择下一步"<<endl;cout<<"1 继续修改"<<endl;cout<<"2 返回首页"<<endl;char choose;cin>>choose;if(choose=='1'){cout<<"请选择要修改的选项"<<endl;cout<<"1 修改ISBN编号"<<endl;cout<<"2 修改书名"<<endl;cout<<"3 修改作者"<<endl;cout<<"4 修改出版社"<<endl;cout<<"5 修改出版时间"<<endl;char c;cin>>c;if(c=='1'){ string news;cout<<"请输入新的ISBN号码"<<endl;cin>>news;worker.change_isbns(changes,news);cout<<"修改成功!"<<endl;system("PAUSE");system("CLS");}else if(c=='5'){ string news;cout<<"请输入新的出版时间"<<endl;cin>>news;worker.change_times(changes,news);cout<<"修改成功!"<<endl;system("PAUSE");system("CLS");}else if(c=='2'){ string news;cout<<"请输入新的书名"<<endl;cin>>news;worker.change_names(changes,news);cout<<"修改成功!"<<endl;system("PAUSE");system("CLS");}else if(c=='3'){ string news;cout<<"请输入新的作者"<<endl;cin>>news;worker.change_writers(changes,news);cout<<"修改成功!"<<endl;system("PAUSE");system("CLS");}else if(c=='4'){ string news;cout<<"请输入新的出版社"<<endl;cin>>news;worker.change_publicers(changes,news);cout<<"修改成功!"<<endl;system("PAUSE");system("CLS");}else{cout<<"输入错误,请重新操作!"<<endl;system("PAUSE");system("CLS");}}else{ system("CLS"); }}else if(function=='6'){;}else{cout<<"输入错误,请重新选择!"<<endl;system("PAUSE");system("CLS");}}//退出系统system("CLS");// worker.write ();for(int i=0;i<8;i++){ cout<<" "<<endl;}for(int i=0;i<55;i++){cout<<"*";}cout<<endl;cout<<"您已退出本图书管理系统,您的修改已经保存,欢迎再次使用!"<<endl;for(int i=0;i<55;i++){cout<<"*";}cout<<endl;system("PAUSE");exit(0);}#include<iostream>#include<cstdio>#include<cstdlib>using namespace std;#include<string>class book{ protected:string isbn;string name;string writer;string publicer;string time;public:book(){}book(string a,string b,string c,string d,string e) { isbn=a;name= b;writer=c;publicer=d;time=e;}void change_name(string a){ name=a;}void change_isbn(string a){ isbn=a;}void change_writer(string a){ writer=a;}void change_publicer(string a){ publicer=a;}void change_time(string a){ time=a;}string get_name(){return name;}string get_isbn(){return isbn;}string get_writer(){return writer;}void display(){cout<<isbn<<" "<<name<<" "<<writer<<" "<<publicer<<" "<<time<<endl;}};class manager:public book{private:book buffer[100];int sum;public:manager(){sum=0;}void add(book a){if(sum>=10){ cout<<"添加失败,内存已满!"<<endl;}else{buffer[sum]=a;sum++;cout<<"添加新书目成功,以下是本书信息"<<endl;}}void delete_by_name(book a){ int flag=0;if(sum==0){cout<<"删除失败,已经没有存档了!"<<endl;}else{for(int i=0;i<sum;i++){ if(buffer[i].get_name()==a.get_name()){ cout<<"删除书目成功,以下是删除的书信息"<<endl;buffer[i].display ();for(int j=i;j<sum-1;j++){ buffer[j]=buffer[j+1]; }flag=1;sum--;break;}}if(!flag){cout<<"the book does't exist!"<<endl;}}}void search_by_name(string names) { int flag=0;for(int i=0;i<sum;i++){if(buffer[i].get_name()==names){ buffer[i].display ();flag=1;}}if(flag==0){cout<<"the book does't exist!"<<endl;}}void search_by_isbn(string names){ int flag=0;for(int i=0;i<sum;i++){if(buffer[i].get_isbn()==names){ buffer[i].display ();flag=1;}}if(flag==0){cout<<"the book does't exist!"<<endl;}}void search_by_writer(string names){int flag=0;for(int i=0;i<sum;i++){if(buffer[i].get_writer()==names){ buffer[i].display ();flag=1;}}if(flag==0){cout<<"the book does't exist!"<<endl;}}void change_isbns(string nam,string isn){for(int i=0;i<sum;i++){if(buffer[i].get_name()==nam){ buffer[i].change_isbn(isn);}}}void change_names(string nam,string isn){for(int i=0;i<sum;i++){if(buffer[i].get_name()==nam){ buffer[i].change_name(isn);}}}void change_writers(string nam,string isn){for(int i=0;i<sum;i++){if(buffer[i].get_name()==nam){ buffer[i].change_writer(isn);}}}void change_publicers(string nam,string isn){for(int i=0;i<sum;i++){if(buffer[i].get_name()==nam){ buffer[i].change_publicer(isn);}}}void change_times(string nam,string isn){for(int i=0;i<sum;i++){if(buffer[i].get_name()==nam){ buffer[i].change_time(isn);}}}void display_all(){for(int i=0;i<sum;i++){buffer[i].display (); }}void read(){ FILE *fp;if((fp=fopen("C:\\Users\\fei\\Desktop\\图书馆.txt","rb+"))==NULL)//注意路径{cout<<"文件打开失败\n";system("PAUSE");exit(0);}fread(&sum,4,1,fp);for(int i=0;i<sum;i++){fread(&buffer[i],sizeof(buffer[i]),1,fp);}fclose(fp);}void write(){FILE *fp2;if((fp2=fopen("C:\\Users\\fei\\Desktop\\图书馆.txt","wb+"))==NULL)//注意路径{cout<<"文件打开失败\n";system("PAUSE");exit(0);}fwrite(&sum,4,1,fp2);for(int i=0;i<sum;i++){fwrite(&buffer[i],sizeof(buffer[i]),1,fp2);}fputc('EOF',fp2);fclose(fp2);}};//主函数int main(){ manager worker;char function='0';//worker.read ();//界面while (function!= '6'){for(int i=0;i<34;i++){cout<<"*";}cout<<endl;cout<<"欢迎使用本图书管理系统,请选择操作\n"<<endl;cout<<"1 创建新书目"<<endl;cout<<"2 删除书目"<<endl;cout<<"3 查询书目"<<endl;cout<<"4 修改信息"<<endl;cout<<"5 显示所有藏书"<<endl;cout<<"6 退出系统并保存修改"<<endl;cin>>function;if(function=='1'){ string a,b,c,d,e;cout<<"请输入书的isbn编号"<<endl;cin>>a;cout<<"请输入书名"<<endl;cin>>b;cout<<"请输入书作者名"<<endl;cin>>c;cout<<"请输入书的出版社"<<endl;cin>>d;cout<<"请输入书的出版时间"<<endl;cin>>e;book newbook(a,b,c,d,e);worker.add(newbook);newbook.display();system("PAUSE");system("CLS");}else if(function=='5'){cout<<"这是所有藏书:"<<endl;worker.display_all ();system("PAUSE");system("CLS");}else if(function=='2'){ string a;cout<<"请输入要删除的书名"<<endl;cin>>a;book del(" ",a," "," "," ");worker.delete_by_name (del);system("PAUSE");system("CLS");}else if(function=='3'){ cout<<"请选择查询方式"<<endl;cout<<"1 按ISBN查询"<<endl;cout<<"2 按书名查询"<<endl;cout<<"3 按作者查询"<<endl;char j;string search;cin>>j;if(j=='1'){ cout<<"请输入ISBN号"<<endl;cin>>search;cout<<"以下是查询结果"<<endl;worker.search_by_isbn (search);system("PAUSE");system("CLS");}else if(j=='2'){ cout<<"请输入书名"<<endl;cin>>search;cout<<"以下是查询结果"<<endl;worker.search_by_name (search);system("PAUSE");system("CLS");}else if(j=='3'){ cout<<"请输入作者名"<<endl;cin>>search;cout<<"以下是查询结果"<<endl;worker.search_by_writer (search);system("PAUSE");system("CLS");}else{ cout<<"输入错误,请重新操作!"<<endl;system("PAUSE");system("CLS");}}else if(function=='4'){ cout<<"请输入要修改的书的名字"<<endl;string changes;cin>>changes;cout<<"以下是欲修改目标现在的信息"<<endl; worker.search_by_name (changes);cout<<"请选择下一步"<<endl;cout<<"1 继续修改"<<endl;cout<<"2 返回首页"<<endl;char choose;cin>>choose;if(choose=='1'){cout<<"请选择要修改的选项"<<endl;cout<<"1 修改ISBN编号"<<endl;cout<<"2 修改书名"<<endl;cout<<"3 修改作者"<<endl;cout<<"4 修改出版社"<<endl;cout<<"5 修改出版时间"<<endl;char c;cin>>c;if(c=='1'){ string news;cout<<"请输入新的ISBN号码"<<endl;cin>>news;worker.change_isbns(changes,news);cout<<"修改成功!"<<endl;system("PAUSE");system("CLS");}else if(c=='5'){ string news;cout<<"请输入新的出版时间"<<endl;cin>>news;worker.change_times(changes,news);cout<<"修改成功!"<<endl;system("PAUSE");system("CLS");}else if(c=='2'){ string news;cout<<"请输入新的书名"<<endl;cin>>news;worker.change_names(changes,news);cout<<"修改成功!"<<endl;system("PAUSE");system("CLS");}else if(c=='3'){ string news;cout<<"请输入新的作者"<<endl;cin>>news;worker.change_writers(changes,news);cout<<"修改成功!"<<endl;system("PAUSE");system("CLS");}else if(c=='4'){ string news;cout<<"请输入新的出版社"<<endl;cin>>news;worker.change_publicers(changes,news);cout<<"修改成功!"<<endl;system("PAUSE");system("CLS");}else{cout<<"输入错误,请重新操作!"<<endl;system("PAUSE");system("CLS");}}else{ system("CLS"); }}else if(function=='6'){;}else{cout<<"输入错误,请重新选择!"<<endl;system("PAUSE");system("CLS");}}//退出系统int i;system("CLS");// worker.write ();for( i=0;i<8;i++){ cout<<" "<<endl;}for( i=0;i<55;i++){cout<<"*";}cout<<endl;cout<<"您已退出本图书管理系统,您的修改已经保存,欢迎再次使用!"<<endl;for( i=0;i<55;i++){cout<<"*";}cout<<endl;system("PAUSE");exit(0);}。