Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kurs_Grimanov_posl.docx
Скачиваний:
12
Добавлен:
27.09.2019
Размер:
342.65 Кб
Скачать

Заключение

При выполнении курсового проекта были пройдены все этапы разработки специализированного прикладного программного обеспечения:

  • формализация задачи;

  • сбор необходимых исходных данных;

  • разработка и отладка программного продукта.

Разработана программа «Железнодорожная касса», которая позволяет автоматизировать работу пользователя, в ней был спроектирован пользовательский интерфейс, который обеспечивает удобную работу пользователя с приложением. Интерфейс реализован в виде диалогового окна, в котором реализованы кнопки, поля ввода-вывода данных и другие элементы. Приложение обеспечивает лёгкую и быструю работу с базой данных. Программное обеспечение позволяет не только оперативно найти необходимую информацию, характерную для железнодорожной кассы, но и получить ее в электронном виде.

При разработке программного приложения «Железнодорожная касса» мною был глубже изучен язык С#, методы взаимодействия с MS SQL, вопросы разработки пользовательского интерфейса.

Список использованных источников

1. Разработка Windows-приложений на Microsoft Visual Basic .NET и Microsoft Visual C# -NET. Учебный курс MCAD MCSD / Официальное пособие Microsoft. – Москва: Русская редакция, 2003. – 478 с.

2. Разработка Windows-приложений на основе Visual C# / Intuit. – Москва: Electronic pub, 2005. – 424 с.

3. Шильд, Г. C# Учебный Курс. – Питер: Издательская группа BHV, 2003. – 512c.

Приложение 1

СХЕМА ОБОБЩЁННОГО АЛГОРИТМА РАБОТЫ ПРОГРАММЫ

Схема алгоритма работы программы:

Приложение 2 Листинг программНого кода

Форма 1

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;

using System.Data.SqlClient;

namespace KursovoyGrimanov

{

public partial class MainForm : Form

{

public MainForm()

{

InitializeComponent();

}

public int id;

public void Loads()

{

cbMeg.DataSource = SqlHelper.ExecuteDataTable("SELECT * FROM SELLERS");

cbMeg.DisplayMember = "name";

cbMeg.ValueMember = "id";

cbTo.DataSource = SqlHelper.ExecuteDataTable("SELECT * FROM STATION");

cbTo.DisplayMember = "namestation";

cbTo.ValueMember = "id";

cbFrom.DataSource = SqlHelper.ExecuteDataTable("SELECT * FROM STATION");

cbFrom.DisplayMember = "namestation";

cbFrom.ValueMember = "id";

cbType.DataSource = SqlHelper.ExecuteDataTable("SELECT * FROM TypeTicket");

cbType.DisplayMember = "type";

cbType.ValueMember = "id";

comboBox2.DataSource = SqlHelper.ExecuteDataTable("SELECT * FROM SELLERS");

comboBox2.DisplayMember = "name";

comboBox2.ValueMember = "id";

comboBox4.DataSource = SqlHelper.ExecuteDataTable("SELECT * FROM STATION");

comboBox4.DisplayMember = "namestation";

comboBox4.ValueMember = "id";

comboBox3.DataSource = SqlHelper.ExecuteDataTable("SELECT * FROM STATION");

comboBox3.DisplayMember = "namestation";

comboBox3.ValueMember = "id";

comboBox1.DataSource = SqlHelper.ExecuteDataTable("SELECT * FROM TypeTicket");

comboBox1.DisplayMember = "type";

comboBox1.ValueMember = "id";

SqlDataReader myReader = SqlHelper.ExecuteReader("Select id,(select namestation from station where station.id = t.idfrom) as fromstation,(select namestation from station where station.id = t.idto) as tostation, price, date, (select name from sellers where sellers.id = t.idseller) as nameseller,(select type from typeticket where typeticket.id = t.idtype) as typeticket from invoice t");

string st;

int itemIndex = 0;

lw1.Items.Clear();

while (myReader.Read())

{

for (int i = 0; i < myReader.FieldCount; i++)

{

st = myReader.GetValue(i).ToString();

switch (i)

{

case 0:

lw1.Items.Add(st);

break;

case 1:

lw1.Items[itemIndex].SubItems.Add(st);

break;

case 2:

lw1.Items[itemIndex].SubItems.Add(st);

break;

case 3:

lw1.Items[itemIndex].SubItems.Add(st);

break;

case 4:

lw1.Items[itemIndex].SubItems.Add(st);

break;

case 5:

lw1.Items[itemIndex].SubItems.Add(st);

break;

case 6:

lw1.Items[itemIndex].SubItems.Add(st);

break;

}

}

itemIndex++;

}

}

private void btnAddStation_Click(object sender, EventArgs e)

{

if (txtStation.Text != string.Empty)

{

SqlHelper.ExecuteNonQuery(String.Format("Insert into station (namestation) values ('{0}')", txtStation.Text));

MessageBox.Show(String.Format("Добавлена новая станция : {0}",txtStation.Text));

txtStation.Clear();

}

Loads();

}

private void btnAddType_Click(object sender, EventArgs e)

{

if (txtType.Text != string.Empty)

{

SqlHelper.ExecuteNonQuery(String.Format("Insert into typeticket (type) values ('{0}')", txtType.Text));

MessageBox.Show(String.Format("Добавлен новый тип билета : {0}", txtType.Text));

txtType.Clear();

}

Loads();

}

private void btnAddSeller_Click(object sender, EventArgs e)

{

if (txtSeller.Text != string.Empty)

{

SqlHelper.ExecuteNonQuery(String.Format("Insert into sellers (name) values ('{0}')", txtSeller.Text));

MessageBox.Show(String.Format("Добавлен новый кассир : {0}", txtSeller.Text));

txtSeller.Clear();

}

Loads();

}

private void btnRefresh_Click(object sender, EventArgs e)

{

Loads();

}

private void btnSell_Click(object sender, EventArgs e)

{

if (Convert.ToInt32(cbMeg.SelectedValue) > 0 && Convert.ToInt32(cbFrom.SelectedValue) > 0 &&

Convert.ToInt32(cbTo.SelectedValue) > 0 && Convert.ToInt32(cbType.SelectedValue) > 0 &&

txtPrice.Text != string.Empty)

{

SqlHelper.ExecuteNonQuery(String.Format("insert into invoice (idfrom,idto,price,date,idseller,idtype) values ({0},{1},'{2}',GETDATE(),{3},{4})", cbFrom.SelectedValue, cbTo.SelectedValue, txtPrice.Text, cbMeg.SelectedValue,cbType.SelectedValue));

MessageBox.Show(String.Format("Добавлена новая запись : {0}", DateTime.Now.ToShortTimeString()));

txtPrice.Clear();

}

Loads();

}

private void MainForm_Shown(object sender, EventArgs e)

{

Loads();

}

private bool nonNumberEntered = false;

private void textBox_KeyDown(object sender, KeyEventArgs e)

{

nonNumberEntered = false;

if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)

{

if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)

{

if (e.KeyCode != Keys.Back)

{

nonNumberEntered = true;

MessageBox.Show("Вводить можно только цифры!");

}

}

}

if (Control.ModifierKeys == Keys.Shift)

{

nonNumberEntered = true;

MessageBox.Show("Вводить можно только цифры!");

}

}

