⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 detail.cpp

📁 用C++编写的课程设计
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#include "shengming.h"
//******************************************//
//             显示主菜单					//
//******************************************//
void show_mainM()
{
	cout<<"\t\t"<<"图书管理系统"<<endl;
	cout<<"\t           "<<"主菜单"<<endl;
	cout<<"\t\t"<<"1.收银模块"<<endl;
	cout<<"\t\t"<<"2.书库管理模块"<<endl;
	cout<<"\t\t"<<"3.报表模块"<<endl;
	cout<<"\t\t"<<"4.退出系统"<<endl;
	cout<<"************************************************"<<endl;
	cout<<"\t\t"<<"输入选择:"<<"\n"<<"\t\t"<<"请输入1--4之间的数。"<<endl;
}
//******************************************//
//				前台销售模块				//
//******************************************//
void enter_paid()
{
	Sale buy[1000];
	BookData p;
	int i;
	float totalmoney=0.0;
	float money=0.0;
	int num=0;
	char is[14];
	int count=0;
	int sumonhand;
	int sum;
	char ch[30];
	cout<<"是否开始输入isbn号?(Y/N)";
	cin>>ch;
	while(strcmp(ch,"N")!=0&&strcmp(ch,"n")!=0)
	{	
		if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0)
		{
			cout<<"请输入isbn号:";
			cin>>is;
			ifstream infile("bookstore.txt",ios::binary);
			if(infile.fail())
			{
				cout<<"打开文件失败!"<<endl;
				exit(0);
			}
			ofstream outfile("linshi.txt",ios::binary);
			if(outfile.fail())
			{
				cout<<"打开文件失败!"<<endl;
				exit(0);
			}
			infile.read((char*)&p,sizeof(BookData));
			while(!infile.eof())
			{
				if(strcmp(is,p.getIsbn())==0)//isbn号一样//
				{
					count++;
					cout<<"书的信息如下:"<<endl;
					cout<<p;
					cout<<"X********************************X"<<endl;
					cout<<"请输入要购买的书的数量:";
					cin>>sum;
					sumonhand=p.getQty();//库存量//
					while(sum>sumonhand)
					{
						cout<<"对不起,没有那么多的书,请重新输入。"<<endl;
						cin>>sum;
					}
					while(sum<0)
					{
						cout<<"输入不正确,请重新输入。"<<endl;
						cin>>sum;
					}
					if(sum>=0&&sum<=sumonhand)
					{
						buy[num].setIsbn(p.getIsbn());//读入isbn号//
						buy[num].setTitle(p.getTitle());//读入书名//
						buy[num].setRetail(p.getRetail());//读入零售价//
						buy[num].setqtySold(sum);//读入本次购买的数量//
						num++;
						p.setQty((sumonhand-sum));
						outfile.write((char*)&p,sizeof(BookData));//写入临时文件中//
						infile.read((char*)&p,sizeof(BookData));//读入下一个//
					}	
				}
				else 
				{
					outfile.write((char*)&p,sizeof(BookData));//写入临时文件中//
					infile.read((char*)&p,sizeof(BookData));//读入下一个//
				}
			}
			infile.close();
			outfile.close();
			ifstream in("linshi.txt",ios::binary);
			if(in.fail())
			{
				cout<<"打开文件失败!"<<endl;
				exit(0);
			}
			ofstream out("bookstore.txt",ios::binary);
			if(out.fail())
			{
				cout<<"打开文件失败!"<<endl;
				exit(0);
			}
			in.read((char*)&p,sizeof(BookData));
			while(!in.eof())
			{
				if(strcmp(is,p.getIsbn())==0&&p.getQty()==0)//如果书被买完,则此书被删去//
				{
					in.read((char*)&p,sizeof(BookData));
				}
				else
				{
					out.write((char*)&p,sizeof(BookData));
					in.read((char*)&p,sizeof(BookData));
				}
			}
			in.close();
			out.close();
			if(num!=0)
			cout<<"是否继续购买?(Y/N):";
			else 
				cout<<"对不起,没有找到相应的书,是否继输入其他的isbn号?(Y/N)";
		}
		else 
			cout<<"输入不正确,请重新输入!";
		cin>>ch;
	}
	system("cls");//购书完毕,清屏
	if(num!=0)
	{
		cout<<"购书成功!"<<endl;
		cout<<"\t\t"<<"前台购书模块"<<endl;
		cout<<"数量\t书名\t\t单价\t金额"<<endl;
		for(i=0;i<num;i++)
		{
			buy[i].caltax();//本次购买的税//
			buy[i].calsubtotal();
			buy[i].caltotal();//累加到应付款中,带税//
			
			money=(buy[i].getRetail())*(buy[i].getqtySold());
			totalmoney+=money;
			cout<<buy[i].getqtySold()<<"\t"<<buy[i].getTitle()<<"\t\t"<<buy[i].getRetail()<<"\t"<<money<<endl;			
		}
		cout<<">..................................................<"<<endl;
		cout<<"销售合计:\t"<<totalmoney<<endl;
		cout<<"零售税:  \t"<<totalmoney*(Sale::gettaxRate())<<endl;
		cout<<"应付总额:\t"<<Sale::gettotal()<<endl;
	}
	cout<<"\t\t\t"<<"谢谢光临!"<<endl;
	cin.ignore();
	cout<<"请按回车键..."<<endl;
	cin.get();
}	
//******************************************//
//				书库管理模块				//
//******************************************//	
void	show_con()
{
	cout<<"\t\t"<<"图书管理系统"<<endl;
	cout<<"\t           "<<"书库管理模块"<<endl;
	cout<<"\t\t"<<"1.查找书的信息"<<endl;
	cout<<"\t\t"<<"2.增加新书"<<endl;
	cout<<"\t\t"<<"3.修改书的信息"<<endl;
	cout<<"\t\t"<<"4.删除书"<<endl;
	cout<<"\t\t"<<"5.返回主菜单"<<endl;
	cout<<"*****************************************************************"<<endl;
   	cout<<"\t\t"<<"输入选择"<<"\n"<<"\t\t"<<"请输入1--5之间的数。"<<endl;
}		
		
