VC++库函数课程设计.doc_第1页
VC++库函数课程设计.doc_第2页
VC++库函数课程设计.doc_第3页
VC++库函数课程设计.doc_第4页
VC++库函数课程设计.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录1课程设计目的12任务要求13设计方案24设计内容24.1 层次(调用) 关系 24.2库函数源代码设计 34.3设计思想 34.4调试过程 54.5调试结果截图 64.6程序代码 95总结156 参考文献16字符串处理库函数1.课程设计目的c+程序设计是我们软件工程专业学子必学的一门基础课程。这学期我们主要学习了这本书中面向过程程序设计部分。其目的在于加深对面向过程程序设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。通过课程设计,让学生能够熟练运用c+进行编程,建立模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,熟练掌握编程技术。通过课程设计,掌握程序设计语言开发工具visual c+等;培养调查研究、查阅技术文献、资料、手册以及编写技术文献的能力;通过课程设计,要求学生在指导教师的指导下,独立完成实习课题的全部内容,包括:(1) 通过调查研究和上机实习,收集和调查有关技术资料。(2) 掌握设计课题的基本步骤和方法。(3) 根据课题的要求进行上机实验调试。(4) 有良好的程序设计习惯,程序代码简洁明了,有一定的说明。(5) 设计报告一定按老师规定的要求按时完成,页面整洁。(6) 收集相关案例进行比较,取其精华之处。(7) 学习编程高手的编程思路和技巧,并运用到自己的设计中。2.任务要求(1) 通过文献资料查阅和学习,了解当前软件设计技术和一般方法。(2) 参考和研究一些公司和高校/企业成功的软件开发案例和实现方案,结合c+程序设计(上)以及相关课程中所学知识,积极完成设计任务。(3) 认真完成需求分析,并根据需求分析完成各设计题目的总体设计、详细设计和测试等环节的设计任务。(4) 认真按时完成课程设计报告。(5) 严格按照课程设计要求独立完成。(6) 遵守课程设计课堂纪律。(7) 大胆思考,活跃思维,严密的逻辑,严谨的思路。3.设计方案字符串处理库函数总体思路如下流程图11所示:读入文件中的数据并输出菜单及提示信息输入选择选择操作 结束子程序1子程序2子程序3开始子程序4子程序5子程序6输出结果图114.设计内容4.1层次(调用)关系如图12所示:读入文件 选择操作根据源代码,编译相关程序!将相关代码编译为.exe的可执行程序!为数据处理准备!编译器编辑信息录入将所要准备处理的数据录入到内存中!所要处理得数据经过事先编译好的程序的处理,得到用户想要的结果!信息输出图12退出程序4.2库函数源代码:/mystr.hint mystrlen(char* p) /实现1所对应的功能 int size = 0; if(!p) return -1; while(*p)size+;p+; return size;int mystrsam(char string1,char string2) /实现2所对应的功能int count=0;for(int i=0;imystrlen(string1);i+)for(int j=0;jmystrlen(string2);j+)if(string1i=string2j)count+;return count;void mystrcpy(char string1) /实现3所对应的功能int i,j;char string2200;for(i=0,j=0;imystrlen(string1);i+,j+)string2j=string1i;for(j=0;jmystrlen(string1);j+)coutstring2j;coutendl;void mystrcat(char string1,char string2) /实现4所对应的功能for(int i=mystrlen(string1),j=0;i(mystrlen(string1)+mystrlen(string2);i+,j+)string1i=string2j; for(int m=0;mmystrlen(string1);m+)coutstring1m;coutendl;void mystrstr(char string) /实现5所对应的功能int n1,n2;coutn1; coutn2; for(int i=0;n1mystrlen(string)|n2mystrlen(string);i+) cout输入数据错误,请重新输入 n1n2;for(int j=n1;j=n2;j+)coutstringj-1;coutendl;void mystrrev(char string) /实现6所对应的功能cout逆序数组顺序为:=0;j-)coutstringj;coutendl;4.3 设计思想(1)根据字符串处理所需要的功能,将其按模块划分。 (2)编写各各模块对应的函数,并进行调试。 (3)新建头文件,提取自编函数放入新建头文件中。 (4)再次调试程序,包含新建的头文件。 (5)调试成功,保存。4.4 调试过程:(1)通过调试找到一种数据存储到文件的方法,并且能够通过正常数据、边沿数据、非正常数据的测试。(2)界面友好,有相关的功能提示,并且布局合理!(3)成功通过编译,保存相关设置,力求达到最好的效果,给程序阅读者一目了然的感觉。4.5 调试结果截图:(1)功能1测试;(2)功能2测试;(3)功能3的测试;(4)功能4的测试;(5)功能5的测试;(6)功能6的测试;4.6程序源代源/mystr.cpp#include #include #includemystr.h /包含自编的字符串处理库函数void main() cout|*|* |endl;cout| |字符处理函数功能| |endl;cout| 1.mystrlen计算字符串的长度 |endl;cout| 2.mystrsam两个字符串的相同字符的个数统计 |endl;cout| 3.mystrcpy将a字符串的所有字符复制给b |endl;cout| 4.mystrcat将a、b字符串合并为一个字符串 |endl;cout| 5.mystrstr输出字符串中所取位置所对应字符 |endl;cout| 6.mystrrev把字符串的所有字符的逆序输出 |endl; cout|* |endl; char selection; do char option;coutendl;cout请选择你要的功能: ; cinoption; for(int i=0;option!=1&option!=2&option!=3&option!=4&option!=5&option!=6;i+) cout错误的输入,请重新输入option; char a200,b200; if(option=1) cout请输入字符串,限制为200个字符endl; gets(a); cout该字符串的长度为: mystrlen(a)endl; else if(option=2) cout请输入字符串a,限制为200个字符endl; gets(a); cout请输入字符串b,限制为200个字符endl; gets(b); if(mystrsam(a,b)!=0) cout字符串a与b中共有mystrsam(a,b)个字符相同的endl; else cout字符串a与b中没有相等的字符endl; else if(option=3) cout请输入字符串a,限制为200个字符endl; gets(a); cout将a字符串的字符复制给b字符串为:endl;mystrcpy(a); else if(option=4) cout请输入字符串a,限制为200个字符endl; gets(a); cout请输入字符串b,限制为200个字符endl; gets(b);cout输出后为:;mystrcat(a,b); else if(option=5) cout请输入字符串a,限制为200个字符endl; gets(a); mystrstr(a);else if(option=6) cout请输入字符串a,限制为200个字符endl; gets(a); mystrrev(a); coutendl;cout是否继续?; cinselection; while(selection=y|selection=y); /mystr.hint mystrlen(char* p) /实现1所对应的功能 int size = 0; if(!p) return -1; while(*p)size+;p+; return size;int mystrsam(char string1,char string2) /实现2所对应的功能int count=0;for(int i=0;imystrlen(string1);i+)for(int j=0;jmystrlen(string2);j+)if(string1i=string2j)count+;return count;void mystrcpy(char string1) /实现3所对应的功能int i,j;char string2200;for(i=0,j=0;imystrlen(string1);i+,j+)string2j=string1i;for(j=0;jmystrlen(string1);j+)coutstring2j;coutendl;void mystrcat(char string1,char string2) /实现4所对应的功能for(int i=mystrlen(string1),j=0;i(mystrlen(string1)+mystrlen(string2);i+,j+)string1i=string2j; for(int m=0;mmystrlen(string1);m+)coutstring1m;coutendl;void mystrstr(char string) /实现5所对应的功能int n1,n2;coutn1; coutn2; for(int i=0;n1mystrlen(string)|n2mystrlen(string);i+) cout输入数据错误,请重新输入 n1n2;for(int j=n1;j=n2;j+)coutstringj-1;coutendl;void mystrrev(char string) /实现6所对应的功能cout逆序数组顺序为:=0;j-)coutstringj;coutendl;5.总结(1)可取之处通过这次的课程设计:字符串处理库函数,更一步加深了我对程序编写思路、技巧等等的熟练应用。尤其在自定义函数部分,通过大量的查阅资料,成功实现了字符串的相关功能。在程序的调试部分通过对各个功能模块的逐一调试,对正常数据、非正常数据、边沿数据进行测试,对有问题的部分耐心的进行修改。一步一步使程序准确无误。在界面的设计上尽量是界面让人看起来一目了然,迅速看懂程序的相关作用。在代码的书写上善用tab键对代码进行缩进,添加相应的文字说明,是代码的结构层次清晰明了,让阅读者看起来更加易懂和简洁。在自定义的头文件部分中的自编函数也是布局合理,让人易懂!(2)不足之处 字符串处理库函数对汉字的支持不够好,例如在功能1、2、5、6中如果输入的是汉字,那么程序则无法正确处理,而显示为乱码的情况!希望今后可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论