ru/
2
Размещено на http://www.allbest.ru/
ВВЕДЕНИЕ
3
Размещено на http://www.allbest.ru/
1. ПОСТАНОВКА ЗАДАЧИ
4
Размещено на http://www.allbest.ru/
2. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ АНАЛИЗ И
ПРОЕКТИРОВАНИЕ СИСТЕМЫ НА ЯЗЫКЕ UML
5
Размещено на http://www.allbest.ru/
6
Размещено на http://www.allbest.ru/
2.2 Диаграмма классов
7
Размещено на http://www.allbest.ru/
2.3 Диаграмма последовательности
8
Размещено на http://www.allbest.ru/
3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ
9
Размещено на http://www.allbest.ru/
3.2 Описание реализации программных модулей
10
Размещено на http://www.allbest.ru/
Карточка больного
11
Размещено на http://www.allbest.ru/
Здесь представлены следующие элементы:
Таблица, в которой содержатся все занесенные в БД пациенты.
Форма добавления нового пациента и его основной информации:
ФИО, дата рождения, заболевание и другое.
Форма просмотра текущей информации о пациенте.
Для того, чтобы удалить запись из БД, необходимо выбрать его из
таблицы вверху формы и нажать кнопку «Удалить».
Внимание! Необходимо корректно заполнять и удалять поля, иначе
произойдет ошибка:
Врачи
Здесь содержится форма добавления новой записи, таблица с
занесенными в БД записями о врачах и форма для их удаления из БД.
12
Размещено на http://www.allbest.ru/
Процедуры
Здесь содержится информация о назначенных процедурах, можно
добавлять и удалять процедуру.
Лекарства
13
Размещено на http://www.allbest.ru/
ЗАКЛЮЧЕНИЕ
14
Размещено на http://www.allbest.ru/
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
15
Размещено на http://www.allbest.ru/
ПРИЛОЖЕНИЕ
}
#region ExecuteNonQuery
public int iExecuteNonQuery(string FileData, string sSql, int where)
{
int n = 0;
try
{
using (SQLiteConnection con = new SQLiteConnection())
{
if (where == 0)
{
con.ConnectionString = @"Data Source=" + FileData +
";New=True;Version=3";
16
Размещено на http://www.allbest.ru/
}
else
{
con.ConnectionString = @"Data Source=" + FileData +
";New=False;Version=3";
}
con.Open();
using (SQLiteCommand sqlCommand = con.CreateCommand())
{
sqlCommand.CommandText = sSql;
n = sqlCommand.ExecuteNonQuery();
}
con.Close();
}
}
catch (Exception ex)
{
n = 0;
}
return n;
}
#endregion
#region Execute
public DataRow[] drExecute(string FileData, string sSql)
{
DataRow[] datarows = null;
SQLiteDataAdapter dataadapter = null;
DataSet dataset = new DataSet();
DataTable datatable = new DataTable();
17
Размещено на http://www.allbest.ru/
try
{
using (SQLiteConnection con = new SQLiteConnection())
{
con.ConnectionString = @"Data Source=" + FileData +
";New=False;Version=3";
con.Open();
using (SQLiteCommand sqlCommand = con.CreateCommand())
{
dataadapter = new SQLiteDataAdapter(sSql, con);
dataset.Reset();
dataadapter.Fill(dataset);
datatable = dataset.Tables[0];
datarows = datatable.Select();
}
con.Close();
}
}
catch (Exception ex)
{
datarows = null;
}
return datarows;
}
#endregion
}
}
18
Размещено на http://www.allbest.ru/
Содержание файла 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;
using System.IO;
namespace Pacient
{
public partial class Form1 : Form
{
private sqliteclass mydb = null;
private string sCurDir = string.Empty;
private string sPath = string.Empty;
private string sSql = string.Empty;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
sPath = Path.Combine(Application.StartupPath, "mybd.db");
Text = "Поликлинника";
}
private void button1_Click(object sender, EventArgs e) //Карточка
больного
{
19
Размещено на http://www.allbest.ru/
Form2 f = new Form2(); // создаем
f.ShowDialog(); // показываем
}
private void button2_Click(object sender, EventArgs e) //Список врачей
{
Form3 f = new Form3(); // создаем
f.ShowDialog(); // показываем
}
private void button3_Click(object sender, EventArgs e) //Процедуры
{
Form4 f = new Form4(); // создаем
f.ShowDialog(); // показываем
}
private void button4_Click(object sender, EventArgs e)
{
Form5 f = new Form5(); // создаем
f.ShowDialog(); // показываем
}
}
}
Содержание файла 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;
using System.IO;
20
Размещено на http://www.allbest.ru/
namespace Pacient
{
public partial class Form2 : Form
{
private sqliteclass mydb = null;
private string sCurDir = string.Empty;
private string sPath = string.Empty;
private string sSql = string.Empty;
int i = -1;
public string fio;
public string male;
public string birth_date;
public string receipt;
public string disease;
public string doctor;
string medicine;
public string proc;
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
sPath = Path.Combine(Application.StartupPath, "mybd.db");
Text = "Карточка больного";
//Заполнение таблицы
mydb = new sqliteclass();
sSql = "SELECT id,fio,male,birth_date,receipt,doctor FROM card ORDER
BY id DESC";
DataRow[] datarows = mydb.drExecute(sPath, sSql);
21
Размещено на http://www.allbest.ru/
if (datarows == null){
Text = "Ошибка чтения!";
mydb = null;
return;
}
foreach (DataRow dr in datarows){
i++;
dataGridView1.ClearSelection();
dataGridView1.Rows.Add(1);
dataGridView1.Rows[i].Cells[0].Value = dr["fio"].ToString().Trim();
dataGridView1.Rows[i].Cells[1].Value = dr["male"].ToString().Trim();
dataGridView1.Rows[i].Cells[2].Value = dr["birth_date"].ToString();
dataGridView1.Rows[i].Cells[3].Value = dr["receipt"].ToString().Trim();
dataGridView1.Rows[i].Cells[4].Value = dr["doctor"].ToString().Trim();
}
//Инициализация формы добавления(доктор)
mydb = new sqliteclass();
sSql = "select * from doctor";
DataRow[] datarows2 = mydb.drExecute(sPath, sSql);
if (datarows2 == null){
Text = "Ошибка чтения!";
mydb = null;
return;
}
foreach (DataRow dr in datarows2){
comboBox2.Items.Add(dr["name"].ToString());
}
//Инициализация формы добавления(процедуры)
mydb = new sqliteclass();
sSql = "select title from proc";
22
Размещено на http://www.allbest.ru/
DataRow[] datarows3 = mydb.drExecute(sPath, sSql);
if (datarows3 == null){
Text = "Ошибка чтения!";
mydb = null;
return;
}
foreach (DataRow dr in datarows3){
comboBox3.Items.Add(dr["title"].ToString());
}
//Инициализация формы добавления(лекарства)
mydb = new sqliteclass();
sSql = "select * from medicine";
DataRow[] datarows4 = mydb.drExecute(sPath, sSql);
if (datarows4 == null)
{
Text = "Ошибка чтения!";
mydb = null;
return;
}
foreach (DataRow dr in datarows4)
{
listBox2.Items.Add(dr["name"].ToString());
}
}
private void button1_Click(object sender, EventArgs e) //Добавить
пациента
{
try
{
fio = Convert.ToString(textBox1.Text).Trim();
23
Размещено на http://www.allbest.ru/
if (radioButton1.Checked) {male = "Мужской";} else if
(radioButton2.Checked) {male = "Женский";}
birth_date = Convert.ToString(this.dateTimePicker1.Text);
receipt = Convert.ToString(this.dateTimePicker2.Text);
doctor = Convert.ToString(comboBox2.Text).Trim();
for (int k = 0; k < listBox2.SelectedItems.Count; k++)
{
medicine = medicine + listBox2.SelectedItems[k].ToString() + "\n";
}
disease = Convert.ToString(richTextBox1.Text).Trim();
proc = Convert.ToString(comboBox3.Text).Trim();
if (fio == "") { MessageBox.Show("Заполните поле Ф.И.О.", "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
if (male == "" || male == null) { MessageBox.Show("Выберите пол",
"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
if (doctor == "" || male == null) { MessageBox.Show("Выберите лечащего
врача", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
if (disease == "") { MessageBox.Show("Опишите заболевание",
"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
mydb = new sqliteclass();
sSql = @"insert into card
(fio,male,birth_date,receipt,medicine,doctor,disease,proc) values('" + fio + "','" +
male + "','" + birth_date + "','" + receipt + "','" + medicine + "','" + doctor + "','" +
disease + "','" + proc + "');";
//Проверка работы
if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0) {
Text = "Ошибка записи!";
mydb = null;
return;
} else {
24
Размещено на http://www.allbest.ru/
Text = "Запись 1 добавлена!";
textBox1.Text = "";
richTextBox1.Text = "";
//Добавляем в таблицу новую запись при успешном добавлении в базу
i++;
dataGridView1.Rows.Add(1);
dataGridView1.Rows[i].Cells[0].Value = fio.ToString().Trim();
dataGridView1.Rows[i].Cells[1].Value = male.ToString().Trim();
dataGridView1.Rows[i].Cells[2].Value = birth_date.ToString();
dataGridView1.Rows[i].Cells[3].Value = receipt.ToString().Trim();
dataGridView1.Rows[i].Cells[4].Value = doctor.ToString().Trim();
}
mydb = null;
return;
}
catch
{
MessageBox.Show("Заполните правильно необходимые поля.",
"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void button2_Click(object sender, EventArgs e) //Удалить пациента
{
try
{
string it = (string)dataGridView1.CurrentRow.Cells[0].Value;
mydb = new sqliteclass();
sSql = "DELETE FROM card WHERE fio = '" + it + "'";
if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0){
Text = "Ошибка удаления записи!";
25
Размещено на http://www.allbest.ru/
mydb = null;
return;
}
mydb = null;
Text = "Запись удалена из БД!";
int ind = dataGridView1.SelectedCells[0].RowIndex;
dataGridView1.Rows.RemoveAt(ind);
}
catch
{
MessageBox.Show("Вы не выбрали строку для удаления", "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void dataGridView1_CellContentClick(object sender,
DataGridViewCellEventArgs e)
{
string fio = (string)dataGridView1.CurrentRow.Cells[0].Value;
mydb = new sqliteclass();
sSql = "select * from card WHERE fio LIKE '%" + fio + "%'";
DataRow[] datarows = mydb.drExecute(sPath, sSql);
if (datarows == null){
Text = "Ошибка чтения!";
mydb = null;
return;
}
foreach (DataRow dr in datarows){
textBox2.Text = dr["fio"].ToString();
label17.Text = dr["male"].ToString();
textBox3.Text = dr["birth_date"].ToString();
26
Размещено на http://www.allbest.ru/
textBox4.Text = dr["receipt"].ToString();
textBox6.Text = dr["doctor"].ToString();
richTextBox2.Text = dr["disease"].ToString();
richTextBox4.Text = dr["medicine"].ToString();
textBox7.Text = dr["proc"].ToString();
}
}
}
}
Содержание файла 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;
using System.IO;
namespace Pacient
{
public partial class Form3 : Form
{
private sqliteclass mydb = null;
private string sCurDir = string.Empty;
private string sPath = string.Empty;
private string sSql = string.Empty;
public string name;
public Form3()
{
27
Размещено на http://www.allbest.ru/
InitializeComponent();
}
private void Form3_Load(object sender, EventArgs e)
{
sPath = Path.Combine(Application.StartupPath, "mybd.db");
Text = "Врачи";
mydb = new sqliteclass();
sSql = "select * from doctor";
DataRow[] datarows = mydb.drExecute(sPath, sSql);
if (datarows == null)
{
Text = "Ошибка чтения!";
mydb = null;
return;
}
foreach (DataRow dr in datarows)
{
listBox1.Items.Add(dr["name"].ToString());
}
}
private void button1_Click(object sender, EventArgs e) //Удалить
{
try
{
string it = listBox1.SelectedItem.ToString().Trim();
mydb = new sqliteclass();
sSql = "DELETE FROM doctor WHERE name LIKE '%" + it + "%'";
if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0) {
Text = "Ошибка удаления!";
mydb = null;
28
Размещено на http://www.allbest.ru/
return;
}
mydb = null;
Text = "Запись удалена из БД!";
listBox1.Items.Clear();
mydb = new sqliteclass();
sSql = "SELECT * FROM doctor";
DataRow[] datarows = mydb.drExecute(sPath, sSql);
if (datarows == null) {
Text = "Ошибка чтения!";
mydb = null;
return;
}
foreach (DataRow dr in datarows) {
listBox1.Items.Add(dr["name"].ToString());
}
return;
}
catch
{
MessageBox.Show("Вы не выбрали строку для удаления", "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void button2_Click(object sender, EventArgs e) //Добавить
{
name = Convert.ToString(textBox1.Text.Trim());
if (name == "") { MessageBox.Show("Введите имя врача", "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
mydb = new sqliteclass();
29
Размещено на http://www.allbest.ru/
sSql = @"insert into doctor (name) values('" + name + "');";
//Проверка работы
if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0)
{
Text = "Ошибка записи!";
mydb = null;
return;
} else {
Text = "Доктор добавлен в базу!";
textBox1.Text = "";
listBox1.Items.Add(name.ToString().Trim());
}
mydb = null;
return;
}
}
}
Содержание файла Form4.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;
using System.IO;
namespace Pacient
{
public partial class Form4 : Form
30
Размещено на http://www.allbest.ru/
{
private sqliteclass mydb = null;
private string sCurDir = string.Empty;
private string sPath = string.Empty;
private string sSql = string.Empty;
public Form4()
{
InitializeComponent();
}
private void Form4_Load(object sender, EventArgs e)
{
sPath = Path.Combine(Application.StartupPath, "mybd.db");
Text = "Процедуры";
mydb = new sqliteclass();
sSql = "select * from proc";
DataRow[] datarows = mydb.drExecute(sPath, sSql);
if (datarows == null)
{
Text = "Ошибка чтения!";
mydb = null;
return;
}
foreach (DataRow dr in datarows)
{
listBox1.Items.Add(dr["title"].ToString());
}
}
private void button1_Click(object sender, EventArgs e) //удалить
{
try {
31
Размещено на http://www.allbest.ru/
string it = listBox1.SelectedItem.ToString().Trim();
mydb = new sqliteclass();
sSql = "DELETE FROM proc WHERE title LIKE '%" + it + "%'";
if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0)
{
Text = "Ошибка удаления!";
mydb = null;
return;
}
mydb = null;
Text = "Запись удалена из БД!";
listBox1.Items.Clear();
mydb = new sqliteclass();
sSql = "SELECT * FROM proc";
DataRow[] datarows = mydb.drExecute(sPath, sSql);
if (datarows == null)
{
Text = "Ошибка чтения!";
mydb = null;
return;
}
foreach (DataRow dr in datarows)
{
listBox1.Items.Add(dr["title"].ToString());
}
return;
}
catch
{
32
Размещено на http://www.allbest.ru/
MessageBox.Show("Вы не выбрали строку для удаления", "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void button2_Click(object sender, EventArgs e) //Добавить
{
string name = Convert.ToString(textBox1.Text.Trim());
if (name == "") { MessageBox.Show("Введите название процедуры",
"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
mydb = new sqliteclass();
sSql = @"insert into proc (title) values('" + name + "');";
//Проверка работы
if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0)
{
Text = "Ошибка записи!";
mydb = null;
return;
}
else
{
Text = "Процедура добавлена в базу!";
textBox1.Text = "";
listBox1.Items.Add(name.ToString().Trim());
}
mydb = null;
return;
}
}
}
Содержание файла Form5.cs
33
Размещено на http://www.allbest.ru/
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.IO;
namespace Pacient
{
public partial class Form5 : Form
{
private sqliteclass mydb = null;
private string sCurDir = string.Empty;
private string sPath = string.Empty;
private string sSql = string.Empty;
public Form5()
{
InitializeComponent();
}
private void Form5_Load(object sender, EventArgs e)
{
sPath = Path.Combine(Application.StartupPath, "mybd.db");
Text = "Лекарства";
mydb = new sqliteclass();
sSql = "select * from medicine";
DataRow[] datarows = mydb.drExecute(sPath, sSql);
if (datarows == null)
{
34
Размещено на http://www.allbest.ru/
Text = "Ошибка чтения!";
mydb = null;
return;
}
foreach (DataRow dr in datarows)
{
listBox1.Items.Add(dr["name"].ToString());
}
}
private void button1_Click(object sender, EventArgs e)
{
string name = Convert.ToString(textBox1.Text.Trim());
if (name == "") { MessageBox.Show("Введите название лекарства",
"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
mydb = new sqliteclass();
sSql = @"insert into medicine (name) values('" + name + "');";
//Проверка работы
if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0){
Text = "Ошибка записи!";
mydb = null;
return;
} else {
Text = "Лкарство добавлено в базу!";
textBox1.Text = "";
listBox1.Items.Add(name.ToString().Trim());
}
mydb = null;
return;
}
private void button2_Click(object sender, EventArgs e)
35
Размещено на http://www.allbest.ru/
{
try
{
string it = listBox1.SelectedItem.ToString().Trim();
mydb = new sqliteclass();
sSql = "DELETE FROM medicine WHERE name LIKE '%" + it + "%'";
if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0)
{
Text = "Ошибка удаления!";
mydb = null;
return;
}
mydb = null;
Text = "Запись удалена из БД!";
listBox1.Items.Clear();
mydb = new sqliteclass();
sSql = "SELECT * FROM medicine";
DataRow[] datarows = mydb.drExecute(sPath, sSql);
if (datarows == null)
{
Text = "Ошибка чтения!";
mydb = null;
return;
}
foreach (DataRow dr in datarows)
{
listBox1.Items.Add(dr["name"].ToString());
}
return;
}
36
Размещено на http://www.allbest.ru/
catch
{
MessageBox.Show("Вы не выбрали строку для удаления", "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
Размещено на Allbest.ru
37