Ознакомится с методами определения функций, передачи аргументов, использования библиотек функций.

Министерство образования и науки РФ ФГБОУ ВПО Тульский государственный университет Механико-технологический факультет Кафедра "Информационной безопасности вычислительных систем"   Лабораторная работа № 1 по курсу: "Технологии программирования"   Выполнил                                                     студент гр. Б662132с                                                                       Бочаров Д.В   Проверила                                                    Набродова И.Н.   Тула 2015 г Среда разработки. Основные возможности.  

Цель работы

Ознакомится с интегрированной средой разработки Microsoft Visual Studio .NET 2005.

 

Задание на работу

Создать решение, содержащее консольное приложение.

Добавить проекту файл с исходным кодом следующего содержания:

#include “stdafx.h”

int sum( int a, int b){

return a + b;

}

В функцию main добавить следующий код:

printf(“Sum: %d”,sum(3, 5));

Запустить созданный проект (клавиша F5).

Добавить заголовочный файл с прототипом функции sum:

int sum(int a, int b)

Добавить в файл с описанием функции main подключение вновь

созданного заголовочного файла #include “имя_файла.h”

 

Ход работы

 

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

#include <iostream>

using namespace std;

 

int sum(int a, int b)

{

    return a+b;

}

 

 

void main()

{

    printf("Sum: %d", sum(3,5));

    _getch();

}

 

 

 


Министерство образования и науки РФ
ФГБОУ ВПО Тульский государственный университет

Механико-технологический факультет

Кафедра "Информационной безопасности вычислительных систем"

 

Лабораторная работа № 3

по курсу: "Технологии программирования"

 

Выполнил                                                     студент гр. Б662132с

                                                                      Бочаров Д.В

 

Проверила                                                    Набродова И.Н.

 

Тула 2015 г

Стиль программирования.

Цель работы

Освоиться с общепринятыми нормами по написанию и форматированию программного кода.

Задание на работу

4) Напишите программу определения числа Фибоначчи.

Ход работы

#include <iostream> //Библиотека потокового ввода вывода

#include <vector> //Класс вектор

#include <conio.h>

using namespace std;

vector<int> GetFibonachiSeq(int size) //функция возвращает массив целых чисел

{

    vector<int> result;

    result.push_back(1);

    result.push_back(1);

    for (int i = 2; i < size; ++i)

              result.push_back(result[i-2]+result[i-1]);

    return result;

}

void Output(vector<int> v)

{

    for (int i = 0; i<v.size(); ++i)

              cout<<v[i]<<" ";

}

void main()

{

    setlocale(LC_ALL,"Russian");

    cout<<"Числа Фибоначчи"<<endl<<"Введите размер последовательности: "; //поток вывода

    int size;

    cin>>size; //поток ввода (readln)

    vector<int> vector = GetFibonachiSeq(size);

    Output(vector);

    _getch();

}

Министерство образования и науки РФ
ФГБОУ ВПО Тульский государственный университет

Механико-технологический факультет

Кафедра "Информационной безопасности вычислительных систем"

 

Лабораторная работа № 4

по курсу: "Технологии программирования"

 

Выполнил                                                     студент гр. Б662132с

                                                                 Бочаров Д.В

 

Проверила                                                    Набродова И.Н.

 

Тула 2015 г

Отладка.

 

Цель работы

Ознакомится с принципами отладки программ. Ознакомится с отладчиком Visual C++.

Задание на работу

Используя данную программу:

#include "stdafx.h"

#include <string>

#include <conio.h>

void print_string(_TCHAR *string, int count){

for(int i = 0; i < count; i ++ )

for(int j = 0; j < wcslen(string); j++)

putwchar(string[j]);

}

int _tmain(int argc, _TCHAR* argv[])

{

if(argc != 3){

printf(" incorrect args");

}else{

wchar_t *end;

int count = wcstol(argv[2], &end, 10);

35

printf("Print: %ws %d times\n",

argv[1],

count);

print_string(argv[1], count);

}

getch();

return 0;

}

