6.4 Расчет предполагаемой прибыли

Итак, общие затраты на создания программного продукта составляют 2200 рублей. Исходя из 50% рентабельности, сумму, которую мы хотим выручить, рассчитаем по формуле

С = З + П = 2200 + 1100 » 3300 руб. (6.4)

Эта сумма без налога на добавленную стоимость (НДС). Планируется ее получить от продажи 100 программных продуктов. Анализ рынка говорит, что реализовать такое количество не составит особых проблем. Исходя из этого, посчитаем цену одного программного комплекса без учета НДС

Ц = С / 5 = 3300 / 100 = 33 руб.(6.5)

Теперь посчитаем окончательную цену одного программного продукта с учетом НДС 18%.

НДС = ((З + П) / 100) * 0.18 = 33 * 0.18 » 6 руб.(6.6)

С учетом НДС цена программного продукта составляет:

Цпп = Ц + НДС » 40 руб.(6.7)


Процентное соотношение себестоимости, прибыли и налогов для ста комплектов продукта представлены на рисунке 2.

Рисунок 6.2. Процентное соотношение себестоимости, прибыли и налогов для 100 комплектов продукта

 

На рисунке 6.2 показана динамика роста прибыли от продажи программного продукта относительно числа экземпляров.

Рисунок 6.3. Динамика роста прибыли от продажи ПП

 


6.5 Экономическая целесообразность разработки

 

При разработке программного продукта значительное внимание уделяется экономическому обоснованию необходимости проведения данного комплекса работ по его созданию.

Стоимость конечного продукта для потребителя не высока всего 40 руб. Разработка данного программного продукта ведется для образовательных учреждений. Поэтому цена одного лицензионного диска очень важна. Чем ниже цена, тем больше вероятность, что программный продукт купят. При цене всего 40 рублей, диски с программой быстро купят. Покупателями станут преподаватели вузов и учителя других коммерческих учебных заведений. При продаже 100 лицензионных дисков, разработка программы не просто окупится, а принесет прибыль в размере 1100 рублей. Если при продаже всех лицензионных дисков с программой, на рынке все еще будет спрос, то при дополнительном выпуске лицензионных копий, при минимальных затратах, мы получим еще какой-то процент прибыли.

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


Заключение

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

Программа соответствует все требованиям, предъявленным к ней. В нее входит: лекционный материал по дисциплине «Программирование», тестовые задания по темам лекций, результаты тестирования записываются в файл, который потом можно посмотреть в программе.

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


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

1.  ГОСТ 7.32-2001. Отчет о научно-исследовательской работе. Структура и правила оформления, Введен 01.01.2001. М.: Изд-во стандартов, 2001. 9 с.

2.  ГОСТ 2.105-95. Общие требования к текстовым документам, Введен 02.05.1995. М.: Изд-во стандартов, 1995. 10 с.

3.  ГОСТ Р 7.0.5-2008. Библиографическая ссылка. Общие требования и правила составления, Введен 15.05.2008. М.: Изд-во стандартов, 2008. 8 с.

4.  ГОСТ 7.1-2003. Библиографическая запись. Библиографическое описание. Общие требования и правила составления, Введен 01.01.2003. М.: Изд-во стандартов, 2003. 11 с.

5.  ГОСТ 7.80-2000. Библиографическая запись. Заголовок. Общие требования и правила составления, Введен 01.01.2000. М.: Изд-во стандартов, 2000. 9 с.

6.  ГОСТ 19.201-78. Техническое задание. Требования к содержанию и оформлению. Введен 18.12.1978. М.: Изд-во стандартов, 1978. 11 с.

7.  Автоматизированные обучающие системы [Электронный ресурс] URL: http://www.tspu.tula.ru/ivt/old_site/umr/nit/lect/lect4.htm (Дата обращения: 14.11.2010).

8.  Википедия. Свободная энциклопедия. Официальный сайт. URL http://ru.wikipedia.org/wiki/Алгоритм, (Дата обращения: 14.11.2010).

