2022年云大软件学院C#实验继承和多态参考 .pdf
《2022年云大软件学院C#实验继承和多态参考 .pdf》由会员分享,可在线阅读,更多相关《2022年云大软件学院C#实验继承和多态参考 .pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 实验报告序号:实验老师:课程名称:C#与.NET 实验实验名称:实验 6:继承和多态学号:姓名:课程名称 C# 与.NET实验实验项目实验 6:继承和多态实验目的熟悉并掌握, C#的类继承与多态的特性。实验内容(算法、程序、步骤和方法)(1) 类型 QueryTest 的程序代码如下:using System; using System.IO; using System.Collections; namespace QueryTextLanguageTest publicclassQueryTest staticvoid Main( string args) Query query = n
2、ull ; Console .WriteLine(TextQuery: begin(); Boolean sign = true ; / 退出标记while (sign) Console .Write(Please enter a query or q to Quit: ); string statement = Console .ReadLine(); / 读取查询语句if (statement.Equals(q ) / 退出查询 Console .WriteLine(OK,bye!nTextQuery: end()n); sign = false ; else if (query != n
3、ull ) query = QueryTest .parseQuery(statement); query.eval(); query.eval_print(); else Console .WriteLine( 你的输入有误,请重新输入!n ); / 对输入的语句进行处理,返回查询类型publicstaticQuery parseQuery(string statement) 指标等级A B C D 功能完整程序质量按时检查提问回答检查时间总评成绩名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -
4、 - - 第 1 页,共 8 页 - - - - - - - - - 2 实 验 内 容( 算 法 、程 序 、 步骤和方法)Query query = null ; Query q1 = null ; Query q2 = null ; Query q3 = null ; Query q4 = null ; ArrayList word1 = new ArrayList(); string word = new string5; statement = statement.ToLower(); word = statement.Split( ); if (word.Length = 1) /
5、 匹配各种查询语句 query = new NameQuery (statement); elseif (word.Length = 2 & word0.Equals(! ) query = new NotQuery (word1); elseif (word.Length = 3 & word1.Equals(|) q1 = new NameQuery (word0); q2 = new NameQuery (word2); query = new OrQuery(q1,q2); elseif (word.Length = 3 & word1.Equals(& ) q1 = new Name
6、Query (word0); q2 = new NameQuery (word2); query = new AndQuery(q1, q2); elseif (word1.Equals(&) & word3.Equals(|) q1 = new NameQuery (word0); q2 = new NameQuery (word2); q3 = new NameQuery (word4); q4 = new AndQuery(q1,q2); q4.eval(); q4.eval_print(); query = new OrQuery(q4, q3); elseif (word1.Equa
7、ls(|) & word3.Equals(& ) q1 = new NameQuery (word0); q2 = new NameQuery (word2); q3 = new NameQuery (word4); q4 = new OrQuery(q1, q2); q4.eval(); q4.eval_print(); query = new AndQuery(q4, q3); else query = null ; return query; (2) 类型 Query 的程序代码如下:abstractpublicclassQuery protectedint textLines; pro
8、tectedStreamReader sr; protectedstring text_line = null ; protectedArrayList numList = null ; protectedArrayList lineList = null ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - 3 实 验 内 容( 算 法 、程 序 、 步骤和方法)publicArrayList NumList / 文本行号链表
9、get return numList; set numList = value ; publicArrayList LineList / 文本行内容链表 get return lineList; set lineList = value ; publicint TextLines get return textLines; public Query() / 构造函数 sr = new StreamReader( F:query.txt); publicvirtualvoid eval() while (text_line = sr.ReadLine()!= null ) textLines+;
10、 publicvirtualvoid eval_print() Console .WriteLine(); (3) 类型 NameQuery 的程序代码如下:publicclassNameQuery : Query privatestring name; / 声明两个变量privatestring line; public NameQuery( String name) / 构造函数 : base() this .name = name; / 初始化各变量this .numList = new ArrayList(); this .lineList = new ArrayList(); / 寻
11、找符合条件的文本行publicoverridevoid eval() while ( this .text_line = this .sr.ReadLine() != null ) this .textLines+; line = text_line.ToLower(); if ( this .line.Contains(name) this .NumList.Add(this .TextLines); this .LineList.Add(this .text_line); publicoverridevoid eval_print()/ 输出查询结果 Console .Write(0n t
12、1 line(s) match: , this .name, this .NumList.Count); for ( int i = 0; i this .NumList.Count; i+) Console .Write( 0, this .NumListi); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 4 实 验 内 容( 算 法 、程 序 、 步骤和方法)Console .WriteLine( n); for ( i
13、nt i = 0; i this .NumList.Count; i+) Console .WriteLine(0: 1, this .NumListi,this .LineListi); Console .WriteLine(); publicoverridestring ToString() returnthis .name; (4) 类型 NotQuery 的程序代码如下:publicclassNotQuery : Query privatestring name; / 声明各个变量privatestring line; privateQuery query; public NotQue
14、ry( String name) / 构造函数 : base() / 初始化各变量this .query = new NameQuery (name); this .name = name; this .numList = new ArrayList(); this .lineList = new ArrayList(); / 寻找符合条件的文本行publicoverridevoid eval() this .query.eval(); while ( this .text_line = this .sr.ReadLine() != null ) this .textLines+; line
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年云大软件学院C#实验继承和多态参考 2022 年云大 软件 学院 C# 实验 继承 参考
限制150内