рефераты рефераты
Главная страница > Курсовая работа: Работа с языками С и С++  
Курсовая работа: Работа с языками С и С++
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

Курсовая работа: Работа с языками С и С++

}

cout<<"Введите название БП №"<<n+1<<endl;

for (i=0;; i++) {

k->name [i] =cin. get ();

if (k->name [i] =='\n') {

k->name [i] ='\0';

break;

}

if (k->name [i] <31 || k->name [i] >126 || i>38) {

k->name [i] ='\0';

while (cin. get ()! ='\n')

continue;

break;

}

}

cout<<"Введите количество разьёмов БП №"<<n+1<<endl;

cin>>k->a;

while (cin. fail ()) {

cout<<"Недопустимое число. Попробуйте ещё раз"<<endl;

cin. clear ();

while (cin. get ()! ='\n')

continue;

cin>>k->a;

}

while (cin. get ()! ='\n')

continue;

cout<<"Введите мощность БП №"<<n+1<<endl;

cin>>k->p;

while (cin. fail ()) {

cout<<"Недопустимое число. Попробуйте ещё раз"<<endl;

cin. clear ();

while (cin. get ()! ='\n')

continue;

cin>>k->p;

}

cout<<"Закончить (y/any key)"<<endl;

while (cin. get ()! ='\n')

continue;

y=cin. get ();

y=toupper (y);

k->I=k;

k->number=n+1;

if (y=='Y') {

k->next=NULL;

}

else{

k->next= (struct e*) malloc (sizeof (struct e));

k->next->pre=k;

k=k->next;

}

}

system ("clear");

printf ("Ввод закончен");

return n;

}

vyvodAll. cpp

Функция vyvodAll () выводит все записи на экран в виде отформатированной таблицы.

Принимаемые значения: указатель на первый элемент

Возвращаемые значения: нет

#include "my. h"

void vyvodAll (struct e *k) Мощность

vyvodOne. cpp

Функция vyvodOne () выводит одну запись на экран по её номеру.

Принимаемые значения: количество считанных элементов, указатель на первый элемент. Возвращаемые значения: нет

#include "my. h"

void vyvodOne (struct e *k, int n) {

int j, i;

system ("clear");

printf ("Какую запись вывести? \n");

while (! scanf ("%d",&i)) {

printf ("Неверное число\n");

while (getchar ()! ='\n')

continue;

}

if (i>n || i<1)

printf ("Нет такой записи\n");

else{

while (k->number! =i) {

k=k->next;

}

printf (". | Год | Название | Разъёмы | Шум | Мощность |\n");

for (j=0; j<77; j++)

printf ("=");

printf ("\n% -2d|% -5s|% -40s|% -9d|% -5hd|% -9hd|\n",k->number,k->year,k->name,k->a,k->db,k->p);

for (j=0; j<77; j++)

printf ("-");

}

return;

}

max3. cpp

Функция max3 () - поиск БП с максимальным количеством разъёмов

Принимаемые значения: указатель на первый элемент

Возвращаемые значения: нет

#include"my. h"

void max3 (struct e *k) {

struct e *q;

q=k;

while (1) {

if (k->a>q->a)

q=k;

if (k->next==NULL)

break;

k=k->next;

}

printf ("Максимальным количеством разъёмов обладает БП #%d: %d",q->number,q->a);

return;

}

min4. cpp

функция min4 () - поиск БП минимальной мощности

Принимаемые значения: указатель на первый элемент

Возвращаемые значения: нет

#include"my. h"

void min4 (struct e *k) {

struct e *q;

q=k;

while (1) {

if (k->p<q->p)

q=k;

if (k->next==NULL)

break;

k=k->next;

}

printf ("Минимальным количеством разъёмов обладает БП #%d: %hhd",q->number,q->p);

return;

}

buble. cpp

Функция buble () - сортировка методом пузырька для количества разъёмов (по возростанию)

Принимаемые значения: количество считанных элементов, указатель на указатель на первый элемент

Возвращаемые значения: нет

#include "my. h"

void buble (struct e **head, int n) {

struct e *k;

k=*head;

int f,j;

for (j=0; j< (n-1); j++) {

for (f=0; f< (n-1); f++) {

if ( (k->a) > (k->next->a)) {

f2s (k,k->next,head);

k=k->pre;

k->number=k->number+k->next->number;

k->next->number=k->number-k->next->number;

k->number=k->number-k->next->number;

}

k=k->next;

}

k=*head;

}

printf ("Отсортировано");

return;

}

