У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


Розробка програмного забезпечення

Сформувати файл «Stud.dat», що містить інформацію про контингент студентів ІМЕГА

КУРСОВА РОБОТА

з дисципліни ОСНОВИ ПРОГРАМУВАННЯ

Зміст

Завдання..................................................................................................2 стр.

Анотація..................................................................................................3 стр.

Annotation…...…………………………………………………………5 стр.

Опис програми.......................................................................................6 стр.

Висновок.................................................................................................7 стр.

Список використаної літератури..........................................................8 стр.

Додатки...................................................................................................9 стр.

Додаток А.............................................................................................10 стр.

Додаток В.............................................................................................22 стр.

АНОТАЦІЯ

В даній програмі створено списки студентів інституту і проаналізовано їх.

ANNOTATION

In this program the lists of students of institute are created and analysed them.

ОПИС ПРОГРАМИ

Дана програма формує файл “stud.dat”, записує в нього інформацію про контингент студентів ІМЕГА, а саме: порядковий номер запису, прізвище імя та по-батькові студента. Також заносяться курс, назва факультету, форма навчання та середня семестрова оцінка. Є можливість доповняти файл з клавіатури та вилучати непотрібні дані. Це забезпечено завдяки наявності в початковій структурі ключа, по якому можна зробити висновки щодо необхідності цього елемента.

Тобто якщо ключ дорівнює 0, елемент необхідно вважати видаленим і при формуванні списків його не відображати. Функція revival() обнулює всі ключі, таким чином забезпечує відновлення попередньої версії файлу. Функція delete() витирає з файлу всі елементи в яких даний ключ дорівнює 1, притому присвоює ключу 1 в вибраному користувачем елементі бази даних.

Програма також дозволяє формувати списки як по групах, так і по курсах, так і по факультетах.

ВИСНОВОК

Розробляючи дану програму я розглянув такі елементи мови С++ як вказівники, на основі яких я зумів побудувати динамічну базу даних – список. Адже така побудова програми дозволяє більш ширше використовувати це програмне забезпечення, ніж програму розроблену на основі масиву. Програма на основі масиву використовувала скінчену кількість пам’яті, яку в процесі виконання програми змінити не можливо. Розроблена мною програма використовує динамічну базу даних. Це дозволяє змінювати об’єм пам’яті використаної під час роботи програми.

ПЕРЕЛІК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

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

2. Фролов А.В., Фролов Г.В. MS-DOS для программиста. – М.: ДИАЛОГ-МИФИ, 1995. – 256с.

3. Велихов А.В. Макроассемблер: Создание и отладка программ. – М.: Майор, 2001. – 192 с. – (Мой компьютер).

4. Лаптев В. В. С++ Експресс-курс. – СПб.:БХВ – Петербург,2004. – 512 с.

Додатки

ДОДАТОК А

//KYRS.CPP

//revival deleting forming

#include <iostream>

#include <conio>

#include <stdio>

#include <fcntl.h>

#include <stdlib>

#include <io>

#include "kyrs.h"

