【第一组】用例文档+功能说明书+技术说明书

查课表

是什么

这是NEU Old Driver这款软件里的一个小功能,包含在教务处大功能之下,可以查询登录用户的课表信息。

怎么用(功能说明书)

 

目标: 按周数查询学生课表

 

用户:希望查询课表的用户

 

如何使用:

1. 打开软件

 

2. 点击教务处查成绩

 

3. 看到用户课表

 

异常情况:

 

1.课表无法正确识别,查询课表页面所有框中都是 

 

如何实现(技术说明书)

界面:

  1. 为了把课表以表格的形式展现,需要一个8行8列的表格,其中行为课程第几节,列为星期几。在<Grid>里面添加8个<RowDefinition>,8个<ColumnDefinition>,Height和Width均设置为Auto;
  2. 在每个<Grid>单元格里都添加一个<TextBlock>,其中6*7的矩阵用来显示解析返回的课程string字段;

功能:

  1. 用一个String类型的strWebContent保存教务处课表查询页面的HTML(HTML保存为string类型后,XPath节点头部不能有空格) (XPath节点教程
    正例: <body leftmargin = ""0""> </body >
    反例: < body leftmargin = ""0""> < / body >
  2. 为了解析HTML,在NuGet程序包管理中添加HtmlAgilityPack.NetCore程序包。在此程序包下,需要用XPath表达式正确定位我们想要提取的文本所在节点,就能把该节点下的文本提取出来,保存为一个HtmlNodeCollection类型的变量。(HtmlAgilityPack.NetCore用例  XPath教程
    HtmlNodeCollection collection = htmlDocument.DocumentNode.SelectSingleNode("html/body/table/tr[2]/td/table/tr/td/table/tr/td/div/table/tr[4]/td[2]").ChildNodes;

     

  3. 去除文本中的"\r"," \n"," "
    string[] line = node.InnerText.Split(new char[] { '\r', '\n', ' ' }, StringSplitOptions.RemoveEmptyEntries);

     

  4. 用for循环,改变XPath表达式的节点路径,遍历实现课表的提取。其中i,j为循环变量
    string str1 = "html/body/table/tr[2]/td/table/tr/td/table/tr/td/div/table/tr[";
    string str2 = "]/td[";
    string str3 = "]";
    string str = str1 + j + str2 + i + str3;

     

  5. 用自动机识别课程周数语句。

            自动机输入

string str = "10-15.19周2节

            自动机输出

int weekMark[20] = "0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0";

            (自动机参考资料

 

posted @ 2017-07-10 10:40  henyilee  阅读(271)  评论(0编辑  收藏  举报