Бакалавр
Дипломные и курсовые на заказ

Язык «Си шарп»

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

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

Язык «Си шарп» (реферат, курсовая, диплом, контрольная)

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

ДИАГРАММА КЛАССОВ ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ОПИСАНИЕ АЛГОРИТМА И ЛОГИКИ РАБОТЫ ПРОГРАММЫ ОПИСАНИЕ ПЕРЕМЕННЫХ ТЕСТИРОВАНИЕ ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЮ

ЗАКЛЮЧЕНИЕ

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

ПРИЛОЖЕНИЯ

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

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

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;

}

}

}

Показать весь текст
Заполнить форму текущей работой