Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






ЗАКЛЮЧЕНИЕ. Системное программное обеспечение

КУРСОВАЯ РАБОТА

по дисциплине

Системное программное обеспечение

 

на тему

Органайзер-ежедневник

 

Пояснительная записка

 

Студент группы ВС2 – 08 …………………………………..Курков М. О.

(Подпись, дата)

 

Руководитель канд. техн. наук, доцент ………………….. Тонкий Л. В.

(Подпись, дата)

 

 

Рыбинск 2011


Содержание

Введение………………………………………………………………………...  
1 Анализ технического задания………………………………………………..  
2 Разработка блок-схемы алгоритма…………………………………………..  
3 Разработка и описание программы………………………………………….  
4 Руководство пользователя…………………………………………………...  
4.1 Назначение программы…………………………………………………..  
4.2 Минимальные системные требования ………….…………………..…..  
4.3 Описание работы программы …………..……………………………….  
5 Текст программы……………………………………………………………..  
Заключение……………………………………………………………………...  
Список использованных источников………………………………………….  

 


ВВЕДЕНИЕ

 

На данный момент создано большое количество ПО, упрощающего работу человека с записями, заметками. Они представляют собой необходимый инструмент делового человека, но, зачастую, задачи, выполняемые ими носят сложный, комплексный характер. Целью разработки данной программы стала упрощение работы пользователя с заметками, которые необходимо всегда иметь под рукой. Аналогом анной программы является всем известный ежедневник.


1 АНАЛИЗ ТРЕБОВАНИЙ ТЕХНИЧЕСКОГО ЗАДАНИЯ

 

Реализация этой программы осуществляется в среде программирования Visual Studio 2010 на языке C#.

При запуске программы перед пользователем появляется главное окно (форма) программы. Она включает календарь, в котором можно посмотреть расписание на любой день, набор кнопок, нажатие на которые приводит к появлению соответствующего дня недели (от понедельника до вторника). Главным является компонент ListBox, который собственно и отображает занятия, меню MainMenu, предназначенное для управления работой программы. Главное меню содержит набор функций для работы со списком:

- Создание;

- Загрузка списка;

- Сохранение;

- Завершение работы.

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


2 РАЗРАБОТКА БЛОК-СХЕМ АЛГОРИТМОВ

Основной алгоритм работы программы представлен следующей блок-схемой на рисунке

Рисунок 2.1 – Блок-схема работы программы


3 РАЗРАБОТКА И ОПИСАНИЕ ПРОГРАММЫ

 

1) Получение системного времени и даты.

Для этого используется тип данных DateTime и метод Now. Тип данных dateTimeFormats служит для удобного преобразования времени в строковый формат. Текущее время и дата отображаются над списком задач.

 

2) Разработка секции хранения событий.

Разработана соответствующая структура xml для хранения всех заметок и заданий. Также их можно удобно редактировать кликнув по кнопке «Добавить/Изменить».

 

3) Разработка и реализация секундомера.

Управление программой осуществляется из меню MainMenu. Возможны следующие операции:

- Создание нового списка заметок;

- Открытие окна настроек;

- Открытия окна «О программе»

- Завершение работы программы.

 


4 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

4.1 НАЗНАЧЕНИЕ ПРОГРАММЫ

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

- Интуитивно понятный, простой интерфейс, удобный ввод расписания

- Напоминание о занятиях

- Учитывать четные/нечетные учебные недели
4.2 МИНИМАЛЬНЫЕ СИСТЕМНЫЕ ТРЕБОВАНИЯ

– IBM совместимый компьютер с микропроцессором Intel Pentium;

– 10 Мб свободного пространства на HDD;

– не менее 64 Мб оперативной памяти;

– видеоадаптер SVGA;

– программный продукт должен корректно выполняться в

операционных системах Windows XP/Vista/7;

– среда разработки – Visual Studio 2010.NET

– средства управления: клавиатура, манипулятор типа «мышь».

Программа представляет собой единый *.exe файл с названием «My Goals.exe».


4.3 ОПИСАНИЕ РАБОТЫ ПРОГРАММЫ

При запуске программы появляется основное окно, рисунок 4.1.

Рисунок 4.1 – Основное окно программы

Слева находится календарь, справа от него кнопки выбора дня недели ПН…СБ. В верхней части программы отображается день недели, номер и четность/нечетность недели, дата и время. Справа находится ListBox, в котором отображаются текущие заметки и задания. В верхней части окна располагается меню и панель инструментов рисунок 4.2

Рисунок 4.2 – Панель инструментов

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

Форма управления расписанием(рисунок 4.3).

 

При клике на кнопку «Добавить/Изменить» появляется форма 4.3, где можно удобно ввести свое расписание. В форме присутствует три поля:

1. Наименование предмета

2. Тип: лекция/практика

3. На четной или нечетной неделе

 

 


5 ИСХОДНЫЙ КОД ПРОГРАММЫ

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Xml;

using System.IO;

using System.Globalization;

 

namespace WindowsFormsApplication1

