デバッグのさらに別のツアーを終了しましたが、今また途方に暮れています。
問題は、プログラムを開いて任意のボタンを押すと、2 番目のメニューにあるにもかかわらず、常にムービー データベース全体が表示されることです。
ばかげた宿題の質問でお手数をおかけして申し訳ありません。さらにもう 1 つあります。ファイルから最初の 5 つの動画 (5 行) をプログラムに表示する方法) 最初の 5 行 (txt からの最初の 5 行は失敗) を印刷し、前の 5 行を再度印刷するには?
私のかなり哀れな試みを以下に示します。例: 最初にメメント、ゴッドファーザーがあります。次の 5 つの Godfather II 、Shawshank Redemption、Leon、A Bittersweet Life、Se7en.Now 前の 5:Memento、Godfather、Godfather II、Shawshank Redemption、Leon を印刷します。
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
void sisend(); /*input*/
string valik(); /*choice*/
void kogukuvand(); /* the whole display of the database */
void valjumine(); /* program quit*/
void sisendvoivaljumine(); /*quiting with output to file or not*/
void viisjuurde(); /* input further 5 lines from the file */
void viismaha(); /* input previous 5 lines from the file*/
int main()
{
system ("title Filmide andmebaas"); /*Movie database*/
system ("cls");
char valik;
cout << "Vajuta klahv 'j',kui tahad naha jargmist 5 kirjet."<< endl; /* j to get extra 5*/
cout << "Vajuta klahv 'e',kui tahad naha eelmist 5 kirjet."<< endl; /* e for previous 5 lines */
cout << "Vajuta klahv 'v',kui tahad lopetada programmi taitumist."<< endl; /* v for the output */
cin >> valik;
if(valik=='j')
{
viisjuurde();
}
else if(valik=='e')
{
viisjuurde();
}
else if(valik=='v')
sisendvoivaljumine();
}
void viisjuurde()
{
ifstream filmike("andmebaas.txt");
int n,
sum = 5;
string film;
string vaadatud;
int aasta;
long int hinne;
system ("CLS");
cout << "Kogu filmide andmebaas"<<endl;
cout << "Film" << " " << "Aasta" << " " <<"Hinne"<< " " << "Vaadatud" << endl;
cout << "------------------------------" << endl;
while (filmike>> film >> aasta >> hinne >> vaadatud)
{
sum += n;
cout << film << " " << aasta << " " << hinne << " " << vaadatud << endl;
} {
system ("pause");
cin.get();
main();
}
}
void viismaha()
{
ifstream filmike("andmebaas.txt");
int n, sum = -5;
while (filmike >> n) {
sum += n;
}
string film;
string vaadatud;
int aasta;
long int hinne;
system ("CLS");
cout << "Kogu filmide andmebaas"<<endl;
cout << "Film" << " " << "Aasta" << " " <<"Hinne"<< " " << "Vaadatud" << endl;
cout << "------------------------------" << endl;
while (filmike>> film >> aasta >> hinne >> vaadatud)
{
cout << film << " " << aasta << " " << hinne << " " << vaadatud << endl;
}
system ("pause");
cin.get();
main();
}
void sisend() /* user input */
{
string nimi;
int aasta;
long int hinne;
string vaadatud;
ofstream lisafilm("andmebaas.txt", ios::app);
cout <<"Sisestage filmi nimi." << endl; /*Enter film's name */
cin >> nimi;
string film;
cout << "Sisestage filmi ilmumisaasta." << endl; /* Enter film's year */
cin >> aasta;
cout << "Sisestage filmi hinne." << endl; /* Enter film's rating */
cin >> hinne;
cout << "Kas olete filmi juba vaadanud?" << endl; /* Has the user seen the movie already*/
cout << "Vastake 'Jah' voi 'Ei'" << endl;
cin >> vaadatud;
cout << film << " " << aasta << " " << hinne << " " << vaadatud << endl;
lisafilm<< nimi << " " << aasta << " " << hinne<< " " << vaadatud << endl;
lisafilm.close();
main();
cout << "Aitah kasutamast andmebaasi." << endl;
system("pause");
cin.get ();
}
void valjumine() /*quiting without output */
{
system("CLS");
cout << "Aitah kasutamast andmebaasi." << endl;
system("pause");
cin.get ();
}
void kogukuvand() /* the whole movie database*/
{
ifstream filmike("andmebaas.txt");
string film;
string vaadatud;
int aasta;
long int hinne;
system ("CLS");
cout << "Kogu filmide andmebaas"<<endl;
cout << "Film" << " " << "Aasta" << " " <<"Hinne"<< " " << "Vaadatud" << endl;
cout << "------------------------------" << endl;
while (filmike>> film >> aasta >> hinne >> vaadatud)
{
cout << film << " " << aasta << " " << hinne << " " << vaadatud << endl;
}
system ("pause");
cin.get();
main();
}
void sisendvoivaljumine()
{
char valik2;
system ("CLS");
cout << "Vajuta klahv 'j',kui tahad salvestada kirje ja v2ljuda programmist." << endl; /* output new movie to file and quit*/
cout << "Vajuta klahv 'e',kui ei taha salvestada kirje ja v2ljuda programmist." << endl; /*just quit, without any output to file*/
cout << "Vajuta klahv 'k',kui tahad naha kogu filmide andmebaasi." << endl; /* display the whole movie database*/
cin >> valik2;
if(valik2=='j')
{
sisend();
}
else if(valik2=='e')
{
valjumine();
}
else if(valik2=='k')
kogukuvand();
}