Разработка программы для упрощения работы с электронной записной книжкой

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    469,53 Кб
  • Опубликовано:
    2013-10-03
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка программы для упрощения работы с электронной записной книжкой

Содержание

Введение

1 Проектирование программного модуля

.1 Постановка задачи

.2 Математическое (логическое) описание задачи

.3 Описание данных, используемых при решении задачи

Разработка программного модуля

.1 Структура программного модуля

.2 Описание разработанной программы

3 Тестирование программного модуля

Руководство программиста

Заключение

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

Приложения

Приложение А. Код программы

Приложение Б. Входные и выходные формы программы

Введение

В современном мире компьютерные технологии играют важную роль во всех отраслях. Компьютеры используются повсеместно - в банках, научных организациях, финансовых учреждениях, машиностроительных предприятиях, домах, гостиницах и отелях. Они используются для различных целей - от проведения простых вычислений, игр и формального набора текстовых документов до проектирования различных задач, моделирования, работы со сложнейшей графикой.

Компьютеры в своей работе используют инженеры, конструкторы, администраторы, писатели, художники, композиторы и музыканты. На базе компьютеров созданы самые совершенные медицинские приборы. Без компьютеров сегодня невозможно создание промышленных роботов, автоматических линий. Положено начало применению персональных компьютеров в обучении.

Компьютерные технологии - одна из самых молодых наук и, возможно, самая быстроразвивающаяся. Буквально за 20 лет компьютеры стали неотъемлемой частью практически любой сферы деятельности человека. Они быстро эволюционировали из громоздких, дорогих, ненадежных, медленно работающих машин в компактные недорогие и, что самое главное, быстрые и надежные устройства. Современный персональный компьютер в десятки раз мощнее первых ПК, не говоря уже вообще о первых компьютерах. Современный ПК позволяет проводить сложнейшие расчеты, работать с графикой, выполнять моделирование и просто послушать музыку или посмотреть фильмы.

В настоящее время для ПК разработано огромное количество программ, позволяющих выполнять различные функции с минимальным участием пользователя. Одним из достоинств программы является полная ориентация на пользователя. Максимальная функциональность и удобство интерфейса программы - вот основные требования, предъявляемые к разработчикам программных продуктов. Начинающему работу за компьютером человеку должно быть понятно, как обращаться с программой и ее основными функциями. Чтобы дать разработчикам программ возможность разрабатывать такое программное обеспечение, необходимо создавать соответствующие языки программирования.

Языки программирования развивались параллельно с компьютерами. Первым языком программирования был машинный код, который использовался для пробивания перфокарт к первым компьютерам, но он требовал огромных познаний в области организации компьютеров. Затем был придуман Assembler, который очень сильно облегчил работу программистам. Однако и он оставался машинно-ориентированным языком. На смену ему пришли более простые Pascal и С, а затем Basic, C++, Delphi, С++ Builder. На сегодняшний день наиболее популярен язык программирования С++ Builder, основанный на языке С. Этот язык наиболее прост и понятен. С++Builder называют объектно-ориентированным языком программирования. Большинство современных приложений разрабатывается именно на этом языке.

Таким образом приложение «Записная книжка» включающее в себя немало современной функциональности, разрабатывается на трех языках программирования: С/C++, C++ Builder, C#.

1. Проектирование программного модуля

.1 Постановка задачи

Описать класс «запись», содержащий следующие закрытые поля:

• фамилия, имя;

• номер телефона;

• дата рождения (массив из трех чисел).

Предусмотреть свойства для получения состояния объекта.

Описать класс «записная книжка», содержащий закрытый массив записей. Обеспечить следующие возможности:

• вывод на экран информации о человеке, номер телефона которого введен

с клавиатуры; если такого нет, выдать на дисплей соответствующее сообщение;

• поиск людей, день рождения которых сегодня или в заданный день;

• поиск людей, день рождения которых будет на следующей неделе;

• поиск людей, номер телефона которых начинается на три заданных цифры.

Написать программу, демонстрирующую все разработанные элементы классов.

1.2 Математическое (логическое) описание задачи

Создаваемый модуль представляет собой класс Zapis, состоящий из следующих закрытых полей:

«Фамилия» - хранит в себе фамилию.

«Имя» - хранит в себе имя

«Телефон» - хранит в себе телефон

«Дата рождения » - хранит в себе дату рождения.

А также класс ZapisBook, представляющий собой закрытый массив элементов типа Zapis.

Для работы с модулем были описаны методы позволяющие выводить информацию на экран, осуществлять поиск информации из класса по критериям.

1.3 Описание данных, используемых при решении задачи

В программном продукте «Записная книжка» исходными данными являются сведения о контактах. Данные извлекаются из файла, затем заносятся в массив класса и выводятся на экран.

В приложении, написанном на языке программирования C++Builder, данные отображаются в сетке StringGrid.

. Информация, считающаяся из файла, записывается в поля класса:.

фамилия (Fam) - поле типа string

- имя (Name) - поле типа string .

- телефон (tel) - поле типа string

дата рождения(data) - массив типа int, состоящий из трех элементов, хранящих день, месяц и год рождения.

2. Разработка программного модуля

.1 Структура программного модуля

Блок-схема процедуры заполнения класса ZapisBook из текстового файла (в соответствии с рисунком 1):

Рисунок 1 - Блок-схема процедуры заполнения класса

Блок-схема процедуры вывода информации из класса ZapisBook в компонент Stringgrid (в соответствии с рисунком 2):

Рисунок 2- Блок-схема процедуры вывода информации из класса

Блок-схема для поиска данных (в соответствии с рисунком 3):

 

Рисунок 3.Лист 1 - Блок-схема для поиска данных по дате

Рисунок 3.Лист 2 - Блок-схема для поиска данных по дате

Рисунок 3.Лист 3 - Блок - схема для поиска данных по дате

2.2 Описание разработанной программы

Данная программа была разработана на трех языках программирования: Microsoft Visual C++ (консольное приложение), С++ Builder, Microsoft Visual C#(консольное приложение) для реализации возможности автоматизированного ввода информации по сотрудникам предприятия, с целью последующего хранения данной информации, её обработки, а так же для оперативного доступа к уже имеющейся в базе данных информации. программа электронный записная книжка

Для того чтобы выполнить какую-либо операцию необходимо нажать соответствующую кнопку.

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

При запуске программы открывается главная форма с размещенной на ней сеткой данных StringGrid. В ней отображаются данные, которые сохраняются в текстовом документе.

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

Общий интерфейс программы достаточно прост и пользователю, знакомому с Windows, не будет составлять большого труда научиться работать с ней.

Для того чтобы выполнить какую-либо операцию необходимо нажать соответствующую кнопку. К примеру, для того, чтобы совершить поиск по дате необходимо выбрать нужный критерий и нажать кнопку «Поиск».

3. Тестирование программного модуля

Тестирование программы можно произвести в три этапа.

. Тестирование устойчивости. Проверялась реакция программы на некорректный ввод данных, значения которых выходят за допустимый диапазон.

. Тестирование функциональности. Выполнялась проверка правильности предоставленной информации. Данные во всех случаях успешно проверены.

3. Тестирование применимости. Выполнялась проверка удовлетворения способов использования требованиям задания (время реакции приложения на команды пользователя, понятность интерфейса, устойчивость вычислительного процесса).

Таблица 1 Отчёт выполнения тестирования

П/п

 Этап тестирования

 Ошибки

Отметка об исполнении

1

Тестирование устойчивости

 Нет

Выполнено

2

Тестирование функциональности

 Нет

Выполнено

3

Тестирование применимости

 Нет

Выполнено


Технические характеристики компьютера, на котором проводилось тестирование:

процессор Pentium IV 2.40 Gg

1024 оперативной памяти, DDR2 5300;

- видеокарта Radeon 9600 Pro ;

монитор LG FLATRON F730B;

жёсткий диск Samsung, объём 320Гб.

Тестирование показало, что программа работает без ошибок. Никаких отклонений в работе ее не обнаружено. Загрузка происходит быстро и составляет не более 15 секунд.

4. Руководство программиста

Данное приложение имеет интуитивно понятный интерфейс, не требует дополнительных знаний.

Ограничениями в области использования программ могут выступать системные требования, связанные с операционной системой, данный продукт разработан под операционную систему Windows, и не имеет возможности запуска на MacOS, Unix, Linux и иных операционных системах.

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

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

Для того чтобы совершить поиск по данным нужно выбрать нужный критерий и нажать на кнопку «Поиск». Возможен поиск по двум направлениям: по дате рождения и по номеру телефона.

При поиске по дате необходимо выбрать один из пунктов: «День рождения сегодня», «День рождения на следующей недели» или «В другой день». Если выбран критерий «В другой день», то нужно ввести в поле ввода необходимую дату.

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

Заключение

В результате выполнения курсового проекта была разработана программа для упрощения работы с электронной записной книжкой.

Кроме этого были расширены некоторые знания из данной предметной области и укреплены знания объектно-ориентированных языков программирования C/C++, C++Builder, C#. При реализации проекта были пройдены этапы описания и постановки задачи, кодирования программы на алгоритмический язык и тестирования полученного приложения.

На основании вышеизложенного можно сделать вывод, что использование курсового проекта заметно упростит ведение записей имеющихся контактов.

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

1.   Ишкова, Э. А. С++. Начала программирования / Э. А.Ишкова. - М.: «Бином», 2000. -304 с.

2.      Культин, Н. Б. С/С++ в задачах и примерах / Н. Б. Культин. - СПб.: БХВ-Петербург, 2002. - 592 с.

.        Павловская, Т. А. С/С++. Программирование на языке высокого уровня: учебник / Т. А.Павловская. - СПб.: Питер, 2006. - 461 с.

.        Павловская, Т.А. С/С++. Структурное программирование: практи-кум / Т.А. Павловская, Ю.А. Щупак - СПб.: Питер, 2003. - 240 с.

.        Подбельский, В.В. Язык С++:учеб. пособие / В.В. Подбельский - М.: Финансы и статистика, 2005. - 560с.

.        Шелест, В. Д. Программирование / В. Д. Шелест - СПб: БХВ - Петербург, 2002. - 288 с.

.        Шилдт, Г. Программирование на BORLAND C++ для профессионалов: пер. с англ./ Г. Шилдт - Минск.: Попурри, 1998. - 800 с.

1.   8. Шилдт, Г. Теория и практика С++: пер. с англ. / Г. Шилдт. - СПб.: БХВ-Петербург, 2001. - 416 с.

.     Методические рекомендации для учащихся по выполнению курсового проекта по дисциплине "Конструирование программ и языки програмирования", 2011.

9.      ГОСТ 19.402-2000 ЕСПД. Описание программы.

.        ГОСТ 19.404-79 ЕСПД. Пояснительная записка. Требования к содержанию и оформлению.

.        ГОСТ 19.504-79 ЕСПД. Руководство программиста. Требования к содержанию и оформлению.

Приложение А

Код программы:

Листинг программы в Microsoft Visual C#. WindowsFormsApplication

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;WindowsFormsApplication1

{partial class Form1 : Form

{Form1()

{();

}void vivod()

{zn = new ZapisBook("notebook.txt");<Zapis> mans = zn.vivod();i = 0;.RowCount = 2;(mans.Count != 0)

{(Zapis z in mans)

}

}

}void Form1_Load(object sender, EventArgs e)

{

}void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

{

}void Form1_Activated(object sender, EventArgs e)

{();

}void button1_Click(object sender, EventArgs e)

{(radioButton1.Checked == true)

{(int i = 0; i < dataGridView1.RowCount; i++)

{.Rows[i].Cells[0].Value = "";.Rows[i].Cells[1].Value = "";.Rows[i].Cells[2].Value = "";.Rows[i].Cells[3].Value = "";

}.RowCount = 1;zn = new ZapisBook("notebook.txt");<Zapis> mans = zn.SearchMans();(mans.Count != 0)

{.RowCount = mans.Count;(int j = 0; j < mans.Count; j++)

{.Rows[j].Cells[0].Value = mans[j].Famil;.Rows[j].Cells[1].Value = mans[j].Name;.Rows[j].Cells[2].Value = mans[j].Telefon;.Rows[j].Cells[3].Value = Convert.ToString(mans[j].Date[0]) + "." + Convert.ToString(mans[j].Date[1]) + "." + Convert.ToString(mans[j].Date[2]);

}

}MessageBox.Show("Искомых записей нет");

}(radioButton2.Checked == true)

{(int i = 0; i < dataGridView1.RowCount; i++)

{.Rows[i].Cells[0].Value = "";.Rows[i].Cells[1].Value = "";.Rows[i].Cells[2].Value = "";.Rows[i].Cells[3].Value = "";

}.RowCount = 1;zn = new ZapisBook("notebook.txt");<Zapis> mans = zn.SearchMansNextWeek();(mans.Count != 0)

{.RowCount = mans.Count;(int j = 0; j < mans.Count; j++)

{.Rows[j].Cells[0].Value = mans[j].Famil;.Rows[j].Cells[1].Value = mans[j].Name;.Rows[j].Cells[2].Value = mans[j].Telefon;.Rows[j].Cells[3].Value = Convert.ToString(mans[j].Date[0]) + "." + Convert.ToString(mans[j].Date[1]) + "." + Convert.ToString(mans[j].Date[2]);

}

}MessageBox.Show("Искомых записей нет");

}(radioButton3.Checked == true)

{[] Words = maskedTextBox1.Text.Split(new char[] { '.' });dd = Convert.ToInt32(Words[0]);dm = Convert.ToInt32(Words[1]);(int i = 0; i < dataGridView1.RowCount; i++)

{.Rows[i].Cells[0].Value = "";.Rows[i].Cells[1].Value = "";.Rows[i].Cells[2].Value = "";.Rows[i].Cells[3].Value = "";

}.RowCount = 1;zn = new ZapisBook("notebook.txt");<Zapis> mans = zn.SearchMans(dd, dm);(mans.Count != 0)

{.RowCount = mans.Count;(int j = 0; j < mans.Count; j++)

{.Rows[j].Cells[0].Value = mans[j].Famil;.Rows[j].Cells[1].Value = mans[j].Name;.Rows[j].Cells[2].Value = mans[j].Telefon;.Rows[j].Cells[3].Value = Convert.ToString(mans[j].Date[0]) + "." + Convert.ToString(mans[j].Date[1]) + "." + Convert.ToString(mans[j].Date[2]);

}

}MessageBox.Show("Искомых записей нет");

}

}void button2_Click(object sender, EventArgs e)

{(radioButton4.Checked == true)

{.RowCount = 1;(int i = 0; i < dataGridView1.RowCount; i++)

{.Rows[i].Cells[0].Value = "";.Rows[i].Cells[1].Value = "";.Rows[i].Cells[2].Value = "";.Rows[i].Cells[3].Value = "";

}j = 0;telefon = textBox2.Text;zn = new ZapisBook("notebook.txt");mans = zn.SearchTelefon(telefon);.Rows[j].Cells[0].Value = mans.Famil;.Rows[j].Cells[1].Value = mans.Name;.Rows[j].Cells[2].Value = mans.Telefon;.Rows[j].Cells[3].Value = Convert.ToString(mans.Date[0]) + "." + Convert.ToString(mans.Date[1]) + "." + Convert.ToString(mans.Date[2]);.RowCount += 1;

}(radioButton5.Checked == true)

{.RowCount = 1;(int i = 0; i < dataGridView1.RowCount; i++)

{.Rows[i].Cells[0].Value = "";.Rows[i].Cells[1].Value = "";.Rows[i].Cells[2].Value = "";.Rows[i].Cells[3].Value = "";

}telefon = textBox2.Text;zn = new ZapisBook("notebook.txt");

<Zapis> mans = zn.SearchMans3NumTel(telefon);.RowCount = mans.Count;(int j = 0; j < mans.Count; j++)

{.Rows[j].Cells[0].Value = mans[j].Famil;.Rows[j].Cells[1].Value = mans[j].Name;.Rows[j].Cells[2].Value = mans[j].Telefon;.Rows[j].Cells[3].Value = Convert.ToString(mans[j].Date[0]) + "." + Convert.ToString(mans[j].Date[1]) + "." + Convert.ToString(mans[j].Date[2]);

}

}

}void radioButton1_Click(object sender, EventArgs e)

{();

}void radioButton2_Click(object sender, EventArgs e)

{();

}void radioButton3_Click(object sender, EventArgs e)

{();

}void radioButton4_Click(object sender, EventArgs e)

{();

}void radioButton5_Click(object sender, EventArgs e)

{();

}

}

}

