ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.03.2024

Просмотров: 7

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.




МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФГБОУ ВО «Брянский государственный технический университет»



Факультет информационных технологий

Языки программирования

Курсовой проект

РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ C#

«Органайзер»

Выполнил:

Студент группы О-21-ИБ-1-ОЗИ-Б
Свидовский Н.Д.

Преподаватель:

Горлов А.П.

Брянск 2022

Содержание


Введение 3

Постановка задачи 5

Описание программы 6

Руководство пользователя 6

Выбор 2-го действия 9

Вывод 10

Список использованной литературы 11

Приложение 12



Введение

С# – это объектно-ориентированный язык программирования. Он был создан в период с 1998 по 2002 год командой инженеров Microsoft под руководством Андерса Хейлсберга и Скотта Вильтаумота. 

Язык входит в семью С-подобных языков. Синтаксис приближен к Java и C++. Его особенности: 

  • статистическая типизация, 

  • поддерживается полиморфизм,

  • поддерживается перегрузка операторов,

  • доступна делегация, атрибуты, события, обобщенные типы и анонимные функции.

Разработка Microsoft много особенностей унаследовала у Delphi, Smalltalk и Java. При этом создатели нового языка исключили из своего детища многие практики и спецификации, считающиеся «проблемными».

С# популярен за счет своей «простоты». Простоты для современных программистов и больших команд разработчиков, чтобы те могли в сжатые сроки создавать функциональные и производительные приложения. Этому способствуют нетипичные конструкции языка и специфичный синтаксис, помогающий максимально органично реализовать намеченные функции.

Популярность языка – еще одно значимое преимущество. Большое количество поклонников C# способствуют его развитию. Также это благоприятно влияет на рост числа вакансий, связанных с разработкой на языке Microsoft. Программисты, хорошо знакомые с С#, востребованы в индустрии, несмотря на их большое и постоянно увеличивающееся количество. 

Понятный синтаксис C# заметно упрощает не только разработку как таковую, но и другие важные аспекты совместной работы, например, чтение чужого кода. Это упрощает процесс рефакторинга и исправления ошибок при работе над приложениями в больших командах.

Также нельзя не упомянуть низкий порог вхождения. С# – популярная и достаточно простая в освоении технология. Уже через полгода можно поднатореть в разработке и начать делать полноценные программы.

Строка — это объект типа String, значением которого является текст. Внутри программы текст хранится в виде упорядоченной коллекции объектов Char только для чтения. В конце строки C# нет символа, завершающего значение NULL; поэтому строка C# может содержать любое количество внедренных символов NULL ('\0').

Класс в языке C# объявляется с помощью ключевого слова class перед ним могут стоять несколько модификаторов, после располагается имя класса. Если предполагается, что класс является наследником другого класса или реализует один или несколько интерфейсов, то они отделяются двоеточием от имени класса и перечисляются через запятую.

Классы работы с файловой системой находятся в пространстве имен System.IO (сборка mscorlib.dll). IO – сокращение от английского Input/Output (ввод/вывод, запись/чтение). Пространство имен System.IO содержит классы для работы с каталогами и дисками, такие как: DriveInfoDirectoryDirectoryInfo. Классы для работы с файлами: FileFileInfo. Класс для работы с путями: Path. Помимо этого System.IO содержит основные классы для работы с потоками: StreamFileStreamStreamReaderStreamWriterStringReaderStringWriterTextReaderTextWriterBinaryReaderBinaryWriter и MemoryStream.

Конструкция switch/case оценивает некоторое выражение и сравнивает его значение с набором значений. И при совпадении значений выполняет определенный код. После ключевого слова switch в скобках идет сравниваемое выражение. Значение этого выражения последовательно сравнивается со значениями, помещенными после оператора сase. И если совпадение будет найдено, то будет выполняться определенный блок сase.

В конце каждого блока сase должен ставиться один из операторов перехода: breakgoto casereturn или throw. Как правило, используется оператор break. При его применении другие блоки case выполняться не будут.

Постановка задачи

Задачей курсового проекта является разработка программы – планировщик-органайзер. В программе будет доступно заполнения данных определенного дня недели, информация будет включать в себя: день недели, время в которое нужно выполнить, что нужно выполнить, заметка на день. Также, в программе будет доступен поиск дня недели.

Управление в программе реализуется с помощью выбора 1 (создать новый день), 2 (поиск дня недели) и 3 (выключение программы).

Описание программы




Рис. 1. - Блок схема алгоритма программного кода

Программа сохраняет всю информацию в отдельно-созданном текстовом файле. После запуска, программа предлагает следующие действия: 1 - добавить день | 2 - найти день, который нужен Вам | 3 - выход.

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

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

