Выбор дня недели оператором switch

Уровень сложности:

Суть задачи: по введенному номеру дня недели вывести его название, используя оператор множественного выбора. Нумерация дней недели начинается с 1 – понедельник, 2 — вторник и т. д.

Итак, задачка не сложная, из тз понятно, что в решении нам поможет оператор switch. Вот пример работы программы:

Задачу первым решил NaikoN, вот его исходный код:

#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
    ///буфера дней недели
    char buf[16],buf1[16],buf2[16],buf3[16],buf4[16],buf5[16],buf6[16],buf7[16];
    CharToOem("Понедельник",buf1);
	CharToOem("Вторник",buf2);
	CharToOem("Среда",buf3);
	CharToOem("Четверг",buf4);
	CharToOem("Пятница",buf5);
	CharToOem("Суббота",buf6);
	CharToOem("Воскресенье",buf7);
    cout<<"1. "<<buf1<<endl<<"2. "<<buf2<<endl<<"3. "<<buf3<<endl
    <<"4. "<<buf4<<endl<<"5. "<<buf5<<endl<<"6. "<<buf6<<endl
    <<"7. "<<buf7<<endl;
    CharToOem("Введите номер: ",buf);
    cout<<buf;
    int number;
    cin>>number;
    switch(number)
    {
        case 1:
        {
            cout<<buf1;
            break;
        }
        case 2:
        {
            cout<<buf2;
            break;
        }
        case 3:
        {
            cout<<buf3;
            break;
        }
        case 4:
        {
            cout<<buf4;
            break;
        }
        case 5:
        {
            cout<<buf5;
            break;
        }
        case 6:
        {
            cout<<buf6;
            break;
        }
        case 7:
        {
            cout<<buf7;
            break;
        }
        default:
        {
            CharToOem("Ошибка",buf);
            cout<<buf;
            return 0;
        }
    }
    return 0;
}

Смотрим результат работы программы:


1_cr

Следующие статьи помогут вам в решении данной задачи:
Автор: Marienko L.
Дата: 01.10.2012
Поделиться:

Комментарии

  1. Abai Shapagatin

    #include <iostream>
    #include<math.h>
    using namespace std;
    int main()
    {
    setlocale(0,»rus»);
    int number;
    cout<<«Введите нужный день недели:\n»;
    cin>>number;
    flag: switch (number){

    case 1: cout<<«Понедельник»;
    break;
    case 2: cout<<«Вторник»;
    break;
    case 3: cout<<«Среда»;
    break;
    case 4: cout<<«Четверг»;
    break;
    case 5: cout<<«Пятница»;
    break;
    case 6: cout<<«Суббота»;
    break;
    case 7: cout<<«Воскресенье»;
    break;
    default: cout<<«неправильно ввели значение недели. надо ввести число от 1 до 7: «; cin>>number;
    goto flag;
    break;
    }

    cout<<endl;

    return 0;
    }

  2. Сергей Цысь

    Задачу можно решить и без switch

    #include <iostream>
    #include <string>
    #include <vector>
    using namespace std;
    
    
    int main ()
    {
    	setlocale (LC_ALL,"rus");
    
    	 int choise; // переменная выбора пользователем дня недели
    	 vector <string> a (7)  ;
    	 a[0] = "Понедельник ";
    	 a[1] = "Вторник ";
    	 a[2] = "Среда ";
    	 a[3] = "Четверг ";  
    	 a[4] = "Пятница ";
    	 a[5] = "Суббота "; 	
    	 a[6] = "Воскресенье ";
    
    
    	for (int i = 0; i <a.size(); i++ ) //вывод на печать дней недели
    				cout << i + 1 <<". " <<  a[i] << "\n";
    			
    	
    	cout << "\nВыберите номер дня недели - "; // ввод пользователем
    	cin >> choise;
    	cout << endl;
    
    	if ((!cin) || (choise < 1) || (choise > 7)){ // проверка корректности введеных данных
    		cout << "Вы ввели некорректные данные \n\n";
    		exit(1); 
    	}
    
    	cout << a[choise - 1]; // вывод на печать результата
    
    	cout << endl << endl; 
    
    return 0;
    }
  3. Сергей Цысь

    #include <iostream>
    #include <string>
    #include <vector>
    using namespace std;
    
    
    int main ()
    {
    	setlocale (LC_ALL,"rus");
    
    	 int choise; // переменная выбора пользователем дня недели
    	 vector <string> a (7)  ;
    	 a[0] = "Понедельник ";
    	 a[1] = "Вторник ";
    	 a[2] = "Среда ";
    	 a[3] = "Четверг ";  
    	 a[4] = "Пятница ";
    	 a[5] = "Суббота "; 	
    	 a[6] = "Воскресенье ";
    
    
    	for (int i = 0; i <a.size(); i++ ) //вывод на печать дней недели
    				cout << i + 1 <<". " <<  a[i] << "\n";
    			
    	
    	cout << "\nВыберите номер дня недели - "; // ввод пользователем
    	cin >> choise;
    	cout << endl;
    
    
    
    switch (choise)
    	{
    		case 1:{
    			cout  <<  a[0] << "\n";
    			 break;
    			 }
    
    	 	case 2:{
    			cout  <<  a[1] << "\n";
    			 break;
    			 }
    			    	
    		case 3:{
    			cout  <<  a[2] << "\n";
    			 break;
    			 }
    
    		case 4:{
    			cout  <<  a[3] << "\n";
    			 break;
    			 }
    
    	 	case 5:{
    			cout  <<  a[4] << "\n";
    			 break;
    			 }
    			    	
    		case 6:{
    			cout  <<  a[5] << "\n";
    			 break;
    			 }
    		
    		case 7:{
    			cout  <<  a[6] << "\n";
    			 break;
    			 }
    
    		default:{
    			cout << "Вы ввели некорректный знак \n";
    			
    				}
    }
    
    	cout << endl << endl; 
    
    return 0;
    }
  4. Clariette

    Зачем лишние переменные? :)

    #include <iostream>
    #include <locale.h>
    #include <cmath>
    #include <stdlib.h>

    using namespace std;
    int main(){
    setlocale(LC_ALL,»RUS»);

    int n;

    cout << «1. Понедельник\n2. Вторник\n3. Среда\n4. Четверг\n5. Пятница\n6. Суббота\n7. Воскресенье\n»;
    cout << «Введите номер: «;
    cin >> n;

    switch (n){
    case 1:{
    cout << «Понедельник»;
    break;
    }
    case 2:{
    cout << «Вторник»;
    break;
    }
    case 3:{
    cout << «Среда»;
    break;
    }case 4:{
    cout << «Четверг»;
    break;
    }case 5:{
    cout << «Пятница»;
    break;
    }case 6:{
    cout << «Суббота»;
    break;
    }case 7:{
    cout << «Воскресенье»;
    break;
    }
    }

    return 0;
    }

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.