logo资料库

C++图书管理系统 (内附源码).docx

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
设计任务 1.1 设计目的 利用图书管理系统对图书记录进行统一管理,包括新增图书记录,更改图书记录,删除图书 记录等功能,实现图书管理工作的系统化,规范化和自动化,为图书管理提供便利。同时是 学习完《面向对象程序设计》课程后进行的一次全面的综合练习。有助于加深对面向对象程 序设计中基础理论和基本知识的理解,培养了实践能力,促进理论与实践的结合。 1.2 设计内容 1.编写一个图书管理程序。 图书信息的组成部分为:书号、书名、作者名、出版社、出版时间、价格等。 试设计一图书信息管理系统,使之能提供以下功能: 2.新书上架:添加图书信息; 3.图书浏览:输出所有图书信息; 4.图书查询:可按书号、书名、作者名查询; 5.图书下架:删除指定图书信息,按书号。 1.3 设计指标或者要求 1.按书号查询,结果仅为一条记录;按书名、作者名查询时,结果为多条记录; 2.输入:程序正常运行后,屏幕上显示一个文字菜单(根据序号选定相应操作),当用户选 定操作相应序号时,根据应用程序提示,从键盘上输入相应信息; 3.输出:(1)程序正常运行后,在屏幕上显示一个文字菜单; (2)要求用户输入数据时,要给出清晰、明确的提示,包括输入数据的内容、格 式和结束方式。 2 设计过程 2.1 程序功能 图一 程序功能 2.2 算法原理 添加算法: 书名查找: 作者名查找:
2.3 程序流程图 图三 程序流程图 2.4 程序主要模块或者函数 图四 程序主要模块 3 软件运行或者测试结果 主菜单: 图书信息添加:
图书信息浏览: 图书信息查询: 删除图书:
4 软件设计过程中遇到的问题以及解决办法 1、c++中如何通过一个程序打开一个窗口,通过网上查询,通过调用 system 函数来实现; 2、在 book 类里面的构造函数在类外定义时,后面 book 类定义的对象在编译时找不到所对 应的构造函数,通过类内定义 book 构造函数时则没有报错; 3、在将程序导入工程时 string 所对应的地方报错,通过查询将#include改为 #include; 4、还有一些常见的语法错误等,通过翻书和结合自己所学进行了修改。 5 总结 1、通过实验加深了对 c++的了解,在程序设计上提高了自己的动手能力,在实践中增强了 自己的编程水平。 2、但是因为自己独立完成且能力有限,还有部分功能未能完善,例如对书名,编号的排序 等 等,这些局限性都是有待逐步完善的方面。 3、而且通过这次课程设计,我培养了自己对 C++编程的兴趣,编程能力也有所提高,但仍 存 在许多不足,不能独自写出功能很齐全的代码,写代码要参考很多资料,所以今后应培养自 己独立写代码的能力。
附录(程序源代码) #include #include #include #include #define N 10 #define FNAMELEN 40 char stuf[FNAMELEN]; class date {public: int year; int month; date(int=2000,int=1); ~date(){} void set(int,int); int gety(); int getm();}; class book:public date {private: char id[20]; char bookname[20]; char author[20]; char classnum[20]; char publisher[30]; double price; int num; int num1; date time; public: book(char *p="noname",double money=0.0,int y=2000,int m=1,int number=0):time(y,m) {strcpy(id,i); strcpy(bookname,b); strcpy(author,a); strcpy(classnum,c); strcpy(publisher,p); price=money; num=number; num1=number;} ~book(){}; void main() {char id[20]; char bookname[20]; char author[20]; char classnum[20]; *b="noname",char *i="100000",char *a="noname",char *c="noname",char
char publisher[30]; char c; double price; int num,year,month,n,m,j,i=0; libary l1; FILE *fp; char cn; system("cls"); cout<<"请输入图书信息库名: "; cin>>stuf; if((fp=fopen(stuf,"r"))==NULL) {cout<<"该文件"<>cn; if(cn=='Y' || cn=='y') {fp=fopen(stuf,"w"); do{cout<<"输入登录号: "; cin>>id; cout<<"输入书名: "; cin>>bookname; cout<<"输入作者名: "; cin>>author; cout<<"输入书类别: "; cin>>classnum; cout<<"输入出版社名: "; cin>>publisher; cout<<"输入价格: "; cin>>price; cout<<"输入该书数量: "; cin>>num; cout<<"输入该书出版日期: "; cin>>year>>month; l1.book1[i].set(id,bookname,author,classnum,publisher,price,year,month,num);i++;n=i;m=i; fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%6.2f\t%d\t%d\t%d\n",id,bookname,author,classnum,publisher,pri ce,year,month,num); cout<<"是否继续输入(Y/N): ";cin>>c;}while(c=='y' || c=='Y'); cout<
cout<<"\t\t\t4----------------图书信息删除\n"; cout<<"\t\t\t0----------------退出图书管理系统\n"; cout<<"\t\t*****************************************\n"; cout<<"\t\t 请输入选择: "; fflush(stdin); cin>>a; switch(a) {case 1: system("cls"); fp=fopen(stuf,"w"); do{cout<<"输入登录号: "; cin>>id; cout<<"输入书名: "; cin>>bookname; cout<<"输入作者名: "; cin>>author; cout<<"输入书类别: "; cin>>classnum; cout<<"输入出版社名: "; cin>>publisher; cout<<"输入价格: "; cin>>price; cout<<"输入该书数量: "; cin>>num; cout<<"输入该书出版日期: "; cin>>year>>month; l1.book1[m].set(id,bookname,author,classnum,publisher,price,year,month,num);m++; fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%6.2f\t%d\t%d\t%d\n",id,bookname,author,classnum,publisher,pri ce,year,month,num); cout<<"是否继续输入(Y/N): "; cin>>c;}while(c=='y' || c=='Y'); getchar();break; case 2: system("cls"); for(j=0;j
cout<<"\t\t\t2----------按作者名搜索"<>a; switch(a) {case 1:l1.NameSeek();break; case 2:l1.AuthorSeek();break; case 0:return; default:cout<<"非法输入!";}break; case 4:system("cls"); int flag; cout<<"请输入要删除图书的登录号: "; cin>>id; flag=l1.idSeek(id); if(flag==1){cout<<"没有该书,因此不能删除!";} else {if(flag!=m) {for(;flag
分享到:
收藏