dictionary小項目代碼管理

軟件項目開發流程
需求分析 ----》 概要設計  ---》 項目計劃 ----》詳細設計---》編碼測試 -----》mysql

項目測試 ----》調試修改 ---》項目發佈----》後期維護
 
>需求分析 : 肯定用戶的真實需求  
  >>1. 肯定用戶的真實需求,項目的基本功能
  >>2. 肯定項目的總體難度和可行性分析
  >>3. 需求分析文檔,用戶確認
 
>概要設計:對項目進行初步分析和總體設計
  >>1. 肯定功能模塊
  >>2. 進行可行性分析 搭建總體架構圖
  >>3. 肯定技術思路和使用框架
  >>4. 造成概要文檔指導開發流程
 
>項目計劃 : 肯定項目開發的時間軸和流程
  >>1. 肯定開發工做的前後順序
  >>2. 肯定時間軸  ,事件里程碑
  >>3. 人員分工  
  >>4. 造成甘特圖和思惟導圖等輔助內容
 
>詳細設計 : 項目的具體實現
  >>1.造成詳細設計文檔 : 思路,邏輯流程,功能說明,技術點說明,數據結構說明,代碼說明
 
>編碼測試 : 按照預約計劃實現代碼編寫,而且作基本檢測
  >>1. 代碼編寫
  >>2. 寫測試程序
  >>3. 技術攻關
 
>項目測試 : 對項目按照功能進行測試
  >>1. 跨平臺測試 ,使用測試
  >>2. 根據測試報告進行代碼修改
  >>3. 完成測試報告
 
>項目發佈
  >>1.項目交付用戶進行發佈
  >>2.編寫項目說明文檔
 
>後期維護
  >>1.維護項目正常運轉
  >>2.進行項目的迭代升級sql

功能說明  
>用戶能夠登陸和註冊
    * 登陸憑藉用戶名和密碼登陸
    * 註冊要求用戶必須填寫用戶名,密碼,其餘內容自定
    * 用戶名要求不能重複
    * 要求用戶信息可以長期保存
        
>能夠經過基本的圖形界面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
tcp

create table user (id int primary key auto_increment,name varchar(32) not null,passwd varchar(128) not null);
   * 歷史記錄 hist-> id name  word  time
ide

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

單詞表的插入

 1 import pymysql
 2 import re
 3 
 4 f =  open('dictionary.txt‘)
 5 db = pymysql.connect(host = 'localhost',
 6                      port = 3306,
 7                      user = 'root',
 8                      password = '123456',
 9                      database = 'dictionary',
10                      charset = 'utf8')
11 #建立遊標
12 cur = db.cursor()
13 #執行插入語句
14 sql = "insert into words (word,mean) values (%s ,%s)"
15 
16 for line in f:
17     #元祖 非空字符,匹配中間的空格,有些存在無解釋
18     tup = re.findall(r'(\S+)\s+(.*)',line)[0]
19     try:
20         cur.execute(sql,tup)#遊標方法
21         db.commit()#執行寫操做須要提交
22     except:
23         db.rollback()
24 
25 f.close()
26 cur.close()
27 db.close()
View Code

 

結構設計

幾個模塊 封裝設計
客戶端  :
服務端  : 邏輯請求處理  ,  數據庫操做處理
函數封裝: 直接寫一個功能程序提供給使用者使用。使用者直接運行,而不是須要使用個人代碼的某一部分。

 功能分析 和 通訊搭建

   併發通訊   登陸   註冊   查單詞   歷史記錄   退出  返回上一級界面

羅列功能邏輯 :每一個功能肯定服務端和客戶端該作什麼,編寫代碼測試

註冊  客戶端: 輸入註冊信息
                 發送請求
                 獲得反饋
         服務端 : 接收請求
                 判斷是否容許註冊
                 容許註冊將信息存入數據庫
                 給客戶端反饋結果
  登陸  客戶端: 輸入用戶名密碼
                  發送請求給服務器
                  獲得服務器反饋
             服務端: 接收請求
                   判斷是否容許登陸
                  發送結果
 查單詞 客戶端: 輸入單詞
                  發送請求 Q name word
                  等待接收結果
          服務端: 接收請求
                  查找單詞
                  發送結果
                  插入歷史記錄

設定客戶端服務端協議

相關文章
相關標籤/搜索