Показать полную графическую версию : Управление системой через C++
XEN_STRANGER
24-03-2009, 11:46
Всем доброе время суток...
У меня появилась идея сделать прогу, которая например сможет извлеч/вставить диск в приводе, выключить, перезагрузить комп и тому подобное. Но и при возможности переходить в фоновый режим, дабы быть незаметной и всё это на c++. Нет я не ставлю себе цель сделать вирус, порсто небольшой прикол для учительницы по информатике. Но так же и добавить некоторые функции в свой проэкт...
Кто чем может, помогите, заранее спасибо.
Но так же и добавить некоторые функции в свой проэкт... »Какие?порсто небольшой прикол для учительницы по информатике »Вот этого лучше делать не нужно. Дурное дело, не хитрое, лучше напиши что-то, что ей будет приятно от того, что она тебя чему-то научила.
порсто небольшой прикол для учительницы по информатике. »
Откуда такое огромное желание нагадить кому-то? При этом используя знания и ум других.
Нравится, когда кто-то вам гадит, да?
Действительно
Дурное дело, не хитрое, лучше напиши что-то, что ей будет приятно от того, что она тебя чему-то научила. »
Ребята, у вас вся жизнь впереди, научитесь делать добро, добром вам и ответят. Не гадьте все вокруг, рано или поздно сами в это же дерьмо вляпаетесь.
Не гадьте все вокруг, рано или поздно сами в это же дерьмо вляпаетесь. »Во-во-во, притом учителю, зарплата которой чисто символическая. Если она тебя не научит, то кто тогда?
Был у нас случай во времена учёбы, классическая ситуация, девчонка после института, лет 22-23, классный преподаватель информатики. И был студент, наглый, циничный и состоятельный. И однажды он накурился и нагрубил ей как своей ровеснице, выругав матами. Ему ничего не было. А препод-девчонка, расплакалась на глазах и ушла с работы. Поэтому не все шутки можно понять. К тому же если учитель поощряет новшества и развитие творческих идей, это одно, а вот просто так, чтобы допекти, это низко. Codru прав, и я удалил свои советы выше. XEN_STRANGER, Хочешь гадить? Тужься.
crashtuak
24-03-2009, 17:59
Drongo, Codru, вы правы.XEN_STRANGER, сейчас я тебе выложу пример проги соответствующей твоим просьбам, только не знаю, понравится ли он тебе и твоему ПК :) :) :) . И за 16 лет своей жизни у меня только раз возникло подобное желание "по приколу" сделать что то человеку, и запомнил я это на всю жизнь...
crashtuak, не надо. Злом, зло не уничтожить.
XEN_STRANGER
24-03-2009, 21:03
crashtuak, Drongo, Codru, Ребят тихо, тихо, вы что подумали? Я не хочю делать ничего плохово, и тем более теперь вообще уже расхотелось.
Но так же и добавить некоторые функции в свой проэкт... »
Какие? »
Для моего проэкта мне нужны функции закрытия самого приложения, выключение / перезагрузка компьютера, прошу вас покажите примеры, чтоб я понял сам принцып, а то я в c++ недавно, и за пределы самого приложения пока не выходил.
Заранее большое спасибо, крайне извиняюсь за слова, повлекшие вышеизложенные дискуссии...
Delirium
25-03-2009, 00:57
XEN_STRANGER, выключение, перезагрузка компа, открытие дисковода - на все есть стандартные утилиты Windows. Например, shutdown - выключение/перезагрузка. Для реализации необходимо просто запускать из своей программы другую программу.
Пример выключения (http://forum.shelek.ru/index.php/topic,4192.0.html) компьютера. И вообще, учитесь пользоваться поиском в гугле (http://www.google.ru/search?hl=ru&newwindow=1&q=C%2B%2B+%D0%B2%D1%8B%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5+%D0%BA%D0%BE%D0%BC%D0%BF%D1%8 C%D1%8E%D1%82%D0%B5%D1%80%D0%B0&lr=&aq=f&oq=) , там есть ответы практически на все вопросы по данной тематике.
crashtuak
25-03-2009, 08:32
XEN_STRANGER, вот тебе факи:
http://www.cyberguru.ru/programming/cpp-builder/borland-cpp-faq.html - Borland C++ Builder FAQ
http://www.cyberguru.ru/programming/cpp-builder/borland-cpp-vcl-faq.html - Borland C++ Builder VCL FAQ
http://www.cyberguru.ru/programming/visual-cpp/visual-cpp-faq.html - Visual C++ FAQ
Там есть ответы на твои вопросы.
Для закрытия приложения см в консоли taskkill /?. Потом в своей программе просто запускаешь taskkill с нужными параметрами.
(только не надо делать то, что ты запланировал раньше :) :) )
Delirium, crashtuak для всего этого есть API, а чуть что - "запускать из своей программы другую программу" - это не "управление системой через C++"!
crashtuak
25-03-2009, 11:33
Busla, про API я знаю (в ссылках на факи там и есть описание API), просто я сейчас хочу из своей проги запустить другую, а ничего не выходит :( , ну и я зациклился на запуске программ :).
ПЫСЫ: Уже вышло :), спс Busla.
XEN_STRANGER
25-03-2009, 11:58
Кто-нибудь может выложить пример кода, который выключает комп?
пример кода, который выключает комп »
ExitWindowsEx(EWX_SHUTDOWN, 0);
XEN_STRANGER
25-03-2009, 15:14
Drongo, ExitWindowsEx(EWX_SHUTDOWN, 0); »
Так, это функция значит, а никаких инклудов не надо?
Рас уж это не так сложно выложи пожалуйсто ещё перезагрузку и если можно закрытие самой проги
XEN_STRANGER, Выложишь потом программу, что написал? ;)
Так, это функция значит, а никаких инклудов не надо? »Нет, никаких, в обработчик ставишь.
выложи пожалуйсто ещё перезагрузку »ExitWindowsEx(EWX_REBOOT, 0);
если можно закрытие самой проги »...
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Close();
}
...
crashtuak
25-03-2009, 16:55
XEN_STRANGER, Выложишь потом программу, что написал? »
Только клади в виде исходников, а то скопиленый вариант ещё компа поломает :)
XEN_STRANGER
25-03-2009, 22:11
crashtuak, Вот, доволен?
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <cmath>
using namespace std;
typedef struct _CONSOLE_FONT_INFOEX
{
ULONG cbSize;
DWORD nFont;
COORD dwFontSize;
UINT FontFamily;
UINT FontWeight;
WCHAR FaceName[LF_FACESIZE];
}
CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX;
typedef BOOL (WINAPI *SETCONSOLEFONT)(HANDLE, DWORD); // прототип недокументированый функции для XP
typedef BOOL (WINAPI *SETCURRENTCONSOLEFONTEX)(HANDLE,BOOL, PCONSOLE_FONT_INFOEX); // для vista
SETCURRENTCONSOLEFONTEX SetCurrentConsoleFontEx ;
SETCONSOLEFONT SetConsoleFont;
unsigned int GetFib (unsigned int position);
int physic ();
int gorenie ();
int nagrev ();
int math ();
int x2yravn ();
double GetX2yravn (double a, double b, double c, double* x1, double* x2);
int fibmain ();
int backer ();
// -------------------------Главное меню---------------------------------------------------------------------
int main ()
{
OSVERSIONINFOEX osvi;
CONSOLE_FONT_INFOEX cfon;
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
GetVersionEx((OSVERSIONINFO *) &osvi) ; // получение версии винды
HMODULE hmod = GetModuleHandleA("KERNEL32.DLL"); // функции
if (osvi.dwMajorVersion<6)
{
SetConsoleFont =(SETCONSOLEFONT) GetProcAddress(hmod, "SetConsoleFont"); // берем адрес функции
if (!SetConsoleFont) {cout<<"error\n" ; exit(1);} // если ошибка
SetConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE),10); // устанавливаем 10 шрифт..
//эксперементально установил что в обычной XP это Lucida Console 14.
}
else
{
SetCurrentConsoleFontEx =(SETCURRENTCONSOLEFONTEX) GetProcAddress(hmod, "SetCurrentConsoleFontEx"); // берем адрес функции
if (!SetCurrentConsoleFontEx) {cout<<"error\n" ; exit(1);} // если ошибка
ZeroMemory(&cfon, sizeof(CONSOLE_FONT_INFOEX));
cfon.cbSize=sizeof(CONSOLE_FONT_INFOEX);
//cfon.nFont=10;
cfon.FontFamily=54; // Lucida Console
if (!SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), false, &cfon)) cout<<"error";
}
SetConsoleOutputCP(1251) ; // устанавливаем кодировку вывода
unsigned short int choise;
cout << "-----START_Makros_2.0-------------------------------------------" << endl << endl;
cout << "Выберите пункт, введя число\n\n";
cout << "1-Физика 2-Математика";
cout << endl;
cout << "\nПункт - ";
cin >> choise;
cout << endl;
if (choise == 1)
{
physic ();
}
if (choise == 2)
{
math ();
}
if ((choise != 1) && (choise != 2))
{
cout << "<Ошибка! Введите коректное число!>" << endl << endl << endl;
return main ();
}
return 0;
}
// -------------END-------------------------------------------------------------------------------------
//---------------Раздел физика--------------------------------------------------------------------------
int physic ()
{
unsigned short int choiseP;
cout << "-----NEXT-------------------------------------------------------" << endl;
cout << "Раздел физики" << endl;
cout << "Выбор формулы:\n\n";
cout << "1-Нагревание 2-Горение";
cout << endl;
cout << "\nФормула - ";
cin >> choiseP;
cout << endl << endl;
if (choiseP == 1)
{
nagrev ();
}
if (choiseP == 2)
{
gorenie ();
}
if ((choiseP != 1) && (choiseP != 2))
{
cout << endl << "<Ошибка! Введите коректное число!>";
return physic ();
}
return 0;
}
//--------------------------------------------------------------------------------------------------------------
//----------------------Функция нагревания----------------------------------------------------------------------
int nagrev ()
{
const int N_zolot=130, N_rtyt=140, N_svinecc=140, N_olovo=230, N_serebro=250, N_med=400, N_ccink=400, N_latyn=400,
N_zhelezo=460, N_stal=500, N_chugyn=540, N_graphit=750, N_labsteklo=840, N_kirpich=880, N_alumini=920,
N_maslopodsol=1700, N_led=2100, N_kerosin=2100, N_efir=2350, N_derevodyb=2400, N_spirt=2500, N_voda=4200;
unsigned short int choise1;
unsigned short int back;
cout << "-----NEXT-------------------------------------------------------" << endl;
cout << "Вычисление энергии нагревания вещества" << endl << endl;
cout << "Выбор вещества:\n\n";
cout << "1-Золото 2-Ртуть 3-Свинец 4-Олово 5-Серебро";
cout << endl << "6-Медь 7-Цинк 8-Латунь 9-Железо 10-Сталь";
cout << endl << "11-Чюгун 12-Графит 13-Лаб стекло 14-Кирпич 15-Алюминий";
cout << endl << "16-Масло 17-Лёд 18-Керосин 19-Эфир 20-Дерево (Дуб)";
cout << endl << "21-Спирт 22-Вода";
cout << endl << "\nВещество - ";
cin >> choise1;
switch (choise1)
{
case 1:
{
cout << "Хорошо, введите массу золота";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_zolot;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг золота выделилось " << Q << " Дж энергии" << endl;
cout << "================================================================";
}
break;
case 2:
{
cout << "Хорошо, введите массу ртути";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_rtyt;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг ртути выделилось " << Q << " Дж энергии" << endl;
cout << "================================================================";
}
break;
case 3:
{
cout << "Хорошо, введите массу свинца";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_svinecc;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг свинца выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 4:
{
cout << "Хорошо, введите массу олова";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_olovo;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг олова выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 5:
{
cout << "Хорошо, введите массу серебра";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_serebro;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг серебра выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 6:
{
cout << "Хорошо, введите массу меди";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_med;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг меди выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 7:
{
cout << "Хорошо, введите массу цинка";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_ccink;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг цинка выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 8:
{
cout << "Хорошо, введите массу латуни";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_latyn;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг латуни выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 9:
{
cout << "Хорошо, введите массу железа";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_zhelezo;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг железа выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 10:
{
cout << "Хорошо, введите массу стали";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_stal;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг стали выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 11:
{
cout << "Хорошо, введите массу чугуна";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_chugyn;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг чугуна выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 12:
{
cout << "Хорошо, введите массу графита";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_graphit;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг графита выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 13:
{
cout << "Хорошо, введите массу лабораторного стекла";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_labsteklo;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг лаб стекла выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 14:
{
cout << "Хорошо, введите массу кирпича";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_kirpich;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг кирпича выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 15:
{
cout << "Хорошо, введите массу алюминия";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_alumini;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг алюминия выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 16:
{
cout << "Хорошо, введите массу масла подсолнечного";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_maslopodsol;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг масла выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 17:
{
cout << "Хорошо, введите массу льда";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_led;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг льда выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 18:
{
cout << "Хорошо, введите массу керосина";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_kerosin;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг керосина выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 19:
{
cout << "Хорошо, введите массу эфира";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_efir;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг эфира выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 20:
{
cout << "Хорошо, введите массу древесины (Дуб)";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_derevodyb;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг древесины выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 21:
{
cout << "Хорошо, введите массу спирта";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_spirt;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг спирта выделилось" << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 22:
{
cout << "Хорошо, введите массу воды";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
long Q = mass * N_voda;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При нагревании " << mass << " кг воды выделилось " << Q << " Дж энергии"<< endl;
cout << "================================================================";
}
break;
default:
{
cout << endl << "<Ошибка! Введите коректное число!>" << endl << endl;
return nagrev ();
}
}
backer ();
}
//----------------END-------------------------------------------------------------------------
//----------------Функция горения-------------------------------------------------------------
int gorenie ()
{
const double S_poroh=0.38, S_torph=1.4, S_kamugol=2.7,
S_spirt=2.7, S_drovugol=3.4, S_gas=4.4,
S_neft=4.4, S_benzin=4.6, S_kerosin=4.6;
const unsigned int S_drova=1, S_antracit=3, S_vodorod=12;
unsigned short int choise2;
unsigned short int back;
cout << "-----NEXT-------------------------------------------------------" << endl;
cout << "Вычисление энергии от сгоревшего топлива" << endl << endl;
cout << "Выбор топлива:\n\n";
cout << "1-Порох 2-Дрова 3-Торф 4-Каменный уголь 5-Спирт";
cout << endl << "6-Антрацит 7-Др уголь 8-Газ 9-Нефть 10-Бензин";
cout << endl << "11-Керосин 12-Водород";
cout << endl;
cout << "\nТопливо - ";
cin >> choise2;
switch (choise2)
{
case 1:
{
cout << "Хорошо, введите массу пороха";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
double Q = mass * S_poroh;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При сгорании " << mass << " кг пороха выделилось " << Q << " * 10000000 Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 2:
{
cout << "Хорошо, введите массу дров";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
unsigned int Q = mass * S_drova;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При сгорании " << mass << " кг дров выделилось " << Q << " * 10000000 Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 3:
{
cout << "Хорошо, введите массу торфа";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
double Q = mass * S_torph;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При сгорании " << mass << " кг торфа выделилось " << Q << " * 10000000 Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 4:
{
cout << "Хорошо, введите массу каменного угля";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
double Q = mass * S_kamugol;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При сгорании " << mass << " кг угля выделилось " << Q << " * 10000000 Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 5:
{
cout << "Хорошо, введите массу спирта";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
double Q = mass * S_spirt;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При сгорании " << mass << " кг спирта " << Q << " * 10000000 Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 6:
{
cout << "Хорошо, введите массу антрацита";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
unsigned int Q = mass * S_antracit;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При сгорании " << mass << " кг антрацита выделилось " << Q << " * 10000000 Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 7:
{
cout << "Хорошо, введите массу древесного угля";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
double Q = mass * S_drovugol;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При сгорании " << mass << " кг др угля выделилось " << Q << " * 10000000 Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 8:
{
cout << "Хорошо, введите массу газа";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
double Q = mass * S_gas;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При сгорании " << mass << " кг газа выделилось " << Q << " * 10000000 Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 9:
{
cout << "Хорошо, введите массу нефти";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
double Q = mass * S_neft;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При сгорании " << mass << " кг нефти выделилось " << Q << " * 10000000 Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 10:
{
cout << "Хорошо, введите массу бензина";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
double Q = mass * S_benzin;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При сгорании " << mass << " кг бензина выделилось " << Q << " * 10000000 Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 11:
{
cout << "Хорошо, введите массу керосина";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
double Q = mass * S_kerosin;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При сгорании " << mass << " кг керосина выделилось " << Q << " * 10000000 Дж энергии"<< endl;
cout << "================================================================";
}
break;
case 12:
{
cout << "Хорошо, введите массу водорода";
int mass;
cout << endl;
cout << "Масса - ";
cin >> mass;
unsigned int Q = mass * S_vodorod;
cout << endl << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "При сгорании " << mass << " кг водорода выделилось " << Q << " * 10000000 Дж энергии"<< endl;
cout << "================================================================";
}
break;
default:
{
cout << endl << "<Ошибка! Введите коректное число!>" << endl << endl;
return gorenie ();
}
}
backer ();
}
//----------END-----------------------------------------------------------------------------------
//---------------Раздел математика----------------------------------------------------------------
int math ()
{
unsigned short int choiseM;
cout << "-----NEXT-------------------------------------------------------" << endl;
cout << "Раздел математики" << endl;
cout << "Выбор пункта:\n\n";
cout << "1-Квадратные уравнения 2-Ряд Фибоначи";
cout << endl;
cout << "\nПункт - ";
cin >> choiseM;
cout << endl << endl;
if (choiseM == 1)
{
x2yravn ();
}
if (choiseM == 2)
{
fibmain ();
}
if ((choiseM != 1) && (choiseM != 2))
{
cout << endl << "<Ошибка! Введите коректное число!>" << endl << endl;
return math ();
}
return 0;
}
//-----------END--------------------------------------------------------------------------------------------
//----------Квадратные уравнения-----------------------------------------------------------------------
int x2yravn ()
{
double a, b, c, x1, x2;
double error;
unsigned short int back;
cout << "-----NEXT-------------------------------------------------------" << endl;
cout << "Ввод уравнения: " << endl;
cout << endl << "(a=) ";
cin >> a;
cout << "(b=) ";
cin >> b;
cout << "(c=) ";
cin >> c;
error = GetX2yravn (a, b, c, &x1, &x2);
if (!error)
{
backer ();
}
else
{
cout << endl << "Ошибка! а=0, уравнение не квадратное" << endl;
}
char response;
cin >> response;
return 0;
}
// Функция нахождения корней
double GetX2yravn (double a, double b, double c, double *px1, double *px2)
{
double value = 0;
if (a == 0)
value = 1;
else
{
double D;
D = b*b - 4*a*c;
cout << endl << "Дискриминант равен " << D << endl;
if (D < 0)
{
cout << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "Корней не найдено, дискриминант меньше ноля" << endl;
cout << "================================================================" << endl;
}
if (D == 0)
{
*px1 = -b / (2*a);
cout << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "Найден один корень, x = " << *px1 << endl;
cout << "================================================================" << endl;
}
if (D > 0)
{
*px1 = (-b + sqrt(D)) / (2*a);
*px2 = (-b - sqrt(D)) / (2*a);
cout << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << "Найдено два корня, x1 = " << *px1 << ", x2 = " << *px2 << endl;
cout << "================================================================" << endl;
}
value = 0;
}
return value;
}
//-------END---------------------------------------------------------------------------
//---------Ряд Фибоначи---------------------------------------------------------------------------
int fibmain ()
{
unsigned int answer, position;
cout << "-----NEXT-------------------------------------------------------" << endl;
cout << "Ряд Фибоначи" << endl;
cout << "Выбор позиции числа в ряду? ";
cout << "\nПозиция - ";
cin >> position;
cout << endl;
answer = GetFib(position);
cout << "=====РЕЗУЛЬТАТ==================================================";
cout << endl << answer << " является " << position << " числом ряда Фибоначи! " << endl;
cout << "================================================================";
backer ();
return 0;
}
// Функция определения числа
unsigned int GetFib (unsigned int n)
{
unsigned int minusTwo=1, minusOne=1, answer=2;
if (n < 3)
return 1;
for (n-=3; n!=0; n--)
{
minusTwo = minusOne;
minusOne = answer;
answer = minusOne + minusTwo;
}
return 0;
}
//----END--------------------------------------------------------------------------------------------
//----Функция возврата------------------------------------------------------------------------------
int backer ()
{
unsigned short int back;
cout << endl << endl<< "Вернуться в главное меню? (Да - 1, Нет - 2)";
cin >> back;
cout << endl << endl;
switch (back)
{
case 1:
{
cout << "-----END---------------------------------------------------------";
cout << endl << endl << endl << endl << endl << endl << endl;
return main();
}
break;
case 2:
{
cout << endl << "Можете закрыть программу.";
char response;
cin >> response;
return 0;
}
break;
default:
{
cout << endl << "<Ошибка! Введите коректное число!>" << endl << endl;
return backer ();
}
}
}
//-------END-----------------------------------------------------------------------------------------
crashtuak
26-03-2009, 07:20
Интересно, а сколько при возгорании, выделит энергии мой компьютер:)?. И к стати,XEN_STRANGER, к чему вам было открытие лотка привода, выключение, перезагрузка пк?
PS: если данный код написали вы - хорошо, не вы - тоже хорошо.
PPS: если вы занялись целью написать математическую, физическую программу, можно объединить усилия. Я люблю и знаю данные предметы.
XEN_STRANGER
26-03-2009, 08:19
И к стати,XEN_STRANGER, к чему вам было открытие лотка привода, »
Это как доп функции, и вообще думаю пригодится. Да, напиши ещё извлечение / вставление лотка.
если данный код написали вы - хорошо, не вы - тоже хорошо. »
crashtuak, Весь год я написал сам, за исключением там в начяле включение поддержки кирилицы.
если вы занялись целью написать математическую, физическую программу, можно объединить усилия. Я люблю и знаю данные предметы. »
Да? Большое спасибо, а как именно ты можешь помочь? Можешь подкинуть несколько мини прог для вычисление каких-нибудь формул (часто используемых в практике), а я их добавлю как новые функции. :clapping:
Два непонятных момента, выделил красным цветом. Это у вас попытка возврата в функцию main()?
...
if ((choise != 1) && (choise != 2))
{
cout << "<Ошибка! Введите коректное число!>" << endl << endl << endl;
return main ();
}
return 0;
}
...»
...
cout << "-----END---------------------------------------------------------";
cout << endl << endl << endl << endl << endl << endl << endl;
return main();
...»
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.