基于TCP协议的通讯录网络应用课程设计报告


    
    网络应课程设计报告



    系 (院): 计算机科学学院
    专业班级: 计科
    姓 名:
    学 号:
    指导教师:
    设计时间: 2017612 2017623
    设计点: 4教软件工程机房





    目录
    课程目意义 1
    二系统需求分析 1
    21设计题目 1
    22 系统需求 1
    三 详细设计 2
    31设计成果心 3
    四 总结 4
    五 附录 4














    课程目意义
    计算机网络课程设计目学生更深入掌握计算机网络核心容实现理实践相结合学生具体实践成果体现理知识掌握程度利学生提高计算机网络实践力加深计算机网络理知识理解基目:
    1培养学生理联系实际设计思想训练综合运学基础理知识结合生产实际分析解决网络应中问题力基础理知识巩固加深
    2学掌握网络应工程般设计程方法
    二系统需求分析
    21设计题目
    题目2:基TCP协议通讯录
    22 系统需求
    1需录入联系通讯录中
    2够通讯录中项信息进行添加删浏览等系列操作
    3够完成通讯录基功
    4程序具定健壮性会户输入错误引起程序运行错误中 断执行输入值类型范围字符串长度等进行正确性检查合法输入值出出错信息指出错误类型等重新输入
    5删数应出警告
    23 功分析
    1添加功:选择功户手动输入联系项信息
    2查功:选择功时选择根种信息查询联系电话住址性邮箱QQ等项信息
    3删功:选择功时够通输入联系姓名者电话删联系全部信息
    4退出系统功:选择功时够退出系统保存数
    菜单
    功结构图:



    添加联系
    删联系
    查联系
    退出






    输入意键进入菜单
    流程图




    输入0~3选择功
    1:查
    2:添加
    3:删
    4:退出


    输入2:添加项信息添加
    输入1:查项信息






    输入4:退出
    输入3:删学号




    三 详细设计
    套接字应层传输层接口准确说Socket作应程序TCPIP协议交互接口通Socket区分TCPIP连接应程序进程
    TCP客户端服务端流程图:

    服务端:
    void Start() 创建套接字
    stdlist m_list链表类 链表象
    CSocket m_sock 定义套接字
    BOOL Browse(CSocket *pSocka)查联系信息
    BOOL AddData(CSocket *pSocka)添加联系信息
    BOOL OnReceive(CSocket* pSocka)收发数
    BOOL Delete(CSocket *pSocka)删信息
    客户端:
    void Delete()删数
    void Print()输入数
    void Input()添加数
    int Menu()创建菜单
    void Start()创建套接字
    31设计成果心
    添加功:客户端运行结果:

    服务端运行结果:

    删功:
    客户端运行结果:
    服务端运行结果:

    文档保存删:

    四 总结
    紧紧张张两周课设刚开始手程序想法运行心里时时种喜悦通两周课设认识书老师教容限想掌握更知识必须动脑思考断学时应请教解更知道知识回头编写程序原想难相信做什事仔细思考认真做定做 通周编程发现足编写时常犯低级错误马虎浪费少时间知进行时候种信总想正做什足然发现做事中注意争取改掉 两周努力掌握基C++进行程序设计技巧更深理解运结构化程序设计思想方法掌握开发型实系统基方法时学会调试较长程序基方法提高书写程序设计开发文档力(书写课程设计报告)周实践受益匪浅感谢孜孜倦指导老师感谢困惑时帮助学感谢学校样动手动脑机会理实践相结合方面次锻炼收获
    五 附录
    服务端代码:
    Studenth中代码:
    Studenth interface for the CStudent class



    #if defined(AFX_STUDENT_H__51E819EA_E8BD_4CCD_9E03_F45C00E0494F__INCLUDED_)
    #define AFX_STUDENT_H__51E819EA_E8BD_4CCD_9E03_F45C00E0494F__INCLUDED_
    #include
    #if _MSC_VER > 1000
    #pragma once
    #include
    #endif _MSC_VER > 1000
    enum {PORT10011}
    enum {

    REQ_ADD0x1111
    REQ_DEL
    REQ_MOD命令号
    REQ_FIND
    REQ_BROW
    }
    typedef struct SStud
    { int nNumb
    char sName[20]
    char sAge[20]
    char sSex[4]
    char sUnit[20]
    char sAdd[20]

    }DATA
    class CStudent
    {
    stdlist m_list链表类 链表象 保存SaveLoad中
    CSocket m_sock客户端通信socka象
    BOOL Browse(CSocket *pSocka)
    BOOL AddData(CSocket *pSocka)
    BOOL OnReceive(CSocket* pSocka)
    BOOL Delete(CSocket *pSocka)
    public

    void Load()
    void Save()

    void Start()
    CStudent()
    virtual ~CStudent()

    }

    #endif defined(AFX_STUDENT_H__51E819EA_E8BD_4CCD_9E03_F45C00E0494F__INCLUDED_)
    Studentcpp代码:
    Studentcpp implementation of the CStudent class



    #include stdafxh
    #include Studenth
    #include
    #include
    #include
    #include
    using namespace std

    ConstructionDestruction


    CStudentCStudent()
    {

    }

    CStudent~CStudent()
    {

    }


    void CStudentStart()
    {
    WSADATA wd
    WSAStartup(0x0202&wd)套接字初始化
    if( m_sockCreate (PORT))
    {
    cout <<端口创建失败 << WSAGetLastError() < return
    }
    m_sockListen()
    CSocket socka
    sockaddr_in sa
    int nLen sizeof(sa)
    while(m_sockAccept(socka(sockaddr*)&sa&nLen))
    {
    cout <<户登录:< while(OnReceive(&socka))

    sockaClose ()关闭客户端服务器连接
    }
    }
    网络协议:
    硬件协议
    协议命令+附加数
    1DATA
    2nNumb
    BOOL CStudentOnReceive(CSocket *pSocka)
    {返回值决定否继续该登陆户通讯(否断开连接)
    int nCmd0
    if(pSocka>Receive(&nCmdsizeof(nCmd))<0)
    return FALSE
    switch(nCmd)
    {

    case REQ_ADD
    return AddData(pSocka)

    case REQ_DEL
    return Delete(pSocka)

    case REQ_MOD
    break
    case REQ_FIND
    break
    case REQ_BROW
    return Browse(pSocka)
    }
    return FALSE}
    BOOL CStudentAddData(CSocket *pSocka)
    {
    DATA d
    FILE *fp
    if(pSocka >Receive(&dsizeof(d))<0)
    return FALSE
    服务器收客户端传信息存入4txt中
    fpfopen(4txta)
    if(fpNULL)
    printf(开文件失败)
    fprintf(fp\n)
    fprintf(fpddnNumb)
    fprintf(fp\t)
    fprintf(fpsdsName )
    fprintf(fp\t)
    fprintf(fpsdsAge )
    fprintf(fp\t)
    fprintf(fpsdsSex )
    fprintf(fp\t)
    fprintf(fpsdsUnit )
    fprintf(fp\t)
    fprintf(fpsdsAdd )
    fprintf(fp\t)
    fprintf(fp\n)
    fclose(fp)
    system(@color 0a)
    cout<<学号\t姓名\t年龄\t性\t单位\t手机号码< cout<m_listpush_back(d)
    return TRUE
    }
    BOOL CStudentBrowse(CSocket *pSocka)
    {system(cls)
    int nm_listsize()
    pSocka>Send(&nsizeof(n))
    listiterator itm_listbegin()
    while(itm_listend())
    {
    DATA&d*it++ it指结构体数赋itit 移动
    pSocka>Send(&dsizeof(d))
    某项信息删更新文件
    FILE *fp
    int nm_listsize() 删n变化
    fpfopen(4txtw)
    fprintf(fp\n)
    fprintf(fpddnNumb)
    fprintf(fp\t)
    fprintf(fpsdsName )
    fprintf(fp\t)
    fprintf(fpsdsAge )
    fprintf(fp\t)
    fprintf(fpsdsSex )
    fprintf(fp\t)
    fprintf(fpsdsUnit )
    fprintf(fp\t)
    fprintf(fpsdsAdd )
    fprintf(fp\t)
    fprintf(fp\n)
    fclose(fp)
    system(@color 0a)
    cout<<学号\t姓名\t年龄\t性\t单位\t手机号码<cout<void CStudentSave()
    {}
    void CStudentLoad()
    {}
    BOOL CStudentDelete(CSocket *pSocka){
    int nNumb
    if(pSocka>Receive (&nNumb sizeof(nNumb))<0)连接
    return false
    listiterator itm_listbegin()查找链表
    while(itm_listend())
    {if(it>nNumb nNumb)找nNumb
    {m_listerase(it)删nNumb
    return true}++it}return true}
    客户端代码:
    Studenth中代码:
    Studenth interface for the CStudent class


    #if defined(AFX_STUDENT_H__B679D35B_EF78_4F77_A33E_E69960383116__INCLUDED_)
    #define AFX_STUDENT_H__B679D35B_EF78_4F77_A33E_E69960383116__INCLUDED_
    #if _MSC_VER > 1000
    #pragma once
    #endif _MSC_VER > 1000
    #include
    #include
    system(color AB)
    COLOR[A]
    enum {PORT10011}
    enum { REQ_ADD0X1111
    REQ_DELREQ_BROW}
    typedef struct SStud
    {
    int nNumb
    char sName[20]
    char sAge[20]
    char sSex[4]
    char sUnit[20]
    char sAdd[20]}DATA
    class CStudent
    {public
    void Delete()
    void Print()
    void Input()
    int Menu()
    void Start()
    CSocket m_sock
    CStudent()
    virtual ~CStudent()}
    #endif defined(AFX_STUDENT_H__B679D35B_EF78_4F77_A33E_E69960383116__INCLUDED_)
    Studentcpp中代码:
    Studentcpp implementation of the CStudent class



    #include stdafxh
    #include Studenth
    #include
    #include
    #include
    #include

    using namespace std

    ConstructionDestruction


    CStudentCStudent()
    {

    }

    CStudent~CStudent()
    {

    }

    void CStudentStart()
    {
    WSADATA wd套接字初始化
    WSAStartup(0x0202&wd)
    if(m_sockCreate ())
    {
    cout <<网络启动失败 << WSAGetLastError() < return
    }
    if(m_sockConnect(10201155PORT))
    {
    cout <<连接网络服务器时失败(错误号码:<< WSAGetLastError()<<)< return
    }
    while(Menu())
    }int CStudentMenu()
    {system(color 0a)
    cout <<\n\n\n\t\t********欢迎基TCP通讯录*********** < cout <<\t\t 1显示联系信息 <cout <<\t\t 2添加联系信息 <cout <<\t\t 3删联系信息 <cout <<\t\t 0退出 <cout <<\t\t****************************************** <cout<<请输入想执行功序号:<int i0
    cin >>i
    switch(i){
    case 1
    Print()
    break
    case 2
    Input()
    break
    case 3
    Delete()
    break
    }return i}
    void CStudentInput()
    { DATA d
    cout <<请输入学号:<cin >>dnNumb
    cout <<请输入姓名:<cin>>dsName
    cout<<请输入年龄:<cin>>dsAge
    cout<<请输入性:<cin>>dsSex
    cout <<请输入单位:<cin >> dsUnit
    cout <<请输入手机号码:<cin >> dsAdd
    int nCmdREQ_ADD
    m_sockSend(&nCmdsizeof(nCmd))
    m_sockSend(&dsizeof(d))
    Print()}
    void CStudentPrint(){
    system(color 0a)
    int nCmdREQ_BROW
    m_sockSend(&nCmdsizeof(nCmd))
    DATA d
    int n0
    m_sockReceive(&nsizeof(n))
    system(cls)
    cout<<学号\t姓名\t年龄\t性\t\t单位\t\t手机号码< while(n) {
    m_sockReceive(&dsizeof(d))
    cout<< dnNumb<<\t<system(pause)}
    void CStudentDelete(){
    cout<<请输入删学号:
    int nNumb
    cin>>nNumb
    cout<<确定删学号?[yn]
    char cgetch()
    putch(c)
    if(c'Y'||c'y') {
    int nCmdREQ_DEL定义协议号命令号
    m_sockSend(&nCmdsizeof(nCmd))发送协议号
    m_sockSend(&nNumb sizeof(nNumb))发送命令号(学号) }
    Print()}
    长江学

    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    基于TCPIP协议的网络通信小应用程序课程设计

    XX大学理学院( 计算机网络 )课程设计实验时间: 2010学年第二学期 专业年级: 2008级应数X班 ...

    3年前   
    582    0

    C语言课程设计通讯录管理系统

     课程设计报告书 课程名称: C语言课程设计 班 级: 学 号: ...

    5年前   
    2398    0

    C语言课程设计学生通讯录管理系统设计

    C语言课程设计学生通讯录管理系统设计一、题目内容的描述学生通讯录管理系统设计设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:姓名、家庭地址、邮政编码、电话号码等等),通信录数据类...

    4年前   
    720    0

    基于UML的图书馆管理系统设计《软件工程》课程设计网络教育

     网络教育学院《软件工程》课 程 设 计 ...

    1年前   
    251    0

    基于UML的图书管理系统设计课程设计

    滨江学院 统一建模语言课程设计报告( 2013 -- 2014 年度第 二 学期)课程名称: 统一建模语言课程设计 题 目: 图书馆管理系统 院 系: ...

    1年前   
    396    0

    基于MATLAB的ASK调制解调实现课程设计

    大学《通信原理》课程设计报告学 院 专 业 班 级 学 号 ...

    3年前   
    726    0

    基于arm键盘课程设计

    基ARM课程设计 专 业:自动化学 号:姓 名: 在ARM嵌入式应用中,人机交互对话最通用的方法就是通过键盘和LCD显示进行的,本设计是通过键盘向系统发送各种指令或置入必要的数据信息。键盘模块...

    2年前   
    468    0

    基于8051的智能小车设计课程设计

    测控电路课程设计题目名称: 智能循迹小车 专业班级: ...

    2年前   
    583    0

    基于plc的交通灯的设计课程设计

    任务说明书一、 控制要求:1、系统控制示意图由十字路口交通灯示意图可以知道,在南北和东西主干道上各有一盏红绿灯;在南北和东西人行道上各有一盏红灯和绿灯。2、控制要求 启动及停止按钮的控制...

    3年前   
    885    0

    单片机课程设计报告基于单片机的温控系统

    职业学院机械与电子工程学院基于单片机温控系统课程设计报告班 级 电信班 学生姓名 学 号 指导教...

    3年前   
    994    0

    网络工程课程设计

    XX学院网络工程类课程设计题 目:XX学生公寓网络设计与实现 学 号: ...

    3年前   
    786    0

    C语言实训报告(手机通讯录)

    通讯录1、问题的定义根据需求,该系统所应包含的信息有以下一些:通讯录的基本信息:姓名、手机号码、电话、及家庭住址。根据需求,该系统所应实现的功能有以下一些:各种基本数据的录入。如:通讯录基本信...

    3年前   
    419    0

    C语言通讯录报告及源代码

    XX学院《C语言程序设计》课程设计报告 学 院:_电气与信息工程学院_ 专业班级: 计科班 学生姓名: 学 号: ...

    3年前   
    353    0

    青少年网络应用现状调研报告

    青少年网络应用现状调研报告青少年网络应用现状调研报告     摘要:团区委于2010年12月—2011年1月期间对本区21所中学、职业学校的在校中学生进行随机调查,本文报告了关于我区青少年网络...

    10年前   
    535    0

    10干事通讯录

    电子信息学院第九届干事通讯录 部门 姓名 班级 长号 短号 QQ号 寝室号 办公室 董立华 电信班 15072505868 619225 598373308 A1-...

    5年前   
    1349    0

    数值分析课程设计报告求积公式的实际应用

    数值分析课程设计积分方法的实际应用数值分析课程设计报告求积公式的实际应用学 院数学与统计学院专 业信息与计算科学学 号姓 名指导教师成 绩教师评语:指导教师签字:...

    1年前   
    320    0

    简易充电器课程设计电力电子应用设计报告

     综合成绩优秀( )良好( )中等( )及格( )不及格( )教师(签名)批改日期年 月 日电力电子应用课程设计报告院系 ...

    2年前   
    350    0

    哈夫曼树应用数据结构课程设计报告

    数据结构课程设计报告设计题目:哈夫曼树应用 专 业 : 软件工程 班 级 : 软件 学 生 : ...

    2年前   
    468    0

    数据库原理及应用课程设计

    数据库原理及应用课程设计设计报告题 目:学校人力资源管理系统 学 号: 学生姓名: 指导教师...

    3年前   
    750    0

    单片机原理及应用课程设计

    单片机课程设计数字音频频率测试仪班级:电气姓名:学号:日期:2010年X月X日 目录一、课程设计要求···········································1软硬...

    3年前   
    803    0

    文档贡献者

    文***享

    贡献于2023-03-21

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档