private void textBox_KeyPress(object sender, KeyPressEventArgs e)

{

if (nonNumberEntered == true)

{

e.Handled = true;

}

}

private void lw1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)

{

if (e.IsSelected)

{

id = Convert.ToInt32(lw1.Items[e.ItemIndex].Text);

for (int i = 1; i < lw1.Items[e.ItemIndex].SubItems.Count; i++)

{

switch (i)

{

case 1:

comboBox4.Text = lw1.Items[e.ItemIndex].SubItems[i].Text;

break;

case 2:

comboBox3.Text = lw1.Items[e.ItemIndex].SubItems[i].Text;

break;

case 3:

textBox1.Text = lw1.Items[e.ItemIndex].SubItems[i].Text;

break;

case 4:

break;

case 5:

comboBox2.Text = lw1.Items[e.ItemIndex].SubItems[i].Text;

break;

case 6:

comboBox1.Text = lw1.Items[e.ItemIndex].SubItems[i].Text;

break;

}

}

groupBox1.Visible = true;

}

else groupBox1.Visible = false;

}

private void button1_Click(object sender, EventArgs e)

{

txtPrice.Clear();

cbMeg.SelectedIndex = 0;

cbTo.SelectedIndex = 0;

cbFrom.SelectedIndex = 0;

cbType.SelectedIndex = 0;

}

private void button3_Click(object sender, EventArgs e)

{

if (id > 0)

{

SqlHelper.ExecuteNonQuery("Delete from invoice where id = {0}", id);

groupBox1.Visible = false;

Loads();

}

}

private void button4_Click(object sender, EventArgs e)

{

if (id > 0 && textBox1.Text != string.Empty)

{

SqlHelper.ExecuteNonQuery(String.Format("update invoice set idfrom={0},idto={1},price='{2}',date=GETDATE(),idseller={3},idtype={4} where id = {5}", comboBox4.SelectedValue, comboBox3.SelectedValue, textBox1.Text, comboBox2.SelectedValue, comboBox1.SelectedValue, id));

Loads();

}

}

}

}

Класс SqlHelper

using System;

using System.Data;

using System.Data.SqlClient;

namespace KursovoyGrimanov

{

public static class SqlHelper

{

static string connection = "server=localhost; Trusted_Connection=yes; database=DK; Connection timeout=10";

#region получение таблицы данных

public static DataTable ExecuteDataTable(string query)

{

DataSet dataSet = null;

SqlConnection connect = new SqlConnection(connection);

connect.Open();

SqlCommand command = new SqlCommand(query);

command.CommandType = CommandType.Text;

command.Connection = connect;

SqlDataAdapter dataAdapter = new SqlDataAdapter(command);

try

{

dataSet = new DataSet();

dataAdapter.Fill(dataSet);

}

catch

{ }

connect.Close();

if (dataSet != null)

return dataSet.Tables[0];

else return new DataTable();

}

public static DataTable ExecuteDataTable(string query, params object[] parameters)

{

return ExecuteDataTable(String.Format(query, parameters));

}

#endregion

#region выполнение запроса без возвращаемых значений

public static void ExecuteNonQuery(string query, params object[] parameters)

{

ExecuteNonQuery(string.Format(query, parameters));

}

public static void ExecuteNonQuery(string query)

{

SqlConnection connect = new SqlConnection(connection);

connect.Open();

SqlCommand command = new SqlCommand(query);

command.CommandType = CommandType.Text;

command.Connection = connect;

command.ExecuteNonQuery();

connect.Close();

}

public static SqlDataReader ExecuteReader(string query)

{

SqlConnection connect = new SqlConnection(connection);

connect.Open();

SqlDataReader myReader = null;

SqlCommand command = new SqlCommand(query);

command.CommandType = CommandType.Text;

command.Connection = connect;

return myReader = command.ExecuteReader();

}

#endregion

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]