Язык "Си шарп"

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 21.11.2013
Размер файла 360,3 K

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

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

Размещено на http://www.allbest.ru/

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

ОСОБЕННОСТИ ЯЗЫКА

СОДЕРЖАТЕЛЬНАЯ ПОСТАНОВКА ПРОГРАММЫ

ОПИСАНИЕ КЛАССОВ И СТРУКТУР, ИСПОЛЬЗУЕМЫХ В ПРОГРАММЕ

ДИАГРАММА КЛАССОВ

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

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

ОПИСАНИЕ ПЕРЕМЕННЫХ

ТЕСТИРОВАНИЕ

ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЮ

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЯ

ВВЕДЕНИЕ

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

C# (произносится си шарп) - объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.

C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.

Переняв многое от своих предшественников - языков C++, Java, Delphi, Модула и Smalltalk - С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# в отличие от C++ не поддерживает множественное наследование классов (между тем допускается множественное наследование интерфейсов).

ОСОБЕННОСТИ ЯЗЫКА

C# разрабатывался как язык программирования прикладного уровня для CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL. Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.0 значительно обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем. (Однако эта закономерность была нарушена с выходом C# 3.0, представляющего собой расширения языка, не опирающиеся на расширения платформы .NET.) CLR предоставляет C#, как и всем другим .NET-ориентированным языкам, многие возможности, которых лишены «классические» языки программирования. Например, сборка мусора не реализована в самом C#, а производится CLR для программ, написанных на C# точно так же, как это делается для программ на VB.NET, J# и др.

Название «Си шарп» (от англ. sharp - диез) происходит от музыкальной нотации, где знак диез, прибавляемый к основному обозначению ноты, означает повышение соответствующего этой ноте звука на полутон/ Это аналогично названию языка C++, где «++» обозначает, что переменная должна быть увеличена на 1.

Вследствие технических ограничений на отображение (стандартные шрифты, браузеры и т. д.) и того обстоятельства, что знак диез ?? не представлен на стандартной клавиатуре, знак номера # был выбран для представления знака диез при записи имени языка программирования. Это соглашение отражено в Спецификации Языка C# ECMA-334. Тем не менее, на практике (например, при размещении рекламы и коробочном дизайне), Майкрософт использует предназначенный музыкальный знак.

Названия языков программирования не принято переводить, поэтому зачастую язык называют по-английски «Си шарп».

СОДЕРЖАТЕЛЬНАЯ ПОСТАНОВКА ПРОГРАММЫ

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

Должны быть реализованы следующие пункты:

-вывод списка читателей,

-вывод информации о читателе,

-какая книга или журнал были взяты,

-автор и издательство книги или журнала.

ОПИСАНИЕ КЛАССОВ И СТРУКТУР, ИСПОЛЬЗУЕМЫХ В ПРОГРАММЕ

UML диаграмма

Рис. 1

Класс читатель

ID читателя (uniqueidentifier) - уникальный номер читателя. Позволяет однозначно идентифицировать читателя среди всех остальных.

Номер читателя (nchar(100)) - номер карточки читателя.

ФИО читателя (nchar(500)) - фамилия, имя и отчество читателя.

Дата рождения читателя (date) - дата, указывающая когда родился читатель.

Дата подписки чтателя (date) - дата, указывающая когда читатель был записан в библиотеку.

Место учебы читателя (nchar(100)) - указывает в какой учебном заведении обучается читатель.

Должность читателя (nchar(100)) - указывает какую должность занимает читатель в указанном учебном заведении.

Класс книга

ID книги (uniqueidentifier) - уникальный номер книги. Позволяет однозначно идентифицировать книгу среди всех остальных.

Название книги (nchar(100)) - название книги.

Автор книги (nchar(100)) - ФИО автора книги.

Год издания книги (nchar(10)) - год, в котором была издана книга.

Издательство (nchar(100)) - Издательство, выпустившее книгу.

Номер читателя (uniqueidentifier) - ID читателя, у которого находится книга.

ДИАГРАММА КЛАССОВ

Рис. 2

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

Программа написана на языке C# и работает под управлением операционной системы MS Windows.

Функциональное назначение:

Программа реализует популярную программу «Организация библиотечного учета». Управление данными осуществляется с помощью мыши и клавиатуры.

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

После запуска программы на поле генерируется в случайном месте форма, состоящая из одного блока. Программа ждёт нажатия клавиш пользователем. После нажатия на раздел справочники, программа предлагает выбрать одно из полей. Выбрав поле мы можем либо добавить в него данные, либо редактировать, либо удалить. После нажатия клавиши добавить (кнопка на форме) появляется форма, в которую мы записываем информацию. После добавления данные загружаются в таблицу, форма закрывается, данные обновляются. После выбора поля и нажатия на кнопку редактировать(кнопка на форме) появляется форма с выбранной записью, если строка не выделена то значение индекса сбрасывается для избегания ошибки . После внесения изменений обновляются данные в таблице и форма закрывается. При неправильном вводе срабатывает обработчик исключений. Для завершения работы программы достаточно выбрать раздел файл - закрыть.

ОПИСАНИЕ ПЕРЕМЕННЫХ

Идентификатор

Тип

Назначение

myDB db

private

Доступ к базе данных

Form2 Dialog

public

Создание диалогового окна

ShowDialog

public

Показывается диалог

CurrentObject

private

Создание нового объекта

db.T1.InsertOnSubmit

private

Добавление объекта в базу данных

db.SubmitChanges

private

Сохранение изменений

Show_T1

public

Обновление таблицы

ТЕСТИРОВАНИЕ

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

ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЮ

При запуске программы открывается форма. Создается подключение к базе данных, из нее считываются все данные о читателях и в таблицу формы выводятся следующие данные:

Номер читателя.

ФИО читателя.

Дата рождения читателя.

Дата подписки читателя.

Рис. 3

Для удаления записи о читателе необходимо выделить запись и нажать кнопку «Удалить».

Для добавления нового читателе необходимо нажать кнопку добавить, ввести информацию о читателе и нажать кнопку «Ок».

Для редактирования информации о читателе необходимо выделить нужную запись и нажать кнопку «Редактировать».

программа класс листинг алгоритм

Рис. 4

Аналогично происходит добавление, редактирование и удаление записей о книгах, которые находятся у читателя

Рис. 5

ЗАКЛЮЧЕНИЕ

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

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

Данные вводятся пользователем с клавиатуры и выводятся в окне программы.

СПИСОК ЛИТЕРАТУРЫ

1. Абрамян visual Си# в примерах.

2. Агуров сборник примеров в Си#.

3. Климов Си# советы программистам.

4. Культин visual Си#.

ПРИЛОЖЕНИЯ

Листинг программы

Файл Form1.cs

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;

namespace Курсач

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

public void Show_T1()

{

myDB db = new myDB(); // открывается доступ к базе данных

DG.DataSource = db.T1.Select(m => m);

DG.Columns["T1S5"].Visible = false;

DG.Columns["T1S6"].Visible = false;

DG.Columns["T1ID"].Visible = false;

DG.Columns["T1S1"].HeaderText = "Номер читателя";

DG.Columns["T1S2"].HeaderText = "ФИО";

DG.Columns["T1S3"].HeaderText = "Дата рождения";

DG.Columns["T1S4"].HeaderText = "Дата подписки";

}

private void Form1_Load(object sender, EventArgs e)

{

Show_T1();

}

private void toolStripButton1_Click(object sender, EventArgs e)

{

myDB db = new myDB(); // открывается доступ к базе данных

Form2 Dialog = new Form2(); // создается диалоговое окно

Dialog.button3.Enabled = false;

Dialog.button4.Enabled = false;

Dialog.button5.Enabled = false;

Dialog.ShowDialog(); // показывается диалог

if (Dialog.DialogResult == System.Windows.Forms.DialogResult.OK)

{

T1 CurrentObject = new T1(); // Создание нового объекта

CurrentObject.T1ID = Guid.NewGuid();

CurrentObject.T1S1 = Dialog.textBox1.Text;

CurrentObject.T1S2 = Dialog.textBox2.Text;

CurrentObject.T1S3 = Dialog.dateTimePicker1.Value;

CurrentObject.T1S4 = Dialog.dateTimePicker2.Value;

CurrentObject.T1S5 = Dialog.textBox5.Text;

CurrentObject.T1S6 = Dialog.textBox6.Text;

db.T1.InsertOnSubmit(CurrentObject); //добавление объекта в бд

db.SubmitChanges(); // Сохранение изменений

Show_T1(); //обновление таблицы

}

}

