- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编号:21PAGE 8第 PAGE 1页/共 NUMPAGES 8 页河北工业大学计算机软件技术基础(VC)2012年课程设计报告学院 电气信息学院 班级 C1109班 姓名 韩国强 学号 115260 成绩____一、题目: 一个仅支持sort、help和quit命令的字符Shell二、设计思路1、总体设计分析程序的功能该程序是通过对计算机输入命令字符,使其执行相应的操作,本程序仅支持sort、help和quit命令的字符Shell,通过help命令执行显示帮助的信息,“sort+参数”命令执行排序操作;quit命令执行退出系统的操作。系统总体结构:本程序中共有三种命令,quit,help,sort+参数 命令:(1)当执行help命令时,只有一个显示子函数。模块函数名称显示帮助信息DisplayHelp当执行quit命令时直接通过break退出程序。当执行sort+参数 命令时,需要多个函数进行数据处理。模块函数名称分离命令符SeparateCmd检验前四个字符是否为sortExamSort检验后面参数是否正确ExamCan分离数字SeparateNum数字排序NumSort 在该部分中,主要需要克服的困难是如何识别字符命令shell,如何分离字符串中的数字,如何将字符类型的数字装换为整型的数字,主要困难在SeparateNum函数中。而整个分离数字然后排序的sort命令流程可见下图:排序排序分离数字执行help分离cmd错误指令输入cmd开始是否执行quit命令是否为 sort后面参数是否正 确结束 2、各功能模块的设计:说明各功能模块的实现方法(1)主函数模块主函数调用各个子函数,通过if语句对指令进行识别 ,while(1)死循环使程序一直循换,直到遇见quit指令,输出显示有help帮助信息,指令不能识别,sort参数错误,将sort后面数字排序输出。代码参加main函数模块;显示帮助函数模块通过十个指针数组进行显示,每个指针显示一行输出结果,这样在主函数中,结构比较清晰,不会因为过多的cout使程序结构看起来更加复杂。代码参见DisplayHelp函数模块;分离指令函数模块根据Cmd【i】指令,i根据for循环在有控制的增加,将输入的cmd变量分离,将前四个字符分离出来,然后赋值给中间变量cmdtemp1,如果cmdtemp1和sort相同,则分离指令成功。代码参见 SeparateCmd函数模块;检验参数函数模块当分离出指令以后,如果sort后面不是数字,则输出参数错误。代码参见 ExamCan;5)分离数字函数模块主要要考虑如何区分不限定个数和位置的空格,还有不限定个数的数字,对于判断数字,它的前一个是空格,后一个字符SDCII码值在0到9的字符之间,这样就能确定数字的开始位置,而检验数字的结束位,也检测它的后一个什么时候出现空格,这样每次检测到总数加1,全局变量n加1,知道遇见‘\0’.排序函数模块 将分离出来的变量储存到整型数组,利用for for循环,冒泡法排序。代码参见NumSort函数;创新设计部分 颜色控制+延时输出要改变控制台的颜色设置需要调用两个Windows操作系统的API函数。GetStdHandle函数用来获得当前控制台的句柄,用SetConsoleTextAttribute函数来改变选中控制台的颜色控制。这两个函数的声明存在于windows.h文件中。可以将这两个调用封装到SetColor函数中。对于输出的延时,可以调用Sleep函数,使显示更加形象。俩者也可以有机的结合人到一起进行输出控制例如:如果需要改变当前的控制台输出颜色为白底红字,则可以书写如下代码:#includewindows.hvoid SetColor(unsigned short ForeColor=7,unsigned short BackGroundColor=0) //设置显示颜色函数{ HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hCon,ForeColor+BackGroundColor*0x10);}比如:NumSort函数可以创新如下:void NumSort( ) //冒泡法排序 { int temp; for(int i=0;in;i++) for(int j=0;jn-1-i;j++) if(a[j]a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } SetColor(4,9);
文档评论(0)