Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИ_Ассемблер_МУ_Курс.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
843.26 Кб
Скачать

М инистерство образования и науки Российской Федерации

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

004 № 3181

П 784

Программирование

на языках

CИ и АССЕМБЛЕР

Методические указания

к курсовым работам для студентов I и II курсов АВТФ

(направления 550200 и 552800) дневной формы обучения

НОВОСИБИРСК

2006

УДК 004.431.4 (076.5)

П 784

Составители: Г.П. Голодных, канд. техн. наук, доц.

А.В. Гунько, канд. техн. наук, доц.

Г.В. Саблина, канд. техн. наук, доц.

Рецензент Р.Г. Шахмаметов, канд. техн. наук, доц.

Работа подготовлена на кафедре автоматики

© Новосибирский государственный

технический университет, 2006

Часть 1 программирование на языке Си

1. Задание и методические указания

К выполнению курсовой работы

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

1) ввод записи с произвольным номером;

2) вывод записи с заданным номером;

3) сортировка записей по заданному полю в порядке убывания или возрастания;

4) вывод всех записей в отсортированном порядке на экран или принтер;

5) сохранение всех записей в файле;

6) чтение записей из файла.

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

Варианты полей базы данных:

A – фамилия, год рождения, оклад

B – наименование детали, количество, вес

C – название пункта, расстояние, количество рейсов

D – название книги, количество страниц, цена

E – фамилия, номер курса, стипендия

F – название фирмы, количество работников, уставной капитал

2. Краткие теоретические сведения

Структура в языке СИ объединяет логически связанные данные разных типов. Состав структуры определяется описанием шаблона:

Struct ELEM // имя шаблона

{

Int num; // названия элементов

char name [20];

float sum;

};

Здесь ELEM имя структуры; num, name и sum – элементы структуры и их типы. В качестве элементов структуры могут быть также использованы имена других структур.

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

struct ELEM st; // структура

struct ELEM sm[10]; // массив структур

struct ELEM *sp; // указатель на структуру

struct ELEM *spm[10]; // массив указателей на структуры

Для обращения к элементу структуры используется операция «.», например:

st.num = 2;

sm [3].sum = 3.3;

scanf («%s», &sp.name);

Для обращения к элементу структуры, адресуемой указателем, используется операция «–>», например:

sp > num = 2;

spm [3] > sum = 3.3;

spm > name[0] = ’R’;

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

struct ELEM *sp;

sp = malloc(sizeof(struct ELEM));

Таблица 1

Поля записи БД (элементы структуры)

Количе-ство записей в БД

№ поля

для сортировки

Выделение памяти под структуры

Тип сортировки

Устройство для вывода записей

1

A

100

1

статическое

Возрастает

Принтер

2

B

200

2

динамическое

Убывает

Экран

3

C

300

3

статическое

Убывает

Принтер

4

D

100

1

динамическое

Возрастает

Принтер

5

E

300

2

статическое

Убывает

Экран

6

F

200

3

динамическое

Возрастает

Экран

7

A

200

2

статическое

Возрастает

Экран

8

B

300

3

динамическое

Убывает

Принтер

9

C

100

1

статическое

Возрастает

Принтер

10

D

200

1

динамическое

Убывает

Экран

11

E

100

3

динамическое

Убывает

Принтер

12

F

300

2

статическое

Возрастает

Экран

13

A

200

1

статическое

Возрастает

Экран

14

B

100

3

динамическое

Убывает

Экран

15

C

300

2

статическое

Возрастает

Принтер

16

D

200

2

динамическое

Убывает

Принтер

17

E

300

1

статическое

Возрастает

Экран

18

F

100

3

динамическое

Убывает

Экран

19

A

200

1

динамическое

Возрастает

Экран

20

B

300

2

статическое

Возрастает

Принтер

21

C

100

3

статическое

Убывает

Принтер

22

D

300

3

динамическое

