Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Государственный университет управления Институт информационных систем управления Кафедра информац

Работа добавлена на сайт samzan.net: 2016-06-20

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 8.5.2024

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное

учреждение высшего профессионального образования

«Государственный университет управления»

Институт информационных систем управления

Кафедра информационных систем

ОТЧЕТ

по учебной практике

на (в)   Государственный университет управления       

(название организации (предприятия))

Выполнила студентка

2 курса очной формы обучения направления подготовки Бизнес-информатика – 080500

                                                                                                         Масалович П.Ж.

(личная подпись)                                                                   (инициалы, фамилия)

Руководитель практики от кафедры  

Профессор,д.ф.-м.н.                        _____________                    Якунина Г.Е.

(ученая степень, звание)               (личная подпись)    (инициалы, фамилия) 

Москва 2014

Содержание

  1.  Индивидуальное задание с требованиями………………………………….3
  2.  Выбор проблемной области для разработки моделей……………………..4
  3.  Определение целей разработки моделей выбранной предметной области......................................................................................................................4
  4.  Постановка конкретной прикладной задачи………………………………4
  5.  Выработка требований и разработка спецификаций программной системы (ПС)……………………………………………………………………………5
  6.  Проектирование ПС…………………………………………………………6
  7.  Код программы и комментарии………………………………………..….7
  8.  Работа программы……………………………………………………..….13
  9.  Заключение……….…………………………………………………………17
  10.  Список литературы…………………………………………………………18


1.Индивидуальное задание с требованиями

 Имеются сведения о реализации жилищной программы по областям РФ: область, количество кв.метров построенного жилья за каждый год из последних 5-ти лет.

Определить:

а) для каждой области общее количество построенного за 5 лет жилья и год, когда было построено его макс. кол-во.

б) список областей, непрерывно увеличивавших в течении 5 лет строительство жилья, и область, построившую за 5 лет максимальное кол-во кв. м. жилья.

ОБЩЕЕ ЗАДАНИЕ

1). Ввести N - записей, соответствующих исходным данным индивидуального задания и создать из записей массив данных.

2). Для каждой записи выполнить задание пункта а) и результат обработки вывести на экран в виде таблицы.

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

4). Выполнить для введенных данных задание пункта б). Результат вывести в виде таблицы.


2. Выбор проблемной области для разработки моделей

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

3. Определение целей разработки моделей выбранной предметной области

Цель практики: Развитие практических навыков по модификации программы в соответствии с новыми требованиями к ней.

4. Постановка конкретной прикладной задачи

Конкретной прикладной задачей практики, направленной на решение проблем предприятия, является автоматизация определенных действий, а точнее сортировка введенных данных, сохранение этих данных в текстовой и двоичный форматы, а так же вывод ключевых расчётов. Все пункты должны будут выполнены в виде функций.


5. Выработка требований и разработка спецификаций программной системы (ПС)

Были выработаны следующие требования:

  1.  Записать исходные данные на диск в виде текстовых и двоичных файлов;
  2.  Спроектировать выполнение задания так, чтобы исходные данные могли считываться как из двоичного файла, так и вводиться с клавиатуры;
  3.  Создать функции обработки данных, соответствующие индивидуальному заданию;
  4.  Вывести результат обработки данных на экран в виде таблицы, отсортированной по выбранному полю;
  5.  Предусмотреть многократную сортировку таблицы и выход из программы по желанию пользователя;
  6.  Предусмотреть возможность записи таблиц результатов выполнения пунктов а) и б) в текстовый файл;
  7.  Все пункты задания должны быть оформлены в виде функций.


6.Проектирование ПС

Была спроектирована программа, которая отвечает всем требованиям, описанным выше.

  1.  Таблица основных переменных

Все данные, используемые в программе, можно разделить на две группы: константы и переменные. К первой группе относятся данные, не изменяющие своего значения в ходе выполнения программы, данные второй группы могут изменять свое значение.

Как константы, так и переменные могут быть различных типов, которые определяют их структуру, набор допустимых значений, правила использования и способ представления в ЭВМ. 

ПЕРЕМЕННАЯ

НАЗНАЧЕНИЕ

ТИП

char

от–128 до 127

Символьный

int

от–32768 до 32767 (16-б.);от –2147483648 до 2147483647 (32-б.платформа)

Целый

zap

Структурированный тип данных

FILE

файловая  переменная

СПИСОК И ПРОГРАММНЫЕ КОДЫ ИСПОЛЬЗУЕМЫХ ПОДПРОГРАММ

КОМАНДА

ОПИСАНИЕ

