Архитектура учебной универсальной 32-х разрядной машины и практика ее применения

Описание универсальной учебной машины УУМ-32, безопасность исполнения кода и разграничение прав пользователя. Анализ инструментальных средств разработки, требования к программной документации. Тестирование и подготовка руководств пользователя.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 26.11.2014
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

private void RunProgram(bool debug = false) {

MDIForm activeChild = (MDIForm)this.ActiveMdiChild;

if (activeChild == null) {

return;

}

int exitCode = this.StartCompilation();

if (exitCode == 0) {

string linkerKey = Enum.GetName(typeof(ExternalApplications), ExternalApplications.Linker);

//exitCode = this.StartProcess(this.externalApplicationInfoCollection[linkerKey].ExeFileName, CLArgsMaskParser.Parse(this.externalApplicationInfoCollection[linkerKey].ArgumentsMask, activeChild.AssociatedFileName));

//this.c_txtOutput.Text += "*** Компоновка ***\r\n";

this.extAppsStdOutput.Enqueue("*** Компоновка ***");

exitCode = this.RunExternalApplication(ExternalApplications.Linker, CLArgsMaskParser.Parse(this.externalApplicationInfoCollection[linkerKey].ArgumentsMask, activeChild.AssociatedFileName), true);

if (exitCode == 0) {

ExternalApplications extApp = (debug)? ExternalApplications.Debugger : ExternalApplications.UUM32;

string key = Enum.GetName(typeof(ExternalApplications), extApp);

//this.StartProcess(this.externalApplicationInfoCollection[uumKey].ExeFileName, CLArgsMaskParser.Parse(this.externalApplicationInfoCollection[uumKey].ArgumentsMask, activeChild.AssociatedFileName));

//this.c_txtOutput.Text += "*** Запуск ***\r\n";

this.extAppsStdOutput.Enqueue("*** Запуск ***");

exitCode = this.RunExternalApplication(extApp, CLArgsMaskParser.Parse(this.externalApplicationInfoCollection[key].ArgumentsMask, activeChild.AssociatedFileName));

if (exitCode == 0) {

this.extAppsStdOutput.Enqueue("Программа успешно отработала.");//this.c_txtOutput.Text += "Программа успешно отработала.";

}

else {

this.extAppsStdOutput.Enqueue("Программа завершила работу некорректно. Код возврата: " + exitCode);//this.c_txtOutput.Text += "Программа завершила работу некорректно.";

}

}

else {

MessageBox.Show(string.Format("Не удалость скомпоновать {0}\nПодробности см. в окне \"Вывод\"", activeChild.ProgramName), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

}

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

private void aboutToolStripMenuItem_Click(object sender, EventArgs e) {

AboutBox about = new AboutBox();

about.ShowDialog();

about.Dispose();

}

private void MainForm_DragEnter(object sender, DragEventArgs e) {

if (!e.Data.GetDataPresent(DataFormats.FileDrop)) {

e.Effect = DragDropEffects.None;

}

else {

e.Effect = DragDropEffects.Copy;

}

}

// данный обработчик обслуживает и главную форму, и дочерние

private void MainForm_DragDrop(object sender, DragEventArgs e) {

if (e.Data.GetDataPresent(DataFormats.FileDrop)) {

foreach (string fName in (string[])e.Data.GetData(DataFormats.FileDrop)) {

if (Path.HasExtension(fName)) { // чтобы не давать открыть папку // TODO: возможно, было бы неплохо проверять и тип файла

this.OpenFile(fName);

}

}

}

}

private void highlightToolStripMenuItem_Click(object sender, EventArgs e) {

FontStyleSettingsForm fontStyler = new FontStyleSettingsForm();

fontStyler.BaseFont = (Font)this.childStyleSettings.BaseFont.Clone();

fontStyler.StylesEnabled = this.childStyleSettings.FontStylesEnabled;

fontStyler.StandartElementsFontStyles =

Misc.TemplateMethods<FontStyleSettingsForm.TextElementStyle>.GetCloneableListCopy(

this.childStyleSettings.StandartElementsFontStyles

);

fontStyler.KeywordsFontStyles =

Misc.TemplateMethods<FontStyleSettingsForm.TextElementStyle>.GetCloneableListCopy(

this.childStyleSettings.KeywordsFontStyles

);

fontStyler.BackgroundColor = this.childStyleSettings.BackgroundColor;

fontStyler.RunAsmBeforeShellStart = this.childStyleSettings.RunAsmBeforeShellStart;

fontStyler.AsmCommandLineArgument = this.childStyleSettings.AsmCommandlineArgument;

fontStyler.IsRelativePaths = this.allPathsAreRelative;

fontStyler.KeywordsFileName = GetAbsolutePathFromCurrent(this.childStyleSettings.KeywordsFileName);

if (fontStyler.ShowDialog() == System.Windows.Forms.DialogResult.OK) {

this.childStyleSettings.BaseFont = fontStyler.BaseFont;

this.childStyleSettings.FontStylesEnabled = fontStyler.StylesEnabled;

this.childStyleSettings.StandartElementsFontStyles = fontStyler.StandartElementsFontStyles;

this.childStyleSettings.KeywordsFontStyles = fontStyler.KeywordsFontStyles;

this.childStyleSettings.BackgroundColor = fontStyler.BackgroundColor;

this.childStyleSettings.RunAsmBeforeShellStart = fontStyler.RunAsmBeforeShellStart;

this.childStyleSettings.AsmCommandlineArgument = fontStyler.AsmCommandLineArgument;

this.childStyleSettings.KeywordsFileName = GetCurrentPathFromAbsolute(fontStyler.KeywordsFileName);

this.applyChildrenSettings();

}

fontStyler.Dispose();

}

private void externalAppsSettingsToolStripMenuItem_Click(object sender, EventArgs e) {

ExternalAppsSettingsForm extAppsConfigurator = new ExternalAppsSettingsForm(this.allPathsAreRelative);

ExternalApplications[] externalApplications = (ExternalApplications[])Enum.GetValues(typeof(ExternalApplications));

foreach (ExternalApplications extApp in externalApplications) {

string key = Enum.GetName(typeof(ExternalApplications), extApp);

string exe = this.GetAbsolutePathFromCurrent(this.externalApplicationInfoCollection[key].ExeFileName);

extAppsConfigurator.SetApplicationName(extApp, exe);

extAppsConfigurator.SetArgumentsMask(extApp, this.externalApplicationInfoCollection[key].ArgumentsMask);

}

if (extAppsConfigurator.ShowDialog() == System.Windows.Forms.DialogResult.OK) {

this.allPathsAreRelative = extAppsConfigurator.UseRelativePaths;

foreach (ExternalApplications extApp in externalApplications) {

string key = Enum.GetName(typeof(ExternalApplications), extApp);

string exe = GetCurrentPathFromAbsolute(extAppsConfigurator.GetApplicationName(extApp));

this.externalApplicationInfoCollection[key] = new ExternalApplicationInfo(exe, extAppsConfigurator.GetArgumentsMask(extApp));

}

this.SaveSettingsToXML();

}

extAppsConfigurator.Dispose();

}

privte void linesNumerationToolStripMenuItem_Click(object sender, EventArgs e) {

LineNumerationSettingsForm numerationEditor = new LineNumerationSettingsForm(this.ChildNumerationSettings);

if (numerationEditor.ShowDialog() == System.Windows.Forms.DialogResult.OK) {

this.ChildNumerationSettings = new MDIForm.NumerationSetting(numerationEditor.NumerationNeed, numerationEditor.NumeratorForeColor, numerationEditor.NumeratorBackColor);

}

numerationEditor.Dispose();

}

private void c_txtOutput_TextChanged(object sender, EventArgs e) {

c_lblFocusCatcher.Focus();

c_txtOutput.SelectionStart = c_txtOutput.TextLength;

c_txtOutput.ScrollToCaret();

c_txtOutput.Refresh();

}

private void c_txtOutput_DoubleClick(object sender, EventArgs e) {

int curLine = c_txtOutput.GetLineFromCharIndex(c_txtOutput.GetFirstCharIndexOfCurrentLine());

string line = c_txtOutput.Lines[curLine].Trim().ToLower();

if (line.StartsWith("строка")) { // TODO: убрать константу, синхронизовать с ассемблером, т.к. сообщения формирует он

line = line.Replace("строка", "").Trim();

int ddot = line.IndexOf(':');

int lineNum = int.Parse(line.Substring(0, ddot)) - 1;

((MDIForm)this.ActiveMdiChild).JumpToLine(lineNum);

}

}

private void clearTxtOutToolStripMenuItem_Click(object sender, EventArgs e) {

this.c_txtOutput.Clear();

}

private void c_tmrExtAppsStdOutputDequeuer_Tick(object sender, EventArgs e) {

while (this.extAppsStdOutput.Count != 0) {

this.c_txtOutput.Text += this.extAppsStdOutput.Dequeue() + Environment.NewLine;

}

XmlDocument doc = new XmlDocument();

while (this.extAppsStdError.Count != 0) {

string text = this.extAppsStdError.Dequeue();

if (text != null) {

try {

doc.LoadXml(text);

XmlElement el = doc.DocumentElement;

this.errorsDataGridView.Rows.Add();

DataGridViewRow row = this.errorsDataGridView.Rows[this.errorsDataGridView.Rows.Count - 1];

row.Cells["ColumnFileName"].Value = el.Attributes["file"].Value;

row.Cells["ColumnLineNumber"].Value = el.Attributes["line"].Value;

row.Cells["ColumnErrorDescription"].Value = el.Attributes["description"].Value;

}

catch { }

}

}

}

private void errorsDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e) {

try {

DataGridViewRow row = this.errorsDataGridView.Rows[e.RowIndex];

string fileName = (string)row.Cells["ColumnFileName"].Value;

if (!string.IsNullOrEmpty(fileName)) {

MDIForm mdi = this.OpenFile(fileName);

string line = (string)row.Cells["ColumnLineNumber"].Value;

if (!string.IsNullOrEmpty(line)) {

int l = int.Parse(line) - 1;

mdi.JumpToLine(l);

}

}

}

catch { }

}

}

}