Возрастает

Экран

23

E

200

2

динамическое

Убывает

Экран

24

F

200

1

статическое

Убывает

Экран

25

A

100

2

статическое

Возрастает

Экран

Таблица 2

Поля записи БД (элементы структуры)

Количество записей в БД

№ поля для сортировки

Выделение памяти под структуры

Тип сортировки

Устройство для вывода записей

1

D

200

2

динамическое

Убывает

Экран

2

E

300

3

статическое

Возрастает

Экран

3

F

100

2

динамическое

Убывает

Экран

4

A

200

3

статическое

Убывает

Принтер

5

B

100

1

динамическое

Возрастает

Принтер

6

C

300

1

статическое

Возрастает

Экран

7

D

200

3

динамическое

Убывает

Принтер

8

E

100

2

динамическое

Возрастает

Экран

9

F

300

1

статическое

Убывает

Экран

10

A

200

3

статическое

Возрастает

Экран

11

B

300

2

динамическое

Убывает

Принтер

12

C

100

2

статическое

Возрастает

Принтер

13

D

200

1

динамическое

Возрастает

Экран

14

E

300

3

статическое

Убывает

Экран

15

F

100

1

динамическое

Возрастает

Экран

16

A

300

2

динамическое

Убывает

Принтер

17

B

200

3

статическое

Убывает

Принтер

18

C

200

3

статическое

Возрастает

Экран

19

D

100

2

динамическое

Возрастает

Экран

20

E

300

1

динамическое

Убывает

Экран

21

F

200

2

статическое

Убывает

Экран

22

A

100

1

статическое

Возрастает

Принтер

23

B

200

3

статическое

Убывает

Экран

24

C

300

2

динамическое

Возрастает

Принтер

25

D

100

1

статическое

Возрастает

Принтер

Таблица 3

Поля записи БД (элемен-ты структуры)

Коли-чество

записей

в БД

№ поля

для сортировки

Выделение

памяти

под структуры

Тип

сортировки

Устройство для вывода записей

1

D

300

3

статическое

Возрастает

Экран

2

E

100

2

динамическое

Убывает

Принтер

3

F

200

3

динамическое

Возрастает

Принтер

4

A

100

1

статическое

Убывает

Экран

5

B

300

1

статическое

Убывает

Экран

6

C

200

3

динамическое

Возрастает

Экран

7

D

100

2

статическое

Возрастает

Принтер

8

E

300

1

динамическое

Убывает

Принтер

9

F

200

3

статическое

Возрастает

Экран

10

A

300

2

динамическое

Убывает

Экран

11

B

100

2

динамическое

Возрастает

Экран

12

C

200

1

статическое

Убывает

Экран

13

D

300

3

статическое

Возрастает

Экран

14

E

100

1

динамическое

Возрастает

Принтер

15

F

300

2

динамическое

Убывает

Экран

16

A

200

3

статическое

Возрастает

Принтер

17

A

200

3

статическое

Убывает

Принтер

18

B

100

2

статическое

Убывает

Экран

19

C

100

1

динамическое

Возрастает

Экран

20

D

200

2

статическое

Возрастает

Экран

21

E

300

1

динамическое

Убывает

Принтер

22

F

100

2

статическое

Убывает

Принтер

23

A

300

3

динамическое

Возрастает

Экран

24

B

200

1

статическое

Возрастает

Принтер

25

C

200

2

динамическое

Возрастает

Экран

Таблица 4

Поля записи БД (элементы структуры)

Количество записей в БД

№ поля

для сортировки

Выделение памяти под структуры

Тип сортировки

Устройство для вывода записей

1

B

100

1

Статическое

Возрастает

Принтер

2

C

200

2

динамическое

Убывает

Экран

3

D

100

3

Статическое

Возрастает

Экран

4

E

300

2

динамическое

Убывает

Экран

5

F

200

3

Статическое

Возрастает

Принтер

6

A

100

1

динамическое

Убывает

Принтер

7

B

300

1

динамическое

Возрастает

Экран

8

C

200

3

Статическое

Возрастает

Принтер

9

D

300

2

Статическое

Убывает

Экран

10

E

100

1

динамическое

Возрастает

Экран

11

F

200

3

Статическое

Убывает

Экран

12

A

300

2

динамическое

Убывает

Принтер

13

A

100

2

Статическое

Возрастает

Принтер

14

A

300

1

динамическое

Возрастает

Экран

15

B

200

3

динамическое

Убывает

Экран

16

C

200

1

Статическое

Убывает

Экран

17

D

100

2

Статическое

Возрастает

Принтер

18

E

100

3

динамическое

Убывает

Принтер

19

F

200

3

динамическое

Возрастает

Экран

20

A

300

2

Статическое

Возрастает

Экран

21

B

100

1

Статическое

Убывает

Экран

22

C

300

2

Статическое

Возрастает

Экран

23

D

200

1

динамическое

Убывает

Принтер

24

E

200

2

Статическое

Убывает

Экран

25

F

300

3

динамическое

Возрастает

Принтер

Таблица 5

Поля записи БД (элементы структуры)

Количество записей в БД

№ поля

для сорти-ровки

Выделение

памяти под

структуры

Тип

сорти-

ровки

Устройство для вывода записей

1

E

100

2

статическое

Убывает

Экран

2

F

300

3

динамическое

Возрастает

Экран

3

A

200

2

статическое

Убывает

Принтер

4

B

300

3

динамическое

Возрастает

Принтер

5

C

100

1

динамическое

Возрастает

Экран

6

D

200

1

статическое

Убывает

Принтер

7

E

300

3

статическое

Возрастает

Экран

8

F

100

2

динамическое

Убывает

Экран

9

A

300

1

статическое

Убывает

Экран

10

B

200

3

динамическое

Возрастает

Принтер

11

C

200

2

статическое

Возрастает

Принтер

12

D

100

2

динамическое

Убывает

Экран

13

E

200

1

динамическое

Возрастает

Экран

14

F

100

3

статическое

Убывает

Экран

15

A

200

1

статическое

Возрастает

Принтер

16

B

300

2

динамическое

Убывает

Принтер

17

C

100

3

динамическое

Возрастает

Экран

18

D

300

3

статическое

Возрастает

Экран

19

E

200

2

статическое

Убывает

Экран

20

F

200

1

статическое

Возрастает

Экран

21

A

300

2

динамическое

Убывает

Принтер

22

A

100

1

статическое

Убывает

Экран

23

B

200

2

динамическое

Возрастает

Принтер

24

C

100

3

статическое

Возрастает

Принтер

25

D

300

1

динамическое

Убывает

Экран

Таблица 6

Поля записи БД (эле-менты структуры)

Кол-во записей

в БД

№ поля

для сор-

тиров-

ки

Выделение

памяти

под струк-

туры

Тип

сорти-

ровки

Устройство для вывода записей

1

E

300

1

динамическое

Убывает

Принтер

2

F

200

1

статическое

Возрастает

Экран

3

A

100

3

динамическое

Возрастает

Принтер

4

B

300

2

статическое

Убывает

Экран

5

C

200

1

динамическое

Возрастает

Экран

6

D

300

3

статическое

Убывает

Экран

7

E

100

2

динамическое

Убывает

Принтер

8

F

200

2

статическое

Возрастает

Принтер

9

A

300

1

динамическое

Возрастает

Экран

10

B

100

3

динамическое

Убывает

Экран

11

C

300

1

статическое

Возрастает

Экран

12

D

200

2

статическое

Убывает

Принтер

13

E

200

3

динамическое

Возрастает

Принтер

14

F

100

3

статическое

Убывает

Экран

15

A

100

2

динамическое

Возрастает

Экран

16

A

200

1

статическое

Возрастает

Экран

17

B

300

2

динамическое

Убывает

Экран

18

C

100

1

динамическое

Возрастает

Принтер

19

D

300

2

статическое

Убывает

Экран

20

E

200

3

статическое

Убывает

Принтер

21

F

200

1

динамическое

Возрастает

Принтер

22

A

300

2

динамическое

Возрастает

Экран

23

B

100

3

статическое

Убывает

Экран

24

C

200

2

статическое

Убывает

Экран

25

D

100

3

статическое

Возрастает

Принтер

Таблица 7

Поля записи БД (элемен-ты труктуры)

Коли-

чество

записей

в БД

№ поля

для

сорти-

ровки

Выделение

памяти под

структуры

Тип

сорти-

ровки

Устройство для вывода записей

1

C

200

2

статическое

Убывает

Принтер

2

D

200

3

динамическое

Возрастает

Принтер

3

E

300

1

статическое

Возрастает

Экран

4

F

100

2

динамическое

Убывает

Экран

5

A

200

3

статическое

Возрастает

Экран

6

B

100

2

динамическое

Убывает

Принтер

7

C

300

3

динамическое

Возрастает

Принтер

8

D

200

1

статическое

Убывает

Экран

9

E

100

1

статическое

Возрастает

Принтер

10

F

300

3

динамическое

Возрастает

Экран

11

A

200

2

статическое

Убывает

Экран

12

B

300

1

динамическое

Возрастает

Экран

13

C

100

3

статическое

Убывает

Принтер

14

D

200

2

динамическое

Убывает

Принтер

15

E

300

2

динамическое

Возрастает

Экран

16

F

100

1

статическое

Возрастает

Экран

17

A

300

3

статическое

Убывает

Экран

18

B

200

1

динамическое

Убывает

Принтер

19

C

200

2

динамическое

Возрастает

Принтер

20

D

100

3

статическое

Убывает

Экран

21

E

100

3

статическое

Возрастает

Экран

22

F

200

2

статическое

Возрастает

Экран

23

A

300

1

динамическое

Убывает

Экран

24

A

100

2

статическое

Возрастает

Принтер

25

B

300

1

динамическое

Убывает

Экран

                      

Таблица 8

Поля записи БД (элементы структуры)

Коли-чество запи-

сей

в БД

№ поля

для

сорти-

ровки

Выделение

памяти

под структуры

Тип

сорти-

ровки

Устройство для вывода записей

1

A

100

2

статическое

Возрастает

Экран

2

B

300

3

динамическое

Возрастает

Принтер

3

C

200

1

динамическое

Убывает

Принтер

4

D

300

1

статическое

Возрастает

Экран

5

E

100

3

статическое

Убывает

Принтер

6

F

200

2

динамическое

Возрастает

Экран

7

A

300

1

статическое

Убывает

Экран

8

B

100

3

динамическое

Возрастает

Экран

9

C

300

2

статическое

Возрастает

Принтер

10

D

200

2

динамическое

Убывает

Принтер

11

E

200

1

динамическое

Возрастает

Экран

12

F

100

3

статическое

Убывает

Экран

13

A

200

1

статическое

Убывает

Экран

14

A

100

2

динамическое

Возрастает

Принтер

15

B

200

3

динамическое

Возрастает

Принтер

16

C

300

3

статическое

Убывает

Экран

17

D

100

2

статическое

Убывает

Экран

18

E

300

1

статическое

Возрастает

Экран

19

F

200

2

динамическое

Убывает

Экран

20

A

200

1

статическое

Возрастает

Принтер

21

B

300

2

динамическое

Возрастает

Экран

22

C

100

3

статическое

Убывает

Принтер

23

D

200

1

динамическое

Возрастает

Принтер

24

E

100

2

статическое

Убывает

Экран

25

F

300

3

динамическое

Убывает

Экран