C++ кодеры

4.94K
.
вот кстати кому лень читать книжки здесть вполне понятно описан синтаксис С++ http://code-live.ru/tag/cpp-manual/
.
можно пример использования динамических переменных? а то я изучил по так и не понял где их применять
.
# Fenixrus (09.08.2013 / 09:28)
можно пример использования динамических переменных? а то я изучил по так и не понял где их применять
Справка http://ru.wikipedia.org/wiki/V ... 2B%2B)
Если ты об этом
.
# Zarik (09.08.2013 / 10:23)
Справка http://ru.wikipedia.org/wiki/V ... 2B%2B)
Если ты об этом
http://code-live.ru/post/cpp-pointers/
.
Fenixrus, В общем это используется для динамических массивов в C

int *mas = new int[5];

Создаем массив из 5 елементов типа int

int *mas = new int[6];

Расширяем его к 6ти елементов типа int

Так как в простом массиве нельзя изменить его размер который заданный при его объявлении константой
.
# Zarik (09.08.2013 / 13:53)
Fenixrus, В общем это используется для динамических массивов в C

int *mas = new int[5];

Создаем массив из 5 елементов типа int

int *mas = new int[6];

Расширяем его к 6т
а для переменных такое зачем?
.
Fenixrus, сам никогда не использую, но думаю для того, чтобы не засорять память при большом коде и вовремя подчистить память от ненужных переменных
.
Моя первая курсовая с программирования, делал год назад
#include<iostream>
#include<conio.h>
#include<windows.h>
#include<iomanip>
#include<time.h>
#include<iomanip>
#include<stdlib.h>
using namespace std;
const int n=100;
bool z;
char a[n], c, a2[n];
int j, timer=1000;
time_t t;
char file[10];
FILE *f, *fc, *fb;
struct tim {
struct tm st;
int klk,pom;
float sec, prc;
}dani;
struct mm{
char m[n];
};
mm r[10];
enum ConsoleColor
{
        Black         = 0,
        Blue          = 1,
        Green         = 2,
        Cyan          = 3,
        Red           = 4,
        Magenta       = 5,
        Brown         = 6,
        LightGray     = 7,
        DarkGray      = 8,
        LightBlue     = 9,
        LightGreen    = 10,
        LightCyan     = 11,
        LightRed      = 12,
        LightMagenta  = 13,
        Yellow        = 14,
        White         = 15
};
void SetColor(ConsoleColor text, ConsoleColor background);
void menu();
void trenager();
void result();
void pro();
void help();
void stat();
void add();
void pass();
void info();
void clean_base();
void main()
{
setlocale(0, "");
SetColor(Black, White);
   menu();
   getch();

}
void menu(){
system("mode con cols=80 lines=25");
system("cls");
int i, k=6;
z=0;
strcpy(r[0].m, "РОЗПОЧАТИ");
strcpy(r[1].m, "РЕЗУЛЬТАТИ");
strcpy(r[4].m, "ПРО ПРОГРАМУ");
strcpy(r[3].m, "ДОПОМОГА");
strcpy(r[5].m, "ВИХiД");
strcpy(r[2].m, "КЕРУВАННЯ");
strcpy(r[6].m, " ");
while(1){
cout<<"\t\tЗробiть ваш вибiр:\n";
for(i=0; i<=k;i++){
if(i==j) SetColor(White, Black);
if(i==j+1) SetColor(Black, White);
cout<<"\t"<<r[i].m<<endl;
}
info();
c = static_cast<int>(getch());
if(c==72 && j>0)  j--;
else if(c==80 && j<k-1) j++;
else if(c==27) exit(0);
else if(c==13) {
switch(j){
case 0:{trenager();}
break;
case 1:{result();}
break;
case 4:{pro();}
break;
case 3:{help();}
break;
case 5:{exit(0);}
break;
case 2:{pass();}
break;
}
}
system("cls");
}
}
void result(){
int k=0;
tim a;
system("cls");
system("mode con cols=100 lines=20");

if(fopen("ex.dat", "rb")==NULL) cout<<"Файлу з результатами нема!";
else {
f = fopen("ex.dat", "rb");
while(!feof(f)){
fread(&a, sizeof(dani), 1, f);
k++;
}
k--;
fclose(f);
if(!k) {cout<<"Файл з результатами пустий!";
Sleep(timer); menu();
}
else{
f = fopen("ex.dat", "rb");
cout<<setw(21)<<"Дата/час"<<"|"<<"Всього символiв"<<"|"<<"Час введення, сек."<<"|"<<"Помилок"<<"|"<<"Темп, уд/хв"<<"|"<<"Майстернiсть, сим/хв"<<"|"<<endl;
for(int i=0;i<k;i++){
fread(&a, sizeof(dani), 1, f);
cout<<setw(5)<<a.st.tm_hour<<":"<<a.st.tm_min<<":"<<a.st.tm_sec<<" "<<a.st.tm_mday<<"/"<<a.st.tm_mon+1<<"/"<<a.st.tm_year+1900<<"|"<<setw(15)<<a.klk<<"|"<<setw(18)<<a.sec<<"|"<<setw(7)<<a.pom<<"|"<<setw(11)<<a.klk/a.sec*60<<"|"<<setw(20)<<(a.klk-a.pom)/a.sec*60<<"|"<<endl;

}
}
fclose(f);
cout<<endl;
SetColor(White, Black);cout<<"Enter"; SetColor(Black, White);
cout<<" - Очистити \t";
SetColor(White, Black);cout<<"Esc"; SetColor(Black, White);
cout<<" - В меню";
strcpy(file,"ex.dat");
c=static_cast<int>(getch());
switch(c){
case 13: clean_base();
break;
case 27: menu();
break;
default:{system("cls");}
}
}

}
void pro(){
system("cls");
cout<<"Пpoграму створив Строгуш назарiй\nГалицький коледж 2012 рiк\n Версiя 1.0\n";
cout<<endl;
SetColor(White, Black);cout<<"Будь-яка клавiша"; SetColor(Black, White);
cout<<" - В меню";
getch();
menu();

}
void help(){
system("cls");
system("mode con cols=85 lines=26");
cout<<"Програма складається з шести роздiлiв:\n";
cout<<endl;
cout<<"РОЗПОЧАТИ    - вiдкриває саме тестування вашої швидкостi введення з клавiатури\n";
cout<<endl;
cout<<"РЕЗУЛЬТАТИ   - дає змогу переглянути данi про попереднi введення поданого тексту\n";
cout<<endl;
cout<<"КЕРУВАННЯ    - перехiд до панелi керування, де вiдбувається робота з базою\n";
cout<<endl;
cout<<"ДОПОМОГА     - власне цей роздiл\n";
cout<<endl;
cout<<"ПРО ПРОГРАМУ - автор програми, навчальний заклад, рiк, версiя програми\n";
cout<<endl;
cout<<"ВИХiД        - вихiд iз програми\n\n";
cout<<endl;
cout<<"Перехiд по програмi та меню вiдбувається за допомогою клавiш навiгацiї\n";
cout<<endl;
SetColor(White, Black);cout<<"Будь-яка клавiша"; SetColor(Black, White);
cout<<" - В меню";
getch();
menu();
}
void trenager(){
system("cls");
system("mode con cols=100 lines=20");
int pos1=0, pos2=0, i, j=0, pom=0, kilk=0;
const int k=3;
char rech[100];

if(fopen("baza.dat","r+b")==NULL) {cout<<"Файл з базою слiв вiдсутнiй, \nЗаповнити базу слiв?";
cout<<endl;
SetColor(White, Black);cout<<"Enter"; SetColor(Black, White);
cout<<" - Додати слова\t";
SetColor(White, Black);cout<<"Esc"; SetColor(Black, White);
cout<<" - В меню";
c=static_cast<int>(getch());
switch(c){
case 13: pass();
break;
case 27: menu();
break;
}
}


else {fc=fopen("baza.dat","r+b");
srand(time(NULL));


fb = fopen("baza.dat", "r+b");
while(!feof(fb)){
fread(&a2, sizeof(a2), 1, fb);
kilk++;
}
kilk--;
fclose(fb);
if(!kilk) {cout<<endl;
cout<<"Слiв немає в базi...";
SetColor(White, Black);cout<<"Enter"; SetColor(Black, White);
cout<<" - Додати слова\t";
SetColor(White, Black);cout<<"Esc"; SetColor(Black, White);
cout<<" - В меню";
c=static_cast<int>(getch());
switch(c){
case 13: pass();
break;
case 27: menu();
break;
}
}
else{




float a1;
char aa[100];
rech[0]='\0';

int r=10;
for(int j=0;j<r;j++){
strcat(rech, " ");
int i=0, rkilk=rand()%kilk;
while(i<rkilk){
fread(&aa,sizeof(aa),1,fc);
i++;
}
fseek ( fc , 0 , SEEK_SET );
strcat(rech, aa);
}
fclose(fc);



a1 = GetTickCount();
for(;pos2!=strlen(rech);){
cout<<"Речення для введення:\n";
for(i=0; i<strlen(rech);i++){
if(i==pos1) SetColor(Yellow, DarkGray);
if(i==pos2) SetColor(Cyan, LightGray);
if(i==pos2+1) SetColor(Black, White);
cout<<rech[i];}
cout<<endl;
cout<<endl;
for(i=0; i<strlen(rech);i++){
if(i==pos1) SetColor(White, DarkGray);
if(i==pos2) SetColor(White, White);
cout<<rech[i];}
cout<<endl;
SetColor(White, Black);
cout<<"Esc";
SetColor(Black, White);
cout<<" - В меню";
c=getch();
if(c==rech[pos2]) pos2++;
else if(static_cast<int>(c)!=27) {pom++;cout<<"\a";}
else menu();
system("cls");

}


a1=(GetTickCount()-a1)/1000;
int rozm=strlen(rech);
f = fopen("ex.dat", "a+b");
dani.prc=pom/rozm*100;
dani.klk = rozm;
dani.sec = a1;
dani.pom = pom;
time(&t);
dani.st = *localtime(&t);
fwrite(&dani, sizeof(dani), 1, f);
const int k=2;
fclose(f);
pom=0;

stat();
cout<<endl;
SetColor(White, Black);cout<<"Enter"; SetColor(Black, White);
cout<<" - Ще раз\t";
SetColor(White, Black);cout<<"Esc"; SetColor(Black, White);
cout<<" - В меню";
c=static_cast<int>(getch());
switch(c){
case 13: trenager();
break;
case 27: menu();
break;
}

}
}
}
void stat(){
SetColor(White, Black);
cout<<setw(30)<<"Результат:"<<setw(17)<<" "<<endl;
cout<<setw(30)<<"Кiлькiсть символiв - "<<setw(17)<<dani.klk<<setw(50)<<endl;
cout<<setw(30)<<"Введено за - "<<setw(12)<<dani.sec<<" сек."<<endl;
cout<<setw(30)<<"Помилок - ";
SetColor(Red, Black);
cout<<setw(17)<<dani.pom<<endl;
SetColor(White, Black);
cout<<setw(30)<<"Темп - "<<setw(10)<<dani.klk/dani.sec*60<<" нат/хв."<<endl;
cout<<setw(30)<<"Mайстернiсть - ";
SetColor(Green, Black);
cout<<setw(10)<<(dani.klk-dani.pom)/dani.sec*60<<" сим/хв\n"<<endl;
SetColor(Black, White);
}
void pass(){
int l=0;

char a[]="password", aa[]="*", pass_user[100], c;
while(1){
system("cls");
if(z) break;
cout<<"Пароль: \n";
while(1){
c=getch();
if(static_cast<int>(c)!=13 && static_cast<int>(c)!=27){
pass_user[l++] = c;
cout<<aa;
}
else 
if (static_cast<int>(c)==27) menu();
else
if(static_cast<int>(c)==13) {pass_user[l++]='\0';
if(!strcmp(pass_user,a)) {SetColor(Green, White); cout<<endl<<"Пароль вiрний"; SetColor(Black, White); l=0; Sleep(timer); z=1; break;}
else {SetColor(Red, White);cout<<endl<<"Пароль невiрний"; SetColor(Black, White); l=0; Sleep(timer); break;}
}

}
}


const int pk = 2; 
int i, j=0;
mm p[pk];
strcpy(p[0].m,"ЗАПИСАТИ СЛОВО В БАЗУ");
strcpy(p[1].m,"ОЧИСТИТИ БАЗУ");
while(1){
cout<<"Панель керування: \n";
for(i=0; i<pk;i++){
if(i==j) SetColor(White, Black);
if(i==j+1) SetColor(Black, White);
cout<<"\t"<<p[i].m<<endl;
}
info();
c = static_cast<int>(getch());
if(c==72 && j>0)  j--;
else if(c==80 && j<pk-1) j++;
else if(c==27) menu(); 
else if(c==13) {
switch(j){
case 0:{add();}
break;
case 1:{strcpy(file, "baza.dat");
   clean_base();}
break;
}
}
system("cls");
}




}
void add(){
system("cls");
while(1){
cout<<"Вводимо лексему для запису в файл: ";
cin>>a;

fc = fopen("baza.dat","a+b");
fwrite(&a,sizeof(a),1,fc);
fclose(fc);

SetColor(Green, White);cout<<"Данi записанi!"; SetColor(Black, White);
Sleep(timer);
system("cls");
cout<<"Записати ще?";
cout<<endl;
SetColor(White, Black);cout<<"Enter"; SetColor(Black, White);
cout<<" - Записати\t";
SetColor(White, Black);cout<<"Esc"; SetColor(Black, White);
cout<<" - В меню";
c=static_cast<int>(getch());
switch(c){
case 13: add();
break;
case 27: menu();
break;
default:{system("cls");}
}

}
}
void info(){
cout<<endl;
SetColor(White, Black);
cout<<"Up/Down";
SetColor(Black, White);
cout<<" - Вверх/Вниз\t";
SetColor(White, Black);
cout<<"Enter";
SetColor(Black, White);
cout<<" - Вибiр \t";
SetColor(White, Black);
cout<<"Esc";
SetColor(Black, White);
cout<<" - Назад/Вихiд";
}
void clean_base(){
system("cls");
fc = fopen(file,"wb");
fclose(fc);
SetColor(Green, White);
cout<<"Файл очищено!";
SetColor(Black, White);
cout<<endl;
Sleep(timer);
if(!strcmp(file,"ex.dat")) result();
else {pass(); z=1;}
}
void SetColor(ConsoleColor text, ConsoleColor background)
{
   HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
   SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
Прикрепленные файлы:
.
вот еще онлайн учебник http://proggrammer.ru/c/
.
http://cppstudio.com/uchebniki ... ya-s/
Всего: 168