Здрасти, очень нужна помощь по C#!
Started By GeNeTiK, дек 05 2009 00:47
7 ответов в этой теме
#1
Отправлено 05 декабря 2009 - 00:47
Сдесь выложу задания, если кто то сможет что то решить, то буду оочень благодарен...
Я понимаю, что ищу халявы, но у меня больше нет выхода....
1-е задание
Для хранения данных о цветных планшетных сканерах описать структуру с именем scan_info, содержащую поля
- наименование модели
- цена
- горизонтальный размер области сканирования (double)
- вертикальный размер области сканирования (double)
- оптическое разрешение (int)
- число градаций серого
-
Запросить количество сканеров, информация о которых будет вводиться.
Выделить память под массив структур соответствующего размера и заполнить его данными в режиме диалога (с клавиатуры).
Информация о сканерах печатается на экране, причем сначала пишутся данные о всех сканерах, имя которых начинается с заглавной буквы, а затем - с прописной.
Написать функцию, которая сортирует записи по одной из следующих характеристик:
цена либо число градаций серого. Обязательный параметр – признак, задающий критерий сортировки.
2-е задание
Напишите программу «Студенческая группа».
Программа работает с находящимся на диске файлом «iati.dat».
Программа предусматривает следующую функциональность:
1. «Добавление в список»
2. «Поиск по фамилии»
3. «Редактирование записи»
3. «Удалить из списка по фамилии»
4. «Отображение содержимого файла»
5. «Создать файл со списком группы»
6. «Печать списка именинников в заданном месяце»
7. «Завершение работы»
Все пункты меню должны быть оформлены виде отдельных методов.
Описать структуру с именем STUDENT, содержащую следующие поля:
Фамилия;
Имя;
Номер группы;
Личный код (isikukood).
Имя и фамилия хранятся в файле в следующем виде:
первая буква заглавная, остальные прописные.
«Добавление в список» - ввод с клавиатуры данных;
При добавлении новой записи - не допускать добавления повторной записи.
Записи добавляются в порядке сортировки по номеру группы и внутри по фамилиям.
Сделать метод, который проверяет корректность личного кода (isikukood)
– длина 11 символов.
Должна выполняться «контрольная сумма», например
3-е задание
1. Описать структуру card – библиотечная карточка.
Поля структуры:
- заглавие книги;
- имя автора;
- количество экземпляров книг.
Методы:
- store() – заносит информацию о книге в поля класса;
- show() – печатает информацию о книге.
2. Создать класс Lib - библиотека
Поля класса:
- ссылка на массив карточек card;
- int indexCard; - отражает текущее количество заполненных карточек.
Методы:
- конструктор с параметром. Параметр - количество книг, которое будет заноситься в каталог библиотеки. Конструктор будет выделять нужное количество памяти под массив карточек.
- заносит данные в массив карточек. (Используя метод store())
- печатает содержимое массива;
- поиск нужной книги по названию;
- поиск всех книг, которые соответствуют введенному фрагменту названия;
- поиск всех книг заданного автора.
Примечание: Предусмотреть, контроль, чтобы не выйти за границы массива.
Предусмотреть запись/чтение в файл.
3. Создать класс Library – библиотека.
По своим возможностям класс Library является аналогом класса Lib, но работает с динамическим массивом, то есть с объектом класса ArrayList.
Предусмотреть запись/чтение в файл.
Поля класса:
- ссылка на объект класса ArrayList;
Свойство класса (доступ - только чтение):
- int CountCard; - отражает текущее количество заполненных карточек.
Методы:
- конструктор без параметров. Конструктор создает объект класса ArrayList.
- заносит данные в динамический массив. Элемент массива – объект структуры card.
- печатает содержимое динамического массива;
- поиск нужной книги по названию;
- поиск всех книг, которые соответствуют введенному фрагменту названия;
- поиск всех книг заданного автора.
Примечание:
Для пунктов задания 1, 2, 3** разработчик вправе вводить любое (с обоснованием необходимости) число дополнительных полей и методов.
4. Написать тестовую программу:
Для создания экземпляров класса выполнить проверку всех разработанных методов.
Создать меню:
- добавит карточку в каталог
- печать каталога;
- поиск нужной книги по названию;
- поиск по фрагменту названия;
- поиск книг автора.
4-е задание
Пример на наследование классов. Числовая прогрессия – это последовательность значений. Значение каждого элемента прогрессии зависит от одного или более предыдущих членов. В прогрессии должен существовать способ определения первого члена прогрессии, а также способ определения значения текущего (следующего) члена прогрессии.
1. Описать базовый класс Progression.
В этом классе будут описаны «общие» поля и методы числовой прогрессии.
Поля класса:
protected long first; - значение первого члена прогрессии;
protected long cur; - значение текущего члена прогрессии;
Методы класса:
Progression(); - инициализирует переменные класса нулевым значением;
protected long firstValue(); - определяет первый член прогрессии как текущий (cur= first), возвращает значение первого члена прогрессии (текущего);
protected long nextValue(); - переходит к следующему члену прогрессии и
возвращает его значение; (каждый следующий член прогрессии: ++cur;)
public void printProgression(int n); - вычисляет прогрессию и выводит значения первых n членов прогрессии; (n - число членов прогрессии, выводимых на печать)
Замечание: printProgression(int n)
1) определяет первый член прогрессии и его печатает - firstValue()
2) вычисляет следующие n-1 члены прогрессии и печатает их - nextValue()
2. Описать производный от Progression класс арифметической прогрессии ArithProgression.
Класс описывает прогрессию, в которой значение каждого последующего члена
определяется путем прибавления к предыдущему значению приращения inc.
Класс наследует поля first и cur, и методы firstValue() и printProgression(n).
Поля класса:
long inc; - содержит значение приращения.
Методы класса:
- конструктор без параметров – по умолчанию устанавливает приращение =1;
- конструктор, принимающий в качестве параметра значение приращения;
- переопределяется метод nextValue() в соответствии со способом получения
следующего члена арифметической прогрессии.
3. Описать производный от Progression класс геометрической прогрессии GeomProgression.
Класс описывает прогрессию, в которой значение каждого последующего члена
определяется путем умножения значения предыдущего члена на постоянный
множитель (знаменатель геометрической прогрессии).
Класс наследует поля first и cur, методы firstValue() и printProgression(n).
Методы класса:
- конструктор без параметров – устанавливает значение знаменателя =2;
- конструктор, принимающий в качестве параметра значение знаменателя;
(first присваивается значение знаменателя)
- переопределяется метод nextValue() в соответствии со способом получения
значения следующего члена геометрической прогрессии.
Примечание. Если знаменатель геометрической прогрессии >128, то при обращении к методу nextValue() возникает ошибка превышения диапазона чисел типа long .
4. Написать тестовую программу. Получить значения:
- арифметическая прогрессия с заданным по умолчанию значением приращения;
- арифметическая прогрессия со значением приращения 5;
- геометрическая прогрессия с заданным по умолчанию значением знаменателя;
- геометрическая прогрессия со значением знаменателя 3;
геометрическая прогрессия со значением знаменателя 150;
5-е задание
Создать класс ArrayVector
Поля класса:
private Object[] a; // Array storing the elements of the vector
private int capacity = 16; // Length of array a
private int size = 0; // Number of elements stored in the vector
Абстрактный тип данных поддерживает методы
public ArrayVector() { a = new Object[capacity]; } // Constructor
Object elemAtRank(int r) – возвращает элемент массива a с индексом r. Если r<0 или r>size-1 – выдает сообщение об ошибке и возвращает null.
Object replaceAtRank(int r, Object e) – замещает объектом e элемент с индексом r и возвращает заменяемый элемет. Если r<0 или r>size-1 – выдает сообщение об ошибке и возвращает null.
bool insertAtRank(int r, Object e) : r – позиция куда вставляем элемент.
Если r<0 или r>size – выдает сообщение об ошибке.
Если (size+1) больше максимального числа элементов вектора, то происходит реализация на основе расширяемого массива: создается новый массив b длиной 2N (N=capacity), копируется a[i] в b[i], i=0,...,N-1. Присваивается a=b.
Object removeAtRank(int r) Если r<0 или r>size-1 – выдает сообщение об ошибке. Метод возвращает значение, которое было удалено.
int size()
bool isEmpty()
Создать производный класс ArraySet,являющийся расширением класса ArrayVector.
Добавить методы:
bool add(Object o) – элементы добавляются в конец списка и только в том случае, если такого нет в списке, возвращает true, если элемент добавлен , в противном случае – false;
bool insertAtRank(int r, Object e) - элементы добавляются в список только в том случае, если таких нет в списке. r – позиция куда вставляем элемент.
void clear() – очищает весь список; (size = 0 )
Object [] toArray()
Я понимаю, что ищу халявы, но у меня больше нет выхода....
1-е задание
Для хранения данных о цветных планшетных сканерах описать структуру с именем scan_info, содержащую поля
- наименование модели
- цена
- горизонтальный размер области сканирования (double)
- вертикальный размер области сканирования (double)
- оптическое разрешение (int)
- число градаций серого
-
Запросить количество сканеров, информация о которых будет вводиться.
Выделить память под массив структур соответствующего размера и заполнить его данными в режиме диалога (с клавиатуры).
Информация о сканерах печатается на экране, причем сначала пишутся данные о всех сканерах, имя которых начинается с заглавной буквы, а затем - с прописной.
Написать функцию, которая сортирует записи по одной из следующих характеристик:
цена либо число градаций серого. Обязательный параметр – признак, задающий критерий сортировки.
2-е задание
Напишите программу «Студенческая группа».
Программа работает с находящимся на диске файлом «iati.dat».
Программа предусматривает следующую функциональность:
1. «Добавление в список»
2. «Поиск по фамилии»
3. «Редактирование записи»
3. «Удалить из списка по фамилии»
4. «Отображение содержимого файла»
5. «Создать файл со списком группы»
6. «Печать списка именинников в заданном месяце»
7. «Завершение работы»
Все пункты меню должны быть оформлены виде отдельных методов.
Описать структуру с именем STUDENT, содержащую следующие поля:
Фамилия;
Имя;
Номер группы;
Личный код (isikukood).
Имя и фамилия хранятся в файле в следующем виде:
первая буква заглавная, остальные прописные.
«Добавление в список» - ввод с клавиатуры данных;
При добавлении новой записи - не допускать добавления повторной записи.
Записи добавляются в порядке сортировки по номеру группы и внутри по фамилиям.
Сделать метод, который проверяет корректность личного кода (isikukood)
– длина 11 символов.
Должна выполняться «контрольная сумма», например
3-е задание
1. Описать структуру card – библиотечная карточка.
Поля структуры:
- заглавие книги;
- имя автора;
- количество экземпляров книг.
Методы:
- store() – заносит информацию о книге в поля класса;
- show() – печатает информацию о книге.
2. Создать класс Lib - библиотека
Поля класса:
- ссылка на массив карточек card;
- int indexCard; - отражает текущее количество заполненных карточек.
Методы:
- конструктор с параметром. Параметр - количество книг, которое будет заноситься в каталог библиотеки. Конструктор будет выделять нужное количество памяти под массив карточек.
- заносит данные в массив карточек. (Используя метод store())
- печатает содержимое массива;
- поиск нужной книги по названию;
- поиск всех книг, которые соответствуют введенному фрагменту названия;
- поиск всех книг заданного автора.
Примечание: Предусмотреть, контроль, чтобы не выйти за границы массива.
Предусмотреть запись/чтение в файл.
3. Создать класс Library – библиотека.
По своим возможностям класс Library является аналогом класса Lib, но работает с динамическим массивом, то есть с объектом класса ArrayList.
Предусмотреть запись/чтение в файл.
Поля класса:
- ссылка на объект класса ArrayList;
Свойство класса (доступ - только чтение):
- int CountCard; - отражает текущее количество заполненных карточек.
Методы:
- конструктор без параметров. Конструктор создает объект класса ArrayList.
- заносит данные в динамический массив. Элемент массива – объект структуры card.
- печатает содержимое динамического массива;
- поиск нужной книги по названию;
- поиск всех книг, которые соответствуют введенному фрагменту названия;
- поиск всех книг заданного автора.
Примечание:
Для пунктов задания 1, 2, 3** разработчик вправе вводить любое (с обоснованием необходимости) число дополнительных полей и методов.
4. Написать тестовую программу:
Для создания экземпляров класса выполнить проверку всех разработанных методов.
Создать меню:
- добавит карточку в каталог
- печать каталога;
- поиск нужной книги по названию;
- поиск по фрагменту названия;
- поиск книг автора.
4-е задание
Пример на наследование классов. Числовая прогрессия – это последовательность значений. Значение каждого элемента прогрессии зависит от одного или более предыдущих членов. В прогрессии должен существовать способ определения первого члена прогрессии, а также способ определения значения текущего (следующего) члена прогрессии.
1. Описать базовый класс Progression.
В этом классе будут описаны «общие» поля и методы числовой прогрессии.
Поля класса:
protected long first; - значение первого члена прогрессии;
protected long cur; - значение текущего члена прогрессии;
Методы класса:
Progression(); - инициализирует переменные класса нулевым значением;
protected long firstValue(); - определяет первый член прогрессии как текущий (cur= first), возвращает значение первого члена прогрессии (текущего);
protected long nextValue(); - переходит к следующему члену прогрессии и
возвращает его значение; (каждый следующий член прогрессии: ++cur;)
public void printProgression(int n); - вычисляет прогрессию и выводит значения первых n членов прогрессии; (n - число членов прогрессии, выводимых на печать)
Замечание: printProgression(int n)
1) определяет первый член прогрессии и его печатает - firstValue()
2) вычисляет следующие n-1 члены прогрессии и печатает их - nextValue()
2. Описать производный от Progression класс арифметической прогрессии ArithProgression.
Класс описывает прогрессию, в которой значение каждого последующего члена
определяется путем прибавления к предыдущему значению приращения inc.
Класс наследует поля first и cur, и методы firstValue() и printProgression(n).
Поля класса:
long inc; - содержит значение приращения.
Методы класса:
- конструктор без параметров – по умолчанию устанавливает приращение =1;
- конструктор, принимающий в качестве параметра значение приращения;
- переопределяется метод nextValue() в соответствии со способом получения
следующего члена арифметической прогрессии.
3. Описать производный от Progression класс геометрической прогрессии GeomProgression.
Класс описывает прогрессию, в которой значение каждого последующего члена
определяется путем умножения значения предыдущего члена на постоянный
множитель (знаменатель геометрической прогрессии).
Класс наследует поля first и cur, методы firstValue() и printProgression(n).
Методы класса:
- конструктор без параметров – устанавливает значение знаменателя =2;
- конструктор, принимающий в качестве параметра значение знаменателя;
(first присваивается значение знаменателя)
- переопределяется метод nextValue() в соответствии со способом получения
значения следующего члена геометрической прогрессии.
Примечание. Если знаменатель геометрической прогрессии >128, то при обращении к методу nextValue() возникает ошибка превышения диапазона чисел типа long .
4. Написать тестовую программу. Получить значения:
- арифметическая прогрессия с заданным по умолчанию значением приращения;
- арифметическая прогрессия со значением приращения 5;
- геометрическая прогрессия с заданным по умолчанию значением знаменателя;
- геометрическая прогрессия со значением знаменателя 3;
геометрическая прогрессия со значением знаменателя 150;
5-е задание
Создать класс ArrayVector
Поля класса:
private Object[] a; // Array storing the elements of the vector
private int capacity = 16; // Length of array a
private int size = 0; // Number of elements stored in the vector
Абстрактный тип данных поддерживает методы
public ArrayVector() { a = new Object[capacity]; } // Constructor
Object elemAtRank(int r) – возвращает элемент массива a с индексом r. Если r<0 или r>size-1 – выдает сообщение об ошибке и возвращает null.
Object replaceAtRank(int r, Object e) – замещает объектом e элемент с индексом r и возвращает заменяемый элемет. Если r<0 или r>size-1 – выдает сообщение об ошибке и возвращает null.
bool insertAtRank(int r, Object e) : r – позиция куда вставляем элемент.
Если r<0 или r>size – выдает сообщение об ошибке.
Если (size+1) больше максимального числа элементов вектора, то происходит реализация на основе расширяемого массива: создается новый массив b длиной 2N (N=capacity), копируется a[i] в b[i], i=0,...,N-1. Присваивается a=b.
Object removeAtRank(int r) Если r<0 или r>size-1 – выдает сообщение об ошибке. Метод возвращает значение, которое было удалено.
int size()
bool isEmpty()
Создать производный класс ArraySet,являющийся расширением класса ArrayVector.
Добавить методы:
bool add(Object o) – элементы добавляются в конец списка и только в том случае, если такого нет в списке, возвращает true, если элемент добавлен , в противном случае – false;
bool insertAtRank(int r, Object e) - элементы добавляются в список только в том случае, если таких нет в списке. r – позиция куда вставляем элемент.
void clear() – очищает весь список; (size = 0 )
Object [] toArray()
#8
Отправлено 08 декабря 2009 - 12:30
пля, мы с тобой же на одном курсе учились а потом мя забрали в армию, препод сменился и ты думаешь что я что то помню с явы? и во вторых я не клянчую а покупаю эти задания а в третих ненад куйню не по теме писать!Ага )) ... просто люди леняться и не хотят учиться ...а потом начинают клянчить ... я сам этого не понимаю.. Зачем тода ваще идти дальше учиться?!