{

public partial class Form1: Form

{

public static string[] MON1 = new string[6]; //массивы строк для хранения

public static string[] MON2 = new string[6]; //занятий на каждый день

public static string[] MON3 = new string[6];

public static string[] MON4 = new string[6];

public static string[] MON5 = new string[6];

 

public static string[] THU1 = new string[6];

public static string[] THU2 = new string[6];

public static string[] THU3 = new string[6];

public static string[] THU4 = new string[6];

public static string[] THU5 = new string[6];

 

public static string[] WEN1 = new string[6];

public static string[] WEN2 = new string[6];

public static string[] WEN3 = new string[6];

public static string[] WEN4 = new string[6];

public static string[] WEN5 = new string[6];

 

public static string[] THUR1 = new string[6];

public static string[] THUR2 = new string[6];

public static string[] THUR3 = new string[6];

public static string[] THUR4 = new string[6];

public static string[] THUR5 = new string[6];

 

public static string[] FRI1 = new string[6];

public static string[] FRI2 = new string[6];

public static string[] FRI3 = new string[6];

public static string[] FRI4 = new string[6];

public static string[] FRI5 = new string[6];

 

public static string[] SAT1 = new string[6];

public static string[] SAT2 = new string[6];

public static string[] SAT3 = new string[6];

public static string[] SAT4 = new string[6];

public static string[] SAT5 = new string[6];

 

public static string ss = String.Empty;

static public string peremen = String.Empty;

public static DateTime CurrTime; //текущее время

public static int nWeekNumber;

public static int day;

public static int week;

public Form1()

{

InitializeComponent();

}

 

static void Read()

{

//Чтение настроек

 

if (! File.Exists(@" settings.xml"))

{

MessageBox.Show(" File 'Settings.xml' Not Found! ", " Error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

}

else

{

XmlReader reader1 = XmlReader.Create(@" settings.xml");

if (! reader1.Read())

{

MessageBox.Show(" Read Error", " Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

else

{

while (reader1.Read())

{

if (reader1.Name == " WEEK")

{

week = Convert.ToInt32(reader1.ReadInnerXml());

 

}

}

}

}

if (! File.Exists(@" Week.xml"))

{

MessageBox.Show(" File Not Found! ", " Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

else

{

XmlReader reader = XmlReader.Create(@" Week.xml");

if (! reader.Read())

{

MessageBox.Show(" Read Error", " Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

else

{

while (reader.Read())

{

if (reader.Name == " MONDAY" & & reader.GetAttribute(" id") == " 1")

{

peremen = reader.ReadInnerXml();

MON1 = peremen.Split('? ');

 

}

if (reader.Name == " MONDAY" & & reader.GetAttribute(" id") == " 2")

{

peremen = reader.ReadInnerXml();

MON2 = peremen.Split('? ');

 

}

if (reader.Name == " MONDAY" & & reader.GetAttribute(" id") == " 3")

{

peremen = reader.ReadInnerXml();

MON3 = peremen.Split('? ');

 

}

if (reader.Name == " MONDAY" & & reader.GetAttribute(" id") == " 4")

{

peremen = reader.ReadInnerXml();

MON4 = peremen.Split('? ');

 

}

if (reader.Name == " MONDAY" & & reader.GetAttribute(" id") == " 5")

{

peremen = reader.ReadInnerXml();

MON5 = peremen.Split('? ');

}

//--------------------------------------------------------------------

 

if (reader.Name == " THUESDAY" & & reader.GetAttribute(" id") == " 1")

{

peremen = reader.ReadInnerXml();

THU1 = peremen.Split('? ');

 

}

if (reader.Name == " THUESDAY" & & reader.GetAttribute(" id") == " 2")

{

peremen = reader.ReadInnerXml();

THU2 = peremen.Split('? ');

 

}

if (reader.Name == " THUESDAY" & & reader.GetAttribute(" id") == " 3")

{

peremen = reader.ReadInnerXml();

THU3 = peremen.Split('? ');

 

}

if (reader.Name == " THUESDAY" & & reader.GetAttribute(" id") == " 4")

{

peremen = reader.ReadInnerXml();

THU4 = peremen.Split('? ');

 

}

if (reader.Name == " THUESDAY" & & reader.GetAttribute(" id") == " 5")

{

peremen = reader.ReadInnerXml();

THU5 = peremen.Split('? ');

}

 

if (reader.Name == " WENSDAY" & & reader.GetAttribute(" id") == " 1")

{

peremen = reader.ReadInnerXml();

WEN1 = peremen.Split('? ');

 

}

if (reader.Name == " WENSDAY" & & reader.GetAttribute(" id") == " 2")

{

peremen = reader.ReadInnerXml();

WEN2 = peremen.Split('? ');

 

}

if (reader.Name == " WENSDAY" & & reader.GetAttribute(" id") == " 3")

{

peremen = reader.ReadInnerXml();

WEN3 = peremen.Split('? ');

 

}

if (reader.Name == " WENSDAY" & & reader.GetAttribute(" id") == " 4")

{

peremen = reader.ReadInnerXml();

WEN4 = peremen.Split('? ');

 

}

if (reader.Name == " WENSDAY" & & reader.GetAttribute(" id") == " 5")

{

peremen = reader.ReadInnerXml();

WEN5 = peremen.Split('? ');

}

 

}

reader.Close();

}

}

 

private void button1_Click(object sender, EventArgs e)

{

Form F = new Form2();

F.Show();

}

 

 

public string dayofweek(int d, int m, int y)

{

int result = 0;

int n = 0;

string return_s = " ";

if (m > 2)

{

m = m + 1;

}

else

{

m = m + 13;

y = y - 1;

}

n = 36525 * y / 100 + 306 * m / 10 + d - 621050;

result = n - n / 7 * 7 + 1;

 

switch (result)

{

case 1:

return_s = " Понедельник";

break;

case 2:

return_s = " Вторник";

break;

case 3:

return_s = " Среда";

break;

case 4:

return_s = " Четверг";

break;

case 5:

return_s = " Пятница";

break;

case 6:

return_s = " Суббота";

break;

case 7:

return_s = " Воскресение";

break;

}

return return_s;

}

private int week_of_year()

{

DateTime dtNow = DateTime.Now;

return 0;

}

 

private void label1_Click(object sender, EventArgs e)

{

MessageBox.Show(DateTime.Now.DayOfWeek.ToString());

DateTime dtNow = DateTime.Now;

 

int nWeekNumber = System.Globalization.CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(dtNow,

System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday);

label1.Text = nWeekNumber.ToString();

 

}

private void Weeks()

{

Form F3 = new Form3();

 

}

 

private void Form1_Load(object sender, EventArgs e)

{ Read();

DateTime dtNow = DateTime.Now;

switch (dtNow.DayOfWeek)

{

 

case DayOfWeek.Monday:

button2_Click(sender, e);

MessageBox.Show(" MON");

break;

case DayOfWeek.Tuesday:

button3_Click(sender, e);

break;

case DayOfWeek.Wednesday:

button4_Click(sender, e);

break;

case DayOfWeek.Thursday:

button5_Click(sender, e);

break;

case DayOfWeek.Friday:

button6_Click(sender, e);

break;

case DayOfWeek.Saturday:

button7_Click(sender, e);

break;

 

}

 

}

 

private void timer1_Tick(object sender, EventArgs e)

{

CurrTime = DateTime.Now;

DateTimeFormatInfo dateTimeFormats;

dateTimeFormats = new CultureInfo(" ru-RU").DateTimeFormat;

string s;

if (week % 2 == 0)

s = " Четная";

else s = " Нечетная";

 

day = monthCalendar1.TodayDate.ToString()[0];

nWeekNumber = System.Globalization.CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(CurrTime,

System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday);

label2.Text = CurrTime.ToString(" dddd")+" / " +week.ToString() + s + " неделя ";

label3.Text = CurrTime.ToString();

}

 

private void button2_Click(object sender, EventArgs e)

{

listBox1.Items.Clear();

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

{

listBox1.Items.Add(i+1+". " +MON5[i]+" - " +MON1[i]);

 

}

}

 

 

private void button3_Click(object sender, EventArgs e)

{

listBox1.Items.Clear();

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

{

listBox1.Items.Add(i + 1 + ". " + THU5[i] + " - " + THU1[i]);

 

}

}

 

private void button4_Click(object sender, EventArgs e)

{

listBox1.Items.Clear();

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

{

listBox1.Items.Add(i + 1 + ". " + WEN5[i] + " - " + WEN1[i]);

 

}

}

 

private void button5_Click(object sender, EventArgs e)

{

listBox1.Items.Clear();

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

{

listBox1.Items.Add(i + 1 + ". " + THUR5[i] + " - " + THUR1[i]);

 

}

}

 

private void button6_Click(object sender, EventArgs e)

{

listBox1.Items.Clear();

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

{

listBox1.Items.Add(i + 1 + ". " + FRI5[i] + " - " + FRI1[i]);

 

}

}

 

private void button7_Click(object sender, EventArgs e)

{

listBox1.Items.Clear();

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

{

listBox1.Items.Add(i + 1 + ". " + SAT5[i] + " - " + SAT1[i]);

 

}

}

 

private void toolStripButton2_Click(object sender, EventArgs e)

{

Form F3 = new Form3();

F3.Show();

}

 

private void quitToolStripMenuItem_Click(object sender, EventArgs e)

{

Close();

}

 

private void settingsToolStripMenuItem_Click(object sender, EventArgs e)

{

Form F3 = new Form3();

F3.Show();

}

 

private void добавитьИзменитьToolStripMenuItem_Click(object sender, EventArgs e)

{

Form F2 = new Form2();

F2.Show();

}

}

}

 


ЗАКЛЮЧЕНИЕ

В результате работы было создано удобное и практичное приложение «Органайзер-ежедневник». Были получены навыки работы с функциями в среде проектирования Visual Studio 2010 вместе с.NET 4.0. Были выполнены все функциональные требования и требования по надежности изложенные в техническом задании.


<== предыдущая лекция | следующая лекция ==>
Методичні вказівки. До самостійної роботи длявиконання практичної роботи | Определение титруемой кислотности в молоке




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.