资源描述
课程设计汇报
课程设计题目:硕士初试录用
学生姓名 :李俊
专 业 :计算机应用技术
班 级 : 1140302
指导老师 : 宋文琳
06 月 23日
目录
一)试验题目........................................3
二)试验目标........................................3
三)试验要求........................................3
四)试验思绪........................................4
五)试验过程........................................6
六)试验调试和结果...............................9
七)试验小结.....................................13
试验题目
字符串处理
(1)不使用系统库函数,编写多个函数实现;
(2)定义字符数组存放字符串,从键盘输入;
(3)调用不一样函数,实现字符串连接、拷贝、比较、求字符串长度、对字符串内字符进行排序、查找字符串中某个字符是否存在;
(4)分别输出以上字符串处理结果。
二)试验目标
此次课程设计关键目标是综合利用所学C语言知识处理一个比较实际简单问题,侧重对数组、函数、指针、结构体等相关内容综合应用,使学生能深入熟悉掌握C语言基础语法,深入提升编程能力并逐步培养编程思维,进而不停提升学生处理问题能力,并为以后语言学习打下良好基础。
三) 试验要求
1. 学生独立完成课程设计关键内容;
2. 根据试验课表安排进行,不得无故旷课;
3.根据选题规则确定课程设计题目,不可随意更换,但可在完成要求任务以后,依据
个人爱好选做其它题目;
4.严格根据汇报格式撰写课程设计汇报;
5.程序实现方法能够自选,可采取指针、数组或其任意组合方法完成。
四)试验思绪
1)整体思绪
操作3:
比较
输入需要操作字符串str1、str2(查找操作另输入需查找字符)
操作4:
求字符串长度
操作5:
对字符串内字符进行排序
操作6:
查找某个字符是否存在
其它操作:
显示犯错
操作2:
拷贝
操做1:
连接
利用if函数选择进行不一样操作
引用各操作自定义函数(结果输出在引用函数中)
五)试验过程
代码:
#include<stdio.h>
void main()
{void lianjie(char a[],char b[]);
void kaobei(char a[],char b[]);
void bijiao(char a[],char b[]);
void qiuchangdu(char a[],char b[]);
void paixu(char a[],char b[]);
void chazhao(char a[],char b[],char c);
char str1[50],str2[40];
char t;
int i;
printf("需要进行操作:1.连接;2.拷贝;3.比较;4.求长度;5.排序;6.查找\n");
scanf("%d",&i);
if(i==1)
{printf("要连接字符串1:");
scanf("%s",str1);
printf("要连接字符串2:");
scanf("%s",str2);
lianjie(str1,str2);}
else if(i==2)
{printf("拷贝字符串1:");
scanf("%s",str1);
printf("要拷贝字符串2:");
scanf("%s",str2);
kaobei(str1,str2);}
else if(i==3)
{printf("要比较字符串1:");
scanf("%s",str1);
printf("要比较字符串2:");
scanf("%s",str2);
bijiao(str1,str2);}
else if(i==4)
{printf("要求长度字符串1:");
scanf("%s",str1);
printf("要求长度字符串2:");
qiuchangdu(str1,str2);}
else if(i==5)
{printf("要排序字符串1:");
scanf("%s",str1);
printf("要排序字符串2:");
scanf("%s",str2);
paixu(str1,str2);}
else if(i==6)
{printf("要查找字符串1:");
scanf("%s",str1);
printf("要查找字符串2:");
scanf("%s",str2);
printf("输入要查找字符:");
t=getchar();
printf("\n");
chazhao(str1,str2,t);}
else
printf("没有此操作\n");
}
void lianjie(char a[],char b[])
{
int i=0,j=0;
while(a[i]!='\0')i++;
while(b[j]!='\0')a[i++]=b[j++];
a[i]='\0';
printf("连接结果为:%s\n",a);
}
void kaobei(char a[],char b[])
{
int i=0;
for(i=0;i<11;i++)
a[i]=b[i];
a[i]='\0';
printf("拷贝结果为%s;\n",a);
}
void bijiao(char a[],char b[])
{
int i=0;
while(a[i]==b[i]&&a[i]!='\0')
i++;
if(a[i]==b[i])
printf("两个字符串相等;\n");
else if(a[i]>b[i])
printf("第一个字符串大;\n");
else
printf("第二个字符串大;\n");
}
void qiuchangdu(char a[],char b[])
{
scanf("%s",b);
int i=0,j=0;
while(a[i]!='\0')
i++;
printf("第一个字符串长度为:%d\n;",i);
while(a[j]!='\0')
j++;
printf("第二个字符串长度为:%d\n",j);
}
void paixu(char a[],char b[])
{
int i=0,j=0,n=0,m=0;
char t;
while(a[n]!='\0')
n++;
for(i=0;i<n-1;i++)
for(j=0;j<n-1;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
printf("第一个字符串排序结果为:");
for(i=0;i<n;i++)
printf( "%c",a[i]);
while(b[m]!='\0')
m++;
for(i=0;i<m-1;i++)
for(j=0;j<m-1;j++)
if(b[j]>b[j+1])
{t=b[j];b[j]=b[j+1];b[j+1]=t;}
printf("第二个字符串排序结果为:");
for(i=0;i<m;i++)
printf( "%c",b[i]);
printf("\n");
}
void chazhao(char a[],char b[],char c)
{
int i=0,j=0;
while(a[i]!='\0')
i++;
for( j=0;j<i;j++)
{
if(a[j]!=c) ;
else
break;}
if(j<i) printf("第一个字符串有字符 %c\n;",c);
else
printf("第一个字符没有字符%c;",c);
i=0;j=0;
while(b[i]!='\0')
i++;
for( j=0;j<i;j++)
{
if(b[j]!=c) ;
else
break;}
if(j<i) printf("第二个字符串有字符 %c\n",c);
else
printf("第二个字符没有字符%c\n",c);
}
六)试验调试和结果
输入界面:
操作结果:
调试中出现错误和更正:
定义过程中出现未将引用函数放入主程序中,定义数组开始没有放在主程序里,而是在引用函数中,引用函数有少数不能自己写出来,在经过数次尝试以后最终得出正确程序代码,在输入字符时未加取地址符,加入以后又碰到不能输入字符情况。
七) 试验小结
在自主编程过程中认识到自己在拓宽思维方面缺点,程序大致能够自己掌握,但在细节部分缺点太多。对数组、函数已基础掌握,但对指针和结构体掌握不到位,没有能够将指针和结构体利用进去。在编写程序方面已经能够达成熟练利用,没有犯低级错误。经过C语言程序设计课程学习,已经学习到了自己编程,自己调试,不足方面能自己上网自学。在以后C语言学习中,一定会加深对C语序学习,使自主编程能力更深入。
展开阅读全文