p align="left">В разделе «Информация о студенте» можем добавить группу с помощью кнопки «Добавить группу». Вводим название группы, нажимаем кнопку «Добавить группу», это поле автоматически очищается для дальнейшего добавления групп, а только что добавленная группа мгновенно заносится в наш список групп в поле «Группа», выбрав которую вбиваем информацию о студенте. Аналогичным образом работают кнопки «Добавить предмет» и «Добавить уч.степень» (Добавить ученую степень преподавателя). Информация заносится в списки «Предмет» и «Ученая степень» соответственно.
Дальше идет заполнение полей: «Тема курсовой работы» - вводим тему; «Оценка» - выбираем из списка оценок (3,4,5) нужную нам оценку; «Дата сдачи» - при нажатии на кнопку ( ) появляется форма «Выберите дату» в виде календарика:
В ней при помощи кнопки «Выбрать» выбираем необходимую нам дату сдачи курсовой работы и заполняем информацию о преподавателе (ФИО, ученая степень).
Нажимаем основную кнопку «Добавить», и информация о студенте и курсовой работе заносится в нашу базу данных. При нажатии на кнопку «Добавить», также происходит проверка на выявление совпадения темы курсовой работы. Если вводимая тема совпадает с уже существующей темой, то выводится сообщение:
и вводимые данные не добавляются. В противном случае выводится сообщение:
и вводимые данные успешно заносятся в базу данных. Если мы хотим перед вводом темы курсовой работы просмотреть кокой - нибудь предмет на наличие ранее выдававшихся тем по этому предмету, то в списке «Предмет» выбираем нужный нам предмет и нажимаем кнопку «Показать темы». В правой стороне в списке появляются список тем.
Также мы можем удалять студента при помощи кнопки «Удалить» в главном окне программы (при этом тема курсовой работы не удаляется, для последующего выявления уже сданных тем курсовых работ).
Если студент, которого хотим удалить, не выбран, то выводится сообщение:
При выборе студента и нажатии на кнопку «Удалить» происходит удаление студента и выводится сообщение об успешном удалении:
Кнопки «Отчет по студентам» и «Отчет по преподавателям» позволяют просмотреть информацию:
1)о студенте: ФИО, по какому предмету, какую курсовую, на какую оценку, и когда он защитил; 2)о преподавателе: ФИО, ученую степень, предмет, который он вел, и какая тема курсовой работы выдавалась им по данному предмету. Заключение В процессе выполнения курсовой работы мной были освоены средства написания прикладных систем управления базами данных на основе Visual Fox Pro 9.0. С помощью широких возможностей программы Visual FoxPro 9.0 осуществлен удобный интерфейс, легкий доступ к данным и другие возможности, освещенные в данной курсовой работе. Считаю, что возможности Visual Fox Pro 9.0 достаточно широкие, чтобы написать программу любой сложности, но, к сожалению, в Visual Fox Pro 9.0 много недоработок. Поэтому Visual Fox Pro 9.0 совершенно не пригоден для написания серьезных программ. Созданная система имеет удобный интерфейс, обеспечивающий быстрый доступ к необходимым данным. Данный программный продукт позволяет вводить и удалять различные данные. Список литературы: 1. С. Каратыгин, А . Тихонов, Л.Тихонова Visual FoxRro К вершинам мастерства - М.:Восточеная Книжная Компания, 1997. 2. А.М. Вендеров Проектирование программного обеспечения экономических информационных систем: Москва “Финансы и статистика”,2000. 3. Курс лекций Макарец.А.Б Приложение 1. Разработка и реализация модели представления данных. Типовым шагом при разработке таких задач, является оптимизация хранения данных. В реляционной модели наиболее лучшим вариантом является разбиение хранимой информации на категории. В данном проекте информация была разбита на следующие категории : · Основная таблица (courseworks.dbf) · Справочник по предмету (subject.dbf) · Справочник по студенту (student.dbf) · Справочник по группе (group.dbf) · Справочник по преподавателю (professor.dbf) · Справочник по ученой степени преподавателя (degree.dbf) · Справочник по теме курсовой работы (theme.dbf) Список файлов системыcourseworks.exe - запускаемый файлФайлы базы данных.1.dbccourseworks.dbf subject.dbfstudent.dbf group.dbf professor.dbf degree.dbf theme.dbf Файлы форм.form1.scx - главная форма (Учет курсовых работ кафедры ВИТ)form2.scx - форма добавления данныхgetdataform.scx - форма по выбору датыФайлы отчетов.prof.frx - отчет по преподавателямst.frx - отчет по студентамФайлы помощиHelp.hlpФайлы программ.main.prg quit.prgПриложение 2. Листинг программы.Form1 - «Учет курсовых работ кафедры ВИТ»Инициализации формы:SET DELETE onSELECT namegroup FROM group INTO CURSOR group1ThisForm.Combo1.RowSourceType= 2ThisForm.Combo1.RowSource='group.namegroup'Выборе группы из списка (Combo1):gg=TRIM(THISFORM.Combo1.Value)SELECT Group.id_group;FROM 1!group;WHERE TRIM(Group.namegroup)==gg;INTO CURSOR t10SELECT surname,name,patronymic;FROM student;WHERE student.id_group=t10.id_group;INTO CURSOR cliciThisForm.text9.Value=''ThisForm.text11.Value='' ThisForm.text12.Value=''ThisForm.List1.RowSourceType= 2ThisForm.List1.Value=''ThisForm.List1.RowSource='ALLTRIM(clici.surname)+SPACE(1)+ALLTRIM(clici.name)+SPACE(1)+ALLTRIM(clici.patronymic)' ThisForm.List2.RowSourceType= 2ThisForm.List2.RowSource='' Выбор студента (List1):SELECT surname,name,patronymic,id_student FROM student;WHERE ALLTRIM(student.surname)+SPACE(1)+ALLTRIM(student.name)+SPACE(1)+ALLTRIM(student.patronymic)=ALLTRIM(This.Value) AND t10.id_group=student.id_group; INTO CURSOR student3 ThisForm.text9.Value='' ThisForm.text11.Value='' ThisForm.text12.Value='' ThisForm.text1.Value=''SELECT id_professor,id_theme,id_subject,mark,datedelivery,id_student FROM courseworks;WHERE courseworks.id_student=student3.id_student INTO CURSOR cworkSELECT Subject.id_subject, Subject.namesubject, Courseworks.id_student,; Courseworks.id_subject, Courseworks.id_professor,; Courseworks.datedelivery, Courseworks.mark, Courseworks.id_theme; FROM ; 1!subject ; INNER JOIN 1!courseworks ; ON Subject.id_subject = Courseworks.id_subject; INTO CURSOR ccworkSELECT * FROM ccwork;where ccwork.id_student=cwork.id_student INTO CURSOR cccworkThisForm.List2.RowSourceType=2ThisForm.List2.Value=''ThisForm.List2.RowSource='ALLTRIM(cccwork.namesubject)'Выбор предмета(List2): SELECT * FROM cccwork;where ALLTRIM(cccwork.namesubject)=ALLTRIM(this.value) INTO CURSOR ccccworkThisForm.text11.Value=ccccwork.markThisForm.text12.Value=ccccwork.datedeliverySELECT surname,name,patronymic,id_degree FROM professor; WHERE professor.id_professor=ccccwork.id_professor INTO CURSOR professor2SELECT degree,id_degree FROM degree;WHERE degree.id_degree=professor2.id_degree INTO CURSOR degThisForm.text1.Value=ALLTRIM(professor2.surname)+SPACE(1)+ALLTRIM(professor2.name)+SPACE(1)+ALLTRIM(professor2.patronymic)+SPACE(3)+ALLTRIM(deg.degree)SELECT nametheme,id_theme FROM theme; WHERE theme.id_theme=ccccwork.id_theme INTO CURSOR temaThisForm.text9.Value=ALLTRIM(tema.nametheme)Кнопка «Добавить»:SET PATH TO ('FORMS')do FORM FORM2.ScxКнопка «Удалить»:b=TRIM(ThisForm.List1.Value)IF THISFORM.list1.ListIndex!=0 THENSELECT * from Student;WHERE ALLTRIM(student.surname)+SPACE(1)+ALLTRIM(student.name)+SPACE(1)+ALLTRIM(student.patronymic)=b AND t10.id_group=student.id_group;into cursor stu SELECT * from courseworks;WHERE courseworks.id_student=stu.id_student;into cursor courSELECT * from professor;WHERE professor.id_professor=cour.id_professor;into cursor proDELETE FROM Student;WHERE ALLTRIM(student.surname)+SPACE(1)+ALLTRIM(student.name)+SPACE(1)+ALLTRIM(student.patronymic)=b AND t10.id_group=student.id_groupDELETE FROM courseworks;WHERE courseworks.id_student=stu.id_studentDELETE FROM subject;WHERE subject.id_subject=cour.id_subjectDELETE FROM professor;WHERE professor.id_professor=cour.id_professorDELETE FROM degree;WHERE pro.id_degree=degree.id_degreeTHISFORM.List1.InteractiveChange()THISFORM.Combo1.InteractiveChange()MESSAGEBOX(" Студент удален!")ELSEMESSAGEBOX(" Студент не выбран!")ENDIFИ в менеджере проекта Code/Programsmain: ON shutdown do quit.prgSET DELETED ONSET PATH TO('\FORMS')do form form1.scxread eventquit:Clear windowsCLOSE DATABASES ALLSET PATH TO ('DATA\')SET DELETED ONOPEN DATABASE 1PACK courseworksPACK degreePACK groupPACK professorPACK studentPACK subjectPACK themePACK DATABASE CLOSE DATABASES ALLQUITНажатие на кнопку «Отчет по студентам»:SET PATH TO('REPORTS\')REPORT FORM st PREVIEWНажатие на кнопку «Отчет по преподавателям»:SET PATH TO('REPORTS\')REPORT FORM prof PREVIEWForm2 - «Добавление информации о студенте и курсовой работе»Инициализации формы:SELECT namegroup FROM group INTO CURSOR group2ThisForm.Combo1.RowSourceType= 2ThisForm.Combo1.RowSource='group2.namegroup'SELECT namesubject FROM subject INTO CURSOR subject2ThisForm.Combo2.RowSourceType= 2ThisForm.Combo2.RowSource='subject2.namesubject'ThisForm.Combo4.RowSourceType= 2ThisForm.Combo4.RowSource='subject2.namesubject'SELECT degree FROM degree INTO CURSOR degree222ThisForm.Combo5.RowSourceType= 2ThisForm.Combo5.RowSource='degree222.degree' ThisForm.Combo3.AddItem("3")ThisForm.Combo3.AddItem("4")ThisForm.Combo3.AddItem("5")Нажатие на кнопку «Добавить группу»:SELECT MAX(group.id_group) as m_group FROM group INTO CURSOR group_max2 INSERT INTO group(id_group,namegroup); VALUES (group_max2.m_group+1,ALLTRIM(ThisForm.text7.Value)) SELECT namegroup FROM group INTO CURSOR group2ThisForm.Combo1.RowSourceType= 2ThisForm.Combo1.RowSource='group2.namegroup' ThisForm.text7.Value=''Нажатие на кнопку «Добавить предмет»:SELECT MAX(subject.id_subject) as m_subject FROM subject INTO CURSOR subject_max2 INSERT INTO subject(id_subject,namesubject); VALUES (subject_max2.m_subject+1,ALLTRIM(ThisForm.text8.Value)) SELECT namesubject FROM subject INTO CURSOR subject22ThisForm.Combo1.RowSourceType= 2ThisForm.Combo1.RowSource='subject22.namesubject' ThisForm.text8.Value=''Нажатие на кнопку «»:SET PATH TO ('Forms\')DO FORM getdataformНажатие на кнопку «Добавить уч.степень»:SELECT MAX(degree.id_degree) as m_degree FROM degree INTO CURSOR degree_max2 INSERT INTO degree(id_degree,degree); VALUES (degree_max2.m_degree+1,ALLTRIM(ThisForm.text10.Value)) SELECT degree FROM degree INTO CURSOR degree22ThisForm.Combo5.RowSourceType= 2ThisForm.Combo5.RowSource='degree22.degree' ThisForm.text10.Value='' Нажатие на кнопку «Добавить»: SELECT MAX(courseworks.id_student) as m_id_student,MAX(courseworks.id_subject) as m_id_subject,MAX(courseworks.id_professor) as m_id_professor,MAX(courseworks.id_theme) as m_id_theme FROM courseworks INTO CURSOR courseworks_save SELECT * FROM subject INTO CURSOR subject_save SELECT * FROM student INTO CURSOR student_save SELECT * FROM professor INTO CURSOR professor_save SELECT * FROM degree INTO CURSOR degree_save SELECT MAX(degree.id_degree) as m_degree FROM degree INTO CURSOR degree_max SELECT MAX(group.id_group) as m_group FROM group INTO CURSOR group_max SELECT MAX(subject.id_subject) as m_subject FROM subject INTO CURSOR subject_max SELECT MAX(theme.id_theme) as m_theme FROM theme INTO CURSOR theme_max SELECT MAX(student.id_student) as m_student FROM student INTO CURSOR student_max SELECT MAX(professor.id_professor) as m_professor FROM professor INTO CURSOR professor_max SELECT * FROM theme INTO CURSOR theme_save SELECT * FROM group INTO CURSOR group_saveSELECT * FROM group WHERE group.namegroup=ALLTRIM(THISFORM.combo1.Value) INTO CURSOR selectgr SELECT COUNT(*) as ct; FROM 1!theme;WHERE LOWER(TRIM(Theme.nametheme))==LOWER(TRIM(THISFORM.text9.value))INTO CURSOR ttt1IF ttt1.ct!=0 THENMESSAGEBOX(" Такая тема есть!!!")ELSE SELECT * FROM courseworks;where ALLTRIM(courseworks.mark)=ALLTRIM(thisform.Combo3.value);INTO CURSOR wer INSERT INTO student(id_student,surname,name,patronymic,id_group);VALUES (courseworks_save.m_id_student+1,ALLTRIM(ThisForm.text1.Value),ALLTRIM(ThisForm.text2.Value),ALLTRIM(ThisForm.text3.Value),selectgr.id_group) INSERTINTO courseworks(id_student,id_subject,id_professor,datedelivery,mark,id_theme); VALUES (courseworks_save.m_id_student+1,courseworks_save.m_id_subject+1,courseworks_save.m_id_professor+1,(Thisform.text12.Value),wer.mark,courseworks_save.m_id_theme+1) INSERT INTO degree(id_degree,degree); VALUES (degree_max.m_degree+1,ALLTRIM(ThisForm.Combo5.Value)) INSERT INTO professor(id_professor,surname,name,patronymic,id_degree); VALUES (courseworks_save.m_id_professor+1,ALLTRIM(ThisForm.text4.Value),ALLTRIM(ThisForm.text5.Value),ALLTRIM(ThisForm.text6.Value),degree_max.m_degree+1) INSERT INTO theme(id_theme,nametheme); VALUES (courseworks_save.m_id_theme+1,ALLTRIM(ThisForm.text9.Value)) MESSAGEBOX(" готово!!! ")ENDIFНажатие на кнопку «Показать темы»:SELECT * FROM subject; where ALLTRIM(thisform.combo4.value)=ALLTRIM(subject.namesubject) into cursor subfindSELECT theme.id_theme, theme.nametheme, Courseworks.id_student,; Courseworks.id_subject, Courseworks.id_professor,; Courseworks.datedelivery, Courseworks.mark, Courseworks.id_theme; FROM ; 1!theme ; INNER JOIN 1!courseworks ; ON theme.id_theme = Courseworks.id_theme; INTO CURSOR corrwork SELECT * FROM corrwork; WHERE subfind.id_subject=corrwork.id_subject INTO CURSOR corworkThisForm.List1.RowSourceType=2ThisForm.List1.Value=''ThisForm.List1.RowSource='ALLTRIM(corwork.nametheme)'Getdataform - «Выбор даты»Нажатие кнопки «Выбрать»:y=YEAR(THISFORM.olecontrol1.SelEnd)m=MONTH(THISFORM.olecontrol1.SelEnd)ch=DAY(THISFORM.olecontrol1.SelEnd)form2.text12.Value=DATE(y,m,ch)THISFORM.Release
Страницы: 1, 2
|