insertion. cpp

Функция insertion () - сортировка вставками для мощности (по убыванию)

Принимаемые значения: указатель на указатель на первый элемент

Возвращаемые значения: нет

#include "my. h"

void insertion (struct e **head) {

struct e *q;

q= (*head) - >next;

while (q->next! =NULL) {

for (q= (*head) - >next; q->next! =NULL && q->p<=q->pre->p;)

q=q->next;

if (q->p>q->pre->p) {

while (q->p>q->pre->p) {

f2s (q->pre, q, head);

q->number=q->number+q->next->number;

q->next->number=q->number-q->next->number;

q->number=q->number-q->next->number;

if (q->pre==NULL)

break;

}

}

}

printf ("Отсортировано");

return;

}

writeFileB

Функция writeFileB () - функция записи данных из памяти в бинарный файл. Если программа была запущена с параметрами, то в качестве имени файла выступит аргумент из командной строки.

Функция написана с использованием потоковых классов С++

Принимаемые значения: количество аргументов, принятых функцией main () из командной строки, указатель на массив указателей на строки, считанные как аргумент из командной строки

Возвращаемые значения: нет

#include "my. h"

using namespace std;

void writeFileB (struct e *k, int argc, char **argv) {

int i;

char name [11];

if (argc<2) {

while (cin. get ()! ='\n')

continue;

readName (name);

if (name [0] =='\0')

return;

}

else

strcpy (name, * (argv+1));

ofstream f (name, ios:: binary);

if (f. fail ()) {

cout<<"Невозможно создать файл c именем"<<name<<endl;

return;

}

system ("clear");

cout<<"Файл с именем '"<<name;

while (1) {

f. write ( (char*) k->year,5);

f. write ( (char*) k->name,40);

f. write ( (char*) &k->a,4);

f. write ( (char*) &k->db,2);

f. write ( (char*) &k->p,2);

if (k->next==NULL)

break;

else

k=k->next;

}

if (f. fail ())

cout<<"' не создан";

if (! f. fail ())

cout<<"' создан";

f. close ();

return;

}

readFileB

Функция readFileB () - функция для чтения данных из файла.

Если программа была запущена с параметрами, то в качестве имени файла выступит аргумент из командной строки.

Функция написана с использованием потоковых классов С++

Принимаемые значения: количество аргументов, принятых функцией main () из командной строки; указатель на массив указателей на строки, считанные как аргумент из командной строки; указатель на указатель на первый элемент; указатель на количество считанных элементов

Возвращаемые значения: нет

#include "my. h"

using namespace std;

void readFileB (struct e **head, int *n, int argc, char **argv) {

char name [10];

struct e *k;

*head= (struct e*) malloc (sizeof (struct e));

k=*head;

if (argc>2)

strcpy (name, * (argv+1));

else{

while (cin. get ()! ='\n')

continue;

readName (name);

if (name [0] =='\0')

return;

}

ifstream f (name, ios:: binary);

if (f. fail ()) {

cout<<"Невозможно открыть файл c именем "<<name<<endl;

return;

}

else

cout<<"Файл с именем '"<<name<<"' прочитан";

f. clear ();

k->pre=NULL;

for (*n=1;; (*n) ++) {

f. read ( (char*) k->year,5);

f. read ( (char*) k->name,40);

f. read ( (char*) & (k->a),4);

f. read ( (char*) & (k->db),2);

f. read ( (char*) & (k->p),2);

k->I=k;

k->number=*n;

if (f. peek ()! =EOF) {

k->next= (struct e*) malloc (sizeof (struct e));

k->next->pre=k;

k=k->next;

}

else{

k->next=NULL;

break;

}

}

f. close ();

return;

}

nameSort

Функция nameSort () - функция для сортировки дискового файла по по полю с именем БП. Сортировка происходит методом пузырька. Если программа была запущена с параметрами, то в качестве имени файла выступит аргумент из командной строки.

Принимаемые значения: Указатель на строку, содержащую имя файла

Возвращаемые значения: нет

Страницы: 1, 2, 3, 4

рефераты
Новости