1、 课程设计(论文) 题 目 名 称 字符串排序 课 程 名 称 C 语言程序课程设计 学 生 姓 名 学 号 系 、专 业 指 导 教 师 2011 年 7 月 2 日 目 录 1 前言 1 2 需求分析 1 2.1 课程设计目的. 1 2.2 课程设计任务. 1 2.3 设计环境. 1 2.4 开发语言. 1 3 分析和设计 1 3.1 模块设计. 1 3.2 系统流程图. 1 3.3 主要模块的流程图. 2 4 具体代码实现 2 5 课程设计总结 2 5.1 程序运行结果. 2 5.2 课程设计体会. 2 参考文献 2 致谢 2 1 前言 信息时代,C 语言作为一门通用的语言,从产生到现在
2、,一直具有很强的生命力。 所有信息类的大学生都要学习 C 语言。因此,学习和掌握是信息时代的客观要求,同 时,掌握好 C 语言也可为进一步学习其他高级语言打下基础。基于这种理念,学校设 置课程设计,让每个学习 C 语言的学生设计一个程序来解决实际问题,通过课程设计 进一步提高学生的 C 语言水平。本次课程设计的要求是:编写一个程序对字符串进行 排序。通过二维数组来存放输入的每个字符串,调用函数对输入的字符串进行排序。 输入字符串后, 程序对输入的字符串进行排序, 并输出排序后的结果, 显示在屏幕上。 2 需求分析 2.1 课程设计目的 本课程设计为信息类公共课计算方法与程序设计配套的课程设计。
3、是该课程的 理论学习的延伸。通过本课程设计有助于锻炼综合运用C语言相关知识设计算法, 解决实际问题的能力;有助于将抽象的理论知识和具体的应用相结合。培养抽象思维 能力。 2.2 课程设计任务 输入n个只由字母和数字组成的不等长字符串,对这些字符串进行排序: (1)将每个字符串排序,输出排序结果。 (2)不对单个字符串进行排序,将n个字符串排序,输出排序结果。 (3)先对每个字符串进行排序,再将n个字符串排序,输出排序结果。 2.3 设计环境 (1)WINDOWS 2000/2003/XP/7/Vista系统 (2)VisualC+或TC集成开发环境 2.4 开发语言 C语言 3 分析和设计 根
4、据题目要求,定义一个二维数组用来存放输入的字符串,调用函数,通过指针来对 字符串进行操作。 3.1 模块设计 本程序设计采用函数调用的方法,大致可分为四个模块。模块一:主函数(main函 数) ,主要功能是调用子函数(fun1,fun2,fun3) 。模块二:fun1函数,主要功能 是对单个字符串进行排序,然后输出排序结果。模块三:fun2函数,主要功能是对 所有字符串进行排序, 但不对单个字符串进行排序, 然后输出排序结果。 模块四:fun3 函数,主要功能是综合fun1与fun2的算法,先对单个字符串进行排序,然后对所 有排好序的字符串进行排序,最后输出排序结果。 3.2 系统流程图 图
5、3.1 系统流程图 开 始 main 函数 调用 fun1 函数 调用 fun2 函数 调用 fun3 函数 结 束 3.3 主要模块的流程图 图 3.2 main 函数流程图 开 始 定义i和数组s,t 输出1:n i=0 iN gets si 输出2:n strcpy(ti,si) i+ 调用fun1函数 调用fun2函数 输出3:n 调用fun3函数 结 束 图 3.3 fun1 函数流程图 int i,j,n t=pj;pj=pj+1;pj+1=t i=0 i+ printf(“n”) printf(“%s”,p) pjpj+1 in-1 图 3.4 fun2 函数流程图 i=0 pr
6、intf(“%sn”,ai) k=aj;aj=aj+1;aj+1=k j+ i+ i+ int i=0,j=0 in-1 jn-i-1 iN 结束fun2函数 图 3.5 fun3 函数流程图 i=0 int i,j,k=0,m 内层循环 strcpy(p,ak);m=strlen(p) kn k+ i=0 i+ 内层循环 in-1 iN i+ printf(“%sn”,ai) 结束fun3函数 4 具体代码实现 #include #include #include # define N 3 #define M 80 void fun1(char *p) int i,j,n; char t; n=strlen(p); for(i=0;in-1;i