В параметрах запуска приложения укажите «“hello world” 4» (кавычки обязательны). Измените параметры программы. Определите, как зависят дейсвий в функции print_string от параметров командной строки.

Замените:

printf("Print: %ws %d times\n", argv[1], count);

на:

printf("Print: %s %d times\n", argv[1], count);

С помощью отладчика определите, чем отличается char* argv[] от

_TCHAR * argv.

Добавьте следующий фрагмент кода перед оператором getch(). С помощью отладчика получить информацию о значениях переменных после выполнения каждой строки.

4) int j = 4, i=2;

j -= i/2 + 1;

j = j-- + ++ j;

(j -= i++), (j+=2);

Ход работы

#include <string>

#include <tchar.h>

#include <conio.h>

 

void print_string(_TCHAR* string, int count)

{

    for(int i = 0; i < count; i ++ )

              for(int j = 0; j < wcslen((wchar_t*)string); j++)

                       putwchar(string[j]);

}

 

int _tmain(int argc, _TCHAR* argv[])

{

    if(argc != 3)

    {

              printf(" incorrect args");

    }

    else

    {

              wchar_t *end;

              int count = wcstol((wchar_t*)argv[2], &end, 10);

              printf("Print: %ws %d times\n", argv[1],count);

              //printf("Print: %s %d times\n",  argv[1],count);

              print_string(argv[1], count);

    }

 

    int j=4, i=2;

    j-=i/2+1;

    j=j-- + ++j;

    (j -= i++),(i+=2);

 

    _getch();

    return 0;

}

 


Министерство образования и науки РФ
ФГБОУ ВПО Тульский государственный университет

Механико-технологический факультет

Кафедра "Информационной безопасности вычислительных систем"

 

Лабораторная работа № 5

по курсу: "Технологии программирования"

 

Выполнил                                                     студент гр. Б662132с

                                                                      Бочаров Д.В

 

Проверила                                                    Набродова И.Н.

 

Тула 2015 г

Ввод-вывод по стандарту Ansi C.

Цель работы

Освоить библиотеку ввода-вывода, описанную стандартом Ansi C.

Задание на работу

4) Написать программу – небольшую базу данных, в которой в файле хранится информация о собаках со следующими полями: Кличка, Клуб, ГодРождения, Порода, Хозяин, ЧислоМедалей. В качестве разделителя полей выступает символ точки. Предусмотреть возможность вывода всех записей на экран, ввод новых записей, поиск записи по полю Хозяин, сортировка записей по полю ЧислоМедалей.

Ход работы

#include "stdafx.h"

#include <string>

#include <vector>

#include <iostream>

#include <stdio.h>

#include <windows.h>

#include <cstdlib>

using namespace std;

 

struct DOGS

{

char klichka[255];

char klub[255];

int god;

char poroda[255];

char hozyain[255];

int chislomedalej;

};

 

vector <DOGS> dogmas;

char path_buffer[_MAX_PATH];

 

void pathdogfile(char fullpath[_MAX_PATH])

{

        

    char drive[_MAX_DRIVE];

    char dir[_MAX_DIR];

    char fname[_MAX_FNAME];

    char ext[_MAX_EXT];

 

    _splitpath(fullpath, drive, dir, fname, ext );

 

    /*printf( "Path extracted with _splitpath:\n" );

    printf( " Drive: %s\n", drive);

    printf( " Dir: %s\n", dir);

    printf( " Filename: %s\n", fname );

    printf( " Ext: %s\n", ext );*/

    strcpy(path_buffer,drive);

strcat(path_buffer,dir);

    strcat(path_buffer,"baz.txt");

    return;

}

 

void dogfileload(char* filename)

