【c++程序】图书馆购书系统(尚存问题)

#include<iostream>
#include<string>
using namespace std;
class book
{
public:
	int num;
	float price;
	book *next;
};
book *head=NULL;
bool check(string str)//检查是否是数字
{
	for(int i=0;i<str.length();i++)
	{
		if((str[i]>'9'||str[i]<'0')&&(str[i]!='.'))
			return false;
	}
}
book *creat()
{
	book *p1,*p2;
	p1=new book;
	head=p1;
	p2=p1;
	cout<<"请输入图书的编号,以0结束"<<endl;
	string str;
	cin>>str;
	while(!check(str))
	{
		cout<<"输入的不是数字,请重新输入,按0返回"<<endl;
		cin>>str;
	}
	p1->num=atoi(str.c_str());//将c++字符串通过成员函数c_str()转换成c语言格式的字符串;atoi将其转换成整数
	if(p1->num!=0)
	{
		cout<<"请输入图书的价格"<<endl;
		cin>>str;
	while(!check(str))
	{
		cout<<"输入的不是数字,请重新输入,按0返回"<<endl;
		cin>>str;
	}
	p1->price=atof(str.c_str());//c++字符串通过成员函数c_str()转换成c语言格式的字符串;atof将其转换成浮点型
	}
	else
	{
		delete p1;p2=NULL;p2->next=NULL;head=NULL;return head;
	}
	while(p1->num!=0)
	{
		p2=p1;
		p1=new book;
		cout<<"请输入图书的编号,以0结束"<<endl;
		cin>>str;
		while(!check(str))
		{
			cout<<"输入的不是数字,请重新输入,按0返回"<<endl;
			cin>>str;
		}
		p1->num=atoi(str.c_str());//将c++字符串通过成员函数c_str()转换成c语言格式的字符串;atoi将其转换成整数
		if(p1->num!=0)
		{
			cout<<"请输入图书的价格"<<endl;
			cin>>str;
		while(!check(str))
		{
			cout<<"输入的不是数字,请重新输入,按0返回"<<endl;
			cin>>str;
		}
		p1->num=atoi(str.c_str());//将c++字符串通过成员函数c_str()转换成c语言格式的字符串;atoi将其转换成整数
		}
		p2->next=p1;
	}
	delete p1;
	p2->next=NULL;
	return head;
}
void showbook(book*head)
{
	cout<<"图书的信息:"<<endl;
	while(head)
	{
		cout<<"图书编号"<<head->num<<"\t";
		cout<<"图书价格"<<head->price<<endl;
		head=head->next;
	}
}
void Delete(book*head,int num)
{
	book*l;
	if(head->num==num)
	{
		l=head;
		head=head->next;
		::head=head;
		delete l;
		cout<<"操作成功"<<endl;
	}
	while(head)
	{
		if(head->next==NULL)
		{
			cout<<"找不到要删除的编号"<<endl;
			return;
		}
		if(head->next->num==num)
		{
			l=head->next;
			head->next=l->next;
			delete l;
			cout<<"操作成功"<<endl;
			return ;
		}
		head=head->next;
	}
	cout<<"找不到要删除的内容"<<endl;
}
void insert(book*head,int num,float price)
{
	book*list=new book;
	book*l;
	while(head)
	{
		l=head;
		head=head->next;
	}
	l->next=list;
	list->num=num;
	list->price=price;
	list->next=NULL;
}
int GetBookNum(book*head)
{
	int num=0;
	while(head)
	{
		num++;
		head=head->next;
	}
	return num;
}
int main()
{
	//book*head=NULL;
	head=creat();
	showbook(head);
	cout<<"请输入你要删除的图书编号"<<endl;
	int BookNum;
	cin>>BookNum;
	Delete(head,BookNum);
	showbook(head);
	cout<<"请输入你要插入的编号"<<endl;
	cin>>BookNum;
	cout<<"请输入你要插入的价格"<<endl;
	float BookPrice;
	cin>>BookPrice;
	insert(head,BookNum);
	showbook(head);
	cout<<"图书数目:"<<GetBookNum(head)<<endl;
	return 0;
}
时间: 2024-10-10 12:32:09

【c++程序】图书馆购书系统(尚存问题)的相关文章

使用electron将应用程序加入到系统托盘

博主电脑??进水坏了之后,MDZZ......来回折腾好几个来回,第三次维修店??拿电脑??,终于修好了~.废话不多一如既往先上图     一.将应用程序加入系统托盘 微信对于现代人来说已经是一种生活方式,支持单人.多人参与的一款跨平台的通讯工具. 通过手机网络发送语音.图片.视频和文字.其主要核心技术功能是(仅代表博主个人观点) InstantMessaging(即时通讯,实时传讯) 原谅博主资历尚浅,这里暂且不述~. 微信虽然大家都用,但也不见得自己无论是从产品方面或是技术方面会用/了解她,