private void toolStripButton2_Click(object sender, EventArgs e)

{

if (DG.SelectedRows.Count != 0)

{

myDB db = new myDB();

Form2 Dialog = new Form2();

Dialog.nowID=(Guid)DG.SelectedRows[0].Cells["T1ID"].Value;

Dialog.textBox1.Text=DG.SelectedRows[0].Cells["T1S1"].Value.ToString(;

Dialog.textBox2.Text=DG.SelectedRows[0].Cells["T1S2"].Value.ToString(;

Dialog.dateTimePicker1.Value = (System.DateTime)DG.SelectedRows[0].Cells["T1S3"].Value;

Dialog.dateTimePicker2.Value = (System.DateTime)DG.SelectedRows[0].Cells["T1S4"].Value;

Dialog.textBox5.Text=DG.SelectedRows[0].Cells["T1S5"].Value.ToString(;

Dialog.textBox6.Text=DG.SelectedRows[0].Cells["T1S6"].Value.ToString(;

Dialog.DG.DataSource = db.T2.Where(m=> m.T2ID == Dialog.nowID).Select(m=>m);

Dialog.button3.Enabled=true;

Dialog.button4.Enabled=true;

Dialog.button5.Enabled=true;

Dialog.ShowDialog();

if (Dialog.DialogResult==System.Windows.Forms.DialogResult.OK)

{

T1 CurrentObject = db.T1.Where(m=>m.T1ID == Dialog.nowID).Select(m=>m).SingleOrDefault();

CurrentObject.T1S1=Dialog.textBox1.Text;

CurrentObject.T1S2=Dialog.textBox2.Text;

CurrentObject.T1S3 = Dialog.dateTimePicker1.Value;

CurrentObject.T1S4 = Dialog.dateTimePicker2.Value;

CurrentObject.T1S5=Dialog.textBox5.Text;

CurrentObject.T1S6=Dialog.textBox6.Text;

db.SubmitChanges();

Show_T1();

}

}

}

private void toolStripButton3_Click(object sender, EventArgs e)

{

if (DG.SelectedRows.Count != 0)

{

myDB db = new myDB();

T1 CurrentObject = db.T1.Where(m => m.T1ID == (Guid)DG.SelectedRows[0].Cells["T1ID"].Value).Select(m => m).SingleOrDefault();

db.T1.DeleteOnSubmit(CurrentObject);

db.SubmitChanges();

Show_T1()

}

}

}

}

Файл Form2.cs

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;

namespace Курсач

{

public partial class Form2 : Form

{

public Guid nowID;

public void Show_T2()

{

myDB db = new myDB();

DG.DataSource = db.T2.Where(m => m.T2T1 == nowID).Select(m => m);

DG.Columns["T1"].Visible = false;

DG.Columns["T2T1"].Visible = false;

DG.Columns["T2ID"].Visible = false;

DG.Columns["T2S1"].HeaderText = "Название";

DG.Columns["T2S2"].HeaderText = "Автор";

DG.Columns["T2S3"].HeaderText = "Год издания";

DG.Columns["T2S4"].HeaderText = "Издательство";

}

public Form2()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

DialogResult = System.Windows.Forms.DialogResult.Cancel;

}

private void button2_Click(object sender, EventArgs e)

{

if (textBox1.Text != "" && textBox2.Text != "" && textBox5.Text != "" && textBox6.Text != "")

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

}

private void Form2_Load(object sender, EventArgs e)

{

Show_T2();

}

private void button3_Click(object sender, EventArgs e)

{

myDB db = new myDB();

Form3 Dialog = new Form3();

Dialog.ShowDialog();

if (Dialog.DialogResult == System.Windows.Forms.DialogResult.OK)

{

T2 CurrentObject = new T2();

CurrentObject.T2ID = Guid.NewGuid();

CurrentObject.T2T1 = nowID;

CurrentObject.T2S1 = Dialog.textBox1.Text;

CurrentObject.T2S2 = Dialog.textBox2.Text;

CurrentObject.T2S3 = Dialog.textBox3.Text;

CurrentObject.T2S4 = Dialog.textBox4.Text;

db.T2.InsertOnSubmit(CurrentObject);

db.SubmitChanges();

Show_T2();

}

}

private void button4_Click(object sender, EventArgs e)

{

myDB db = new myDB();

Form3 Dialog = new Form3();

if (DG.SelectedRows.Count != 0) // Если выделен хоть один объект

{

Dialog.textBox1.Text = DG.SelectedRows[0].Cells["T2S1"].Value.ToString();

Dialog.textBox2.Text = DG.SelectedRows[0].Cells["T2S2"].Value.ToString();

Dialog.textBox3.Text = DG.SelectedRows[0].Cells["T2S3"].Value.ToString();

Dialog.textBox4.Text = DG.SelectedRows[0].Cells["T2S4"].Value.ToString();

Dialog.ShowDialog();

if (Dialog.DialogResult == System.Windows.Forms.DialogResult.OK)

{

T2 CurrentObject = db.T2.Where(m => m.T2ID == (Guid)DG.SelectedRows[0].Cells["T2ID"].Value).Select(m => m).SingleOrDefault();

CurrentObject.T2S1 = Dialog.textBox1.Text;

CurrentObject.T2S2 = Dialog.textBox2.Text;

CurrentObject.T2S3 = Dialog.textBox3.Text;

CurrentObject.T2S4 = Dialog.textBox4.Text;

db.SubmitChanges();

Show_T2();

}

}

}

private void button5_Click(object sender, EventArgs e)

{

myDB db = new myDB();

if (DG.SelectedRows.Count != 0)

{

T2 CurrentObject = db.T2.Where(m => m.T2ID == (Guid)DG.SelectedRows[0].Cells["T2ID"].Value).Select(m => m).SingleOrDefault();

db.T2.DeleteOnSubmit(CurrentObject);

db.SubmitChanges();

Show_T2();

}

}

}

}

Файл Form3.cs

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;

namespace Курсач

{

public partial class Form3 : Form

{

public Form3()

{

InitializeComponent();

}

private void Form3_Load(object sender, EventArgs e)

{

}

private void button1_Click(object sender, EventArgs e)

{

DialogResult = System.Windows.Forms.DialogResult.Cancel;

}

private void button2_Click(object sender, EventArgs e)

{

if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "" && textBox4.Text != "")

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

}

}

}

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


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

  • Описание языка программирования Java: общие характеристики, главные свойства, краткий обзор. Надежность и безопасность, производительность и базовая система программы. Разработка программы поиска по словарю, алгоритм её работы. Общий вид кода программы.

    курсовая работа [20,3 K], добавлен 28.10.2012

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

    курсовая работа [601,4 K], добавлен 19.02.2012

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

    курсовая работа [305,9 K], добавлен 03.07.2011

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

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

  • Постановка задачи и математическое описание ее решения. Назначение программного обеспечения. Описание принятых идентификаторов. Выбор языка программирования и написание программы на входном языке. Методика отладки программы и проведение ее тестирования.

    курсовая работа [96,1 K], добавлен 25.06.2013

  • Разработка сканера, который считывает литеры первоначальной, исходной программы и строит символы, исходной программы. Глобальные переменные и необходимые подпрограммы. Диаграмма состояний. Текст программы. Инструкция пользователю. Тестовый пример.

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

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

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

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

    лабораторная работа [43,1 K], добавлен 21.07.2012

  • Написание транслятора посредством языка Си, обрабатывающего конструкции integer, if Le then, записи (record), а также реализующего обработку new для выделения динамической памяти: разработка алгоритма реализации задачи, представление листинга программы.

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

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

    лабораторная работа [858,0 K], добавлен 23.11.2014

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