C++图书管理系统课程设计

发布时间:2024-11-21

目录

目录 .................................................................................................................................................. 1

图书管理程序 ................................................................................................................................... 2

源程序:........................................................................................................................................... 2

心得与体会....................................................................................................................................... 7

课设心得: 课设心得 ........................................... 7

课设心得: 课设心得 ................................................... 8

图书管理程序

图书信息应该包含:图书编号、书名、作者姓名、出版社、价格等,请设计一个图书管理程序。该程序具有信息的录入、查询、修改、删除等基本功能。具有下列功能:

1.通过键盘输入图书的基本信息;

2.给定图书编号,查询显示该本图书的信息;

3.给定作者姓名,查询显示所有该作者编写的图书信息;

4.给定出版社,显示该出版社的所有图书信息;

1)给定图书编号,删除该图书的信息;

2)提供一些统计各类信息的功能。

提示:设计一个结构体类型或类类型的一维数组,用来存放图书信息。

源程序:

#include <iostream.h>

#include <stdlib.h>

#include <string.h>

#include <fstream.h>

class Book

{

public:

int numble;

char bookname[38];

char author[38];

char press[38];

double price;

void getdetail()

{cout<<" 图书编号: ";

cin>>numble;

cout<<" 书名: ";

cin>>bookname;

cout<<" 作者姓名: ";

cin>>author;

cout<<" 出版社: ";

cin>>press;

cout<<" 价格: ";

cin>>price;

}

void display()

{

cout<<"图书编号 书名 作者姓名 出版社 价格 "<<endl;

}

void print()

{

cout<<" "<<numble<<" "<<bookname<<" "<<author<<" "<<press<<" "<<price<<endl;

}

int getnumble()

{return numble;}

char *getbookname()

{return bookname;}

char *getauthor()

{return author;}

char *getpress()

{

return press;

}

double getprice()

{

return price;

}

};

void mu()

{cout<<" *** **----------------------"<<endl;

cout<<" 图书管理系统"<<endl;

cout<<" ------------------------------------"<<endl; cout<<" 1.) 退出系统 "<<endl; cout<<" 2.) 输入图书信息"<<endl; cout<<" 3.) 显示图书信息"<<endl; cout<<" 4.) 查询图书信息"<<endl; cout<<" 5.) 删除图书信息"<<endl; cout<<" 请选择服务项目:"<<endl;

}

void set()

{

system("cls");

mu();

Book b1;

ofstream outfile("book.txt",ios::app);

b1.getdetail();

outfile.write((char *)&b1,sizeof(b1));

outfile.close();

}

void dis()

{

system("cls");

mu();

Book b1;

ifstream infile("book.txt");

b1.display();

while(infile.read((char *)&b1,sizeof(b1)))

{

b1.print();

}

infile.close();

}

void chaxun()

{

system("cls");

mu();

int numble,x;

char author[38],press[38];

Book b1;

cout<<"1.根据图书编号进行查找\n";

cout<<"2.根据作者姓名进行查找\n";

cout<<"3.根据出版社进行查找\n"; fstream fs("f1.txt",ios::in|ios::out); cin>>x;

if(x==1) // 按图书编号查询

{

cout<<("需要查找的图书编号为:")<<endl;

cin>>numble;

while(true)

{

fs.read((char *)&b1,sizeof(b1));

if(numble==b1.getnumble ())

{

b1.display();

b1.print();

fs.close();

break;

}

}

}

if(x==2) // 按作者姓名查询

{

cout<<("需要查找的作者姓名为:")<<endl;

cin>>author[38];

while(true)

{

fs.read((char *)&b1,sizeof(b1));

if(strcmp(author,b1.getauthor())==0)

{

b1.display();

b1.print();

fs.close();

break;

}

}

}

if(x==3) // 按出版社查询

{

cout<<("需要查找的出版社为:")<<endl;

cin>>press[38];

while(true)

{

fs.read((char *)&b1,sizeof(b1));

if(strcmp(press,b1.getpress())==0)

{

b1.display();

b1.print();

fs.close();

break;

}

}

}

}void sanchu()

{

system("cls");

int numble;

Book b1;

cout<<("需要查找的图书编号为:")<<endl;

cin>>numble;

fstream fs("f1.txt",ios::in|ios::out);

while(true)

{

fs.read((char *)&b1,sizeof(b1));

if(numble==b1. getnumble())

{

cout<<"\n要删除的数据信息:"<<endl;

cout<<"图书编号:"<<b1.getnumble()<<endl;

cout<<"书名:"<<b1.getbookname()<<endl;

cout<<"作者姓名:"<<b1.getauthor()<<endl;

cout<<"出版社:"<<b1.getpress()<<endl;

cout<<"价格:"<<b1.getprice()<<endl;

cout<<("删除成功!\n")<<endl;

break;

}

else

cout<<("找不到要删除的图书编号!\n")<<endl;

break;

}

}

int main()

{int choice;

while(true)

{

mu();

cin>>choice;

switch(choice)

{

case 5: exit(0);

case 1: set();

break;

case 2: dis();

break;

case 3: chaxun();

break;

case 4:sanchu();

break;

}

}

return 0;

}

心得与体会

课设心得: **课设心得

经过这次课设对我之前的知识有所巩固,复习了while语句构成的循环。与此同时,复习了do-while语句和while语句之间的转换。对类函数和构造函数应用加深不少,但是关于类部分知识还得有深一点的认识,关于类还有不少的薄弱环节还有待加强与了解.但是最主要的是要加强上机的实验与自己亲手制作的能力。关于构造函数的调用与重载运用还得熟练。

在这次课设中有出现system("cls")代码,关于这个代码我查询了一下知道system是一个库函数,是属于c#语言中的一种函数,cls表示清屏。还有就是这次课设中出现的多种文件的输入与输出ios::in︳ios::out;在对文件的操作过程中;了解大部分ASCII文件的操作,但是还是过于生疏,得更多的练习。关于switch语句,课设结尾还

可以进行适当的改变,经过程序运行结果输出也是一样,让我有了很好的认识。现在,我对C++程序设计兴趣越来越浓烈。最主要的是老师的授课方案很是周到,课设时我尽心的问老师不明白的问题老师都细心讲解,这让我信心大增。

还有一点不得不提,就是我的搭档,在我们完成这次课设中,团结一致,虽然有点意见分歧,但是最终问题得以完美解决。我们这次课设遇到各种“代码迷雾”,很多代码不知道怎么写,但是我们查阅各种资料和请教同学,最后解决各种难题,其中关于文件头#include <stdlib.h>是什么意思我们请教了不少人.最终知道了这个头文件包含了一些比较杂类的库函数,比如 system 等,其他头文件中的函数类型很单一,但是这个头文件不是,混合了多种类型的函数集合。

这次课设收获不少,以后会更努力的动手解决程序设计问题!

课设心得: ****课设心得

俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。

虽然这次的课程设计算起来在实验室的时间只有三天,不过因为我们

都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。

通过此次课程设计,使我更加扎实的掌握了有关C++程序设计方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。

在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的观念。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于解决了。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!

C++图书管理系统课程设计.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219