
- •Программирование
- •Часть 1 программирование на языке Си
- •1. Задание и методические указания
- •К выполнению курсовой работы
- •2. Краткие теоретические сведения
- •Int num; // названия элементов
- •Часть 2 Программирование на языке Ассемблер
- •1. Задание и методические указания
- •К выполнению курсовой работы
- •2. Краткие теоретические сведения
- •Окончание табл. 8
- •Литература
- •Программирование на языках си и Ассемблер Методические указания
- •6 30092, Г. Новосибирск, пр. К. Маркса, 20
М
инистерство
образования и науки Российской Федерации
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
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 |
динамическое |
Убывает |
Экран |