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

📄 videosystem.cpp

📁 光盘出租管理系统
💻 CPP
字号:
#include <iostream.h>
#include <fstream.h>
#include "myString.h"
#include "linkedList.h"
#include "videoType.h"
#include "videoListType.h"
#include "custType.h"
#include "custListType.h"

void createVideoList(ifstream& infile,videoListType& videoList);
void createCustList(ifstream& infileCust,custListType& custList);

void displayMenu();
void saveData(videoListType &videoList,custListType &custList);

int main()
{
	videoListType videoList;
	char choice;
	char ch;
	char title[50];

	ifstream infile;
	infile.open("videoDat.txt");
	if(!infile)
	{
		cout<<"(影碟链表)Input file does not exist"<<endl;
		return 1;
	}
	createVideoList(infile,videoList);
	infile.close();
    
	custListType custList;
    char AcctNo[50];

    ifstream infileCust;
    infileCust.open("custDat.txt");
	if(!infileCust)
	{
		cout<<"(顾客链表)Input fileCust does not exist"<<endl;
		return 1;
	}

	createCustList(infileCust,custList);
	infileCust.close();

	displayMenu();
	cout<<"Enter choice:";
	cin>>choice;
	cout<<endl;

	while(choice != '0')
	{
		switch(choice)
		{
        case '1': cout<<"输入搜索影碟名:";
			cin.get(ch);
			cin.get(title,50);
			cout<<endl;
			if(videoList.videoSearch(title))
			{
				if(videoList.isVideoAvailable(title))
					cout<<"商店中有库存,可以出租!"<<endl;
				else
					cout<<"本碟已经全部租出"<<endl;
			}
			else
				cout<<"商店没有此碟"<<endl;
			break;
		
		case '2':cout<<"输入要租出的影碟:";
			cin.get(ch);
			cin.get(title,50);
			cout<<endl;

			if(videoList.videoSearch(title))
			{
				if(videoList.isVideoAvailable(title))
				{
					cout<<"租给哪位顾客?帐号:";
					cin.get(ch);
					cin.get(AcctNo,50);
					custList.custrentvideo(AcctNo,title);

					videoList.videoCheckOut(title);
				    cout<<"成功租出:"<<title<<endl;
				}		
			else
				cout<<"对不起,目前影碟<"<<title<<">已经租完!"<<endl;
			}
			else
				cout<<"商店目前没有此碟<"<<title<<">"<<endl;
			break;

		case '3': cout<<"返还影碟是:";
			cin.get(ch);
			cin.get(title,50);
			cout<<"还碟用户帐号:";
			cin.get(ch);
			cin.get(AcctNo,50);
			cout<<endl;

			if(videoList.videoSearch(title))
			{   
				custList.custbackvideo(AcctNo,title);				
							videoList.videoCheckIn(title);				
			}
			break;
        case '4':cout<<"查找影碟名:";
			cin.get(ch);
			cin.get(title,50);
			cout<<endl;
			if(videoList.videoSearch(title))
			{
				cout<<"找到影碟<"<<title<<">"<<endl;
                videoList.videoPrintInfo(title);
			}
			else
			cout<<"商店没有此影碟"<<endl;
			break;
		
		case '5': videoList.videoPrintTitle();
			break;

		case '6': videoList.print();
			break;

		case '7': videoList.insertVideo();
			cout<<"已经成功导入一张新的影碟!";
			break;

		case 'a': cout<<"搜索帐号:";
			cin.get(ch);
			cin.get(AcctNo,50);
			custList.custSearch(AcctNo);
			break;

		case 'b': custList.PrintAllInfo();
			break;

		case 'c':cout<<"输入要重新设置信息的帐号:";
			cin.get(ch);
			cin.get(AcctNo,50);
			custList.deletcust(AcctNo);
			custList.insertcust();
			cout<<"成功修改帐号!"<<endl;
			break;
			
		case 'd': custList.insertcust();
			break;

		case 'e': cout<<"输入要删除的顾客帐号:";
			cin.get(ch);
			cin.get(AcctNo,50);
			char really;
			cout<<"确定要删除顾客帐号"<<AcctNo<<"吗?y or n?";
			cin>>really;
			if(really == 'y')
			{
				custList.deletcust(AcctNo);
			}
			else
			{
				cout<<"退出删除程序!"<<endl;
			}
			break;
		case 's': saveData(videoList,custList); 
			cout<<"成功保存"<<endl;
			break;
			

		default: cout<<"无效选择,请重新输入"<<endl;
		}                                   //end switch

		displayMenu();

		cout<<"Enter choice:";
		cin>>choice;
		cout<<endl;
	}//endl;
	return 0;
}

