软件工程第六周理论与实践学习

一、理论学习

1、完成慕课第八、九章的相关学习

2、学习软件建模方法

  软件开发中常用的建模方法有UML(Unified Modeling Language,统一建模语言),BPMN(Business Process Diagram,业务流程图),Flowcharts 流程图,Data Flow Diagrams (DFDs) 数据流图,Gantt Charts 甘特图,思维导图,概念导图等,有的是面向对象的建模方法,有的是面向服务、面向方面的建模方法,个人认为面向对象的建模方法更加结构清晰、模块化的设计更加易于扩展维护。

二、实践学习

1、本周先用EA软件进行了UML建模

  根据课程对诗词游戏的软件进行建模,寻找我们的软件可能需要哪些功能,网上关于EA软件的教程较少,而且都是比较低版本的,我们组选择了EA12进行建模,主要确定了出口成诗、游戏2、游戏3、更新数据库、古诗词获取几个功能,游戏2和游戏3还未确定做什么功能,下面是建模截图

2、数据库MySql的学习和使用

  之前我们组的古诗词是存在txt文件中的,根据计划需要存放在数据库中,这周学习了MySql的一些常规操作,选用的还是VsCode,不得不说VsCode真的很好用,vscode操作数据库需要下面两个拓展模块

在vscode里下好以后就可在左侧的栏里看到一个存储桶的图标:

 

上面的poetry是我已经建好的数据库,下面是我一周实践下来常用的操作语句,主要是实验对数据的导入、删除等操作

可以在右侧非常直观的看到数据库里数据,比命令行好看,数据库建立完以后下一步就是用python进行操作了,python中操作数据库要pip pymysql然后建立连接:

之前操作数据库如果导入过数据,这里就会打印出你poetry里的数据,我这里已经是导入过的了,所以可以看到:

下面讲一下导入数据的过程:

我是将爬取的诗词句处理以后批量导入的,给出代码:

 1 import sys  
 2 import re  
 3 import os,time
 4 import pymysql
 5 
 6 conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='newbegin',db='lsj',charset='utf8')
 7 cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
 8 
 9 class WordCreate():
10     def __init__(self,path):
11         '''
12         导入文件进行解析
13         '''
14         with open(path,encoding="utf-8") as file:
15             content = file.read()
16             
17             x = re.findall(r'\((.*)\)', content)
18             
19             for i in x:
20                 zifu = '('+i+')'
21                 content = content.replace(zifu,'')
22                 
23             content = re.split(r'\d', content)
24             content = [i for i in content if i != '']
25             self.sc_list = []
26             for i in content:
27                 weak_list = re.split(r'[、。;\n\s*]',i)
28                 weak_list = [i for i in weak_list if i != '']
29                 self.sc_list.append(weak_list)
30         # print(self.sc_list)
31     def OperationSql(self):
32         num=1
33         for i in self.sc_list:
34             for _ in range(11-len(i)):
35                 i.append('NULL')          
36             cur.execute("INSERT INTO poetry(id,name,author,sentense_1,sentense_2,\
37                 sentense_3,sentense_4,sentense_5,sentense_6,sentense_7,sentense_8,\
38                     sentense_9,sentense_10) VALUES (%s,'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')"%\
39                         (num,i[0],'NULL',i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8],i[9],i[10]))
40             conn.commit()
41             num+=1
42 def main():
43     
44     generator = WordCreate('D:\桌面\诗词库.txt')  #选择合适的路径
45     generator.OperationSql()
46     
47     
48 if __name__ == '__main__':
49     main()

OperationSql就是导入的过程,这样txt文件里的数据就放进数据库啦,调用也非常方便。

在github提交的文件可能比较杂了,因为代码更新的比较乱,建了好几个py文件自己没留意,目前主要是4个文件,爬虫文件:爬取网站上的古诗存txt文件,导入数据库文件:txt文件处理后导入数据库,数据库调用文件:负责提取关键词、诗词名、关键词所在句子,GUI文件,负责游戏界面和数据对接。

 

posted @ 2020-03-29 11:43  认真学习的小朋友  阅读(184)  评论(0编辑  收藏  举报