9.  Горюнова М.А., Горюхова Т.В., Кондратьева И.Н., Рубашкин Д.Д. Электронные образовательные издания. Учебно-методическое пособие. СПб.: ЛОИРО, 2003.

10.  Интернет университет информационных технологий: Официальный сайт. URL: http://www.intuit.ru (Дата обращения: 14.11.2010).

11.  Могилёв А. В. Информатика. – М.: «Академия»,1999.

12.  Пак Н.И. Нелинейные технологии обучения в условиях информатизации: Учебное пособие. Красноярск: РИО КГПУ, 2004

13.  Олейников Б.В. Проблемы и особенности преподавания информатики и программирования в вузе с учетом современных требований. Красноярский государственный университет, 1997. URL: http://www.nsu.ru/archive/conf/nit/97/c5/node12.html (Дата обращения: 14.11.2010).

14.  Федеральный интернет-экзамен в сфере профессионального образования: Официальный сайт. URL: http://www.fepo.ru (Дата обращения: 14.11.2010).

15.  Чистохвалов В.Н. Проблемы организации учебного процесса в вузе в системе зачетных единиц. Российский университет дружбы народов (РУДН), 2006. URL:http://www.rudn.ru/?pagec=293 (Дата обращения: 14.11.2010).

16.  Шилдт Г. С# Учебный курс. Программирование. СПб.: Питер, 2003.

17.  Электронный словарь: Официальный сайт. URL: http://chtotakoe.info/articles/elektronnyj_uchebnik_858.html (Дата обращения: 14.11.2010)


Приложение

Приложение 1

Код формы с лекциями

namespace Kursach

