Ознакомится с методами определения функций, передачи аргументов, использования библиотек функций.
Министерство образования и науки РФ ФГБОУ ВПО Тульский государственный университет Механико-технологический факультет Кафедра "Информационной безопасности вычислительных систем" Лабораторная работа № 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!