Linux聊天室系统期末大作业.doc

Linux聊天室系统期末大作业.doc

ID:62018977

大小:574.21 KB

页数:18页

时间:2021-04-13

Linux聊天室系统期末大作业.doc_第1页
Linux聊天室系统期末大作业.doc_第2页
Linux聊天室系统期末大作业.doc_第3页
Linux聊天室系统期末大作业.doc_第4页
Linux聊天室系统期末大作业.doc_第5页
资源描述:

《Linux聊天室系统期末大作业.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、NANCHANGUNIVERSITY《Linux系统编程》课程设计题目:Linux聊天室报告学院:软件学院专业:计算机软件班级:计软121班姓名:李俊楠起讫日期:2014.12.22—2015.1.10任课教师:陈悦完成时间:2015年1月10日前填表日期:2015年1月6日18需求分析目录1、需求分析31.1项目介绍(50分)31.2功能需求32、系统分析32.1本程序需解决的有关技术问题………………………………42.2程序流程…………………………………………………………63、系统测试…………………………………………………83.1运行截图…

2、………………………………………………………83.2程序代码…………………………………………………………4、小结:15、参考文献118需求分析一、需求分析1.1项目介绍1.1.1介绍本设计主要实现一个Linux下的局域网聊天工具的设计。该设计主要分为两部分,客户端部分和服务器部分。设计并实现一个简单的聊天室程序,可以是终端字符界面,支持用户管理,用户名/密码注册和登录,客户端登陆到服务器聊天后,可以在聊天室内与其他用户交流(这个聊天室中的任何一个用户输入一段字符后,室内的其他用户都可以看到这句话)。据此,聊天程序分为客户端和服务器端。客户端对应

3、每一个参加聊天的用户,完成从终端上输入采集并传递到服务器端和从服务器端接收信息输出显示的功能。1.1.2程序应满足如下要求:1.必须出现多线程;2.程序中要具备文件读取和写入的操作;3.在程序中必须使用网络通信进行信息传输;4.要求程序具备简单的菜单功能,根据用户的输入,执行相应的操作,在菜单界面,必须显示程序的名称、版本信息,开发者的名字、班级、学号等信息。1.2功能需求(1)客户端输入服务器IP和端口号(2)服务器成功启动(3)每个客户端可以找到服务器,并可以与服务器进行连接(4)客户端与服务器可以实现通讯18需求分析二、系统分析2.1本

4、程序需解决的有关技术问题2.1.1字符串的判断写一个脚本,检测用户输入串的合法性,要求串由大小写字母、数字组成,无标点、特殊符号、空格。思路:将输入的串中非字母数字的内容删除或替换为空后若和原来输入的相同则合法,否则不合法。#!/bin/bashisvalidAlphaNum(){compressed="$(echo$1

5、sed's/[^[:alnum:]]//g')"#替换不合要求字符为空if["$compressed"!="$1"];thenreturn1#notvalideelsereturn0#validefi}#函数体,判断字串的合

6、法性echo-n"Enterinput:"#-n强制不换行readinput#读取内容存到input中,无$符号if!isvalidAlphaNum"&input";then#加引号,否则可能会出错。echo"invalide"exit1elseecho"valide"fiexit018需求分析运行截图:2.1.2月份的截取转换输入一个“monthdayyear”格式的日期串,程序将处理”month”为其英文单词的前三个字母,第一个字母大写,其余的小写。思路:首先判断month是数字、还是单词,若是数字,则可查“数字—month”映射表(自定

7、义case结构);若是单词,则取前三个字母,并格式化。#!/bin/bashmonthnoToName(){case$1in1)month="Jan";;2)month="Feb";;3)month="Mar";;4)month="Apr";;5)month="May";;6)month="Jun";;7)month="Jul";;8)month="Aug";;9)month="Sep";;10)month="Oct";;11)month="Nov";;12)month="Dec";;*)echo"$0:Unknownnumericmonth

8、value$1">&2;exit1#default,esac#return0}if[$#-ne3];then#若参数个数不为3,则有误echo“Usage:$0monthdayyear”exit1fi18需求分析#判断参数1是数字还是单词,方法替换串中所有数字,若结果为空,则为数字,否则为单词。if[-n$(echo$1

9、sed‘s/[[:digit:]]//g’)]#-n检测串是为空thenmonthnoToName$1#数字else#取第一个字母并将其变为大写,再将结果与取出的第二三字母组合month=”$(echo$1

10、cut–c1

11、t

12、r'[:lower:]''[:upper:]')“month=”$month$(echo$1

13、cut-c2-3

14、tr'[:upper:]''[:lower:]')”

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。