Федеральное агентство по образованию
Арзамасский политехнический институт (филиал)
Государственное образовательное учреждение высшего профессионального образования
"Нижегородский государственный технический университет" им. Р.Е. Алексеева
Кафедра "Прикладная математика"
Курсовая работа
по дисциплине
"Алгоритмические языки и программирование"
Выполнил студент
группы АСПМ 09-1
Балахонова О.В.
Проверил
Преподаватель
Лазарева А.Б
Арзамас 2010
1. Введение
2. Задача № 1
2.1 Блок – схема для ввода данных
2.2 Блок – схема для удаления элемента
2.3 Блок – схема для добавления элемента
2.4 Блок – схема главной функции
2.5 Листинг программы
2.6 Результаты работы программы
3. Задача № 2
3.1 Постановка задачи
3.2 Блок – схема для конструктора
3.3 Блок – схема для конструктора копий
3.4 Блок – схема для деструктора
3.5 Блок – схемы для доступа к закрытым полям
3.6 Блок – схема для перестановки
3.7 Блок – схема для приведения к треугольному виду
3.8 Блок – схема для аппроксимации
3.9 Блок-схема для обратной подстановки
3.10 Блок-схема для вычисления интеграла методом левых прямоугольников
3.11 Блок-схема для вычисления интеграла методом правых прямоугольников
3.12 Блок-схема для вычисления интеграла методом центральных прямоугольников
3.13 Блок-схема для вычисления интеграла методом Симпсона с автоматическим выбором шага
3.14 Листинг программы
3.15 Результаты работы программы
3.16 Теоретические сведения
Список использованных источников
1. Введение
В начале 80–х годов в фирме Bell Telephone Laboratories Бьерном Страуструпом (США) в результате дополнения и расширения языка С был создан язык, получивший название "С с классами". В 1983г. Это название было изменено на С++. В 1998г. Был утвержден окончательный стандарт языка С++.
В настоящее время С++ является одним из наиболее распространенных и востребованных языков программирования. Этот язык представляет собой фундамент, на котором строится современное программирование, поэтому он является обязательным элементом подготовки современных программистов, именно поэтому для студентов специальностей "Прикладная математика" и "Информационные системы и технологии" выбран этот язык.
2. Задача № 1
Постановка задачи
Создать файл и записать в него объекты структуры. Структура должна быть со следующими полями:
· Название команды
· Город
· Количество игроков
· Количество набранных очков
Из объектов структуры создается массив, заносится в файл. Вывести созданный файл на монитор, удалить из файла все элементы с количеством очков меньше заданного. Измененную базу данных записать в другой файл. Добавить К элементов в начало файла.
2.1 Блок – схема для ввода данных
2.2 Блок – схема для удаления элемента
2.3 Блок – схема для добавления элемента
2.4 Блок – схема главной функции
2.5 Листинг программы
#include <iostream>
#include <string>
#include <cstdio>
#include <windows.h>
#include <fstream>
using namespace std;
struct set
{char name[50];
char city[20];
int pl;
int point;
};
void data(set a1[50],int& kol );
void udal(set a[50],ofstream& f,char str[15],int& kol);
void vvodf(char str[15],ofstream& f,set a[50],int& kol);
void dobav(set a[50],ofstream& f,char str[15],int& kol);
void vivod(set a[50],int& kol);
//главная функция
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
set a[50];
int d;
ofstream f1;
char str1[15];
cout<<"Введите полное имя файла \n"; cin>>str1;
data(a,d);
vvodf(str1,f1,a,d);
udal(a,f1,str1,d);
dobav(a,f1,str1,d);
}
//ввод данных
void data(set a1[50],int& kol)
{ cout<<"\n Сколько записей вы хотите ввести? \n";
cin>>kol;
for(int i=0;i<kol;i++)
{
cout<<"\n Введите название команды "<<i+1<<"\n";
gets(a1[i].name);
cin.getline(a1[i].name,sizeof(a1[i].name));
cout<<"\n Введите название города \n";
cin>>a1[i].city;
cout<<"\n Введите количество игроков \n";
cin>>a1[i].pl;
cout<<"\n Введите набранных очков \n";
cin>>a1[i].point;
}
vivod(a1,kol);
}
//ввод в файл
void vvodf(char str[15],ofstream& f,set a[50],int& kol)
{ f.open(str);
if(f.fail()) {cout<<"Ошибка при вводе файла"; exit(1);}
for(int i=0;i<kol;i++)
{ f<<"***********************************************"<<endl;
f<<"Название команды "<<i+1<<":"<<a[i].name<<endl;
f<<"Город: "<<a[i].city<<endl;
f<<"Количество игроков: "<<a[i].pl<<endl;
f<<"Количество очков: "<<a[i].point<<endl;
f<<endl<<endl;
}
f.close();
}
//удаление элемента
void udal(set a[50],ofstream& f,char str[15],int& kol)
{ cout<<"Введите количество очков и все команды с меньшим значением будут удалены ";
int ef; cin>>ef; int z=0;int q=0;int m=0;
for(int i=0;i<kol;i++)
{if(a[i].point<ef) {z=i;
for(int i=z;i<kol;i++)
a[i]=a[i+1];
kol--;
m=1;
}
if (m==1) {i--;m=0;}
}
vvodf(str,f,a,kol);
vivod(a,kol);
}
//добавление элемента
void dobav(set a[50],ofstream& f,char str[15],int& kol)
{
int koldob,nom=0;
cout<<"\n Сколько записей вы хотите добавить? \n"; cin>>koldob;
for(int i=kol-1;i>=nom;i--) a[i+koldob]=a[i];
f.open(str);
if(f.fail()) {cout<<"Ошибка открытии файла"; exit(1);}
for(int i=nom;i<nom+koldob;i++)
{
cout<<"\n Введите название команды "<<i+1<<" которую вы хотите добавить\n";
gets(a[i].name);
cin.getline(a[i].name,sizeof(a[i].name));
cout<<"\n Введите название города \n";
cin>>a[i].city;
cout<<"\n Введите количество игроков\n";
cin>>a[i].pl;
cout<<"\n Количество очков \n";
cin>>a[i].point;
}
kol=kol+koldob;
f.close();
vvodf(str,f,a,kol);
vivod(a,kol);
}
void vivod(set a[50],int& kol)
{cout<<endl;
for(int i=0;i<kol;i++)
{cout<<"***********************************************"<<endl;
cout<<"Название команды"<<i+1<<":"<<a[i].name<<endl;
cout<<"Город:"<<a[i].city<<endl;
cout<<"Количество игроков:"<<a[i].pl<<endl;
cout<<"Количество очков:"<<a[i].point<<endl;
cout<<endl<<endl;
}
}
2.6 Результаты работы программы
Введите полное имя файла
Команда
Сколько записей вы хотите ввести?
4
Введите название команды 1
Спартак
Введите название города
Москва
Введите количество игроков
21
Введите набранных очков
42
Введите название команды 2
ЦСКА
Введите название города
Москва
Введите количество игроков
21
Введите набранных очков
38
Введите название команды 3
Локомотив
Введите название города
Москва
Введите количество игроков
21
Введите набранных очков
30
Введите название команды 4
Томь
Введите название города
Томь
Введите количество игроков
21
Введите набранных очков
26
Название команды1:Спартак
Город:Москва
Количество игроков:21
Количество очков:42
Название команды2:ЦСКА
Город:Москва
Количество игроков:21
Количество очков:38
Название команды3:Локомотив
Город:Москва
Количество игроков:21
Количество очков:30
Название команды4:Томь
Город:Томь
Количество игроков:21
Количество очков:26
Введите количество очков и все команды с меньшим значением будут удалены 38
Название команды1:Спартак
Город:Москва
Количество игроков:21
Название команды2:ЦСКА
Город:Москва
Количество игроков:21
Количество очков:38
Сколько записей вы хотите добавить?
1
Введите название команды 1 которую вы хотите добавить
Спартак
Введите название города
Нальчик
Введите количество игроков
21
Количество очков
28
Название команды1:Спартак
Город:Нальчик
Количество игроков:21
Количество очков:28
Название команды2:Спартак
Город:Москва
Количество игроков:21
Количество очков:42
Название команды3:ЦСКА
Город:Москва
Количество игроков:21
Количество очков:38
Для продолжения нажмите любую клавишу . ............