void main()

Указание  стартовой точки

clrscr()

Очистка экрана

struct

Инкапсуляции небольших групп связанных переменных

cout

Вывод текста на экран

cin

Ввод значения с клавиатуры

for

Цикл

if

Условный оператор

printf

Функция вывода значений на экран

%s

чтение строк

do{… ..} while()

Выполнение цикла (блок операторов), пока выполняется условие

switch

Выполнение одного или нескольких операторов, если значение указанного выражения совпадает с подписью

case

Оператор выбора

break

Завершает выполнение текущего цикла или, если он используется в сочетании с меткой, завершает работу связанного оператора.

cout«"\n I= "«I

Вывод на экран значения

return

Возврат в вызванную программу найденного значения

atoi

Преобразует строку, адресуемую параметром str, в значение типа int

gets

Ввод строки с клавиатуры произвольного набора символов

strlen

Возвращает длину строки, которую принимает в качестве аргумента

getch()

Ожидание нажатия клавиши

stdout

Стандартный вывод данных на экран

save  

Сохранить

fopen

Открытие файла

fwrite

Запись бинарного файла

fclose

Закрытие файла (потока)

fwrite

Запись в файл

fread

Чтение файла

fileno(i)

Возвращает    номер,              назначенный данному потоку при первом открытии

filelength(i)

Получает размер файла в байтах.

7.Код программы с комментариями

#include <iostream.h>  //библиотека для организации ввода/вывода

#include <io.h>  // библиотека для записи файла

#include <conio.h>  //библиотека, необходимая для работы оператора getch()

#include <stdio.h>  //библиотека, для использования функций, содержащихся в программе

#include <string.h>  // библиотека для поля структуры

#include <stdlib.h>  // библиотека для выделения памяти, преобразования типов

struct zap

{

 char obl[10]; //имя

 int m[5], t_m, max, nmax, inc;  // m - массив жилья за каждый год, t_m - всего, max и nmax - максимум и его год, inc - имеет значение 1, если область увеличивала строительство каждый год, иначе 0

};

void input(zap* mas,int n);

void table(FILE *ft, zap* mas,int n);

void table_b(zap* mas,int n);

int pole();

void sort(zap* mas,int n,int p);

void save(zap* mas, int n);

void wbin(FILE* f, zap* mas, int n);

void inbin(FILE *ft, zap* st, int n);

int FILESIZE(FILE* ft)

{

 int i= fileno(ft);

 long L=filelength(i);

 int n= L/sizeof(zap);

 return n;

}

int srav(zap A, zap B, int p) //принимает две струтуры типа zap и номер сравниваеиого поля p

{

 int b;

 switch(p)

{

 case 1:

  b=strcmp(A.obl,B.obl)<0; break;  //сравнение строк имени

 case 2: case 3: case 4: case 5: case 6:

  b=A.m[p-2]<B.m[p-2]; break;  //сравнение количества жилья в конкретный год

 case 7: case 9:

  b=A.t_m<B.t_m; break;  //сравнение общего количества жилья, case 7используется в общей сортировке, case 9 используется при выводе table_b

 case 8:

  b=A.nmax<B.nmax; break;  //сравнение максимально результативного года

        }

 return b;

}

void main()

{

system("cls");

FILE *ft;

 int n, p, in;  //n - количество записей, p - номер поля для сортировки

zap *st;  //указатель st на структуру типа zap

 cout<<"Vvod dannih: 1 - consol', 2 - file, 0 - vihod: ";

 do cin>>in; while(in<0 || in>2);

 if (!in) exit(0);

 else if (in==2)

{

 char title[15];

 cout<<"Vvedite imia faila *.bin: ";

 do

 {

  cin>>title;

  ft=fopen(title, "rb");

  if (!ft) cout<<"Fail ne nayden!";

 }

 while (!ft);

 n=FILESIZE(ft);

 cout<<"Koli4estvo zapisey = "<<n<<endl;

 st = new zap[n];

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

  fread(st+i, sizeof(zap), 1, ft);

 fclose(ft);

 cout<<"File uspeshno pro4itan!"<<endl;

 cout<<"Chtobi prodolzhit', nazhmite \"Enter\"...";

 getch();

}

 else

{

 cout<<"Vvedite koli4estvo oblastey: ";

 cin>>n;

 st = new zap[n];  //инициализация указателя на массив[n] структур типа zap

 input(st, n); //функция ввода всей инфы

 }

table(stdout, st, n); //таблица

save(st, n);

 while(p=pole()) //продолжается выполнение, пока пользователь явно не укажет обратное

{

 sort(st, n, p); //сортировка по выбранному полю

 if (p==9) //если был вызван второй вариант таблицы, то p присваивается значение 9

 {

  table_b(st, n); //таблица b

  cout<<"Chtobi vernut'sya, nazhmite \"Enter\"...";

  getch();

  table(stdout, st, n);  //снова таблица

 }

 else

 {

  table(stdout, st, n); //либо сразу таблица

  save(st, n);

 }

}

getch();

}