Размещено на Allbest.ru


Подобные документы

  • Особенности разработки кода программного модуля на современных языках программирования. Отладка и тестирование программы, оформление документации на программные средства. Применение инструментальных средств для автоматизации оформления документации.

    отчет по практике [203,8 K], добавлен 12.04.2015

  • Обоснование выбора метода проектирования и инструментальных средств для разработки программного средства и базы данных. Требования к эргономике и технической эстетике. Разработка алгоритмов приложения. Руководство пользователя. Безопасность труда.

    дипломная работа [2,9 M], добавлен 17.10.2014

  • Цели универсальной системы хранения данных о производственном изделии. Описание предметной области программы и технические требования к ней. Стадии и этапы разработки, методика испытаний. Работа с главным меню и справочниками, руководство оператора.

    дипломная работа [4,6 M], добавлен 27.08.2012

  • Понятие и содержание экспертных систем, принципы взаимосвязи элементов: интерфейса пользователя, собственно пользователя, эксперта, средств объяснения, рабочей памяти и машины логического вывода. Классификация, преимущества, недостатки экспертных систем.

    реферат [33,9 K], добавлен 25.02.2013

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

    дипломная работа [4,0 M], добавлен 27.07.2013

  • Актуальность создания фирменного web-сайта. Разработка, внедрение web-сайта под названием "Удачная постройка". Анализ существующих программных решений, выбор инструментальных средств разработки. Архитектура сайта, структура данных. Тестирование и отладка.

    дипломная работа [4,7 M], добавлен 19.01.2017

  • Архитектура виртуальной машины, абстракция и виртуализация. Обзор технологии виртуальной машины, ее преимущества и недостатки. Возможности VirtualBox по работе с виртуальными жесткими дисками. Установка Windows 8 в VirtualВox, главное окно программы.

    курсовая работа [3,7 M], добавлен 22.03.2014

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

    курсовая работа [997,7 K], добавлен 27.10.2013

  • Структуры вычислительных машин и систем. Фон-неймановская архитектура, перспективные направления исследований. Аналоговые вычислительные машины: наличие и функциональные возможности программного обеспечения. Совокупность свойств систем для пользователя.

    курсовая работа [797,5 K], добавлен 05.11.2011

  • Описание входной и выходной информации. Требования к комплексу технических средств и к интерфейсу конечного пользователя. Разработка форм представления входных и выходных данных. Проектирование программных модулей. Руководство пользователя и программиста.

    курсовая работа [421,6 K], добавлен 27.06.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.