void forming(void){

student* people;

people = new student;

people->surname = new char [20];

people->form = new char [6];

people->group = new char [7];

people->name = new char [10];

people->farther = new char [20];

people->faculty = new char [20];

people->next = NULL;

student* pv;

pv = new student;

pv->surname = new char [20];

pv->form = new char [6];

pv->group = new char [7];

pv->name = new char [10];

pv->farther = new char [20];

pv->faculty = new char [20];

pv->next = NULL;

clrscr();

char ch,*mode;

int kyrs;

mode = new char [20];

printf("Enter form of list:\n1: in group\n2: on kyrs\n3: on faculty\n");

ch = getch();

clrscr();

people = form();

int availability=0;

printf("Please specify how to form the list of students: in order of growth or slump of middle semester estimation(g/s):\n");

char order;

order = getche();

int value = 0;

printf("\nEnter form in which you want to see list(group, kyrs or faculty):\n");

switch(ch) {

case '1':

scanf("%s",mode);

pv = people->next;

if (!strcoll(mode,people->group)) ++availability;

while(pv->next != NULL) {

if (!strcoll(mode,pv->group)) ++availability;

pv = pv->next; }

if (!strcoll(mode,pv->group)) ++availability;

if (availability == 0) {

printf("\nThe group %s is absent",mode);

getch();

return; }

clrscr();

printf("\n\tList in group %s\n\n",mode);

if (availability == 1) {

if (!strcoll(mode,people->group)) {

printf("%i - %s %s %s %s %s %d - %d",availability,people->surname,people->name,people->farther,people->faculty,people->form,people->year,people->mark);

getch();

return; }

pv = people->next;

while(pv != NULL) {

if (!strcoll(mode,pv->group)) printf("%i - %s %s %s %s %s %d - %d",availability,pv->surname,pv->name,pv->farther,pv->faculty,pv->form,pv->year,pv->mark);

pv = pv->next; }

getch();

return; }

while(strcoll(mode,people->group)) {

people = Ldelete(people,people->ind); }

pv = people->next;

while(pv->next != NULL) {

while(strcoll(mode,pv->group)) {

pv = Ldelete(people,pv->ind); }

pv = pv->next; }

if (strcoll(mode,pv->group)) pv = Ldelete(people,pv->ind);

pv = people->next;

break;

case '2':

scanf("%d",&kyrs);

pv = people->next;

if (kyrs == people->year) ++availability;

while(pv != NULL) {

if (kyrs == pv->year) ++availability;

pv = pv->next; }

if (availability == 0) {

printf("\nThe students of %d year are absent",kyrs);

getch();

return; }

clrscr();

printf("\n\tList of students of %d year\n\n",kyrs);

if (availability == 1) {

if (kyrs == people->year) {

printf("%i - %s %s %s %s %s %s - %d",availability,people->surname,people->name,people->farther,people->faculty,people->group,people->form,people->mark);

getch();

return; }

pv = people->next;

while(pv != NULL) {

if (kyrs == pv->year) printf("%i - %s %s %s %s %s %s - %d",availability,pv->surname,pv->name,pv->farther,pv->faculty,pv->group,pv->form,pv->mark);

pv = pv->next; }

getch();

return; }

while(kyrs != people->year)

{ people = Ldelete(people,people->ind); }

pv = people->next;

while(pv != NULL) {

while(kyrs != pv->year)

{ pv = Ldelete(people,pv->ind); }

pv = pv->next; }

pv = people->next;

break;

case '3':

scanf("%s",mode);

pv = people->next;

if (!strcoll(mode,people->faculty)) ++availability;

while(pv->next != NULL) {

if (!strcoll(mode,pv->faculty)) ++availability;

pv = pv->next; }

if (!strcoll(mode,pv->faculty)) ++availability;

if (availability == 0) {

printf("\nThe faculty %s is absent",mode);

getch();

return; }

clrscr();

printf("\n\tList in faculty %s\n\n",mode);

if (availability == 1) {

if (!strcoll(mode,people->faculty)) {

printf("%i - %s %s %s %s %s %d - %d",availability,people->surname,people->name,people->farther,people->faculty,people->form,people->year,people->mark);

getch();

return; }

pv = people->next;

while(pv != NULL) {

if (!strcoll(mode,pv->faculty)) printf("%i - %s %s %s %s %s %d - %d",availability,pv->surname,pv->name,pv->farther,pv->faculty,pv->form,pv->year,pv->mark);

pv = pv->next; }

getch();

return; }

while(strcoll(mode,people->faculty)) {

people = Ldelete(people,people->ind); }

pv = people->next;

while(pv->next != NULL) {

while(strcoll(mode,pv->faculty)) {

pv = Ldelete(people,pv->ind); }

pv = pv->next; }

if (strcoll(mode,pv->faculty)) pv = Ldelete(people,pv->ind);

pv = people->next;

break;

default:

clrscr();

printf("You enter error!!!\nPlease reenter your choice");

break; }

switch(order) {

case 'g':

for (value = 2;value <= 5; ++value) {

pv = people->next;

if (people->mark == value) {

printf("--- %s %s %s


Сторінки: 1 2 3