void input(zap* mas, int n)

{

zap z;  //объявление структуры z типа zap

 for(int i=0;i<n;i++)  //и ее заполнение

{

 z.t_m=0; z.max=0; z.inc=0;

 printf("\n %d. Vvedite oblast': ",i+1); cin>>z.obl; //название

 for(int j=0;j<5;j++)

 {

  printf("Vvedite kol-vo zhil'ya v %d god (1000 m^2): ",j+1); cin>>z.m[j];  //жилье за год

  z.t_m+=z.m[j];  //вычисление общего количества

  if(z.m[j]>z.max)

  {

   z.max=z.m[j]; //определение максимума для области

   z.nmax=j+1; //и его номера

  }

 }

 if ((z.m[0]<z.m[1]) && (z.m[1]<z.m[2]) && (z.m[2]<z.m[3]) && (z.m[3]<z.m[4])) z.inc++;  //если область увеличивала строительство каждый год, то inc=1

 mas[i]=z; //присваивание i-той структуре значений структуры z

}

}

void table(FILE *ft, zap* mas, int n)  

{

 if (ft==stdout)  system("cls");

fprintf(ft, " ------1------------2-------3-------4-------5-------6-------7---------8-----\n");

fprintf(ft, "     Oblast'    | 1 god | 2 god | 3 god | 4 god | 5 god | Vsego |  Max god\n");

fprintf(ft, " ---------------------------------------------------------------------------");

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

{

 fprintf(ft, "\n %2d. %10s  ",i+1,mas[i].obl);

 for(int j=0;j<5;j++) fprintf(ft, " %6d ",mas[i].m[j]);

 fprintf(ft, "  %5d    %5d", mas[i].t_m, mas[i].nmax);

}

fprintf(ft, "\n ---------------------------------------------------------------------------\n");

}

void table_b(zap* mas,int n)  //все так же как и в table

{

system("cls");

 int i,j;

cout<<" ------1------------2-------3-------4-------5-------6-------7---------8-----"<<endl;

cout<<"     Oblast'    | 1 god | 2 god | 3 god | 4 god | 5 god | Vsego |  Max god"<<endl;

cout<<" ----------------------------------------------------------------------------";

 for(i=0;i<n;i++)

 {

 if (mas[i].inc) //но выводятся только области с ненулевым inc

 {

 printf("\n %10s  ",mas[i].obl);

 for(j=0;j<5;j++) printf(" %6d ",mas[i].m[j]);

 printf("  %5d    %5d", mas[i].t_m, mas[i].nmax);

 }

}

cout<<"\n ---------------------------------------------------------------------------"<<endl;

}

int pole()  //определяет поле для сортировки

{

 int p;

 char s[1];

 do

{

 cout<<"Chtobi posmotret' tol'ko oblasti, uveli4ivavshie stroitel'stvo kazhdiy god, \nv poriadke ubivaniya, vvedite \"+\"."<<endl;

 cout<<"Ukazhite nomer polya (1 - 8) dlya sortirovki (0 - vihod): ";

 cin>>s[0];

 if (s[0]=='+') p=9;

 else   p=atoi(s);  //ascii to integer

 }

 while((p<0)||(p>9));  //ввод, пока значение p не удовлетворяет условиям

 return p;

}

void sort(zap* mas,int n,int p)

{

 int i,j,f,c;

zap z;

 if (p!=9) //определяет направление сортировки, для table

 {

 cout<<"Uporiado4it' (A-Z)? (1 - po vozrastaniu, 0 - po ubivaniu): ";

 cin>>c;

}

 else c=0;  //либо выводит в порядке убывания, исходя из условий варианта б

 for(i=0;i<n;i++)

 for(j=i+1;j<n;j++)

 {

  f=srav(mas[i], mas[j], p);  //f хранит результат сравнение

  if(c) f=!f; //и в случае сортировки по возрастанию, меняет его на обратный

  if(f)

  {

   z=mas[i];mas[i]=mas[j];mas[j]=z;  //меняем структуры местами

  }

 }

}

void save(zap* mas, int n)