void createVideoList(ifstream& infile, videoListType& videoList)
{
	char Title[50];
	char Star1[50];
	char Star2[50];
	char Producer[50];
	char Director[50];
	char ProductionCo[70];		 
	char ch;
	int InStock;

	videoType newVideo;

	infile.get(Title,50);
	infile.get(ch);
	while(infile)
	{
		infile.get(Star1,50);
		infile.get(ch);
		infile.get(Star2,50);
		infile.get(ch);
		infile.get(Producer,50);
		infile.get(ch);
		infile.get(Director,50);
        infile.get(ch);
		infile.get(ProductionCo,70);
		infile.get(ch);
		infile>>InStock;
		infile.get(ch);
		
		newVideo.setVideoInfo(Title,Star1,Star2,Producer,Director,ProductionCo,InStock);

		videoList.insertFirst(newVideo);
		infile.get(Title,50);
		infile.get(ch);
	}//end while
}//end createVideoList


void createCustList(ifstream& infileCust,custListType& custList)
{
	char AcctNo[50];
	char fName[50];
	char lName[50];
	char video1[50];
	char video2[50];
	char video3[50];
	char ch;
	custType newcust;

	infileCust.get(AcctNo,50);
	infileCust.get(ch);

    while(infileCust)
	{
		
		infileCust.get(fName,50);
		infileCust.get(ch);
		infileCust.get(lName,50);
		infileCust.get(ch);
		infileCust.get(video1,50);
		infileCust.get(ch);
		infileCust.get(video2,50);
		infileCust.get(ch);
		infileCust.get(video3,50);
		infileCust.get(ch);
		
		newcust.setCustInfo(AcctNo,fName,lName,video1,video2,video3);

		custList.insertFirst(newcust);
		infileCust.get(AcctNo,50);
		infileCust.get(ch);

	}
}

void saveData(videoListType &videoList,custListType &custList)
{
	ofstream ofilevideo;
	ofstream ofilecust;

	ofilevideo.open("videoDat.txt");
	if(!ofilevideo)
	{
		cout<<"影碟 文件夹不存在,不能保存!"<<endl;
	//	exit(1);
	}
	else
	{
		nodeType<videoType>* current;
		current=videoList.getfirstnode();
		while(current != NULL)
		{
			ofilevideo<<current->info.videoTitle<<endl;
			ofilevideo<<current->info.movieStar1<<endl;
			ofilevideo<<current->info.movieStar2<<endl;
			ofilevideo<<current->info.movieProducer<<endl;
			ofilevideo<<current->info.movieDirector<<endl;
			ofilevideo<<current->info.movieProductionCo<<endl;
			ofilevideo<<current->info.copiesInStock<<endl;
			current = current->link;
		}
	}
	ofilevideo.close();
	
	ofilecust.open("custDat.txt");
	if(!ofilecust)
	{
		cout<<"顾客 文件夹不存在,不能保存!"<<endl;
	//	exit(1);
	}
	else
	{
		nodeType<custType> *current;
		current=custList.getfirstnode();
		while( current!=NULL )
		{

			ofilecust<<current->info.custAcctNo<<endl;
			ofilecust<<current->info.firstName<<endl;
			ofilecust<<current->info.lastName<<endl;
			ofilecust<<current->info.video1<<endl;
			ofilecust<<current->info.video2<<endl;
			ofilecust<<current->info.video3<<endl;

			current = current->link;
		}
		ofilecust.close();
	}
}
			
void displayMenu()
{
	cout<<"   =============选择你所要的操作=============== "<<endl;
	cout<<"       1: 是否可以出租影碟                a:搜索顾客并打印信息:"<<endl;
	cout<<"       2: 出租影碟                        b:打印所有顾客名单    "<<endl;
	cout<<"       3: 返还影碟                        c:设置顾客信息        "<<endl;
	cout<<"       4: 打印一张影碟的详细信息          d:增加顾客            "<<endl;
	cout<<"       5: 打印影碟清单                    e:删除顾客            "<<endl;
	cout<<"       6: 打印所有影碟详细信息                                  "<<endl;
	cout<<"       7:增加影碟                         s:保存文档         0:退出系统 "<<endl;
	cout<<"   ==================================== "<<endl;
}

⌨️ 快捷键说明

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