Язык "Си шарп"
Особенности языка "Си шарп". Содержательная постановка программы. Описание классов и структур. Алгоритм и логики работы программы, переменные. Тестирование, инструкция пользователю. Пример удаления записи о читателе. Общий вид листинга программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 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