Python开发程序:选课系统-改良版

程序名称: 选课系统 角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. 课程包含,周期,价格,通过学校创建课程 4. 通过学校创建班级, 班级关联课程.讲师5. 创建学员时,选择学校,关联班级6. 创建讲师角色时要关联学校, 7. 提供两个角色接口8. 学员视图, 可以注册, 交学费, 选择班级,9. 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员

小程序新零售系统能给企业带来哪些效益

小程序新零售系统怎么帮助企业结合O2O 1.小程序新零售系统的核心模式,新零售=大数据 线上交易平台 线下的体验平台.支付.最有效的物流整合, 线上与线下渠道的打通,以大数据作为指引,以支付和物流作为完成闭环的一节,这五步,构成了未来新零售的骨骼. 2.是消费者的诉求驱动了生产链.刘兴波并不觉得销售传统如人们所说的被颠覆了,反而只是市场的一种进步,是消费习惯和销售形态之间的共同进步.人们逐渐迁移至移动端,更加数字化,产生了更强的主观意识,而"现代人"自主的生活方式探寻出了新零售的发展方

微信小程序购物商城系统开发系列-目录结构

上一篇我们简单介绍了一下微信小程序的IDE(微信小程序购物商城系统开发系列-工具篇),相信大家都已经蠢蠢欲试建立一个自己的小程序,去完成一个独立的商城网站. 先别着急我们一步步来,先尝试下写一个自己的小demo. 这一篇文章我们主要的是介绍一下小程序的一些目录结构,以及一些语法,为我们后面的微信小程序商城系统做铺垫. 首先我们来了解下小程序的目录结构 Pages 我们新建的一些页面将保存在这个文件夹下面,每一个小程序页面是由同路径下同名的四个不同后缀文件的组成,如:index.js.index.

小程序点餐系统app平台

微信小程序已经上线半年了(陈琦:138-2848-7919 可微)在过去的半年里这个超级流量入口微信小程序在不断的完善,不断的开放多种功能,从而实现颠覆线下实体的梦想,那么对于餐饮行业如何借助小程序这个超级流量入口来让销量暴增呢?赢在移动小程序点餐系统通过在点餐.排队等功能借助小程序的能力,让餐饮商户实现高效运营. 一.小程序点餐系统有哪些功能? 1.扫码下单:节省点餐时间 在高峰期,顾客可在排队期间通过手机扫描餐厅门口展架上的二维码,进入点餐小程序,率先查看菜单,进行预先点餐,热销菜.创意菜.

图书馆统计系统总结

作为第一个正式项目,感触颇多,系统刚做完没多久,写点笔记记录下来吧.本系统主要功能是进行数据统计,比如统计学院的进馆次数,平均次数,进馆排行,图书馆年报等等 在接到这个商用项目时,听着系统的名字,一个很简单的查询系统嘛,so easy .当年太年轻,撸起袖子就开始干活了.对方的图书馆记录数据库和学校的一卡通数据数据一直没有提供,具体需求说明书也没有提供(我们也没有仔细进行一个系统分析,到了后期许多细节没有考虑到很是心累)导致后期开发时做了很多无用功.无奈只好先设计一个供本系统使用的数据库.主要有

C++错误——”无法启动程序”…\xxx.exe” 系统找不到指定的文件”

背景 在VS2010环境下,升级了一个用C++编写的程序,编译生成成功,但是,不能在VS中直接运行(可以通过打开debug文件目录的exe应用程序运行),提示以下错误:"无法启动程序"-\xxx.exe" 系统找不到指定的文件",如截图1. 截图1 解决方法 1.选择工程,右键单击属性,打开工程的属性页,参考截图2: 截图2 2.选择"配置属性->General",选择output directory ,设置为"inherit f

微信小程序购物商城系统开发系列

微信小程序购物商城系统开发系列 微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统.新的生态,未来大部分应用场景都将给予微信小程序进行研发.基于对它的敬畏以及便于大家快速上手,特整理微信小程序商城开发系列,未来将持续增加微信小程序技术文章,让大家可全面了解如何快速开发微信小程序商城. 本篇文章主要介绍微信小程序官方提供的开发工具,俗话说:欲工善其身,必先利其器. 小程序开发文档地址

如何让自己的Android程序永不被系统kill

如何让自己的Android程序永不被系统kill 相关知识: 一般来说,在Android系统中,当某进程较长时间不活动,或系统资源比较紧时,该进程可能被系统kill掉,以此来回收一些资源.Android系统会根据进程的优先级来选择性地杀死一些进程,优先级从高到低依次是: 1. 前台进程(Foreground Process) 2. 可视进程(Visible Process) 3. 服务进程(Service Process) 4. 后台进程(Background Process) 5. 空进程(E