//******************************************//
//				书库管理模块				//
//******************************************//
void enter_con()
{
	show_con();
	char cb[30];
	cin>>cb;
	while(strcmp(cb,"5")!=0)
	{
		system("cls");
		if (strcmp(cb,"1")==0)
		{	
			LookUpBook();
			system("cls");
			show_con();
		}
		else if(strcmp(cb,"2")==0)
		{
			AddBook();
			system("cls");
			show_con();
		}
		else if(strcmp(cb,"3")==0)
		{
			EditBook();
			system("cls");
			show_con();
		}
		else if (strcmp(cb,"4")==0)
		{
			DeleteBook();
			system("cls");
			show_con();
		}
		else 
		{
			show_con();
			cout<<"输入不正确,请重新输入!"<<endl;
		}
		cin>>cb;
	}
	cout<<"返回主菜单。"<<endl;
}
//******************************************//
//				书籍资料查找 				//
//******************************************//
void show_LookUpBook()				//显示书籍查找目录//
{
	cout<<"\t\t"<<"图书管理系统"<<endl;
	cout<<"\t           "<<"书籍资料查找"<<endl;
	cout<<"\t\t"<<"1.按isbn号查找。"<<endl;
	cout<<"\t\t"<<"2.按书名或书名的部分查找。"<<endl;
	cout<<"\t\t"<<"3.按作者查找。"<<endl;
	cout<<"\t\t"<<"4.按出版社查找。"<<endl;
	cout<<"\t\t"<<"5.返回上一级菜单。"<<endl;
	cout<<"*****************************************************************"<<endl;
   	cout<<"\t\t"<<"输入选择"<<"\n"<<"\t\t"<<"请输入1--5之间的数。"<<endl;
}
void LookUpBook()
{
	char cd[30];
	char a[51];
	show_LookUpBook();
	cin>>cd;
	while(strcmp(cd,"5")!=0)
	{
		if(strcmp(cd,"1")==0)
		{
			cout<<"请输入isbn号:";
			cin>>a;
			search_isbn(a);
		}
		else if (strcmp(cd,"2")==0)
		{
			cout<<"请输入书名:";
			cin>>a;
			search_title(a);
		}
		else if(strcmp(cd,"3")==0)
		{
			cout<<"请输入作者:";
			cin>>a;
			search_author(a);
		}
		else if(strcmp(cd,"4")==0)
		{
			cout<<"请输入出版社:";
			cin>>a;
			search_publisher(a);
		}
		else 
		{
			cout<<"输入不正确,请重新输入!"<<endl;
		}	
		cout<<"请按回车键..."<<endl;
		cin.ignore();
		cin.get();
		system("cls");
		show_LookUpBook();
		cin>>cd;
	}
	cout<<"返回上一级菜单。"<<endl;
}
void search_isbn(char*a)
{       //按isbn号查找,找到之后显示出来//
	int num=0;
	BookData is;
	ifstream infile("bookstore.txt",ios::binary);	//书的信息在“bookstore.txt”中//
	if(!infile)
	{
		cout<<"打开文件失败!"<<endl;
		exit(0);
	}
	system("cls");
	cout<<"搜索您要查找的书..."<<endl;
	infile.read((char*)&is,sizeof(BookData));
	while(!infile.eof())
	{
		if(strcmp(a,is.getIsbn())==0)//判断isbn号是否相同//
		{
			cout<<"您要查找的书信息如下:"<<endl;
			cout<<is;
			cout<<"X**************************************X"<<endl;
			num++;
		}
		infile.read((char*)&is,sizeof(BookData));
	}
	if(num==0)
	{
		cout<<"对不起,没有找到您要查找的书。"<<endl;
	}
	infile.close();
}
void search_title(char*a)//按名字或者名字的一部分模糊查找,可能输出多本书的信息//
{	
	int num=0;
	BookData is;
	ifstream infile("bookstore.txt",ios::binary);	//书的信息在“bookstore.txt”中//
	infile.read((char*)&is,sizeof(BookData));
	if(!infile)
	{
		cout<<"打开文件失败!"<<endl;
		exit(0);
	}

	cout<<"搜索您要查找的书..."<<endl;
	while(!infile.eof())
	{
		if(is.bookMatch(a)==1)				//如果是书名的子串//
		{
			cout<<is;
			cout<<"X**************************************X"<<endl;
			num++;
		}
		infile.read((char*)&is,sizeof(BookData));
	}
	if(num==0)
	{
		cout<<"对不起,没有找到您要查找的书。"<<endl;
	}
	infile.close();
}
void search_author(char*a)	//按作者查找,找到之后显示出来,找到后不要跳出来//
{
	int num=0;
	BookData is;
	ifstream infile("bookstore.txt",ios::binary);	//书的信息在“bookstore.txt”中//
	infile.read((char*)&is,sizeof(BookData));
	if(!infile)
	{
		cout<<"打开文件失败!"<<endl;
		exit(0);
	}

	cout<<"搜索您要查找的书..."<<endl;
	while(!infile.eof())
	{
		if(strcmp(a,is.getAuthor())==0)//判断作者是否相同//
		{
			cout<<is;
			cout<<"X**************************************X"<<endl;
			num++;
		}
	infile.read((char*)&is,sizeof(BookData));
	}
	if(num==0)
	{
		cout<<"对不起,没有找到您要查找的书。"<<endl;
	}
	infile.close();
}
void search_publisher(char*a)//按出版社查找,找到不跳出//
{
	int num=0;
	BookData is;
	ifstream infile("bookstore.txt",ios::binary);	//书的信息在“bookstore.txt”中//
	infile.read((char*)&is,sizeof(BookData));
	if(!infile)	
	{
		cout<<"打开文件失败!"<<endl;
		exit(0);
	}

	cout<<"搜索您要查找的书..."<<endl;
	while(!infile.eof())
	{
		if(strcmp(a,is.getpublisher())==0)//判断作者是否相同//
		{
			cout<<is;
			cout<<"X**************************************X"<<endl;
			num++;
		}
	infile.read((char*)&is,sizeof(BookData));
	}
	if(num==0)
	{
		cout<<"对不起,没有找到您要查找的书。"<<endl;
	}
	infile.close();
}
//******************************************//
//				增加新书	 				//
//******************************************//
void AddBook()
{
	char a[30];
	int m=0;
	cout<<"是否开始输入书的信息?(Y/N)"<<endl;
	cin>>a;
	char is[14];
	char tit[51];
	char aut[31];
	char pub[31];
	char yea[5];
	char mon[3];
	char da[3];
	int qty;
	float who;
	float ret;
	ofstream outfile("bookstore.txt",ios::binary|ios::app);//追加、二进制方式打开文件//
	while(strcmp(a,"N")!=0&&strcmp(a,"n")!=0)
	{
		if(strcmp(a,"Y")==0||strcmp(a,"y")==0)
		{
			cout<<"请输入isbn号:";
			cin>>is;
			while(Judge(is)==0)
			{
				cout<<"此isbn号已经存在,请重新输入。"<<endl;
				cin>>is;//判断此isbn号是否已经存在//
			}
			cout<<"请输入书名:";
			cin.ignore();
			cin.getline(tit,51,'\n');
			cout<<"请输入作者:";
			cin.getline(aut,31,'\n');
			cout<<"请输入出版社:";
			cin.getline(pub,31,'\n');
			cout<<"请输入日期:(按XXXX-XX-XX方式输入)";
			cin.getline(yea,5,'-');
			cin.getline(mon,3,'-');
			cin.getline(da,3,'\n');
			cout<<"请输入要存入的数量: ";
			cin>>qty;
			cout<<"请输入批发价:";
			cin>>who;
			cout<<"请输入零售价:";
			cin>>ret;
			BookData newbook(tit,is,aut,pub,yea,mon,da,qty,who,ret);
			outfile.write((char*)&newbook,sizeof(BookData));	//追加写入文件中//
			m++;
			cout<<"X********************************X"<<endl;
			cout<<"是否还要加入新书?(Y/N)"<<endl;
		}
		else
			cout<<"输入不正确,请重新输入!"<<endl;
		cin>>a;
	}
	if(m!=0)
	cout<<"增加成功!!"<<endl;
	cout<<"请按回车键返回上一级菜单。"<<endl;
	cin.ignore();
	cin.get();
	outfile.close();
}

//******************************************//
//				修改书的资料 				//
//******************************************//
void show_EditBook()
{	
	cout<<"X********************************X"<<endl;
	cout<<"请选择要修改的项(1--9)。"<<endl;
	cout<<"1.修改isbn号。"<<endl;
	cout<<"2.修改书名。"<<endl;
	cout<<"3.修改作者。"<<endl;
	cout<<"4.修改出版社。"<<endl;
	cout<<"5.修改日期。"<<endl;
	cout<<"6.修改库存量。"<<endl;
	cout<<"7.修改批发价。"<<endl;
	cout<<"8.修改零售价。"<<endl;
	cout<<"9.修改结束,返回上一级菜单。"<<endl;
}
void EditBook()
{
	char tit[51];
	char aut[31];
	char pub[31];
	char yea[5];
	char mon[3];
	char da[3];
	int qty;
	float who;
	float ret;
	char ch[30];
	char is[14];
	BookData bd;
	int num=0;
	int count=0;
	cout<<"请输入书的isbn号:";
	cin>>is;
	cout<<"正在查找书的信息..."<<endl;
	fstream aa("bookstore.txt",ios::binary|ios::in|ios::out);//可读可写//
	if(aa.fail())
	{
		cout<<"打开文件失败!"<<endl;
		exit(0);
	}
	fstream bb("linshi.txt",ios::binary|ios::in|ios::out);//临时文件,可读可写//
	if(bb.fail())
	{
		cout<<"打开文件失败!"<<endl;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -