软件项目开发流程
需求分析 ----》 概要设计  ---》 项目计划 ----》详细设计---》编码测试 -----》

项目测试 ----》调试修改 ---》项目发布----》后期维护
 
>需求分析 : 确定用户的真实需求  
  >>1. 确定用户的真实需求,项目的基本功能
  >>2. 确定项目的整体难度和可行性分析
  >>3. 需求分析文档,用户确认
 
>概要设计:对项目进行初步分析和整体设计
  >>1. 确定功能模块
  >>2. 进行可行性分析 搭建整体架构图
  >>3. 确定技术思路和使用框架
  >>4. 形成概要文档指导开发流程
 
>项目计划 : 确定项目开发的时间轴和流程
  >>1. 确定开发工作的先后顺序
  >>2. 确定时间轴  ,事件里程碑
  >>3. 人员分工  
  >>4. 形成甘特图和思维导图等辅助内容
 
>详细设计 : 项目的具体实现
  >>1.形成详细设计文档 : 思路,逻辑流程,功能说明,技术点说明,数据结构说明,代码说明
 
>编码测试 : 按照预定计划实现代码编写,并且做基本检测
  >>1. 代码编写
  >>2. 写测试程序
  >>3. 技术攻关
 
>项目测试 : 对项目按照功能进行测试
  >>1. 跨平台测试 ,使用测试
  >>2. 根据测试报告进行代码修改
  >>3. 完成测试报告
 
>项目发布
  >>1.项目交付用户进行发布
  >>2.编写项目说明文档
 
>后期维护
  >>1.维护项目正常运转
  >>2.进行项目的迭代升级

功能说明  
>用户可以登录和注册
    * 登录凭借用户名和密码登录
    * 注册要求用户必须填写用户名,密码,其他内容自定
    * 用户名要求不能重复
    * 要求用户信息能够长期保存
        
>可以通过基本的图形界面print以提示客户端输入。
    * 程序分为服务端和客户端两部分
    * 客户端通过print打印简单界面输入命令发起请求
    * 服务端主要负责逻辑数据处理
    * 启动服务端后应该能满足多个客户端同时操作
        
>客户端启动后即进入一级界面,包含如下功能:登录    注册    退出
    * 退出后即退出该软件
    * 登录成功即进入二级界面,失败回到一级界面
    * 注册成功可以回到一级界面继续登录,也可以直接用注册用户进入二级界面
        
>用户登录后进入二级界面,功能如下:查单词    历史记录    注销
    * 选择注销则回到一级界面
    * 查单词:循环输入单词,得到单词解释,输入特殊符号退出单词查询状态
    * 历史记录:查询当前用户的查词记录,要求记录包含name   word   time。可以查看所有记录或者前10条均可。
    
>单词本说明
  >>每个单词一定占一行
  >>单词按照从小到大顺序排列
  >>单词和解释之间一定有空格
        
>查词说明
  >>直接使用单词本查询(文本操作)
  >>先将单词存入数据库,然后通过数据库查询。(数据库操作)

技术方案

* tcp 套接字
   * 多进程 并发
   * 历史记录 : 前10条
   * 注册成功 直接登录

将单词本存入数据表mysql

1. 创建数据库 dict  (utf8)
2. 创建数据表 words  将单词和单词解释分别存入不同的字段
3. 将单词存入words单词表  超过 19500 即可

数据表进行建立

 *单词数据库

create database dictionary charset=utf8;

*单词数据表  words -> id word mean

create table (id int primary key auto_incremant, word varchar(32),mean text);
   * 用户  user -> id  name  passwd

create table user (id int primary key auto_increment,name varchar(32) not null,passwd varchar(128) not null);
   * 历史记录 hist-> id name  word  time

create table hist (id int primary key auto_increment,name varchar(32) not null, word varchar(28) not null,time datetime default now() );

单词表的插入

 import pymysql