При 3-м выборе, программа завершает работу.

Руководство пользователя





  1. Запустите программу;

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

  3. После создания/чтения файла программой, она предложит вам следующие действия: 1 - добавить день | 2 - найти день, который нужен Вам | 3 - выход;

    1. Введите «1», после чего вам потребуется ввести данные о человеке, которого Вы хотите сохранить в вашей записной книжке (данные, которые потребуются: день недели, время в которое нужно выполнить, что нужно выполнить, заметка на день);

    2. Введите «2», если хотите найти определенного человека. Для поиска данных, программе потребуется, чтобы Вы ввели дня недели, который Вы ищете;

    3. Введите «3» для завершения работы программы.

Тестирование

Запуск программы



Рис. 2. – Процесс работы запуска программы

Выбор 1-го действия



Рис. 3. – Процесс работы программы



Рис. 4. – Процесс работы программы

Выбор 2-го действия




Рис. 5. – Процесс работы программы



Рис. 6. – Процесс работы программы

Выбор 3-го действия



Рис. 7. – Процесс завершения работы программы

Вывод


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

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

Различные тесты отображены в скриншотах.

Список использованной литературы




  1. Страуструп Б. Язык программирования C#: Пер. с англ. – 3-е спец. изд. – М.: Бином, 2003. – 1104 с.

  2. Страуструп Б. Дизайн и эволюция языка C#. Объектно-ориентированный язык программирования: Пер. с англ. – М.: ДМК пресс, Питер, 2006. – 448 с.

  3. Эккель Б. Философия C#. Введение в стандартный C#: Пер. с англ. – 2-е изд. – СПб.: Питер, 2004. – 572 с.

  4. Эккель Б., Эллисон Ч. Философия C#. Практическое программирование: Пер. с англ. – СПб.: Питер, 2004. – 608 с.


Приложение


Приложение 1. Листинг программного кода

using System;

using System.IO;

using System.Text;
namespace Planirovshik

{

class Programka

{

static void Main(string[] args)

{

string file_name = "Планировщик-органайзер.txt";

string state = null;

Console.ForegroundColor = ConsoleColor.Green;

Console.BackgroundColor = ConsoleColor.Black;

Console.Clear();

Console.WriteLine("============== Запуск программы ==============");

if (System.IO.File.Exists(Convert.ToString(Path.GetFullPath(file_name))) == false)

Console.WriteLine("Файл -Планировщик-органайзер.txt- не найден, поэтому он будет создан автоматически . .");

Console.WriteLine("========================== Готово ====================");

while (state != "3")

{

try

{

Console.WriteLine(" 1 - добавить день | 2 - найти день, который нужен Вам | 3 - выход");

Console.WriteLine("==========================================================");

state = Console.ReadLine();

switch (state)

{

case "1":

Planirovshik temp = new Planirovshik();

Console.WriteLine("Введите день недели: ");

temp.Day = Console.ReadLine();

Console.WriteLine("Время в которое нужно выполнить: ");

temp.Time = Console.ReadLine();

Console.WriteLine("Какой квест нужно выполнить: ");

temp.Quest = Console.ReadLine();

Console.WriteLine("Введите заметку на день: ");

temp.Zametki = Console.ReadLine();

temp.WritePlanirovshik();

break;

case "2":

string n = null;

Console.WriteLine("Введите день, чтобы узнать задачи: ");

n = Console.ReadLine();

Planirovshik.DisplayPlanirovshik(n);

break;
default:

break;

}

}

catch (Exception e)

{

Console.WriteLine(e.Message);

}

}

Console.WriteLine("Работа завершена . . .");

Console.ReadLine();

}

}

public class Planirovshik

{

public string Day { get; set; }

public string Time { get; set; }

public string Quest { get; set; }

public string Zametki { get; set; }

public Planirovshik() { }

public void WritePlanirovshik()

{

using (StreamWriter sw = File.AppendText("Планировщик-органайзер.txt"))

{

sw.WriteLine(this.Day);

sw.WriteLine(this.Time);

sw.WriteLine(this.Quest);

sw.WriteLine(this.Zametki);

}

}

public static void DisplayPlanirovshik(string day)

{

using (StreamReader sr = File.OpenText("Планировщик-органайзер.txt"))

{

string temp = null;

while ((temp = sr.ReadLine()) != day && temp != null) ;

if (temp == day)

{

Console.WriteLine("День недели: " + temp);

Console.WriteLine(String.Format("Время: " + sr.ReadLine()));

Console.WriteLine(String.Format("Что нужно выполнить: " + sr.ReadLine()));

Console.WriteLine(String.Format("Заметка: " + sr.ReadLine()));

}

else

Console.WriteLine("День не найден . . .");

}

}

}

}