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

📄 detail.cpp

📁 用C++编写的课程设计
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		exit(0);
	}
	aa.read((char*)&bd,sizeof(BookData));
	while(!aa.eof())
	{
		count++;	
		if(strcmp(is,bd.getIsbn())==0)
		{
			num++;
			cout<<bd;
			show_EditBook();
			cin>>ch;
			while(strcmp(ch,"9")!=0)
			{
				if(strcmp(ch,"1")==0)
				{
					cout<<"请输入新的isbn号:";
					cin>>is;
					while(Judge(is)==0)
					{
						cout<<"此isbn号已存在,请重新输入。"<<endl;
						cin>>is;
					}
					bd.setIsbn(is);
				}
				else if(strcmp(ch,"2")==0)
				{
					cout<<"请输入新的书名:";
					cin.ignore();
					cin.getline(tit,51,'\n');
					bd.setTitle(tit);
				}
				else if(strcmp(ch,"3")==0)
				{
					cout<<"请输入新的作者:";
					cin.getline(aut,31,'\n');
					bd.setAuthor(aut);
				}
				else if(strcmp(ch,"4")==0)
				{
					cout<<"请输入新的出版社:";
					cin.getline(pub,31,'\n');
					bd.setPub(pub);
				}
				else if(strcmp(ch,"5")==0)
				{
					cout<<"请输入新的日期(按XXXX-XX-XX的方式):";
					cin.ignore();
					cin.getline(yea,5,'-');
					cin.getline(mon,3,'-');
					cin.getline(da,3,'\n');
					bd.setDateAdded(yea,mon,da);
				}
				else if(strcmp(ch,"6")==0)
				{
					cout<<"请输入新的库存量:";
					cin>>qty;
					bd.setQty(qty);
				}
				else if(strcmp(ch,"7")==0)
				{
					cout<<"请输入新的批发价:";
					cin>>who;
					bd.setWholesale(who);
				}
				else if(strcmp(ch,"8")==0)
				{	
					cout<<"请输入新的零售价:";
					cin>>ret;
					bd.setRetail(ret);
				}
				else 
				{
					cout<<"输入不正确,请重新输入。"<<endl;
				}
				show_EditBook();
				cin>>ch;
			}
		}
		bb.write((char*)&bd,sizeof(BookData));//写进临时文件中//
		aa.read((char*)&bd,sizeof(BookData));//读入下一个//
	}
		if(num==0)
			cout<<"没有找到相应的书!"<<endl;
	bb.close();
	aa.close();
	ifstream infile("linshi.txt",ios::binary|ios::in);
	ofstream outfile("bookstore.txt",ios::binary|ios::out);
	for(num=0;num<count;num++)
	{
		infile.read((char*)&bd,sizeof(BookData));
		outfile.write((char*)&bd,sizeof(BookData));
	}
	aa.close();
	bb.close();	
	cout<<"修改完成,请按回车键返回上一级菜单。"<<endl;
	cin.ignore();
	cin.get();
}
void DeleteBook()
{
	BookData de;
	int num=0;
	char is[14];
	char ch[30];
	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*)&de,sizeof(BookData));
	while(!infile.eof())
	{
		if(strcmp(is,de.getIsbn())==0)
		{
		
			cout<<de;
			num++;
			infile.read((char*)&de,sizeof(BookData));
		}
		else 
		{
			outfile.write((char*)&de,sizeof(BookData));
			infile.read((char*)&de,sizeof(BookData));
		}
	}
	outfile.close();
	infile.close();
	if(num==0)
	{
		cout<<"没有找到书。"<<endl;
		cout<<"请按回车键返回上一级菜单。"<<endl;
		cin.ignore();
		cin.get();
	}
	if(num!=0)
	{
		cout<<"确定删除?(Y/N)";
		cin>>ch;
		while(strcmp(ch,"y")!=0&&strcmp(ch,"Y")!=0&&strcmp(ch,"N")!=0&&strcmp(ch,"n")!=0)
		{
			cout<<"输入不正确,请重新输入。"<<endl;
			cin>>ch;
		}
		if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
		{
			ifstream in("linshi.txt",ios::binary);
			ofstream out("bookstore.txt",ios::binary);
			in.read((char*)&de,sizeof(BookData));
			while(!in.eof())
			{
				out.write((char*)&de,sizeof(BookData));
				in.read((char*)&de,sizeof(BookData));
			}
			in.close();
			out.close();
			cout<<"删除成功!!请按回车键返回上一级菜单!"<<endl;
			cin.ignore();
			cin.get();
		}
		if(strcmp(ch,"n")==0||strcmp(ch,"N")==0)
		{
			cout<<"请按回车键返回上一级菜单。"<<endl;
			cin.ignore();
			cin.get();
		}
	}
}
//******************************************//
//				显示报表界面  				//
//******************************************//
void show_baobiao()
{
	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<<"\t\t"<<"6.返回主菜单"<<endl;
	cout<<"*****************************************************************"<<endl;
   	cout<<"\t\t"<<"输入选择"<<"\n"<<"\t\t"<<"请输入1--6之间的数。"<<endl;
}
//******************************************//
//				报表界面  					//
//******************************************//
void enter_baobiao()
{
	show_baobiao();
	char cc[30];
	cin>>cc;
	while(strcmp(cc,"6")!=0)
	{
		system("cls");
		if(strcmp(cc,"1")==0)
		{
			cout<<"进入书库列表"<<endl;
			show_list();
			cout<<"请按回车键..."<<endl;
		}
		else if(strcmp(cc,"2")==0)
		{
			cout<<"进入批发价列表"<<endl;
			show_who();
			cout<<"请按回车键..."<<endl;
		}
		else if(strcmp(cc,"3")==0)
		{
			cout<<"进入零售价列表"<<endl;
			show_retail();
			cout<<"请按回车键..."<<endl;
		}
		else if(strcmp(cc,"4")==0)
		{
			cout<<"按书的数量列表"<<endl;
			show_qty();
			cout<<"请按回车键..."<<endl;
		}
		else if(strcmp(cc,"5")==0)
		{
			cout<<"按进书日期列表"<<endl;
			show_date();
			cout<<"请按回车键..."<<endl;
		}
		else 
		{
			cout<<"输入不正确,请按回车键重新输入!"<<endl;
		}
	
		cin.ignore();
		cin.get();
		system("cls");
		show_baobiao();
		cin>>cc;
	}
	cout<<"返回主菜单。"<<endl;
}
void show_list()//按isbn号排列//
{	
	int sum=0;//计算有多少个对象//
	BookData a[1000];
	int i=0;
	ifstream infile("bookstore.txt",ios::binary);
	if(infile.fail())
	{
		cout<<"打开文件失败!"<<endl;
		exit(0);
	}
	infile.read((char*)&a[i],sizeof(BookData));
	while(!infile.eof())
	{	
		sum++;
		i++;
		infile.read((char*)&a[i],sizeof(BookData));//读入数组中//
	}
	infile.close();
	sort_Isbn(a,sum);
	for(i=0;i<sum;i++)
	{
		cout<<a[i];
	}
}
void show_who()//按批发价排列//
{
	int sum=0;//计算有多少个对象//
	BookData a[1000];
	int i=0;
	ifstream infile("bookstore.txt",ios::binary);
	if(infile.fail())
	{
		cout<<"打开文件失败!"<<endl;
		exit(0);
	}
	infile.read((char*)&a[i],sizeof(BookData));
	while(!infile.eof())
	{	
		sum++;
		i++;
		infile.read((char*)&a[i],sizeof(BookData));//读入数组中//
	}
	infile.close();
	sort_Who(a,sum);
	for(i=0;i<sum;i++)
	{
		cout<<a[i];
	}
}
void show_retail()//按零售价排列//
{
	int sum=0;//计算有多少个对象//
	BookData a[1000];
	int i=0;
	ifstream infile("bookstore.txt",ios::binary);
	if(infile.fail())
	{
		cout<<"打开文件失败!"<<endl;
		exit(0);
	}
	infile.read((char*)&a[i],sizeof(BookData));
	while(!infile.eof())
	{	
		sum++;
		i++;
		infile.read((char*)&a[i],sizeof(BookData));//读入数组中//
	}
	infile.close();
	sort_Retail(a,sum);
	for(i=0;i<sum;i++)
	{
		cout<<a[i];
	}
}
void show_qty()//按库存量排列//
{
	int sum=0;//计算有多少个对象//
	BookData a[1000];
	int i=0;
	ifstream infile("bookstore.txt",ios::binary);
	if(infile.fail())
	{
		cout<<"打开文件失败!"<<endl;
		exit(0);
	}
	infile.read((char*)&a[i],sizeof(BookData));
	while(!infile.eof())
	{	
		sum++;
		i++;
		infile.read((char*)&a[i],sizeof(BookData));//读入数组中//
	}
	infile.close();
	sort_Qty(a,sum);
	for(i=0;i<sum;i++)
	{
		cout<<a[i];
	}
}
void show_date()//按日期排列//
{	
	int sum=0;//计算有多少个对象//
	BookData a[1000];
	int i=0;
	ifstream infile("bookstore.txt",ios::binary);
	if(infile.fail())
	{
		cout<<"打开文件失败!"<<endl;
		exit(0);
	}
	infile.read((char*)&a[i],sizeof(BookData));
	while(!infile.eof())
	{	
		sum++;
		i++;
		infile.read((char*)&a[i],sizeof(BookData));//读入数组中//
	}
	infile.close();
	sort_Date(a,sum);
	for(i=0;i<sum;i++)
	{
		cout<<a[i];
	}
}
void sort_Who(BookData *a,int n)
{
	int i,j;
	BookData temp;
	for(i=0;i<n-1;i++)
		for(j=i;j<n;j++)
			if((a[i].getWholesale())>(a[j].getWholesale()))
			{
				temp=a[i];
				a[i]=a[j];
				a[j]=temp;
			}
}
void sort_Retail(BookData *a,int n)
{
	int i,j;
	BookData temp;
	for(i=0;i<n-1;i++)
		for(j=i;j<n;j++)
			if((a[i].getRetail())>(a[j].getRetail()))
			{
				temp=a[i];
				a[i]=a[j];
				a[j]=temp;
			}
}
void sort_Qty(BookData *a,int n)
{
	int i,j;
	BookData temp;
	for(i=0;i<n-1;i++)
		for(j=i;j<n;j++)
			if((a[i].getQty())>(a[j].getQty()))
			{
				temp=a[i];
				a[i]=a[j];
				a[j]=temp;
			}
}
void sort_Isbn(BookData *a,int n)
{
	int i,j;
	BookData temp;
	for(i=0;i<n-1;i++)
		for(j=i;j<n;j++)
			if(strcmp(a[i].getIsbn(),a[j].getIsbn())>0)
			{
				temp=a[i];
				a[i]=a[j];
				a[j]=temp;
			}
}
void sort_Date(BookData *a,int n)
{
	int i,j;
	BookData temp;
	for(i=0;i<n-1;i++)
		for(j=i;j<n;j++)
			if(compare(a[i],a[j])>0)
			{
				temp=a[i];
				a[i]=a[j];
				a[j]=temp;
			}
}
int compare(BookData a,BookData b)
{
	char c[11];
	char d[11];
	strcpy(c,a.getyear());
	strcat(c,a.getmonth());
	strcat(c,a.getday());
	strcpy(d,b.getyear());
	strcat(d,b.getmonth());
	strcat(d,b.getday());
	return	(strcmp(c,d));
}

//******************************************//
//				显示书的信息				//
//******************************************//
void show_book(BookData &a)
{	
	cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
	cout<<"\t           "<<endl;
	cout<<"\t"<<"ISBN号:"<<a.getIsbn()<<endl;
	cout<<"\t"<<"书  名:"<<a.getTitle()<<endl;
	cout<<"\t"<<"作  者:"<<a.getAuthor()<<endl;
	cout<<"\t"<<"出版社:"<<a.getpublisher()<<endl;
	cout<<"\t"<<"进书日期:";
	a.show_DateAdded();
	cout<<"\t"<<"库存量:"<<a.getQty()<<endl;
	cout<<"\t"<<"批发价:"<<a.getWholesale()<<endl;
	cout<<"\t"<<"零售价:"<<a.getRetail()<<endl;
}
int Judge(char* is)//判断isbn号是否存在//
{
	int num=0;
	BookData b;
	ifstream in("bookstore.txt",ios::binary);
	if(in.fail())
	{
		cout<<"打开文件失败!"<<endl;
		exit(0);
	}
	in.read((char*)&b,sizeof(BookData));
	while(!in.eof())
	{
		if(strcmp(is,b.getIsbn())==0)
		num++;
		in.read((char*)&b,sizeof(BookData));
	}
	in.close();
	if(num!=0)
		return (0);//isbn号用过了//
	else return(1);//没有用过//
}
ostream &operator<<(ostream &strm,BookData &a)
{
	strm<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
	strm<<"\t           "<<endl;
	strm<<"\t"<<"ISBN号:"<<a.getIsbn()<<endl;
	strm<<"\t"<<"书  名:"<<a.getTitle()<<endl;
	strm<<"\t"<<"作  者:"<<a.getAuthor()<<endl;
	strm<<"\t"<<"出版社:"<<a.getpublisher()<<endl;
	strm<<"\t"<<"进书日期:";
	a.show_DateAdded();
	strm<<"\t"<<"库存量:"<<a.getQty()<<endl;
	strm<<"\t"<<"批发价:"<<a.getWholesale()<<endl;
	strm<<"\t"<<"零售价:"<<a.getRetail()<<endl;
	return strm;
}

⌨️ 快捷键说明

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