import re f = open('dictionary.txt‘)
db = pymysql.connect(host = 'localhost',
port = 3306,
user = 'root',
password = '',
database = 'dictionary',
charset = 'utf8')
#创建游标
cur = db.cursor()
#执行插入语句
sql = "insert into words (word,mean) values (%s ,%s)" for line in f:
#元祖 非空字符,匹配中间的空格,有些存在无解释
tup = re.findall(r'(\S+)\s+(.*)',line)[0]
try:
cur.execute(sql,tup)#游标方法
db.commit()#执行写操作需要提交
except:
db.rollback() f.close()
cur.close()
db.close()

结构设计

几个模块 封装设计
客户端  :
服务端  : 逻辑请求处理  ,  数据库操作处理
函数封装: 直接写一个功能程序提供给使用者使用。使用者直接运行,而不是需要使用我的代码的某一部分。

功能分析 和 通信搭建

并发通信   登录   注册   查单词   历史记录   退出  返回上一级界面

罗列功能逻辑 :每个功能确定服务端和客户端该做什么,编写代码测试

注册  客户端: 输入注册信息
                 发送请求
                 得到反馈
         服务端 : 接收请求
                 判断是否允许注册
                 允许注册将信息存入数据库
                 给客户端反馈结果
  登录  客户端: 输入用户名密码
                  发送请求给服务器
                  得到服务器反馈
             服务端: 接收请求
                   判断是否允许登录
                  发送结果
 查单词 客户端: 输入单词
                  发送请求 Q name word
                  等待接收结果
          服务端: 接收请求
                  查找单词
                  发送结果
                  插入历史记录

设定客户端服务端协议

dictionary小项目代码管理的更多相关文章

  1. [转] 使用Git进行小项目代码管理

    http://www.uml.org.cn/pzgl/201206155.asp 之前在公司使用过SVN(无甚感觉)和ClearCase(把人恶心死的东西)两种版本控制工具,都不满意.后来想自己写点东 ...

  2. 项目代码管理工具Git的总结

    在项目的开发中,代码的同步管理很重要,团队的几个人可以通过免费的github管理自己的开源项目代码,高效方便.下面说说,开发中经常用到的git指令操作,基于github平台. 0.配置提交者的账户和邮 ...

  3. 我与Git的那些破事--代码管理实践

    1. Git是什么? 作为一名程序猿,我相信大家都或多或少接触过git--分布式版本控制软件. 有人说,它是目前世界上最先进的分布式版本控制系统,我想说,是否最先进不知道,但确实好用,实用. 作为一款 ...

  4. 我与Git的那些破事(上)--代码管理

    1. Git是什么? 作为一名程序猿,我相信大家都或多或少接触过git--分布式版本控制软件. 有人说,它是目前世界上最先进的分布式版本控制系统,我想说,是否最先进不知道,但确实好用,实用. 作为一款 ...

  5. [BI项目记]-搭建代码管理环境之客户端

    前面已经介绍了如何搭建代码管理环境的服务器端安装和配置,这里介绍对于客户端的几个场景. 首先对于开发人员来说,可以直接使用Visual Studio来连接,这里主要演示Visual Studio 20 ...

  6. 使用Github管理项目代码的版本

    作为开源代码库以及版本控制系统,Github拥有140多万开发者用户.随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法. 在Git中并不存在主库这样的概 ...

  7. 一个看起来不像中年人的中年人,带着两个初出茅庐的小伙子儿,用git管理项目代码的进击之路

    一个中年人的孤独前行 我们这一代人,是上个世纪的人,活在当下,已然成为社会上的中流砥柱. 80年代生人,遥望我们的父辈,均是5.60年代的人,迟迟暮年,夕夕老矣.而我们,正当年,却又时光飞逝,很快便要 ...

  8. 构建微服务开发环境7————使用Github管理项目代码的版本

    [内容指引] 1.注册GitHub帐号: 2.下载Github Desktop客户端: 3.macOS安装Github Desktop客户端: 4.windows安装Github Desktop客户端 ...

  9. 使用git和github管理项目代码

    以前不知道使用代码管理工具,最后写的一些东西都没有了,由于硬盘坏了或者不小心格式化了之类的,后来使用了Git 和Github来托管自己的代码和读书笔记方便了不少,到哪里只要有网就可以把自己的东西拷贝下 ...

随机推荐

  1. 在IDEA中如何将Spring boot项目打包成可执行的jar包并发布到linux服务

    这两年微服务很流行,这里简单介绍一下如何将自己使用idea写的微服务打包成一个可执行的jar包,并发布到linux服务器的步骤.因为spring boot有内置的tomcat所以一般使用内置的tomc ...

  2. openstack--all-in-one部署

    安装过程 本次宿主机(即安装OpenStack的机器)的操作系统是CentOS 7.5.安装的OpenStack是目前最新的rocky版本,官方文档建议机器至少有16 GB的内存,处理器硬件虚拟化扩展 ...

  3. mongdb 简介以及安装

    1.什么是MongoDB?  MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.MongoDB 旨在为WEB应用提供 ...

  4. bzoj1495 [NOI2006]网络收费 复杂度分析+树上背包

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=1495 题解 通过观察可以发现,对于一个 \(lca\),如果 \(nA \leq nB\),那 ...

  5. Python的"random"函数的使用(一)

    random.randrange(1,10) 随机产生0~7之间的整数,不包含7. random.sample(range(100), 5) 随机从range(100)中产生5个数,放入一个list. ...

  6. fat文件系统

    在主引导区后面就是FAT表.从上面可以得知一个FAT表是229个扇区.它里边的内容很简单,里边的内容就是指出下一个簇在哪里.你的盘有多少个簇,那么它的FAT表就要有多少个项来描述它们.因为FAT16是 ...

  7. 箭头函数以及this指向问题

    一.定义函数的方式 //1.function const aaa = function () { } //2.对象字面量中定义函数 const obj = { bbb() { } } //3.ES6中 ...

  8. django+nginx+uwsgi_cent0s7.4 部署

    django+nginx+uwsgi_cent0s7.4 部署 几条命令 # 查看是否有 uwsgi 相关的进程 ps -aux|grep "uwsgi" # 杀死有关 uwsgi ...

  9. Vue的使用总结(2)

    1.Vue 中 class 和 style 的绑定 在 Vue 中,可以通过数据绑定来操作元素的 class 列表和内联样式,操作 class 和 style 是用 v-bind 来绑定的.在将 v- ...

  10. 查看电脑的s/n序列号信息方式

    要是品牌机的话,通常在机箱的背部或是侧面都会有个不干胶贴纸,上面就有写机器的S/N号 或 点击开始——运行——输入CMD,单击确定 输入:wmic bios get serialnumber 查看本机 ...