《c语言课程设计报告书.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告书.docx(6页珍藏版)》请在三一办公上搜索。
1、c语言课程设计报告书课程设计报告书 所属课程:c语言 项目:库函数模拟系统 指导老师:邹姝稚 班级:软件1401 姓名:江闯 学号:141403107 分数: C课程设计.库函数模拟系统 1.任务描述: 本系统开发的代码模拟了下列库函数的功能: (1).模拟gets和puts的功能:能接收一个字符串,将其写入ASCII文件,并且可以读出显示。 (2).在不使用字符串库函数的条件下,编程实现字符串的拷贝,连接,求长,倒置功能。 (3).字符串加密功能:将一段明文建立到一个ASCII文件中,按加密的算法加密后写入密文文件,最终实现将明文和密文文件都显示出来。 (4).编程实现字符串与对应数字的相互
2、转换功能。 2.总体设计: 模块调用图: 模块划分主函数字符串的接收与读出字符串的拷贝字符串的连接字符串的求长字符串的倒置字符串的加密字符串与对应数字互相转换 图1 第1页,共8页 C课程设计.库函数模拟系统 函数调用图: 数据结构设计:定义整形变n量来存放用户的选择调用主菜单Switch)(ncase 调1:用gp函数case 2:调用kaobei函数case 3:调用lianjie函数case 4:调用qiuchang函数case 5:调用daozhi函数case 6:调用jiami函数case 7:调用zhuanhuan1函数case 8:调用zhuanhuan2函数case 0:退出系
3、统直到n!=0 图2 函数功能: (1)函数gp( ):模拟gets和puts的功能 (2)函数kaobei( ):实现字符串的拷贝 (3)函数lianjie( ):实现字符串的连接 (4)函数qiuchang( ):实现字符串的求长 (5)函数daozhi( ):实现字符串的倒置 (6)函数jiami( ):实现字符串的加密功能,最后将明文和密文文件 都显示出来 (7)函数zhuanhuan1( ):将数字字符串转换为对应的数字 (8)函数zhuanhuan2( ):将数字转换为对应的数字字符串 3.详细设计: .模仿gets和puts功能: gets和puts功能与scanf和printf
4、函数的功能相似,但是也不是完全相同,本系统模拟功能的程序总共运用了两次函数调用技术,模拟gets运用了一次,模拟puts运用了一次。 .字符串的拷贝功能: 字符串的拷贝功能程序设计源于strcpy的功能,其中运用了字符串数组和指针的相关技术,还运用了一组while语句,实现语句的循环,从而将一个字符串拷贝到一个空数组中。 第2页,共8页 C课程设计.库函数模拟系统 字符串的连接功能模拟的是字符串处理的库函数“s2”字符串代码段如下图所示后再连接上“strcats2”,它的作用是将两个s1字符串代码段如下:扫描到/0,然 图3 .字符串的求长功能: 字符串的求长功能模拟的是字符串处理库函数str
5、len,它的作用是求一段不 知道长度的字符串的实际长度,本系统在执行这个功能的时候,运用了一次函数调用,首先建立一个调用函数strlength来接收一个字符串,将字符串的长度进行计算并且将字符串长度的数值返回到主函数并且输出,代码段如下: #include #define N 1000 int strlength(const char *str) return(0=*str)?0:(1+strlength(str+1); main char strN=; while (1) printf(str=); scanf(%s,str); printf(length=%dnn,strlength(st
6、r); return 0; 第3页,共8页 C课程设计.库函数模拟系统 .字符串的倒置功能: 系统的该功能实现的是将一个一定长度的字符串中字符全部倒置,也就是最后一位将第一位相调换,倒数第二位与第二位相互调换,依次直到整个字符串全部倒置,系统在实现这个功能时,调用一个自己定义的函数reverse,接收来自主函数发送过来的字符串,进行计算。 .字符串加密功能: 该功能的作用是通过程序将手写输入的一串字符进行加密,本系统加密的手段是将用户输入的字符串前移自定义位数,然后界面显示的就是输入字符串前移处理后的新字符串,比如输入原字符串abcde,输入要移动的位数3,然后出来的新字符串就是defgh,可
7、见字符串前移了3个位置,后面的空缺位由后来的英文字母接连。 .数字字符串与对应数字转换 数字字符串与对应数字相互转换的功能在本系统中分为两部分,分别是数字字符串转换为对应数字和数字转换为对应的数字字符串,通过一个2层开关语句可供使用者方便选择。 首先,字符转换为对应数字相对简单,它的原理是将每个字符减去48,因为在ASCII表中,数字与对应的数字字符相差位数是48,程序中输入一个字符,计算将字符ASCII值减去48,输出“%d”形式的整数即可。 将整数转换为对应的字符串,首先我定义了一个tostring的调用函数,该调用函数是用来转换计算的,在该函数中,首先定义一个空数组p,然后通过相应的程序
8、将整数转换并放入数组p中输出。 第4页,共8页 C课程设计.库函数模拟系统 4.系统实现 主函数的运行界面如图4: 图4 模拟gets和puts功能的运行界面如图5: 图5 第5页,共8页 C课程设计.库函数模拟系统 字符串的拷贝功能的运行界面如图6: 图6 字符串的连接功能的运行界面如图7: 图7 字符串的倒置功能的运行界面如图8: 图8 第6页,共8页 C课程设计.库函数模拟系统 字符串的求长功能的运行界面如图9: 图9 字符串的加密功能运行界面如图10: 图10 第7页,共8页 C课程设计.库函数模拟系统 数字与字符串的相互转换功能运行界面如图11: 图11 5.项目总结与反思: 本系统简单模拟了字符串的库函数的部分功能,总体来说难度并不是很大,主要运用了数组和函数调用等方面的知识,在模拟库函数的系统中,工作人员通过流程图对整个项目进行了井井有条地开发,思路简单,并且流程图还可以加深大家对项目的理解。 平心而论,虽然这个项目比较简单,但是我还是遇到了很大的困难,这暴露了我知识的缺陷,有些方面还有待日后提高。 第8页,共8页