《C程序设计》课程设计报告(2014—2015学年第2学期)题目:英文回文串和稳定和谐数一、课程设计概述课程设计问题描述编写程序,输入由大小写英文字母组成的字符串,根据菜单提示完成相应功能(1)判断用户输入的字符串是否为回文串;(2)输出该字符串的所有回文子串,并计算该字符串的稳定和谐数;(3)修改该字符串中的任意一个字符使得修改后的字符串具有取大稳定和谐数,输出该新串和取大稳定和谐数。设计要求主函数实现用户字符串的输入和菜单的显示,如图10.1所示。用户输入的字符串作为函数的实参传递给各个子函数。1编写一个子函数实现回文串的判断。2编写一个子函数输出字符串的所有回文子串,并输出回文子串的个数作为该字符串的和谐数。3编写一个子函数根据用户输入的字符串求出一个新字符串,使得该字符串具有最大和谐数。设计目的掌握所学的语言程序的设计方法,熟悉所学语言的设计类型,结构方法,巩固知识,通过综合设计达到可以通过自己查阅知识解决问题。初步掌握程序设计方法,能熟练调试程序,创新能力和独立自主完成任务。开发环境1.Visualc++6.0.2.电脑3.Win7操作系统二、总体设计(1)系统功能需求分析1.回文字符串就是正读和反读都相冋的字符串,约定空串不是回文串,含有单个字符的字符串都是回文字符串,定义个结构体类型表示输入的大小英文字母组成的字符串.2.编写一个程序验证输入的英文字符串是否为回文字符串,如果输入的不是英文字符串,则输出“输入有误,重新输入。”3.一个任意字符串的稳定和谐数为其回文子字符串的数目,然后通过程序使其输出和谐数,然后找出其稳定和谐数,运用循环程序语言。4.输出最大和谐数和该字符串,然后再找出其中具有最大稳定和谐数的字符串,找出其最大和谐数,结束编程,修改用户输入字符串中的一个字符,得到一个具有最大稳定和谐数的新串,然后根据循环语句的结构,一个一个找出,然后输出。5.系统可以选择的输出相应的结果。二、总体设计(2)字符串输入菜单显示系统总体设计框架输出回文子串和输出和谐数稳定数三、详细设计(1)根据课题要求,可知,必须要先定义一个结构体类型来表示输入的英文字母组成的字符串(最多20位)然后判断其是否为回文,根据所学的循环结构设计程序。voidpand(char*p)//判断回文主{要inti,k=1;功//printf("%d\n",N);能for(i=0;i〈=(N/2);i++)模{块if((*(p+i))!=(*(p+N-i-1)))1{的k=0;算break;法}设}计if(!k)printf("不是回文\n");elseprintf("是回文\n");}三、详细设计(1)主要功能模块1源程序charA[21];//存储字符串intN;//计数intK=0;//计数struetJilu{inti;//第几位chare;//换成什么intz;//和谐数是多少structJilu*next;//下一个的地址}*head,*p1,*p2;intmain(){char*p;intx;//存储选项voidpand(char*p);voidyuan(char*p);voidxin(char*p);voiddong();三、详细设计(2)修改字符串中的任意一个字符,使得修改后的字符串具有取大稳定和谐数,输出该新串和取大稳定和谐数,输出该新串和取大稳定和谐数。voidxin(char*p)//输出最大和谐数和该字符串主{inti;//第几位要charc;//是什么功台匕intz;//是多少冃匕charf[21];//新的串模intk;//输出循环块2{的for(c='a';c<='z';c++)算{法strcpy(f,p);设if(f[i]==c)计continue;elsef[i]=c;z二yuangai(f);biao(i,c,z);}for(c二'A';c〈二'Z';c++){strcpy(f,p);if(f[i]==c)continue;elsef[i]=c;z二yuangai(f);biao(i,c,z);}}//printf("具有最大稳定和谐数的字符串有%d个\n〃,K)找出并储存所需要的新串三、详细设计(2)主要功能模块2源程序voidyuan(char*p)//输出和谐数{intz=0;//子串数intt,w;//控制循环inti;//循环的intk;//回文的标志intsc;//控制输出inthh=0;//控制换行printf("此字符串的所有回文子串为\n");for(t=0;t〈N;t++)//左界{for(w=t;w〈N;w++)//右界{for(i=0,k=l;i〈=((w-t)/2);i++)//回文判断{if((*(p+t+i))!=(*(p+w-i))){k=0;break;}}四、调试分析过程(1)调试过程出现的问题第一次设计的时候因为考虑不周全,没有想过输入的结果不是英文字符串的话怎么办,在输出最大和谐数和该字符串时出现了一个错误,那就是题目要求输出该新串,但是我在...