{

 FILE* ft;

 int L;

 char title[15];

 cout<<"Sohranit' v fail: 1 - txt, 2 - bin ? (0 - No): "; do cin>>L; while (L<0 && L>2);

 if(L>0)

 {

   cout<<"Vvedite imia faila: ";

   cin>>title;

 }

 switch(L)

 {

   case 1: ft=fopen(title,"at");  table(ft, mas, n); fclose(ft); cout<<"\File *.txt uspeshno sohranen!"<<endl; break;

   case 2: ft=fopen(title,"wb");  wbin(ft, mas, n); fclose(ft); break;

 }

}

void wbin (FILE *f, zap* mas, int n)

{

 for (int i=0; i<n; i++) fwrite(mas+i, sizeof(zap), 1, f);

 cout<<"File *.bin uspeshno sohranen!"<<endl;

}

Данная программа:

1) вводит N – записей(цену жилья и года)

2)Для каждой записи выполняет задание пункта а) и результат обработки выводит на экран в виде таблицы.

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

4)Выполняет для введенных данных задание пункта б). Результат выводит в виде таблицы.

5)Записывает исходные данные на диск в виде текстовых и двоичных файлов;

6)Исходные данные считываются как из двоичного файла, так и вводятся с клавиатуры;

7)Предусматривается возможность записи таблиц результатов выполнения пунктов а) и б) в текстовый файл;

8.Работа программы



9.Заключение

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

Основными целями учебной практики являются

  •  углубление, закрепление и систематизация знаний, умений и навыков, полученных студентами при изучении учебных дисциплин и модулей, включающих в себя дисциплины гуманитарного, социального, экономического, естественнонаучного и профессионального циклов;
  •  подготовка студентов в условиях максимально приближенных к реальному производственному процессу к выполнению ключевых видов профессиональной деятельности менеджера по организации и управлению процессами жизненного цикла информационных систем (ИС) предприятия;
  •  закрепление у студентов практических навыков по построению моделей деятельности предприятия, а также по планированию и организации работы малых проектно-внедренческих групп, связанных с разработкой и усовершенствованием ИС предприятия.

С достижением указанных целей связано выполнение основных задач практики:

  •  выбор (совместно с преподавателем-руководителем практики) проблемной области предприятия для разработки модели;
  •  определение целей разработки модели выбранной предметной области;
  •  постановка конкретной прикладной задачи, направленной на решение проблем предприятия и повышение эффективности его работы на основе автоматизации его рабочих мест;
  •  выработка требований и разработка спецификаций будущей программной системы (ПС) по автоматизации рабочего места предприятия;
  •  проектирование ПС, разработка ее архитектуры и детальное проектирование;
  •  конструирование ПС: кодирование, интеграция, тестирование;
  •  внедрение и эксплуатация ПС;
  •  формулировка выводов об оптимальности и эффективности выполнения процессов в выбранной проблемной области и выработка рекомендаций по их совершенствованию.

10.Список литературы

1) Программа учебной практики, составленная Якуниной Г.Е.

2) Лабораторная работа

3) Индивидуальные задания и требования

4) Стефан Р. Дэвис «C++ для чайников» 2003г

5) Джесс Либерти « Освой самостоятельно C++ за 21 день»




1. правовые формы профессиональных участников рынка ценных бумаг- российская практика и международный опыт
2. конференцию со многими ведущими изданиями в области музыки в то время как фанаты встречали на улице журнали
3. КНИГА РЕГИСТРАЦИИ ВЯЗОК И ЩЕНЕНИЙ СУК название кинологической организации - пито
4. неорганизованные но могут быть организованы в полезную информацию
5. Проектування та розрахунок редуктора для стрічкового транспортера
6. Доходы экономики РФ
7. Пусть сильнее грянет буря; Дремлет чуткий камыш тишь безлюдье вокруг
8. Рынок земли Рента
9. Индивидуальные трудовые споры
10. разыскная деятельность органов внутренних дел УФА 2011
11. Взаимодействие преподавателей и студентов в вузе
12. Реферат- Чего не знал Заратустра.html
13. Тоталитарные режимы 2я часть Как сочетаются в тоталитарных обществах- а коллективные и индив
14. реферату- Закони природи і астрономіяРозділ- Астрономія авіація космонавтика Закони природи і астрономія
15. Об общих принципах организации местного самоуправления в Российской Федерации ст
16. Татьянин день Москва 1998
17. Сертификация в управлении качеством
18. вариант переработки нефти с помощью технологической классификации В нашей стране с 1967 г
19. меньшевиками 12 августа 1906 г.
20. Понятие о классификации