{public enum Modes { Lecture, ChooseLecture }

public partial class LecturesForm : Form

{

private ChoiseButtons buttons;

private DirectoryInfo[] lecturesDirectories;

private DirectoryInfo currentLectureDirectory;

private Point startPosition = new Point(5, 15);

private Size buttonSize = new Size(200, 30);

private int distance = 5;

private Modes currentMode;

public LecturesForm(string folderPath)

{

InitializeComponent();

buttons = new ChoiseButtons(ButtonTypes.RadioButton, startPosition.X, startPosition.Y, buttonSize.Width, buttonSize.Height, distance);

DirectoryInfo directory = new DirectoryInfo(folderPath);

lecturesDirectories = directory.GetDirectories();

foreach (DirectoryInfo lectureDirectory in lecturesDirectories)

{

groupBoxLectures.Controls.Add(buttons.AddNextButton(lectureDirectory.Name));

}

SetChooseLectureMode();

}

private void button1_Click(object sender, EventArgs e)

{

if (currentMode == Modes.ChooseLecture)

{

List<int> selected = buttons.GetSelected();

if (selected.Count == 0)

{

MessageBox.Show("Выберите лекцию!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Information);

return;

}

else

{

currentLectureDirectory = lecturesDirectories[selected[0]];

try

{

FileStream fileStream = new FileStream(currentLectureDirectory.FullName + "\\lecture", FileMode.Open);

StreamReader streamReader = new StreamReader(fileStream);

richTextBoxLecture.Text = streamReader.ReadToEnd();

streamReader.Close();

fileStream.Close();

}

catch

{

TestForm.ShowCriticalErrorMessage("Не найден файл с лекцией\nПриложение будет закрыто");

}

}

SetLecturesMode();

}

else

{

InitForm form = new InitForm();

if (form.ShowDialog() == DialogResult.OK)

{

new TestForm(currentLectureDirectory.FullName, currentLectureDirectory.Name, form.UserName, this).Show();

}

}

}

private void SetLecturesMode()

{

currentMode = Modes.Lecture;

buttonChoose.Text = "Тест";

richTextBoxLecture.Visible = true;

linkLabelResults.Visible = false;

groupBoxLectures.Visible = false;

richTextBoxLecture.Dock = DockStyle.Fill;

linkLabelBack.Visible = true;

this.MaximumSize = new Size();

this.MinimumSize = new Size();

this.Size = new Size(739, 419);

this.MaximizeBox = true;

this.Text = currentLectureDirectory.Name;

buttonChoose.Select();

}

private void SetChooseLectureMode()

{

currentMode = Modes.ChooseLecture;

linkLabelResults.Visible = true;

buttonChoose.Text = "Выбрать";

richTextBoxLecture.Visible = false;

groupBoxLectures.Visible = true;

linkLabelBack.Visible = false;

this.Text = "Выбор лекции";

this.MaximumSize = new Size(739, 419);

this.MinimumSize = new Size(739, 419);

this.Size = new Size(739, 419);

this.MaximizeBox = false;

}

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

{

SetChooseLectureMode();

}

private void LecturesForm_VisibleChanged(object sender, EventArgs e)

{

if (Visible == true)

{

SetChooseLectureMode();

}

}

private void linkLabel1_LinkClicked_1(object sender, LinkLabelLinkClickedEventArgs e)

{

new ResultsForm().ShowDialog();

}

private void panel2_Paint(object sender, PaintEventArgs e)

{

}

}

}

Код тестовой формы

namespace Kursach

{

public partial class TestForm : Form

{

private ChoiseButtons buttons;

private Test test;

private string userName;

private List<int> correctAnswers = new List<int>();

private Point startPosition = new Point(5, 15);

private Size buttonSize = new Size(200, 30);

private int distance = 5;

private Form parentForm;

public TestForm(string path, string testName, string userName, Form formToClose)

{

parentForm = formToClose;

formToClose.Hide();

InitializeComponent();

this.userName = userName;

try

{

test = new Test(testName, path);

}

catch (Exception)

{

ShowCriticalErrorMessage("Один из файлов тестов имеет неверный формат\nПриложение будет закрыто");

}

test.BeginTest();

Question question = test.CurrentQuestion;

buttons = new ChoiseButtons(ButtonTypes.CheckboxButton, startPosition.X, startPosition.Y, buttonSize.Width, buttonSize.Height, distance);

InitQuestionWindow(question);

questionsGroupBox.Select();

}

private void InitQuestionWindow(Question question)

{

ButtonTypes type = (question.CorrectAnswers.Count != 1) ? ButtonTypes.CheckboxButton : ButtonTypes.RadioButton;

buttons.Reset(type);

questionsGroupBox.Controls.Clear();

this.Text = question.QuestonName;

this.textBoxTest.Text = question.QuestonText;

for (int i = 0; i < question.Answers.Count; i++)

{

buttons.AddNextButton(question.Answers[i + 1]);

questionsGroupBox.Controls.Add(buttons[i]);

}

}

public static void ShowCriticalErrorMessage(string message)

{

ShowErrorMessage(message, "Критическая ошибка");

Environment.Exit(1);

}

private static void ShowInfoMessage(string info, string message)

{

ShowMessage(message, info, MessageBoxButtons.OK, MessageBoxIcon.Information);

}

private static void ShowErrorMessage(string info, string message)

{

ShowMessage(message, info, MessageBoxButtons.OK, MessageBoxIcon.Error);

}

private static void ShowMessage(string info, string message, MessageBoxButtons buttons, MessageBoxIcon icon)

{

MessageBox.Show(message, info, buttons, icon);

}

private void buttonNextQuestion_Click(object sender, EventArgs e)

{

List<int> selected = buttons.GetSelected();

bool isCorrect = false;

if (selected.Count == test.CurrentQuestion.CorrectAnswers.Count)

{

isCorrect = true;

foreach (int correctQuestionNumber in test.CurrentQuestion.CorrectAnswers)

{

if (!selected.Contains(correctQuestionNumber - 1))

{

isCorrect = false;

}

}

}

if (isCorrect) correctAnswers.Add(test.CurrentQuestion.QuestionNumber);

if (!test.IsTestEnded)

{

InitQuestionWindow(test.GoToNextQuestion());

}

else

{

EndTest();

}

}

private void EndTest()

{

FileStream testFileStream = new FileStream("data\\results.txt", FileMode.Append);

StreamWriter testStreamWriter = new StreamWriter(testFileStream);

testStreamWriter.WriteLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + "\t" + test.TestName + "\t" + userName + ": " + correctAnswers.Count + "/" + test.QuestionsCount);

testStreamWriter.Close();

testFileStream.Close();

DialogResult userDecision = MessageBox.Show("Ваш результат - " + correctAnswers.Count + "/" + test.QuestionsCount + "\nПерейти к выбору лекций?", "Тест окончен", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (userDecision == System.Windows.Forms.DialogResult.Yes)

{

parentForm.Show();

this.Close();

}

else

{

Environment.Exit(0);

}

}

private void SetChooseLectureMode()

{

questionsGroupBox.Visible = false;

buttonNextQuestion.Visible = false;

textBoxTest.Visible = false;

}

private void TestForm_FormClosing(object sender, FormClosingEventArgs e)

{

if (parentForm.Visible == false)

{

parentForm.Close();

}

}

private void TestForm_Load(object sender, EventArgs e)

{

}

}

}

Код формы результатов

namespace Kursach

{

public partial class ResultsForm : Form

{

public ResultsForm()

{

InitializeComponent();

try

{

FileStream fileStream = new FileStream("data\\results.txt", FileMode.Open);

StreamReader streamReader = new StreamReader(fileStream);

textBox1.Text = streamReader.ReadToEnd();

this.Select();

streamReader.Close();

fileStream.Close();

}

catch

{

textBox1.Text = "Никто не проходил тесты";

}

}

private void textBox1_TextChanged(object sender, EventArgs e)

{

}

}

}

Код информационной формы

namespace Kursach

{

public partial class InitForm : Form

{

public InitForm()

{

InitializeComponent();

}

public string UserName

{

get { return textBoxName.Text + " " + textBoxSurname.Text; }

}

private void buttonBeginTest_Click(object sender, EventArgs e)

{

DialogResult = System.Windows.Forms.DialogResult.OK;

}

private void InitForm_Load(object sender, EventArgs e)

{

}

}

}


Информация о работе «Автоматизированная обучающая система по дисциплине "Программирование"»
Раздел: Информатика, программирование
Количество знаков с пробелами: 47436
Количество таблиц: 4
Количество изображений: 24

Похожие работы

Скачать
25027
0
0

... за решение задач головоломок. У Вас есть выбор: зачет- «автомат», освобождение от отработки пропущенных занятий или даже просто хорошая, нужная книга по изучаемой теме. § 3. Автоматизированные обучающие системы: контролирующие (диалоговые) АОС (примеры, принцип действия). Важнейшей функцией автоматизированных обучающих систем является контроль за знаниями учащихся[7]. Это может быть текущий, ...

Скачать
57874
5
4

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

Скачать
100800
1
2

... что при такой ориентации теста знания у сильных и слабых испытуемых измерялись с меньшей точностью. 3) Автоматизированный контроль знаний с применением компьютера и обработка результатов тестирования на ЭВМ для определения параметров качества тестирования. 2.1.9.4 Блок адаптивного обучения 1) Модели обучения. Информационные технологии оказывают решающее влияние на все этапы процесса обучения: ...

Скачать
131566
7
26

... , повысить вероятность выявления дефектов и, с другой стороны, снизить различные технико-экономические затраты на проведение контроля. 2. Проектирование системы контроля знаний 2.1 Общая структура системы По своей логической структуре система состоит из трёх частей: -            подсистемы конфигурирования теста; -            подсистемы тестирования; -            подсистема сервиса. ...

0 комментариев


Наверх