Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы / Отчёт по ОС 7.docx
Скачиваний:
19
Добавлен:
02.01.2020
Размер:
525.64 Кб
Скачать

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

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

Факультет бизнеса

Кафедра экономической информатики

Лабораторная работа №7 по операционным системам

Взаимодействие между сложными объектами Windows на VBScript/JScript

Студенты:

Группа: ФБИ-22

Преподаватель: Эстрайх И. В.

Дата: 14.06.2014

Новосибирск 2014

Цель работы: научиться организовывать взаимодействие между сложными объектами Windows (в частности, научиться обрабатывать документ XML с помощью MO Word и MO Excel).

Ход работы:

  1. В папке C:\LR7 создали документ data1.xml со следующими данными (представлены для удобства в таблице 1).

Таблица 1 — Группа ХХХ-12

ФИО

№ зачётки

ВССиТ

Информатика

ИС

ИО

ОС

Борзых

12345

4 семестр:

КП 3

экзамен 3

3 семестр:

КП 3

экзамен 4

3 семестр:

РГР 5

зачёт: зачтено

4 семестр:

экзамен 4

5 семестр:

зачёт: зачтено

5 семестр:

РГР 3

зачёт: не зачтено

Булгакова

12346

4 семестр:

КП 5

экзамен 5

3 семестр:

РГР 5

зачёт: зачтено

4 семестр:

экзамен 5

5 семестр:

зачёт: зачтено

5 семестр:

РГР 5

зачёт: зачтено

Гаврилов

12347

4 семестр:

КП 4

экзамен 4

3 семестр:

КП 4

экзамен 5

3 семестр:

РГР 4

зачёт: зачтено

4 семестр:

экзамен 5

5 семестр:

зачёт: не зачтено

5 семестр:

РГР 3

зачёт: не зачтено

Королькова

12348

4 семестр:

КП 4

экзамен 3

3 семестр:

КП 5

экзамен 4

3 семестр:

РГР 4

зачёт: зачтено

4 семестр:

экзамен 4

Соболев

12349

4 семестр:

КП 5

экзамен 4

3 семестр:

КП 4

экзамен 3

3 семестр:

РГР 4

зачёт: зачтено

4 семестр:

экзамен 4

5 семестр:

зачёт: зачтено

5 семестр:

РГР 5

зачёт: зачтено

Структура документа xml:

<УспеваемостьСтудентов>

<Группа>

<НазваниеГруппы>ХХХ-12</НазваниеГруппы>

<Студент>

<ФИО>Соболев</ФИО>

<НомерЗачётки>12349</НомерЗачётки>

<Предмет>

<НазваниеПредмета>ВССиТ</НазваниеПредмета>

<Семестр>4

<КП>5</КП>

<Экзамен>4</Экзамен>

</Семестр>

</Предмет>

<Предмет>

<НазваниеПредмета>Информатика</НазваниеПредмета>

<Семестр>3

<КП>4</КП>

<Экзамен>3</Экзамен>

</Семестр>

</Предмет>

<Предмет>

<НазваниеПредмета>ИС</НазваниеПредмета>

<Семестр>3

<РГР>4</РГР>

<Зачёт>зачтено</Зачёт>

</Семестр>

<Семестр>4

<Экзамен>4</Экзамен>

</Семестр>

</Предмет>

<Предмет>

<НазваниеПредмета>ИО</НазваниеПредмета>

<Семестр>5

<Зачёт>зачтено</Зачёт>

</Семестр>

</Предмет>

<Предмет>

<НазваниеПредмета>ОС</НазваниеПредмета>

<Семестр>5

<РГР>5</РГР>

<Зачёт>зачтено</Зачёт>

</Семестр>

</Предмет>

</Студент>

<Студент>

….

</Студент>

</Группа>

</УспеваемостьСтудентов>

  1. В папке C:\LR7 создали шаблон MO Word Doc1.dotx (его содержимое представлено на рисунке 1).

Рисунок 1 — Шаблон Doc1.dotx

На рисунке 2 представлено состояние папки для сохранения документов до выполнения скриптов.

Рисунок 2 — Начальное состояние папки

  1. Создали скрипт script1.vbs, считывающий информацию об успеваемости студентов группы из data1.xml, заносящий её в Doc1.dotx и сохраняющий последний документ под именем «Название группы.doc» в каталоге, из которого запущен скрипт. Заносить необходимо следующую информацию: № студента, ФИО, № зачётки, количество изученных студентом дисциплин.

На рисунке 3 представлено содержимое папки после выполнения script1.vbs

Рисунок 3 — Папка после выполнения script1.vbs

На рисунке 4 представлено содержимое заполняемого скриптом документа.

Рисунок 4 — Результат работы script1.vbs

Текст script1.Vbs:

Function GetTagVal(tagNode, tagName)

Dim Value

Set Value=tagNode.getElementsByTagName(tagName)

If Value.length>0 Then

GetTagVal=Value.item(0).text

Else GetTagVal=""

End If

End Function

REM------------------------------------------

Dim docXML, root, objWord, WD, sel, group, objArgs, i, student, l, predmet, groupStud, dicZachet

Set docXML=WScript.CreateObject("Microsoft.XMLDOM")

REM-----------------------------------Подаётся один аргумент -- путь к xml-документу

Set objArgs=WScript.Arguments

REM-----------------------------------Если документ по пути в аргументе не загрузился

If NOT(docXML.load(objArgs(0))) Then

WScript.Echo "Ошибка при загрузке списка студентов xml"

WScript.Quit

End If

REM--------------------------------------Корневой узел документа xml(УспеваемостьСтудентов)

Set root=docXML.documentElement

REM--------------------------------------Узел "Группа" (единственный для документа)

Set group=root.childnodes.item(0)

Set objWord=WScript.CreateObject("Word.Application")

Set WD=objWord.Documents.Open("C:\LR7\Doc1.dotx")

objWord.Visible=true

REM-----------------------Текущая позиция курсора в документе

Set sel=objWord.Selection

REM--------------------------------------Переход на закладку "Группа"

WD.Bookmarks("Группа").Select()

REM--------------------------------------Внесение названия группы (узел 0)

sel.TypeText group.childnodes.item(0).text

REM--------------------------------------Переход на закладку "Начало" (первая ячейка таблицы)

WD.Bookmarks("Начало").Select()

REM----------------------------------------------Коллекция дочерних узлов "Студент" (узлы 1-...)

Set groupStud=group.GetElementsByTagName("Студент")

i=1

While i<>groupStud.length+1

sel.TypeText CStr(i)

sel.MoveRight 12

Set student=group.childnodes.item(i)

sel.TypeText GetTagVal(student, "ФИО")

sel.MoveRight 12

sel.TypeText GetTagVal(student, "НомерЗачётки")

sel.MoveRight 12

Set predmet=student.getElementsByTagName("Предмет")

REM--------------------------------------Число предметов студента

l=predmet.length

sel.TypeText CStr(l)

i=i+1

REM--------------------------------------Чтобы не добавлялась лишняя строка,

REM-----------------------------------------------------если студент последний

if i<>groupStud.length+1 Then sel.MoveRight 12

WEnd

WD.SaveAs("C:\LR7\"&group.childnodes.item(0).text&".doc")

WD.Close

Соседние файлы в папке Операционные системы