Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Предложите программу для реализации


Автор: Vokunya 21.4.2009, 23:58
Куча прочитанных книг - это конечно хорошо!!!! 
Но пора уже и попрактиковаться.
Что уже писали или есть интересные, еще не реализованные проекты - в общем предложите какое-никакое ТЗ  smile 

Можно охватить еще работу с БД и сеть.
Только, пожалуйста, без фанатизма с темой - это будет первый после книжек проект smile 

Автор: jonie 22.4.2009, 09:12
Написать приложение - учетную систему почтовой службы. Особое внимание обратить на скорость обработки и показа форм (заполнение справочников) - использовать AdoNet Sync Framework, это, конечно, по желанию. Также уметь выгружать данные по запросу на удаленные веб службы.

Изучишь: databinding, sync framework (если будет желание), веб службы посмотришь (ну простенький на asp.net сервер напишешь для тестов)......

это не простая задача, и не делается на раз-два, очень много вопросов вроде "что будет если один сотрудник откроет форму редактирования, и второй откроет. Чью версию сохранять?"...

Автор: Vokunya 22.4.2009, 09:41
Цитата

это не простая задача, и не делается на раз-два, очень много вопросов

Это очень даже хорошо.  smile 

jonie а можешь... ну что ли раскрыть тему! Чтоб очень подробно, а то
Цитата

учетная система почтовой службы

не о многом говорит smile 
 А в общем очень даже интересно, будь добр - объясни подробнее, и как говориться: "Приступ-с" smile 

Автор: -Mikle- 22.4.2009, 09:45
Ну сходу можно "Телефонный справочник".

Этап 1 - локальная, простая версия
Создание простой программы без использования БД.
Данные сохраняются в файле в любом удобном формате.
Одна запись состоит из 2-х полей: FIO и Phones.
Данные отображаются в ListBox'е в виде FIO - [Phones] или в DataGridView, не важно.
Есть кнопки добавления, редактирования и удаления записи.
Опционально поддержка фильтрации и поиска.

Этап 2 - добавление БД (сетевой или локальной)
Вместо записи/чтения в/из файла, организовать все в БД.
Добавить больше данных к одной записи, например еще Address и Photo.
Данные отображаются в DataGridView.
Поддержка фильтрации и поиска обязательна.

Этап 3 - клиент-серверная версия
Вынести всю работу с БД в сервер.
Организовать уведомления между клиентами об изменении состояния БД (удаление, редактирование,  добавление) так, чтобы если один клиент что-либо изменил, другие клиенты эти изменения увидели. Выбор технологии опционален (.NET Remoting, Socket)

Это конечно все только ради обучения, на практике потребуется другой подход.

Автор: Vokunya 22.4.2009, 22:34
-Mikle- Конечно, для первой проги на C# и это мне будет трудно. Но... как бы это объяснить... в общем, чтобы понять, что я хочу сказать, надо было пережить вот это: за все годы обучения - все курсовые, все практики и т.д. были похожи друг на друга именно такими задачами.
Естественно это было на Delphi smile , но просто уже отвращения от подобного рода заданий smile 
Только не думай плохого, не в обиду тебе сказано smile ... Это скорее крик души smile 
Вот. Но это лирика теперь по делу:
Цитата

Это конечно все только ради обучения, на практике потребуется другой подход.

А в чем тогда смысл обучения? smile 

Автор: diadiavova 22.4.2009, 23:18
Цитата(Vokunya @  22.4.2009,  22:34 Найти цитируемый пост)
А в чем тогда смысл обучения?

В обретении основных навыков. Чтобы когда начнёшь писать что-нибудь путное тебе не приходилось постоянно отвлекаться на выяснение элементарных вещей.

Автор: -Mikle- 23.4.2009, 07:07
Vokunya, спасибо за тактичность! Не переживай за это, если задача тебе не подходит, ничего страшного smile Подобных задач действительно много, но в этой, я подразумевал нечто обучающее архитектурированию. Я не зря ее разделил на три этапа и это не означало что каждый этап надо было начинать отдельно. Здесь подразумевался навык абстрактного мышления (какой-никакой, но навык), который необходим при архитектурировании приложений. Я не знаю в каком универе ты учился, но те которые я знаю (хотя я и не много их знаю) не дают таких навыков. В задаче предложенной мной подразумевалось расширение приложения, и если задачу правильно решить (организовать правильную объектную модель), то переход между этапами будет безболезненным, с минимальными затратами на переписание существующего кода (в основном написание нового). Если задача и теперь не подходит, просто скажи что не подходит, я ведь не навяываю smile 