{

 dogmas.clear();

 FILE * dogfile;

 DOGS tmpdog;

 dogfile = fopen(filename,"rt");

 int kol=0;

 if( dogfile == 0 )

{

    cout << "Ошибка загрузки файла";

     return;

 };

 while( !feof(dogfile) ) {

    char load_string[100] = "none";

    fgets( load_string, 100 , dogfile );

     if( strcmp(load_string,"none") == 0)

{

cout << "Записи в количестве "<< kol << " успешно загружены \n";

    cout << "Ошибка загрузки строки";

    return;

};

    char * tmpstr;

tmpstr = strtok(load_string,".");

    strcpy(tmpdog.klichka,tmpstr);

    tmpstr = strtok (NULL, ".");

    strcpy(tmpdog.klub,tmpstr);

tmpstr = strtok (NULL, ".");

    tmpdog.god=atoi(tmpstr);

tmpstr = strtok (NULL, ".");

    strcpy(tmpdog.poroda,tmpstr);

tmpstr = strtok (NULL, ".");

    strcpy(tmpdog.hozyain,tmpstr);

tmpstr = strtok (NULL, ".");

    tmpdog.chislomedalej=atoi(tmpstr);

    dogmas.push_back(tmpdog);

    kol++;

 fclose(dogfile); 

 cout << "Записи в количестве "<< kol << " успешно загружены ";

 return;

};

 

void dogfileswrite(){

if (dogmas.empty()) {cout << "Список пуст\n";return;};

    for (int i=0;i<=int(dogmas.size())-1;i++){

              cout << dogmas[i].klichka << "|" << dogmas[i].klub << "|" << dogmas[i].god << "|" 

                       << dogmas[i].poroda << "|" << dogmas[i].hozyain << "|" << dogmas[i].chislomedalej << "\n";

    };

return;

};

 

void dogfileadd(){

DOGS tmpdog;

cout << "Введите кличку собаки\n";

cin >> tmpdog.klichka;

cout << "Введите клуб\n";

cin >> tmpdog.klub;

cout << "Введите год рождения собаки\n";

cin >> tmpdog.god;

cout << "Введите породу собаки\n";

cin >> tmpdog.poroda;

cout << "Введите Фамилию хозяина\n";

cin >> tmpdog.hozyain;

cout << "Введите количество медалей\n";

cin >> tmpdog.chislomedalej;

dogmas.push_back(tmpdog);

return;

};

 

void dogfilesearch(){

if (dogmas.empty()) {cout << "Список пуст\n";return;};

char kh;

cout << "Введите часть фамилии хозяина\n";

cin >> kh;

 for (int i=0;i<=int(dogmas.size())-1;i++){

     char * pch;

     pch=strchr(dogmas[i].hozyain,kh);

     if (pch!=NULL)

     {

    cout << dogmas[i].klichka << "|" << dogmas[i].klub << "|" << dogmas[i].god<< "|" 

                        << dogmas[i].poroda << "|" << dogmas[i].hozyain << "|" << dogmas[i].chislomedalej << "\n";

     };     

 };

return;

};

 

 

void dogfilesort(){

if (dogmas.empty()) {cout << "Список пуст\n";return;};

bool bbb = false;

while (!bbb) {

bbb=true;

for (int i=0;i<=int(dogmas.size())-2;i++){

    if (dogmas[i].chislomedalej>dogmas[i+1].chislomedalej) {

              swap(dogmas[i+1].chislomedalej,dogmas[i].chislomedalej);

              bbb=false;

    };

};

};

cout << "Успешно сортировано\n";

return;

};

 

void dogfilesave(char* filename){

if (dogmas.empty()) {cout << "Список пуст\n";return;};

FILE * dogfile;

dogfile = fopen(filename,"wt");

cout << int(dogmas.size())-1 << "\n";

for (int i=0;i<=int(dogmas.size())-1;i++){

 char tmpbuf[255]="zzszz";

 char tmpstr[1050];

 strcpy(tmpstr,dogmas[i].klichka);

 strcat(tmpstr,".");

 strcat(tmpstr,dogmas[i].klub);

 strcat(tmpstr,".");

 itoa(dogmas[i].god,tmpbuf,10);

 strcat(tmpstr,tmpbuf);

 strcat(tmpstr,".");

 strcat(tmpstr,dogmas[i].poroda);

 strcat(tmpstr,".");

 strcat(tmpstr,dogmas[i].hozyain);

 strcat(tmpstr,".");

 itoa(dogmas[i].chislomedalej,tmpbuf,10);

 strcat(tmpstr,tmpbuf);

 if (i!=int(dogmas.size())-1) {strcat(tmpstr,"\n");};

 fputs(tmpstr,dogfile);

 };

fclose(dogfile); 

 

    /*puts функция записи в файл

              itoa(число,text,10); перевод число в строку

              std::swap(arr[0], arr[2]); поменять элеменыт массива местами*/

return;

};

 

void main(int argc, char* argv[])

{  

    //SetConsoleCP(1251);

    setlocale(LC_ALL, "Russian");

    pathdogfile(argv[0]);

    char choice='i';

while (choice != 'exit'){

system("cls"); 

    cout << "\n\nВведите номер действия:\n1 - Загрузить данные из файла\n"

               << "2 - Вывести данные на экран\n3 - Добавить строку\n"

               << "4 - Поиск записи по полю Хозяин\n5 - Сортировка по числу медалей\n"

               << "6 - Сохранить в файл\n";

    cin >> choice;     

    system("cls");     

    switch(choice){

     case '1':dogfileload(path_buffer); break;

case '2':dogfileswrite();break;

     case '3':dogfileadd();break;

     case '4':dogfilesearch();break;

     case '5':dogfilesort(); break;

     case '6':dogfilesave(path_buffer); break;

     default:cout << "\nКоманды с таким номером не существует"; break;

    };

cout << "\n\n\n";

    system("pause");

};

 return; 

}

 

Министерство образования и науки РФ
ФГБОУ ВПО Тульский государственный университет

Механико-технологический факультет

Кафедра "Информационной безопасности вычислительных систем"

 

Лабораторная работа № 6

по курсу: "Технологии программирования"

 

 

Выполнил                                                     студент гр. Б662132с

                                                                      Бочаров Д.В

 

Проверила                                                    Набродова И.Н.

 

 

Тула 2015 г

Среда разработки. Основные возможности.

 

Цель работы

Ознакомится с методами определения функций, передачи аргументов, использования библиотек функций.

Задание на работу

Напишите функцию поиска среднего арифметического из двух целых чисел. Перегрузите функцию для работы с тремя и четырьмя целыми числами и числами с плавающей точкой. Вынести объявления функций в отдельный заголовочный файл и использовать функции до их определения. Продемонстрировать в программе работу всех функций.

Ход работы

// project Lab6.cpp: определяет точку входа для консольного приложения.

//

 

#include "stdafx.h"

#include "Unit1.h"

#include <iostream>

#include <conio.h>

using namespace std;

 

int _tmain(int argc, _TCHAR* argv[])

{

    double c1=4,c2=8;

    cout << funcsred(1,2) << "\n";

    cout << funcsred(1,2,3) << "\n";

cout << funcsred(1,2,3,4) << "\n";

cout << funcsred(c1,c2) << "\n";

 

    _getch();

    return 0;

}

 

int funcsred(int a1, int a2)

{

return (a1+a2)/2;

}

 

int funcsred(int a1, int a2, int a3)

{

return (a1+a2+a3)/3;

}

 

int funcsred(int a1, int a2, int a3, int a4)

{

return (a1+a2+a3+a4)/4;

}

 

double funcsred(double a1,double a2)

{

return (a1+a2)/2;

}

 

 

 


Дата добавления: 2018-08-06; просмотров: 281; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!