Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Типовые приемы алогитмизации
Цель работы – овладение практическими навыками работы с проектами в интегрированной среде Borland C++.
Задания для самостоятельной подготовки: 1. Изучить: - принципы работы с проектами в интегрированной среде Borland C++. 2. Разработать проект в соответствии с заданием. 3. Подготовить тестовый вариант исходных данных. Выполнить на ЭВМ программу с тестовым вариантом. Задание к работе: Разместить функции программы создания светового меню в отдельных файлах. Объединить созданные файлы в проекте. Пример выполнения работы Задание. Написать программу, осуществляющую вывод и управление меню с подсветкой. Главное меню должно содержать пункты: 1. Ввод информации 2. Вывод информации 3. Выход При выборе первого пункта осуществить ввод в массив структур информации - ФИО рабочего; - год рождения; - табельный номер. При выборе второго пункта осуществить вывод меню второго уровня
Разместить функции программы создания светового меню в отдельных файлах. Объединить созданные файлы в проекте.
Программа решения задачи имеет вид:
Файл 1: void menu(int j, int c1, int c2, int ys, unsigned char *textmenu[]) { int i; textcolor(c1); textbackground(c2); for(i=0;i<j;i++) { gotoxy(1,ys); clreol(); cprintf("%s",textmenu[ys/2-1]); ys+=2; } // ys+=2; return; } Файл 2: int winmenu(char* u[]) { int y,predy; union { int p; unsigned char b[2]; } key; textbackground(0); clrscr(); window(7,3,73,22); textbackground(15); clrscr(); window(10,4,70,21); textbackground(2); clrscr(); y=2; predy=2; menu(3,0,2,2,u); menu(1,15,0,2,u); for(;;) { key.p=bioskey(0); switch (key.b[1]) { case 72: y-=2; if(y<2) y=6; break; case 80: y+=2; if(y>6) y=2; break; case 28: return y/2; } menu(1,0,2,predy,u); menu(1,15,0,y,u); predy=y; } } Файл 3:
int vvod(struct pass mas[]) { int i,kol; clrscr(); cprintf("Введите кол-во жителей:"); scanf("%d",&kol); for(i=0;i<kol;i++) { cprintf("\r\n"); cprintf("Введите ФИО: "); scanf("%s", &mas[i].fio); cprintf("\r\nВведите год рождение: "); scanf("%d", &mas[i].god); cprintf("\r\nВведите его табельный номер: "); scanf("%d", &mas[i].tabn); } return kol; }
Файл 4: void vivod(int k,struct pass mas[],int de) { int i; clrscr(); for(i=0;i<k;i++) switch(de) { case 1:cprintf("ФИО:%20s\r\nГод рождения:%5d\r\n",mas[i].fio,mas[i].god); break; case 2:cprintf("ФИО:%20s\r\nТабельный номер:%d\r\n",mas[i].fio,mas[i].tabn); break; case 3:cprintf("ФИО:%20s\r\nГод рождения:%5d\r\nТабельный номер:%d\r\n",mas[i].fio,mas[i].god,mas[i].tabn);
} getch(); return; }
Файл 5:
#include<stdio.h> #include<string.h> #include<conio.h> #include<stdlib.h> #include<graphics.h> #include<math.h> #include<dos.h> #include<bios.h>
struct pass { char fio[30]; int god; int tabn; };
void main() { struct pass s[30]; int koll,R=1,P=1; unsigned char *textmenu1[]={"1.Ввод инфо","2.Вывод инфо","3.Выход"}; unsigned char *textmenu2[]={"1.Вывод ФИО и год рождения","2.Вывод ФИО и табельный номер","3.Вывод всей инфо"}; clrscr(); // koll=vvod(s); _setcursortype(_NOCURSOR); while(R!=3) { R=winmenu(textmenu1); switch(R) { case 1: koll=vvod(s); break; case 2: P=winmenu(textmenu2); vivod(koll,s,P); break; case 3: clrscr(); textcolor(4); cprintf("Программа выполнила недопустимую операцию и будет закрыта!!!"); getch(); } } return; } Контрольные вопросы
Лабораторная работа №8 Обработка символьных данных Цель работы – овладение навыкамиалгоритмизации и программирования задач, обрабатывающих символьные данные, ввода и вывода символьных данных, их обработки, использование стандартных функций обработки символьных данных.
Задания для самостоятельной подготовки: 1. Изучить: - правила записи символьных данных (констант, переменных, массивов) и их объявление; - способы ввода и вывода символьных данных; - способы обработки символьных данных; - использование стандартных функций обработки символьных данных. 2. Разработать алгоритм решения в соответствии с заданием. 3. Составить программу решения задачи. 4. Подготовить тестовый вариант исходных данных для проверки работы программы.
Задание к работе:
Таблица 6
Пример выполнения работы
В строке удалить все лишние пробелы, оставляя между словами по одному пробелу. Обработку строки нужно производить с конца, чтобы не пропускать сочетание двух пробелов. Если встречаются два пробела подряд (текущий символ и предыдущий), удалить предыдущий символ путем копирования части строки с новой позиции, отличающейся от предыдущей на 1. Программа решения задачи имеет вид:
#include <stdio.h> //подключение файла #include <string.h> //подключение файла
void main () //заголовок функции main { char str[80],*n; int i; // объявление переменных printf (“Введите строку\n”); gets(str); //ввод строки i=strlen(str); //начальное значение (длина строки) while(i) //пока не конец строки (i не равно нулю) {if(*(str+i)= =’ ‘ &&(*(str+i-1)= =’ ‘) //если текущий и предыдущий символы пробелы {n=str+i-1; //n устанавливается на предыдущий символ while((*n=*(n+1))!=’\0’) //пока не конец строки, текущий символ переписывается на предыдущий n++; //переход к следующему символу } i--; //переход к предыдущему символу } if(*(str+strlen(str)-1)= =’ ‘) //если конечный символ пробел *(str+strlen(str)-1)=’\0’; //то он удаляется if(*(str)= =’ ‘) //если первый символ пробел {n=str; //запоминается номер текущей позиции while((*n=*(n+1))!=’\0’) //то он удаляется n++; } printf (“Строка без лишних пробелов:\n%s\n”,str); //вывод значения переменной return; //завершение функции main }
Контрольные вопросы
Лабораторная работа №9
|
||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-19; просмотров: 221; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.90.33.254 (0.015 с.) |