基于.NET的飞信消息管理系统的设计

(整期优先)网络出版时间:2021-04-19
/ 2

基于 .NET的飞信消息管理系统的设计

葛明明 付涌玉

北京联合大学特殊教育学院 北京 100075

摘要:本文设计了一个基于.NET的飞信消息管理系统,在该系统中可以选定一个飞信号查看该号的聊天记录,并对聊天记录进行数据查询、统计以及备份,并将此系统应用于学生管理工作,提高办事效率。

1引言

设计基于.NET的飞信消息管理系统的目的是:当老师以飞信为工具给班里学生发通知时,可以方便地统计学生回复消息情况,并且将重要的回复保存起来作为备份数据。

2飞信聊天数据库

飞信是中国移动推出的“综合通信服务”,飞信软件提供了免费发手机短信的功能,且支持群发,一方面节省发短信的费用,另外也可以节省老师发短信通知的工作量。移动飞信PC客户端所有的本地用户数据、聊天记录及其系统设置都存储在后缀名为dat的数据文件中。以某版飞信为例,聊天消息记录和联系人信息记录存放的默认路径分别为C:\Documents and Settings\usemame\Application Data\Fetion\飞信号\history2.dat 和 C:\ Documents and Settings\usemame\Application Data\Fetion\飞信号\_Contacts.dat。从history2.dat文件中可以解析出聊天记录信息,从_Contacts.dat中则可以解析出所属号码的联系人信息。

飞信PC客户端的聊天消息记录history2.dat是用SQLite3来统一管理的,SQLite是一款开源的遵守ACID的关联是资料库管理系统,是一款轻型的数据库。SQLite提供了加密解密的接口函数定义,飞信的聊天记录正是利用了此接口函数对数据进行了加密处理。而访问聊天记录文件数据库的密码就是该文件所属的飞信账号的飞信号码。在.NET中可以方便地获取飞信聊天记录history.dat。方法是首先获取.NET访问SQLite的动态链接库文件System.Data.SQLite.dll并将其添加到.NET项目中,这样就可以在.NET中直接使用动态链接库所提供的接口函数来访问SQLite了。同时,飞信PC客户端的联系人信息被储存在一个XML文件中。在.NET中访问XML数据非常方便。本系统选择使用XML来保存系统数据。

3飞信消息管理系统的设计

3.1功能设计

系统总体功能包括飞信回复处理、班级维护、学生维护三大模块。(1)飞信回复处理模块。主要包括飞信聊天记录数据查询、数据过滤、数据导出等功能。数据查询功能是在组合框中选择一个班级号,输入回复关键词、查找起始时间、查找结束时间,点击“查询”按钮后在飞信聊天数据库中查找该班学生在指定的起始和结束时间内包含回复关键词的回复消息并在表格中显示。数据过滤功能是当在组合框中选择“全部”、“已回复”或“未回复”等列表项时分别实现在表格中显示该班同学的所有回复信息、已回复信息或未回复信息。数据导出功能是点击“导出”按钮后实现将表格中数据导出到Excel表格中,方便保存、浏览和打印。(2)班级维护模块。主要包括添加、删除班号等功能。在添加班级信息的时候具有查重功能,即不能输入两个班号相同的班级信息。(3)学生维护模块。主要包括添加、修改、删除、查询学生的基本信息。在添加学生信息的时候具有查重功能,即不能输入两个学号相同的学生信息。

3.2存储设计

由于.NET中对于XML数据的存取非常方便,而且XML文档中可以保存结构化的数据,其文档格式非常容易理解,所以选择使用XML来保存系统数据。

班级信息保存在Class.xml文件中,其结构为:……,其中每个标记中是一个班的信息,标记下的中保存该班的班号。

每个班的学生信息保存在每个以班号classname为文件名的classname.xml文件中,其结构为:…………………… ,其中每个标记中是一个学生的信息,标记下的、、、中分别保存该学生的姓名、学号、飞信号、手机号。

飞信聊天记录的查询结果导出到Excel表格中,用户可以随时利用Excel的实现数据的存档和打印。

3.3类设计

在程序设计过程中采用模块化程序设计方法,将一些功能封装到类中,作为类的一些方法,使得代码简洁、提高重用率。共设计了FetionAssistantDao类、XmlUtility类、OutputToExcel类三个类,其中每个类中的方法如下。

(1)FetionAssistantDao类

  • public SQLiteConnection GetConnection():从.NET配置文件中获取Sqlite数据库的连接。

  • public bool OpenSQLiteConnect():打开飞信数据库连接,查看飞信路径数否正确。

  • public bool CloseSQLiteConnect():关闭飞信数据库连接。

  • public DataTable GetFetionMessage(string keyword, DateTime startTime, DateTime endTime):查询飞信数据信息。

  • public string ConvertDateTimeToString(DateTime dt):将日期转换为"yyyy-MM-dd HH:mm:ss"格式。

(2)XmlUtility类

  • public static DataTable ReadXml(String fileName):从filename文件中读取xml数据,并且返回DataTable型数据。

  • public static Boolean WriteXml(DataTable dt, String fileName):从filename文件中读取xml数据,并且返回DataTable型数据。

  • public static DataTable GetClassInfoFromXml():从xml文档中获取班的信息。

  • public static DataTable GetStudentInfoFromXml(String classNumber):从xml文档中获取某个班学生信息。

  • public static Boolean WriteStudentInfoToXml(DataTable dt,String classNumber) :将暂时存放在datatable中的学生数据保存到xml中。

  • public static Boolean WriteClassInfoToXml(DataTable dt):将datatable中的班级数据保存到xml中。

(3)FillExcel类

  • public static string FillExcelUseTableSchema(DataTable excelTable, string excelPath, string tempFolderPath):将datatable中数据填充到指定路径下的Excel表格中。

(4)注意事项:

系统默认连接的飞信聊天文件路径保存在app.config文件中,这样做的目的是如果一台电脑有几个飞信号登录,用户可以设置某个飞信聊天文件路径为默认路径。

C:\\Documents and Settings\\Administrator\\Application Data\\Fetion\\飞信号\\history2.dat;Version=3;Password=飞信号"/>

系统的核心功能是对history2.dat数据库进行查询,由于SQLite数据库中对于日期是按照"yyyy-MM-dd HH:mm:ss"的格式处理的,所以在拼写查询字符串的时候一定要将日期转换成相应格式,否则将查询不成功。

4结语

本文设计了基于.NET的飞信消息管理系统,并在在学生管理工作中发挥作用,给学生通知等信息的数据统计工作带来便利。


作者简介:葛明明(1977—),女(汉族),北京联合大学特殊教育学院,硕士学位,主要研究方向为教育管理;付涌玉(1977—),女(汉族),北京联合大学特殊教育学院,硕士学位,主要研究方向为教育管理。