Автор: jonie 23.4.2009, 08:38
Цитата

Организовать уведомления между клиентами об изменении состояния БД (удаление, редактирование,  добавление) так, чтобы если один клиент что-либо изменил, другие клиенты эти изменения увидели. Выбор технологии опционален (.NET Remoting, Socket)
я бы еще в сторону Message Systems смотрел бы , вроде biztalk-а...

Автор: Exai1e 23.4.2009, 09:16
Vokunya, еще вот к примеру:
3х звенка Клиент - Сервер - БД

Программа для тестирования студентов ( к примеру ) 
На сервере (администратор) формирует тест (вопрос, варианты ответа). Клиенты подключаются вводят свои ФИО, данные отправляются на сервер, проверяются (студенты которые авторизируются "забиты" в БД) еси все верно, такой пользователь есть - авторизация проходит успешно. Администратор (через программу - сервер) выдает тесты, как это реализуешь (каждому авторизированному пользователю или как то автоматически, решать тебе). И отвечают на тесты. После сдачи теста, результат тестирования заноситься в БД (для возможности просмотра статистики например по определенному пользователю - студенту).
Вот что нить в этом роде например smile тут можно сразу охватить довольно большой спектр технологий (Сокеты (сеть), Многопоточность, БД (т.к. в программе может быть возможность просмотра общей статистики, и детальной), O/I, Архитектура приложений + при желании можно прикрутить ASP.net для просмотра статистики с клиентских машин (как вариант)) То есть напридумывать тут еще есть что - было бы желание.
зы. это примерно то что предложил -Mikle-, только в другой оболочке =)

БД может быть например вот такой:
http://pic.ipicture.ru/uploads/090423/RPe5VnSgDS.jpg

Students:
id - ключ
Name - фио (можно разбить на несколько полей)
Group - группа (например если в системе 2 однофамильца у которых ФИО одинаковое О_о то при акторизации клиенту выдается спискок групп например василий васильевич васельков группа а1 и василий васильевич васельков группа а15)
OtherInfo - любая доп информация

Result
id - ключ
StudentID - id студента (привязка)
TestName - название теста который был сдан этим студентом
TestResult - результат теста, например 6 из 10 ответов или ка кто иначе
Date - дата сдачи
Time - время сдачи (можно объединить в одно поле с датой)
TimeComplete - время затраченное на выполнение теста

AboutTest (таблица для хранения детальной информации о пройденном тесте)
id - ключ
IDTest - индификатор теста (привязка)
QuestionNumber - номер вопроса
ReplyNumber - номер выбранного ответа

вот) это на вскидку, лучше сам подумай какую использовать структуру БД.
Это вариант был представлен для того чтобы было примерно понятно о чем я

Автор: Vokunya 23.4.2009, 23:39
Exai1e, Спасибо. Как вариант возможен!

Цитата

В обретении основных навыков. Чтобы когда начнёшь писать что-нибудь путное тебе не приходилось постоянно отвлекаться на выяснение элементарных вещей.

Я же не пишу коммерческий продукт smile  Никаких ограничений по времени, так почему бы основные навыки не осваивать, делая что-то путное?  smile 

ЗЫ Какой-то  smile  получается. Будьте добры по теме.

Автор: source777 24.4.2009, 11:18
Напиши http://ru.wikipedia.org/wiki/Pac-Man, в действии выглядит примерно http://games.krutomer.ru/playgame/6922/PackMan. Это хоть мышление разовьёт в отличии от бизнес-приложений, которые по большей части отупляют, так как содержат много тривиального кода. К тому же если идти по пути наименьшего сопротивления и тупо юзать ADO.NET как есть, то опыт будет даже отрицательным...

Автор: PashaPash 25.4.2009, 14:45
Vokunya, устройся на работу smile

Автор: Любитель 26.4.2009, 13:35
Цитата(PashaPash @  25.4.2009,  14:45 Найти цитируемый пост)
Vokunya, устройся на работу

+ много. Если ВУЗ позади, то это точно лучшее решение. В любом случае, если

Цитата(Vokunya @  22.4.2009,  22:34 Найти цитируемый пост)
за все годы обучения - все курсовые, все практики и т.д. были похожи друг на друга именно такими задачами.

Значит опыт программирования как такового есть. И уже не время придумывать себе задачи. Время их решать smile Придумать - найдется кому...

Автор: VisualProgrammerNET 27.4.2009, 16:29
я всем советую начинать с тетриса на GDI+  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)