c语言课程设计报告书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告书
所属课程:c语言
项目:库函数模拟系统
指导老师:邹姝稚
班级:软件1401
:江闯
学号:141403107
分数:
1.任务描述:
本系统开发的代码模拟了下列库函数的功能:
(1).模拟gets和puts的功能:能接收一个字符串,将其写入ASCII文件,并且可以读出显示。
(2).在不使用字符串库函数的条件下,编程实现字符串的拷贝,连接,求长,倒置功能。
(3).字符串加密功能:将一段明文建立到一个ASCII文件中,按加密的算法加密后写入密文文件,最终实现将明文和密文文件都显示出来。
(4).编程实现字符串与对应数字的相互转换功能。
2.总体设计:
模块调用图:
图1
函数调用图:
图2
函数功能:
(1)函数gp( ):模拟gets和puts的功能
(2)函数kaobei( ):实现字符串的拷贝
(3)函数lianjie( ):实现字符串的连接
(4)函数qiuchang( ):实现字符串的求长
(5)函数daozhi( ):实现字符串的倒置
(6)函数jiami( ):实现字符串的加密功能,最后将明文和密文文件都显示出来
(7)函数zhuanhuan1( ):将数字字符串转换为对应的数字
(8)函数zhuanhuan2( ):将数字转换为对应的数字字符串
3.详细设计:
(1).模仿gets和puts功能:
gets和puts功能与scanf和printf函数的功能相似,但是也不是完全相同,本系统模拟功能的程序总共运用了两次函数调用技术,模拟gets运用了一次,模拟puts运用了一次。
(2)..字符串的拷贝功能:
字符串的拷贝功能程序设计源于strcpy的功能,其中运用了字符串数组和指针的相关技术,还运用了一组while语句,实现语句的循环,从而将一个字符串拷贝到一个空数组中。
(3)..字符串的连接功能:
字符串连接起来本系统运用while类型的循环语句将字符串s1扫描到‘/0’,字符串的连接功能模拟的是字符串处理的库函数strcat,它的作用是将两个然后再连接上“s2”字符串代码段如下图所示后再连接上“s2”字符串代码段如
下:
图3
(4).字符串的求长功能:
字符串的求长功能模拟的是字符串处理库函数strlen,它的作用是求一段不知道长度的字符串的实际长度,本系统在执行这个功能的时候,运用了一次函数调用,首先建立一个调用函数strlength来接收一个字符串,将字符串的长度进行计算并且将字符串长度的数值返回到主函数并且输出,代码段如下:
#include
#define N 1000
int strlength(const char *str)
{return(0==*str)?0:(1+strlength(str+1));
}
main()
{char str[N]="";
while (1){
printf("str=");
scanf("%s",str);
printf("length=%d\n\n",strlength(str)); }
return 0;
}
(5).字符串的倒置功能:
系统的该功能实现的是将一个一定长度的字符串中字符全部倒置,也就是最后一位将第一位相调换,倒数第二位与第二位相互调换,依次直到整个字符串全部倒置,系统在实现这个功能时,调用一个自己定义的函数reverse,接收来自主函数发送过来的字符串,进行计算。
(6).字符串加密功能:
该功能的作用是通过程序将手写输入的一串字符进行加密,本系统加密的手段是将用户输入的字符串前移自定义位数,然后界面显示的就是输入字符串前移处理后的新字符串,比如输入原字符串abcde,输入要移动的位数3,然后出来的新字符串就是defgh,可见字符串前移了3个位置,后面的空缺位由后来的英文字母接连。
(7).数字字符串与对应数字转换
数字字符串与对应数字相互转换的功能在本系统中分为两部分,分别是数字字符串转换为对应数字和数字转换为对应的数字字符串,通过一个2层开关语句可供使用者方便选择。
首先,字符转换为对应数字相对简单,它的原理是将每个字符减去48,因为在ASCII表中,数字与对应的数字字符相差位数是48,程序中输入一个字符,计算将字符ASCII值减去48,输出“%d”形式的整数即可。
将整数转换为对应的字符串,首先我定义了一个tostring的调用函数,该调用函数是用来转换计算的,在该函数中,首先定义一个空数组p【i】,然后通过相应的程序将整数转换并放入数组p中输出。
4.系统实现
主函数的运行界面如图4:
图4 模拟gets和puts功能的运行界面如图5:
图5
字符串的拷贝功能的运行界面如图6:
图6
字符串的连接功能的运行界面如图7:
图7字符串的倒置功能的运行界面如图8:
图8
字符串的求长功能的运行界面如图9:
图9
字符串的加密功能运行界面如图10:
图10
数字与字符串的相互转换功能运行界面如图11:
图11
5.项目总结与反思:
本系统简单模拟了字符串的库函数的部分功能,总体来说难度并不是很大,主要运用了数组和函数调用等方面的知识,在模拟库函数的系统中,工作人员通过流程图对整个项目进行了井井有条地开发,思路简单,并且流程图还可以加深大家对项目的理解。
平心而论,虽然这个项目比较简单,但是我还是遇到了很大的困难,这暴露了我知识的缺陷,有些方面还有待日后提高。