Advertisement
Guest User

Untitled

a guest
Jan 17th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Latex 10.29 KB | None | 0 0
  1. \documentclass[12pt,a4paper]{article}
  2.  
  3. \usepackage{amsmath,amssymb}
  4. \usepackage[utf8]{inputenc}                                      
  5. \usepackage[OT4]{fontenc}      
  6. %\usepackage[T1]{fontenc}                            
  7. \usepackage[polish]{babel}                          
  8. \selectlanguage{polish}
  9. \usepackage{indentfirst}
  10. \usepackage[dvips]{graphicx}
  11. \usepackage{tabularx}
  12. \usepackage{color}
  13. \usepackage{hyperref}
  14. \usepackage{fancyhdr}
  15. \usepackage{listings}
  16. \usepackage{booktabs}
  17. \usepackage{ifpdf}
  18. \usepackage{mathtext} % polskie znaki w trybie matematycznym
  19. %\makeindex  % utworzenie skorowidza (w dokumencie pdf)
  20. \usepackage{lmodern}
  21. %\usepackage[osf]{libertine}
  22. \usepackage{filecontents}
  23.  
  24.  
  25. \usepackage{tikz}
  26. \usetikzlibrary{arrows}
  27.  
  28.  
  29. \newcounter{nextYear}
  30. \setcounter{nextYear}{\the\year}
  31. \stepcounter{nextYear}
  32.  
  33. % rozszerzenie nieco strony
  34. %\setlength{\topmargin}{-1cm} \setlength{\textheight}{24.5cm}
  35. %\setlength{\textwidth}{17cm} \addtolength{\hoffset}{-1.5cm}
  36. %\setlength{\parindent}{0.5cm} \setlength{\footskip}{2cm}
  37. %\linespread{1.2} % odstep pomiedzy wierszami
  38.  
  39. \ifpdf
  40. \DeclareGraphicsRule{*}{mps}{*}{}
  41. \fi
  42.  
  43.  
  44. \newcommand{\tl}[1]{\textbf{#1}}
  45. \pagestyle{fancy}
  46. \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
  47. \fancyhf{} % usuwanie bieżących ustawień
  48. \fancyhead[LE,RO]{\small\bfseries\thepage}
  49. \fancyhead[LO]{\small\bfseries\rightmark}
  50. \fancyhead[RE]{\small\bfseries\leftmark}
  51. \renewcommand{\headrulewidth}{0.5pt}
  52. \renewcommand{\footrulewidth}{0pt}
  53. \addtolength{\headheight}{0.5pt} % pionowy odstęp na kreskę
  54. \fancypagestyle{plain}{%
  55. \fancyhead{} % usuń p. górne na stronach pozbawionych numeracji
  56. \renewcommand{\headrulewidth}{0pt} % pozioma kreska
  57. }
  58.  
  59. % ustawienia listingu programow
  60. %\lstset{   language=C++,
  61. %           numbers=left,
  62. %           numberstyle=\tiny,
  63. %           stepnumber=1,
  64. %           numbersep=5pt,
  65. %           stringstyle=\ttfamily,
  66. %           showstringspaces=false,
  67. %           tabsize=4
  68. %       }
  69.  
  70. \lstset{%
  71. language=C++,%
  72. commentstyle=\textit,%
  73. identifierstyle=\textsf,%
  74. keywordstyle=\sffamily\bfseries, %
  75. %captionpos=b,%
  76. tabsize=3,%
  77. frame=lines,%
  78. numbers=left,%
  79. numberstyle=\tiny,%
  80. numbersep=5pt,%
  81. breaklines=true,%
  82. morekeywords={pWezel,Wezel,string,ref,params_result,string},%
  83. escapeinside={(*@}{@*)},%
  84. %basicstyle=\footnotesize,%
  85. %keywords={double,int,for,if,return,vector,matrix,void,public,class,string,%
  86. %float,sizeof,char,FILE,while,do,const}
  87. }
  88. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  89.  
  90. % mala zmiana sposobu wyswietlania notek bocznych
  91. \let\oldmarginpar\marginpar
  92. \renewcommand\marginpar[1]{%
  93.   {\linespread{0.85}\normalfont\scriptsize%
  94. %   \oldmarginpar[\vspace{-1.5ex}\raggedleft\scriptsize\color{black}\textsf{#1}]%    left pages
  95. %                {\vspace{-1.5ex}\raggedright\scriptsize\color{black}\textsf{#1}}% right pades
  96. \oldmarginpar[\hspace{1cm}\begin{minipage}{3cm}\raggedleft\scriptsize\color{black}\textsf{#1}\end{minipage}]%    left pages
  97. {\hspace{0cm}\begin{minipage}{3cm}\raggedright\scriptsize\color{black}\textsf{#1}\end{minipage}}% right pages
  98. }%
  99. }
  100. % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
  101.  
  102.  
  103. \begin{document}
  104. \frenchspacing
  105. \thispagestyle{empty}
  106. \begin{center}
  107. {\Large\sf Politechnika Śląska w Gliwicach   % Alma Mater
  108.  
  109. Wydział Automatyki, Elektroniki i Informatyki
  110.  
  111. }
  112.  
  113. \vfill
  114.  
  115. \includegraphics[width=0.30\textwidth]{polsl.jpg}
  116.  
  117. \vfill\vfill
  118.  
  119. {\Huge\sffamily\bfseries Podstawy Programowania Komputerów} \\
  120.  
  121. \vfill\vfill
  122.  
  123. {\LARGE\sf Loty}  
  124.  
  125.  
  126. \vfill \vfill\vfill\vfill
  127.  
  128. %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  129.  
  130.  
  131. \begin{tabular}{ll}
  132. \toprule
  133.     autor                                                  & Natalia Cheba   \\
  134.     prowadzący                                             & dr inż. Adam Gudyś      \\
  135.     rok akademicki                                         & 2018/2019 \\
  136.     kierunek                                               & informatyka                 \\
  137.     rodzaj studiów                                         & SSI                         \\
  138.     semestr                                                & 1                           \\
  139.     termin laboratorium / ćwiczeń                          & poniedziałek, 10:15 -- 11:45      \\
  140.     grupa                                                  & 1                           \\
  141.     sekcja                                                 & 1                           \\
  142.     termin oddania sprawozdania                            & \the\year-01-19             \\
  143.     data oddania sprawozdania                              & \the\year-01-12           \\
  144. \bottomrule &  \\
  145. \end{tabular}
  146.  
  147. \end{center}
  148. %%%%%%%%%%%%%
  149. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  150. \cleardoublepage
  151. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  152.  
  153. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  154. \section{Treść zadania}
  155.     Korzystając z dynamicznych struktur danych napisać program, który przygotowuje listy pasażerów. Pasażerowie mogą rezerwować bilety na różne loty w różnych biurach i przez internet. Wszystkie rezerwacje są zapisywane w biurze centralnym. Mają one następującą postać: \newline \newline
  156.  {\small\sf
  157. (symbol lotu) (lotnisko startowe) (data lotu) (nazwisko pasażera) (nr miejsca)
  158. } \newline \newline
  159. Przykładowy plik z rezerwacjami:
  160. \newline
  161. \texttt{KR54R Katowice 2011-12-13 Jaworek 33} \newline
  162. \texttt{TY340 London 2012-02-03 Hastings 2} \newline
  163. \texttt{TY340 London 2012-02-03 Poirot 23} \newline
  164. \texttt{KR54R Katowice 2011-12-13 Matianek 02} \newline
  165. \texttt{TY340 London 2012-02-03 Holmes 11} \newline
  166. \texttt{KR54R Katowice 2011-12-13 Lopez 12} \newline
  167. \texttt{TY340 London 2012-02-03 Lemon 43} \newline
  168. \texttt{KR54R Katowice 2011-12-13 Chavez 43} \newline
  169.  
  170. Na podstawie pliku z rezerwacjami należy stworzyć plik z listą pasażerów dla każdego lotu. Każda lista jest tworzona w odrębnym pliku. Nazwą pliku jest symbol lotu. W pliku umieszczona jest nazwa lotniska i data. W kolejnych liniach umieszczone są numery siedzeń i nazwiska pasażerów, posortowane wg numerów.Dla powyższego pliku zostaną utworzone pliki:  \texttt{KR54R.txt} i
  171. \texttt{TY340.txt}. \newline
  172. Plik \texttt{KR54R.txt}: \newline \newline
  173. \texttt{symbol lotu:  KR54R} \newline
  174. \texttt{lotnisko:  \hspace{0.46cm}  Katowice} \newline
  175. \texttt{data lotu:  \hspace{0.23cm}  2011-12-13} \newline
  176. \newline
  177. \texttt{lista pasazerow:} \newline
  178. \texttt{02 Matianek} \newline
  179. \texttt{11 Lopez} \newline
  180. \texttt{33 Jaworek} \newline
  181. \texttt{43 Chavez} \newline
  182.  
  183. \texttt{liczba rezerwacji: 4}. \newline \newline
  184. Program uruchamiany jest z linii poleceń z wykorzystaniem następującego przełącznika: \texttt{-i plik wejsciowy z rezerwacjami}.
  185.  
  186.  
  187.  
  188. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  189. \section{Analiza zadania}
  190.  
  191. Program przedstawia problem sortowania lotów z pliku wejściowego oraz przydzielanie do odpowiednich lotów pasażerów w sposób posortowany według miejsc.
  192.  
  193. \subsection{Struktury danych}
  194.  
  195. W programie wykorzystano drzewo binarne i listę jednokierunkową. Lista przechowuje parametry lotu tj. identyfikator lotu, lotnisko startowe oraz datę lotu, natomiast drzewo posiada wszystkie informacje dotyczące pasażerów tj. nazwisko pasażera i numer miejsca. Wybranie takiej zagnieżdżonej struktury danych (lista drzew) powoduje szybkie sortowanie danych.
  196.  
  197.  
  198. \subsection{Algorytmy}
  199.  
  200. Program pobiera z pliku wejściowego wszystkie parametry lotu przeszukując czy lot o podanych parametrach istnieje. Jeżeli istnieje, program dopisuje pasażera do listy pasażerów dla konkretnego lotu. Jeżeli lot, który pobrał program nie znajduje się w liście lotów, program dodaje nową listę.
  201.  
  202. \section{Specyfikacja zewnętrzna}
  203.  
  204. Program jest uruchamiany z linii poleceń. Przy wywoływaniu programu możliwe jest użycie przełączników  \texttt{-i}.
  205. Po wykorzystaniu przełącznika  \texttt{-i} należy przekazać do programu nazwę pliku wejściowego. Instrukcja
  206. \begin{verbatim}
  207. podaj dobre argumenty
  208. \end{verbatim}
  209. jest wyświetlana w przypadku podania niepoprawnych danych.
  210. \newline
  211. Przykładowe wywołania programu:
  212. \begin{verbatim}
  213. start Loty.exe -i  ".../Loty.txt"
  214. \end{verbatim}
  215.  
  216. Program tworzy i zapisuje spis pasażerów w pliku tekstowym. Plik tekstowy dla każdego lotu jest nazwany jego symbolem lotu.
  217.  
  218. \includegraphics[width=0.30\textwidth]{1.png}
  219. \newline \newline \newline
  220.  
  221. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  222.  
  223.  
  224. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  225.  
  226. W przypadku podania pliku, który nie istnieje wyświetlana jest instrukcja
  227. \begin{verbatim}
  228. plik nie istnieje
  229. \end{verbatim}
  230. \includegraphics[width=0.90\textwidth]{3.png}
  231.  
  232. W przypadku podania pliku, który jest pusty wyświetlana jest instrukcja
  233. \begin{verbatim}
  234. Plik jest pusty
  235. \end{verbatim}
  236. \includegraphics[width=0.90\textwidth]{4.png}
  237. \section{Testowanie}
  238. Program został przetestowany na różnego rodzaju plikach: pustych i nie istniejących. Obydwa przypadki powodują zgłoszenie błędu : Plik jest pusty lub Plik nie istnieje. Dodatkowo sprawdzony został pod kątem wprowadzenia złego przełącznika. W przypadku podania błędnego pojawia się komunikat "podaj dobre argumenty".  W przypadku podania błednych danych : złe lotnisko, złe nazwisko, zły numer miejsca, zła data, program działa i nie uwzględnia podania błędnych informacji. Program został przetestowany też dla dużej ilości danych ponad 1,5Mb i kilku bajtów. Program działał trochę wolniej dla dużej ilości danych. Program został sprawdzony pod kątem wycieków pamięci tak, aby nie dopuścić do ani jednego wycieku.
  239.  
  240.  
  241.  
  242. \section{Wnioski}
  243.  
  244. Program Loty jest programem ciekawym, ponieważ wymaga znajomości drzew i list. Szczególnie trudne w tym projekcie okazało się porównywanie pól związanych z parametrami lotu.  Najbardziej wymagające okazało się podzielenie plików na .h i .cpp. Dodatkowo dużym problemem stanowiły przełączniki. Pomimo wielu trudności projekt okazał się doskonałą okazją do poznania wielu ciekawych nowych funkcji i konstrukcji.
  245.  
  246.  
  247. %\begin{figure}[t]
  248. %\centering
  249. %\includegraphics{graf/rysunek.1}
  250. %\caption{Opis rysunku znajduje się pod nim.}
  251. %\label{fig:rysunek}
  252. %\end{figure}
  253.  
  254. \end{document}
  255. % Koniec wieńczy dzieło.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement