КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Структуры и функции
Переменные типа структура могут быть параметрами функций. Функции могут возвращать в качестве результата величину структурного типа. Допустимо присваивание структурных переменных. // Пример 6.1.2 // Пример программы с простой структурой языка С и функциями #include <iostream> using namespace std; // объявление структуры для карандаша // члены-данные, свойства, поля (data members, properties, fields) // длина-см.; диаметр-мм.; резинка; цвет; цена; подпись typedef unsigned short int USHORT; enum MyColor {Red, Yellow, Green, Blue, Black, Simple}; struct Pencil { USHORT itsLength; USHORT itsRadius; bool itsLastic; MyColor itsColor; float itsPrice; char itsCaption[31]; }; // объявление функций void ViewPencil(Pencil); // просмотр сведений карандаша // определение сведений карандаша Pencil SetPencil(USHORT, USHORT, bool, MyColor,float, char []); // главная функция int main() { setlocale(LC_ALL, "Russian"); // для вывода на экран русского текста Pencil p1,p2,p3; // объявление структурных переменных(объектов) // просмотр сведений - мусор ViewPencil(p1); ViewPencil(p2); ViewPencil(p3); cin.get(); // определение данных p1=SetPencil(100,8,false,MyColor::Red,0.9,"KOHINOOR"); p2=SetPencil(40,10,true,MyColor::Green,0.25,"FRANCE"); p3=SetPencil(80,6,false,MyColor::Yellow,0.8,"ABCD"); // просмотр сведений ViewPencil(p1); ViewPencil(p2); ViewPencil(p3); cin.get(); // вычисление средней стоимости double avg; avg=(p1.itsPrice + p2.itsPrice + p3.itsPrice)/3.; cout << "Средняя цена (AVG) =" << avg << endl; cin.get(); // вычисление количества с резинкой int k=0; if (p1.itsLastic == true) k++; if (p2.itsLastic) k++; if (p3.itsLastic) k++; cout << "k=" << k << endl; cin.get(); // присваивание структур p1=p2;
// просмотр сведений после присваивания ViewPencil(p1); ViewPencil(p2); cin.get(); return 0; }
// реализация функций // просмотр сведений карандаша void ViewPencil(Pencil p) { cout << "Длина: " << p.itsLength << endl << "Радиус: " << p.itsRadius << endl << "Резинка: " << p.itsLastic << endl << "Цвет: " << p.itsColor << endl << "Цена: " << p.itsPrice << endl << "Надпись: " << p.itsCaption << endl << endl << endl; } // определение сведений карандаша Pencil SetPencil(USHORT l, USHORT r, bool la, MyColor c,float pr, char ca[]) { Pencil p; p.itsLength=l; p.itsRadius=r; p.itsLastic=la; p.itsColor=c; p.itsPrice=pr; //p.itsCaption=ca; // Ошибка!!! strcpy(p.itsCaption,ca); return p; }
// Пример 6.1.3 // Пример программы с простой структурой языка С и функциями # include <iostream> using namespace std; // структура с данными о сотруднике struct Sotrudnic { long int number; // номер char name[11]; // фамилия char gender; // пол int age; // возраст float weight; // вес bool smoke; // курит? float salary; // зарплата }; // объявление функций void ToScreen(Sotrudnic s); // вывод данных на экран Sotrudnic FromKey(); // ввод данных с клавиатуры // определение данных Sotrudnic SetSotr(long int, char [], char, int, float, bool, float); // главная функция int main() { setlocale(LC_ALL, "Russian"); // для вывода на экран русского текста Sotrudnic s1,s2; // s1,s2-структурные переменные (объекты) // размер структурных переменных cout << "Размер = " << sizeof(Sotrudnic) << endl; // имя типа cout << "Размер = " << sizeof(s1) << endl; // имя объекта // вывод данных на экран - мусор ToScreen(s1); ToScreen(s2);
// определение данных s1=SetSotr(1000,"Ivanov",'m',25,70.5,true,500.5); s2=SetSotr(2000,"Petrova",'w',22,60.5,false,400.5); // вывод данных на экран ToScreen(s1); ToScreen(s2); // ввод данных с клавиатуры s1=FromKey(); s2=FromKey(); // вывод данных на экран ToScreen(s1); ToScreen(s2); // вычисление среднего возраста float avg=(s1.age + s2.age)/2.; cout << "Средний возрамт (AVG) =" << avg << endl << endl;; cin.get(); return 0; } // реализация функций // вывод данных на экран void ToScreen(Sotrudnic s) { cout<<"Номер: "<<s.number<<'\n'<<"Фамилия: "<<s.name<<'\n' cout<<"Возраст: " <<s.age <<'\n'<<"Вес: " cout<<"Зарплата: "<<s.salary<<"\n\n\n"<<endl; cin.get(); } // ввод данных с клавиатуры Sotrudnic FromKey() { Sotrudnic s; cout<<"Номер: "<<endl; cin>>s.number; cout<<"Фамилия: "<<endl; cin>>s.name; cout<<"Пол: "<<endl; cin>>s.gender; cout<<"Возраст: "<<endl; cin>>s.age; cout<<"Вес: "<<endl; cin>>s.weight; cout<<"Курение?(1-да,0-нет): "<<endl; cin>>s.smoke; cout<<"Зарплата: "<<endl; cin>>s.salary; return s; } // определение данных Sotrudnic SetSotr(long int tn, char fam [], char p, int a, float w, bool k, float st) { Sotrudnic s; s.number=tn; strcpy(s.name,fam); s.gender=p; s.age=a; s.weight=w; s.smoke=k; s.salary=st; return s; }
Дата добавления: 2014-01-03; Просмотров: 313; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |