Программное обеспечение для автоматизированного рабочего места завуча

Разработка программного обеспечения для автоматизированного рабочего места завуча. Системное и функциональное проектирование. Разработка программного кода приложения на языке программирования C++. Тестирование приложения, инструкция по использованию.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 22.04.2015
Размер файла 338,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ВВЕДЕНИЕ

Широкое распространение новых информационных технологий привело к радикальным изменениям всей хозяйственной деятельности на территории Республики Беларусь, связанной с обслуживанием населения.

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

Активно внедряя автоматизацию в производственные процессы, руководство Министерства образования четко определило главную цель: повышение качества знаний учащихся, создание оптимальных условий работы преподавателей. Успех в этой работе во многом зависит от того, насколько технологически грамотно весь этот сложный программно-технический комплекс будет использован для главной цели его создания - эффективного обслуживания населения.

программный автоматизированный завуч

ПОСТАНОВКА ЗАДАЧИ

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

· личный номер ученика

· список учащихся

· текущие оценки

· средний балл

В приложении должны быть реализованы следующие модули:

- ввод данных в базу;

- добавление данных в базу;

- вывод данных из базы, на монитор для просмотра;

- сортировка записей базы по алфавиту и последующего их вывода на монитор в удобном для просмотра виде;

- поиск элемента;

- модуль удаления данных из базы.

1. АНАЛИЗ РЕШАЕМОЙ ПРОБЛЕМЫ

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

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

2. СИСТЕМНОЕ ПРОЕКТИРОВАНИЕ

Для работы программы требуется PC совместимый компьютер и компилятор Microsoft Visual C++ . При использовании иного сочетания характеристик системы, на которой будет использоваться программа, возможны некоторые расхождения с результатами работы.

2.1 Разработка спецификаций функций

Для решения поставленных задач необходимо разработать следующие функции:

void look()

//вывод информации на экран

void enter()

//ввод данных

void poisk()

//поиск записи

void sort()

//сортировка данных

void redac()

//редактирование данных

void delet()

//удаление записи

Так как разрабатываемая программа состоит из подпрограмм, то реализация вышеописанных функций на языке С++ представлена в Приложении .

3. ФУНКЦИОНАЛЬНОЕ ПРОЕКТИРОВАНИЕ

3.1 Разработка обобщенного алгоритма функционирования приложения

Разработаем обобщенный алгоритм функционирования приложения.

Рис. 3.1 Схема обобщенного алгоритма функционирования приложения

3.2 Разработка структуры приложения и структуры данных

Приложение будет иметь меню, через которое можно будет обращаться к реализуемым функциям.

Структура меню имеет следующий вид:

Главное меню.

1) Просмотр.

-вывод содержимого файла на экран

-возврат в меню

2) Ввод данных.

-ввод личного номера

-ввод Ф.И.О.

-ввод текущих оценок.

-возврат в меню

3) Редактирование.

-ввод личного номера

-удаление записи

-ввод личного номера

-ввод Ф.И.О.

-ввод текущих оценок.

-возврат в меню

4) Поиск.

-ввод личного номера

-вывод записи на экран

-возврат в меню

5) Сортировка

-1 -Личному номеру

-2 - По фамилии

-3 - Среднему баллу

-возврат в меню

6) Удаление.

-ввод личного номера

-удаление записи

-возврат в меню

7) Выход.

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

const char *file=" jurnal";

//структура данных ученика

struct Stud

{

int number; //личный номер

char fam[15]; //фамилия

char name[15]; //имя

char otchestvo[15]; // отчество

double istor_bel; // оценка по истории Белоруссии

double informatic; // оценка по информатике

double fizika; // оценка по физике

double matem; // оценка по математике

double bel_yz; // оценка по белорусскому языку

double bel_lit; // оценка по белорусской литературе

double rus_yz; // оценка по русскому языку

double rus_lit; // оценка по русской литературе

double chog; // оценка по Ч.О.Г.

double in_yz; // оценка по иностранному языку

double fizra; // оценка по физкультуре

double biologia; // оценка по биологии

double geografiy; // оценка по географии

double sredni_ball; // средний балл

3.3 Разработка программного кода приложения

C++ - универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей C++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, C++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы. Ключевым понятием C++ является класс. Класс - это тип, определяемый пользователем. Классы обеспечивают скрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. C++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline- подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В C++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем.

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

Для разработки программы использовался пакет Microsoft Visual C++

Листинг программы представлен в Приложении.

4. РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЯ. ИСПОЛЬЗУЕМЫЕ ТЕСТЫ

Протестировать функционирование всего приложения по пунктам меню:

Запуск приложения:

Ввод данных в базу:

Вывод содержимого базы:

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

5. ОПИСАНИЕ ПРИЛОЖЕНИЯ, ИНСТРУКЦИЯ ПО ЕГО ИСПОЛЬЗОВАНИЮ

Программа предназначена для ведения упрощенной базы данных по успеваемости учеников. Подробное описание работы с программой приведено в пункте 3.4. Для функционирования программы необходим персональный компьютер любой конфигурации. Программа может работать в операционных системах MS DOS, Windows 95/98/Me/NT/2000/XP.

Минимальный размер места на винчестере для корректной работы с программой - 300Кб.

Начало работы программы

Главное меню

1 - Просмотр ….

2 - Ввод…..

3 - Редактирование ……

4 - Поиск…

5 - Сортировка …

6 - Удаление записи

7- Выход

Ввод данных в базу

Для ввода данных в базу выбираем пункт 2 и нажимаем Enter, после чего вводим нужное нам личный номер, фамилию, имя, отчество, текущие оценки, по окончании ввода нажимаем на клавишу Enter. Далее следуем указаниям системы:

Личный номер - 123

ФИО - Петров Валерий Алексеевич

Математика - 9

Биология - 8

Для выхода в главное меню <1> для выхода <2>

При выборе в последнем запросе 1 происходит выход в Главное меню.

Вывод заданной базы на экран

Для вывода записей базы на монитор выбираем пункт 3 и нажимаем Enter, после чего на запрос ввести «Имя файла», вводим нужное нам имя, по окончании ввода нажимаем на клавишу Enter. Система выводит данные из файла:

Сортировка

Для сортировки записи в базе выбираем пункт 5 и нажимаем Enter, после чего на запрос вводим нужный нам пункт , по окончании ввода нажимаем на клавишу Enter. Система сортирует данные и по завершении сортировки возвращает нас (пользователя) в Главное меню:

Поиск

Для поиска нужного элемента и вывода информации о нем выбираем пункт 4 и нажимаем Enter, после чего на запрос вводим личный номер ученика, по окончании ввода нажимаем на клавишу Enter. Система выводит искомую запись

Удаление

Чтобы воспользоваться удалением записи выбираем пункт 6 и нажимаем Enter, после чего на запрос вводим личный номер удаляемого по окончании ввода нажимаем на клавишу Enter. Система удаляет запись.

Вывод информации

Для вывода статистической информации выбираем пункт 1 и нажимаем Enter, после чего на экран выводятся все данные в виде таблицы:

Выход

Выход из программы осуществляется при выборе пункта 7 Главного меню.

ЗАКЛЮЧЕНИЕ

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

· личный номер ученика;

· список учащихся;

· текущие оценки;

· средний балл.

В программе реализованы следующие модули:

- ввод данных в базу;

- добавление данных в базу;

- вывод данных из базы, на монитор для просмотра;

- сортировка записей базы по алфавиту и последующего их вывода на монитор в удобном для просмотра виде;

- поиск элемента;

- модуль удаления данных из базы.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Демидович Е.М. Основы алгоритмизации и программирования. Язык СИ.: Пособие для студентов БГУИР. - Мн.: Бестпринт, 2001. - 440 с.

2. Шилдт Г. Самоучитель С++. - СПб.: BHV-Санкт-Петербург, 1998. - 688 с.

3. Лафоре Р. Объектно-ориентированное программирование в С++. Классика Computer Science.4-е изд. - СПб.;Питер,2006. - 928 с.

ПРИЛОЖЕНИЕ

#include <iostream>

#include <fstream>

#include <windows.h>

#include <cstdlib>

#include <iomanip>

#include <conio.h>

using namespace std;

const char *file="jurnal";

char *r (char *buf);

char a[256];

char *r(char *b)

{

CharToOem(b,a); return a;

}

inline void eatline()

{ while (cin.get()!='\n')continue;}

struct Stud

{

int number;

char fam[15];

char name[15];

char otchestvo[15];

double istor_bel;

double informatic;

double fizika;

double matem;

double bel_yz;

double bel_lit;

double rus_yz;

double rus_lit;

double chog;

double in_yz;

double fizra;

double biologia;

double geografiy;

double sredni_ball;

};

class Base

{

int a,num,j,b, g;

public:

Stud ob;

void menu()

{

system("cls");

cout<<r(" Контроль успеваемости учащихся СШ№ 3\n")<<endl;

cout<<r(" 1.Просмотр")<<endl;

cout<<r(" 2.Ввод")<<endl;

cout<<r(" 3.Редактирование")<<endl;

cout<<r(" 4.Поиск")<<endl;

cout<<r(" 5.Сортировка")<<endl;

cout<<r(" 6.Удаление")<<endl;

cout<<r(" 7.Выход")<<endl;

a=_getch();

switch (a)

{

case '1':look();next(); break;

case '2':enter();next(); break;

case '3':redac(); next(); break;

case '4': poisk();next(); break;

case '5':sort(); next(); break;

case '6': delet();next(); break;

case '7':exit(1); break;

default:cout<<r("Ошибка повторите ввод!!!");}}

void next()

{

cout<<r("Для выхода в главное меню нажмите (1) для выхода (2)")<<endl;

a=_getch();

switch (b)

{

case '1': menu(); break;

case '2':exit(1);}}

void proverka()

{fstream fil;

fil.open(file,ios::out | ios::in | ios::binary);

if (!file)

{cout<<r(" Файл не найден !!!")<<endl; system("pause");}

fil.close();}

void look()

{ system("cls");

Stud ob;

ifstream in;

in.open(file, ios::in | ios::binary);

if (!in){

cout<<r("Ошибка");}

cout<<"********************************************************************************"<<endl;

while(in.read((char*)&ob,sizeof ob))

cout<<"|"<< setw (2)<< ob.number<<"|"<<setw(10)<<ob.fam<<"|"<<setw(8)<<ob.name<<"|"

<<setw(13)<<ob.otchestvo<<"|"<<setw(2)<< ob.matem<<"|"<<setw(2)<<ob.bel_yz<<"|"

<<setw(2)<<ob.bel_lit<<"|"<<setw(2)<<ob.rus_yz<<"|"<<setw(2)<<ob.rus_lit<<"|"

<<setw(2)<<ob.informatic<<"|"<<setw(2)<<ob.in_yz<<"|"<<setw(2)<<ob.chog<<"|"

<<ob.istor_bel<<"|"<<setw(2)<<ob.geografiy<<"|"<<setw(2)<<ob.fizika<<"|"<<setw(2)

<<ob.biologia<<"|"<<setw(2)<<ob.fizra<<"|"<<setw(4)

<<setprecision(2)<<ob.sredni_ball<<"|"<<endl;

cout<<"***************************************************"<<endl;

in.close();

}

void enter()

{

Stud ob;

ofstream out;

out.open(file, ios::out | ios::app | ios::binary);

if (!out)

{

cout<<r("Ошибка");

}

system("cls");

cout<<r("Личный номер:");

cin >>ob.number;

eatline();

cout<<r ("Фамилия:");

cin.getline(ob.fam,15);

cout<<r("Имя:");

cin.getline(ob.name,15);

cout<<r("Отчество:");

cin.getline(ob.otchestvo,15);

cout<<r("Математика:");

cin>>ob.matem;

cout<<r("Белорусский язык:");

cin>>ob.bel_yz;

cout<<r("Белорусская литература:");

cin>>ob.bel_lit;

cout<<r("Русский язык:");

cin>>ob.rus_yz;

cout<<r("Русская литература:");

cin>>ob.rus_lit;

cout<<r("Иностранный язык:");

cin>>ob.in_yz;

cout<<r("Информатика:");

cin>>ob.informatic;

cout<<r ("Физика:");

cin>>ob.fizika;

cout<<r("Истрория Беларуси:");

cin>>ob.istor_bel;

cout<<r("Ч.О.Г:");

cin>>ob.chog;

cout<<r("География:");

cin>>ob.geografiy;

cout<<r("Биология:");

cin>>ob.biologia;

cout<<r("Ф-ра:");

cin>>ob.fizra;

ob.sredni_ball=(ob.matem+ob.bel_yz+ob.informatic+ob.bel_lit+ob.in_yz+ob.rus_yz+ob.rus_lit+ob.biologia+ob.istor_bel+ob.chog+ob.fizika+ob.fizra+ob.geografiy)/13; eatline();

out.write((char*)&ob, sizeof ob);

out.close();

system("pause");

}

void poisk()

{

system("cls");

int temp;

Stud ob;

fstream poisk(file, ios::in | ios::binary);

look();

cout<<r("Поиск по личному номеру:")<<endl;

cin>>temp;

eatline();

while(true){

poisk.read((char*)&ob,sizeof (Stud));

if(poisk.eof())

{cout<<"net "<<temp<<endl;return;}

if (temp==ob.number)

{

cout<<"*****************************************************************************"<<endl;

cout<<"|"<< setw (2)<< ob.number<<"|"<<setw(10)<<ob.fam<<"|"<<setw(8)<<ob.name<<"|"

<<setw(13)<<ob.otchestvo<<"|"<<setw(2)<< ob.matem<<"|"<<setw(2)<<ob.bel_yz<<"|"

<<setw(2)<<ob.bel_lit<<"|"<<setw(2)<<ob.rus_yz<<"|"<<setw(2)<<ob.rus_lit<<"|"

<<setw(2)<<ob.informatic<<"|"<<setw(2)<<ob.in_yz<<"|"<<setw(2)<<ob.chog<<"|"

<<ob.istor_bel<<"|"<<setw(2)<<ob.geografiy<<"|"<<setw(2)<<ob.fizika<<"|"<<setw(2)

<<ob.biologia<<"|"<<setw(2)<<ob.fizra<<"|"<<setw(4)

<<setprecision(2)<<ob.sredni_ball<<"|"<<endl;

cout<<"*****************************************************************************"<<endl;

return;}}

}

void sort()

{

system("cls");

fstream sort;

sort.open(file, ios::in | ios::binary);

Stud ob[1000];

Stud tem;

int count = 0;

while(!sort.eof())

{

sort.read((char*)&ob[count],sizeof(Stud)); count++;

} count--;

cout<<r("Сортировка по:\n1 -Личному номеру\n2 - По фамилие\nЗ - Среднему баллу: ");

int a;

cin>> a;

eatline();

if(a==1)

{

for(int i=0;i<count;i++)

for(int j=0;j<count;j++)

{

if(ob[i].number<ob[j].number)

{

tem=ob[i];

ob[i]=ob[j];

ob[j]=tem;}}

if(a==2)

for(int i=0;i<count;i++)

for(int j=0;j<count;j++)

if(ob[i].fam[0]<ob[j].fam[0])

{

tem=ob[i];ob[i]=ob[j];

ob[j]=tem;

}}

else if(a==3)

for(int i=0;i<count;i++)

for(int j=0;j<count;j++)

if(ob[i].sredni_ball<ob[j].sredni_ball)

{tem=ob[i]; ob[i]=ob[j];

ob[j]=tem;}

sort.close(); sort.clear();

sort.open(file, ios::out | ios::binary);

for (a = 0; a < count; a++)

sort. write((char*)&ob[a],sizeof (Stud)); sort.close();}

//////////////////////////////////////////////////

void redac()

{system("cls");

int t=0;

Stud ob[ 1000];

fstream del;

del.open(file, ios::in | ios::out | ios::binary);

if (!del.is_open()){ cout <<r("Ошибка!!!")<< endl; exit(1);}

int count = 0;

while (!del.eof())

{

del.read((char*)&ob[count], sizeof(Stud));

count++;}

look();

count--;

cout<<r ("Введите личный номер ученика для редактирования: ");

double number;

cin >>number;

del.close();

del.clear();

del.open(file, ios::out | ios::binary);

for (int x = 0; x < count; x++)

if (ob[x].number!=number)

del.write((char*)&ob[x],sizeof (Stud));

enter();

del.close();}

void delet()

{

system("cls");

int t=0;

Stud ob[ 1000];

fstream del;

del.open(file, ios::in | ios::out | ios::binary);

if (!del.is_open()){ cout <<r("Ошибка!!!")<< endl; exit(1);}

int count = 0;

while (!del.eof())

{

del.read((char*)&ob[count], sizeof(Stud));

count++;

}

look();

count--;

cout<<r ("Введите личный номер ученика каторого надо удалить: ");

double number;

cin >>number;

del.close();

del.clear();

del.open(file, ios::out | ios::binary);

for (int x = 0; x < count; x++)

if (ob[x].number!=number)

del.write((char*)&ob[x],sizeof (Stud));

del.close();

}};

void main()

{

Base ob;

ob.proverka();

while (1)

{ ob.menu();

}}

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.