Классы :System;System.IO;System.Collections.Generic;System.Linq;System.Text;WindowsFormsApplication1

{Zapis

{

// закрытые члены класса: фамилия, имя, телефон, дата рожденияString _famil;String _name;String _telefon;Int32[] _date = new Int32[3];

// конструстор классаZapis(String f, String n, String t, Int32 d, Int32 mn, Int32 y)

{= f.Trim();= n.Trim();= t.Trim();[0] = d;[1] = mn;[2] = y;

}

// свойства для доступа к закрытым членам классаString Famil

{{ return _famil; }{ _famil = value; }

}String Name

}String Telefon

{{ return _telefon; }{ _telefon = value; }

}Int32[] Date

{{ return _date; }{ _date = value; }

}

// виртуальный метод, который можно переопределить в наследных классах.virtual void print()

{.WriteLine("{0} {1}, родился {2}.{3}.{4}, его номер телефона: {5}",, Famil, Date[0], Date[1], Date[2], Telefon);

}

}

}System;System.IO;System.Collections.Generic;System.Linq;System.Text;WindowsFormsApplication1

{ZapisBook

{

//private Zapis[] _mass = new Zapis[0];

// закрытый массив записейList<Zapis> _mass = new List<Zapis>();

//конструктор класса, подгружает из файла данныеZapisBook(String filename)

{sr = new StreamReader(filename);text = sr.ReadToEnd();[] lines = text.Split(new String[] { "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries);(String s in lines)

{[] zap = s.Split(new String[] { ";" }, StringSplitOptions.RemoveEmptyEntries);

_mass.Add(new Zapis(zap[0], zap[1], zap[2], Int32.Parse(zap[3]), Int32.Parse(zap[4]), Int32.Parse(zap[5])));

}

}List<Zapis> vivod()

{<Zapis> mas = new List<Zapis>();(Zapis z in _mass).Add(z);mas

;

}

// поиск человека по телефонуZapis SearchTelefon(String tel)

{(Zapis z in _mass)(z.Telefon == tel) return z;null;

}

// поиск людей, день рождения которых сегодняList<Zapis> SearchMans()

{dt = DateTime.Now;<Zapis> mas = new List<Zapis>();(Zapis z in _mass)(z.Date[0] == dt.Day && z.Date[1] == dt.Month).Add(z);mas;

}

// поиск людей, день рождения которых в заданный деньList<Zapis> SearchMans(Int32 day, Int32 month)

{<Zapis> mas = new List<Zapis>();(Zapis z in _mass)(z.Date[0] == day && z.Date[1] == month).Add(z);mas;

}

// поиск людей, день рождения которых будет на следующей неделеList<Zapis> SearchMansNextWeek()

{

// указатель на начало следующей неделиdt_now = DateTime.Now;dw = dt_now.DayOfWeek;n = (dw == DayOfWeek.Sunday) ? 1 : DayOfWeek.Saturday - dw + 2;

// указатель указывает на понедельник следующей недели_now = dt_now.AddDays(n);<Zapis> mas = new List<Zapis>();(Zapis z in _mass)

{

// день рождения человека из записи.dt = new DateTime(dt_now.Year, z.Date[1], z.Date[0]);

// если дата рождения входит в диапазон следующего понедельника и следующего воскресенья(dt.DayOfYear >= dt_now.DayOfYear && dt.DayOfYear < dt_now.DayOfYear + 7).Add(z);

}mas;

}

// поиск людей, номер телефона которых начинается на три заданных цифрыList<Zapis> SearchMans3NumTel(String num)

{<Zapis> mas = new List<Zapis>();(Zapis z in _mass)(z.Telefon.StartsWith(num)).Add(z);mas;

}

}

}

Листинг программы в Microsoft Visual C#. ConsoleApplication

using System;System.Collections.Generic;ConsoleApplication3

{Program

{void Main()

{zn = new ZapisBook("notebook.txt");.Write("Введите номер телефона: ");tel = Console.ReadLine();man = zn.SearchTelefon(tel.Trim());(man != null)

{.WriteLine("С заданным номером телефона {0} нашлась запись:", tel);.print();

}.WriteLine("С заданным номером телефона {0} записей не нашлось", tel);<Zapis> mans = zn.SearchMansNextWeek();(mans.Count != 0)

{.WriteLine("На следующей неделе день рождение у следующих сотрудников:");(Zapis z in mans).print();

}.WriteLine("На следующей неделе именников нет");.Write("Введите первые 3 цифры телефона: ");= Console.ReadLine();= zn.SearchMans3NumTel(tel);(mans.Count != 0)

{.WriteLine("С первыми цифрами телефона {0}* нашлись записи:", tel);(Zapis z in mans).print();

}.WriteLine("С первыми цифрами телефона {0}* записей не нашлось.", tel);.ReadLine();

}

}

}

С++ Builder

//---------------------------------------------------------------------------

#include <vcl.h>

#include "Unit1.h"

#include "File1.h"

#include "File2.h"

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"*Form1;*abonent;*book;print()

{->StringGrid1->Cells[0][i+1]=book->GetZapis(i)->GetFam();->StringGrid1->Cells[1][i+1]=book->GetZapis(i)->GetName();->StringGrid1->Cells[2][i+1]=book->GetZapis(i)->GetTel();->StringGrid1->Cells[3][i+1]=book->GetZapis(i)->GetDate_Day()+"."+book->GetZapis(i)->GetDate_Month()+"."+book->GetZapis(i)->GetDate_Year();

}

}

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{= new Zapis("Fam", "Imya", "Tel", 14, 4, 2013);= new ZapisBook();

}

//---------------------------------------------------------------------------__fastcall TForm1::Button1Click(TObject *Sender)

{();

}

//---------------------------------------------------------------------------__fastcall TForm1::FormCreate(TObject *Sender)

{->Cells[0][0]="Фамилия";->Cells[1][0]="Имя";->Cells[2][0]="Телефон";->Cells[3][0]="Дата рождения";();

}

//---------------------------------------------------------------------------__fastcall TForm1::Button2Click(TObject *Sender)

{(RadioGroup2->ItemIndex==0) {= new Zapis("Fam", "Imya", "Tel", 14, 4, 2013);=book->SearchTelefon(Edit2->Text);(abonent!=NULL){->RowCount=2;(int i=0;i<book->GetCount();i++) {->StringGrid1->Cells[0][i+1]=abonent->GetFam();->StringGrid1->Cells[1][i+1]=abonent->GetName();->StringGrid1->Cells[2][i+1]=abonent->GetTel();->StringGrid1->Cells[3][i+1]=abonent->GetDate_Day()+"."+abonent->GetDate_Month()+"."+abonent->GetDate_Year();

}

}

else ShowMessage("С заданным номером телефона записей не нашлось");

}(RadioGroup2->ItemIndex==1) {k=book->GetCount(),m=1;*mas= new int[k];str,massiv="",st;=Edit2->Text;l=0, pos=0;(int i=0;i<book->GetCount();i++) {=Form1->StringGrid1->Cells[2][i+1];=st.Pos(str);(strstr((Form1->StringGrid1->Cells[2][i+1]).c_str(),str.c_str())!=NULL && pos==1)[i]=i;mas[i]=book->GetCount()+1;+=" "+IntToStr(mas[i]);

}(int i=0;i<StringGrid1->ColCount;i++)(int j=1; j<StringGrid1->RowCount;j++)->Cells[i][j] = "";->RowCount=1;(int i=0;i<book->GetCount();i++) {(mas[i]!=book->GetCount()+1) {->RowCount+=1;->StringGrid1->Cells[0][m]=book->GetZapis(i)->GetFam();->StringGrid1->Cells[1][m]=book->GetZapis(i)->GetName();->StringGrid1->Cells[2][m]=book->GetZapis(i)->GetTel();->StringGrid1->Cells[3][m]=book->GetZapis(i)->GetDate_Day()+"."+book->GetZapis(i)->GetDate_Month()+"."+book->GetZapis(i)->GetDate_Year();++;

} else l++;

}if (l==book->GetCount()){("С заданным номером телефона записей не нашлось");

print();}

}

}

//---------------------------------------------------------------------------__fastcall TForm1::RadioGroup1Click(TObject *Sender)

{(RadioGroup1->ItemIndex ==2)->Visible=True;MaskEdit1->Visible=False;

}

//---------------------------------------------------------------------------__fastcall TForm1::Button3Click(TObject *Sender)

{(RadioGroup1->ItemIndex==0) {

// print();k=book->GetCount();*mas= new int[k];dt = Date();dr;

//dt += 7;day, month, day_grid, month_grid;= atoi(FormatDateTime("dd", dt).c_str());= atoi(FormatDateTime("mm", dt).c_str());(int i=0; i<book->GetCount(); i++)

{= StrToDate(Form1->StringGrid1->Cells[3][i+1]);_grid = atoi(FormatDateTime("dd", dr).c_str());_grid = atoi(FormatDateTime("mm", dr).c_str());(day_grid == day && month_grid == month) mas[i] = i;mas[i]=book->GetCount()+1;

}=0;(int i=0;i<StringGrid1->ColCount;i++)(int j=1; j<StringGrid1->RowCount;j++)->Cells[i][j] = "";->FixedRows=1;->RowCount=2;(int i=0; i<book->GetCount(); i++) {(mas[i]!=book->GetCount()+1) {->RowCount += 1;->StringGrid1->Cells[0][k+1]=book->GetZapis(i)->GetFam();->StringGrid1->Cells[1][k+1]=book->GetZapis(i)->GetName();->StringGrid1->Cells[2][k+1]=book->GetZapis(i)->GetTel();->StringGrid1->Cells[3][k+1]=book->GetZapis(i)->GetDate_Day()+"."+book->GetZapis(i)->GetDate_Month()+"."+book->GetZapis(i)->GetDate_Year();++;

}

}

if (k==0) ShowMessage("Работников не найдено");

}(RadioGroup1->ItemIndex==1) {

// print();k=book->GetCount();*mas= new int[k];dt = Date();dr;+= 7;day, month, day_grid, month_grid;= atoi(FormatDateTime("dd", dt).c_str());= atoi(FormatDateTime("mm", dt).c_str());(int i=0; i<book->GetCount(); i++)

{= StrToDate(Form1->StringGrid1->Cells[3][i+1]);_grid = atoi(FormatDateTime("dd", dr).c_str());_grid = atoi(FormatDateTime("mm", dr).c_str());(day_grid == day && month_grid == month) mas[i] = i;mas[i]=book->GetCount()+1;

}=0;->RowCount=1;(int i=0; i<book->GetCount(); i++) {(mas[i]!=book->GetCount()+1) {->RowCount += 1;->StringGrid1->Cells[0][k+1]=book->GetZapis(i)->GetFam();->StringGrid1->Cells[1][k+1]=book->GetZapis(i)->GetName();->StringGrid1->Cells[2][k+1]=book->GetZapis(i)->GetTel();->StringGrid1->Cells[3][k+1]=book->GetZapis(i)->GetDate_Day()+"."+book->GetZapis(i)->GetDate_Month()+"."+book->GetZapis(i)->GetDate_Year();++;

}

}

if (k==0) ShowMessage("Работников не найдено");

}(RadioGroup1->ItemIndex==2) {

//print();k=book->GetCount();*mas= new int[k];dt = StrToDate(MaskEdit1->Text);dr;day, month, day_grid, month_grid;= atoi(FormatDateTime("dd", dt).c_str());= atoi(FormatDateTime("mm", dt).c_str());(int i=0; i<book->GetCount(); i++)

{= StrToDate(Form1->StringGrid1->Cells[3][i+1]);_grid = atoi(FormatDateTime("dd", dr).c_str());_grid = atoi(FormatDateTime("mm", dr).c_str());(day_grid == day && month_grid == month) mas[i] = i;mas[i]=book->GetCount()+1;

}=0;->RowCount=1;(int i=0; i<book->GetCount(); i++) {(mas[i]!=book->GetCount()+1) {->RowCount += 1;->StringGrid1->Cells[0][k+1]=book->GetZapis(i)->GetFam();->StringGrid1->Cells[1][k+1]=book->GetZapis(i)->GetName();->StringGrid1->Cells[2][k+1]=book->GetZapis(i)->GetTel();->StringGrid1->Cells[3][k+1]=book->GetZapis(i)->GetDate_Day()+"."+book->GetZapis(i)->GetDate_Month()+"."+book->GetZapis(i)->GetDate_Year();++;

}

}

if (k==0) ShowMessage("Работников не найдено");

}

}

//---------------------------------------------------------------------------__fastcall TForm1::Button4Click(TObject *Sender)

{();

}

//---------------------------------------------------------------------------

#ifndef File1_h

#define File1_h

#include <string.h>namespace std;

class Zapis

{

// закрытые члены класса: фамилия, имя, телефон, дата рождения

private:

_famil;_name;

String _telefon;_date[3];

// свойства для доступа к закрытым членам класса

public:

// конструстор класса(String, String, String, int, int, int);GetName();GetFam();GetTel();GetDate_Day();GetDate_Month();GetDate_Year();

// конструстор класса::Zapis(String f, String n, String t, int d, int mn, int y) {

_famil = f.Trim();

_name = n.Trim();

_telefon = t.Trim();

_date[0] = d;

_date[1] = mn;

_date[2] = y;

}Zapis::GetName() {_name;

}Zapis::GetFam() {_famil;

}Zapis::GetTel() {_telefon;

}Zapis::GetDate_Day() {_date[0];

}Zapis::GetDate_Month() {_date[1];

}Zapis::GetDate_Year() {_date[2];

}

#endif

#ifndef File2_h

#define File2_h

#include "File1.h"

#include <string.h>

#include <stdio.h>namespace std;ZapisBook

{

private:

// закрытый массив записей*_mass[100];_count;:

//конструктор класса, подгружает из файла данные

ZapisBook();();* GetZapis(int);* SearchTelefon(String);(int *,int);

};

//конструктор класса, подгружает из файла данные

ZapisBook::ZapisBook() {

_count = 0;*f;c, *cstr, *words[100] = {0}, *p;str;i;= fopen("notebook.txt", "r");= "";( !feof(f) ) {= fgetc(f);( c == EOF ) break;(c == '\n') {= str.c_str();= strtok(cstr, ";");= 0;(p) {[i++] = p;

}{= strtok('\0', ";");(p) {[i++] = p;

}

} while(p);

_mass[_count] = new Zapis(words[0], words[1], words[2], atoi(words[3]), atoi(words[4]), atoi(words[5]));

_count++;= "";

} else {+= c;

}

}(str,mtConfirmation,TMsgDlgButtons()<<mbYes<<mbNo, 0);(f);

}::GetCount() {_count;

}* ZapisBook::GetZapis(int i) {_mass[i];

}* ZapisBook::SearchTelefon(String tel)

{(int i=0; i<GetCount();i++)(GetZapis(i)->GetTel() == tel)return GetZapis(i);

return NULL;

}

// поиск людей, день рождения которых сегодня

ZapisBook::SearchMans(int *mass,int k)

{day, month, year, hour, min, sec;= FormatDateTime("dd", Date());= FormatDateTime("mm", Date());= FormatDateTime("yyyy", Date());

/* char *p,*cstr;str,dat[3],dd="";dt = Date();=DateToStr(dt);= str.c_str();        i = 0;= strtok(cstr, ".");(p) {[i++] = p;

}

*/l=0;(int i=0; i<GetCount();i++)(GetZapis(i)->GetDate_Day()==day &&GetZapis(i)->GetDate_Month()== month){[i]=i;

} else mass[i]=0;*mass;

}

#endif

Приложение Б

Входные и выходные формы программы

Рисунок 1. Главная форма программы в Microsoft C#

Рисунок 2. Главная форма программы Microsoft C++ Builder

Рисунок 3. Консольное приложение Microsoft C#

Похожие работы на - Разработка программы для упрощения работы с электронной записной книжкой

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!