本文目录一览:
急求!!!C语言:文档编辑器的设计与实现。。。
#include "stdio.h"
#include "string.h"
#define Q 200
void main()
{int k,m;
char str[Q];
printf(" 英文句子管理程序\n");
printf("请输入您要处理的英文句子(注意标点符号与单词之间至少有一个空格):\n");
gets(str);
printf("您要进行处理的英文句子为:\n");
puts(str);
do{printf(" \n 英文句子处理主菜单\n");
printf("********************************************************\n");
printf("| 1.删除该句子的前导空格、后导空格。 |\n");
printf("| 2.删除该句子中多余的空格(单词之间只留一个空格)。|\n");
printf("| 3.统计该句子中某个单词出现的频率 。 |\n");
printf("| 4.查找并替换某个单词。 |\n");
printf("| 5.安全安全退出管理。 |\n");
printf("********************************************************\n");
printf("请选择您要执行的操作(1--5):");
scanf("%d",k);
switch(k)
{case 1:{ int i,h,num=0;
i=strlen(str);
do{i--;
}while(str[i]==' ');
str[i+1]='\0';
i=0;
while(str[i]==' ') i++;
if(str[i]!='\0') num=1; h=i;m=i;
while(str[i]!='\0')
{if(i0 str[i]==' ' str[i-1]!=' ')
num++;i++;}
printf("经过功能1处理后的英文句子为:\n");
for(;str[h]!='\0';h++)
printf("%c",str[h]);printf("\n");
};break;
case 2:{int a,q;
printf("经过功能2处理后的英文句子为:\n");
for(a=m;str[a]!='\0';)
{if(str[a]!=' ') {printf("%c",str[a]);a++;q=0;}
while(str[a]==' ') {q=1;a++;}
if(q==1) printf(" ");
}
};printf("\n"); break;
case 3:{ int k1,k2,i=0,k=0,m;
char str2[Q],str1[Q],*p,*q;
printf("请输入您要统计的单词:");
scanf("%s",str1);
do
{while(str[i]==' 'i=strlen(str)) i++;k1=i;
while(1)
{if(str[i]==' ' str[i+1]!=' ') break;
i++;
if(str[i]==' ' str[i-1]!=' ') k2=i-1;
if(i=strlen(str)) break;
};
p=str;
q=str2;
p+=k1;
for(m=k1;m=k2;m++)
{*q=*p;p++;q++;}
*q='\0';
if(strcmp(str2,str1)==0) k++;
}while(str[i]!='\0' i=strlen(str));
printf("您要统计的单词%s出现了%d次.\n",str1,k);
};break;
case 4:{int k1,k2,i=0,k,m,x;
char str3[Q],str4[Q];
char str2[Q],str5[Q];
char *p,*q;
printf("请输入您要查找的单词:\n");
scanf("%s",str3);
printf("请输入您要替换的单词:\n");
scanf("%s",str4);
printf("经过单词替换后的英文句子为:\n");
i=0;
do
{while(str[i]==' 'i=strlen(str)) i++;k1=i;
while(1)
{if(str[i]==' ' str[i+1]!=' ') break;
i++;
if(str[i]==' ' str[i-1]!=' ') k2=i-1;
if(i=strlen(str)) break;
};
p=str;
q=str2;
p+=k1;
for(m=k1;m=k2;m++)
{*q=*p;p++;q++;}
*q='\0';
if(strcmp(str2,str3)==0) printf("%s ",str4);
else printf("%s ",str2);
}while(str[i]!='\0' i=strlen(str));
}; break;
default:break;}
}while(k!=5);
}
用C语言设计一个文件加密与解密程序
c语言文件加密和解密方法如下:
1、首先打开VC++6.0;
2、选择文件,新建;
3、选择C++ source file 新建一个空白文档;
4、声明头文件
#includestdio.h
#includestdlib.h
#includestring.h
首先写个加密函数,算法就是简介里说的;
void EncryptFile(FILE *sfp,FILE *dfp,char pwd)
{
char ch;
if(sfp==0||dfp==0)
{
printf("ERROR!\n");
return;
}
while((ch=fgetc(sfp))!=EOF)
{
if((ch='a')(ch='z'))
{
ch=(ch-'a'+1)%26+'a';
ch=ch^pwd;
}
if((ch='A')(ch='Z'))
{
ch=(ch-'A'+1)%26+'A';
ch=ch^pwd;
}
fputc(ch,dfp);
}
}
写解密子函数:与加密的过程相反;
void DecryptFile(FILE *sfp,FILE *dfp,char pwd)
{
char ch;
while((ch=fgetc(sfp))!=EOF)
{
if((ch='a')(ch='z'))
{
ch=ch^pwd;
ch=(ch-'a'+25)%26+'a';
}
if((ch='A')(ch='Z'))
{
ch=ch^pwd;
ch=(ch-'A'+25)%26+'A';
}
fputc(ch,dfp);
}
}
输出函数,输出文件内容
void OutputFile(FILE *fp)
{
char ch;
while((ch=fgetc(fp))!=EOF)
putchar(ch);
}
主函数,主要调用这几个函数
int main()
{
/*用户输入的要加密的文件名*/
char sfilename[20];
/*用户输入加密后保存的文件名*/
char dfilename[20];
/*用来保存密码字符*/
char pwd;
FILE *sfp,*dfp;
printf("\nPlease input filename to be encrypted:\n");
/*得到要加密的文件名*/
gets(sfilename);
/*得到加密后你要的文件名*/
printf("input filename to save the encrypted file:\n");
gets(dfilename);
/*得到加密字符*/
printf("Please input your Password:\n");
//scanf("%c",pwd);
pwd=getch();
/*屏幕以*来表示输入的加密字符*/
printf("*\n");
/*以只读方式打开要加密的文件*/
if((sfp=fopen(sfilename,"r"))==0)
{
printf("Can't open the file :%s\n",sfilename);
exit(0);
}
/*输出要加密的文件*/
printf("\nThe the text of file to be encrypted is:\n");
OutputFile(sfp);
/*建立加密后的文件*/
if((dfp=fopen(dfilename,"w+"))==0)
{
printf("Can't open or create the file :%s\n",dfilename);
//exit(0);
}
/*文件加密*/
fseek(sfp,0L,SEEK_SET);
EncryptFile(sfp,dfp,pwd);
printf("\n\nEncrypted the file successfully!\n");
/*输出加密后的文件*/
printf("\nAfter encrypting the text of file is:\n");
fseek(dfp,0L,SEEK_SET);
OutputFile(dfp);
fclose(sfp);
fclose(dfp);
getch();
return 0;
}
c语言代码编写的格式?
C语言 程序代码编写规范
(初级程序员 讨论版)
前言
一个好的程序编写规范是编写高质量程序的保证。清晰、规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性。
说明
l 本文档主要适用于刚刚开始接触编程的初学者。
l 对于具有一定工程项目开发经验的程序员,建议学习C语言程序代码编写规范—高级版。
目录
1 代码书写规范
2 注释书写规范
3 命名规范
4 其它一些小技巧和要求
1 代码书写规范
1.1函数定义
花括号: { }
每个函数的定义和说明应该从第1列开始书写。函数名(包括参数表)和函数体的花括号应该各占一行。在函数体结尾的括号后面可以加上注释,注释中应该包括函数名,这样比较方便进行括号配对检查,也可以清晰地看出来函数是否结束。
范例1:函数的声明
void matMyFunction(int n)
{
……
} /* matMyFunction*/
1.2空格与空行的使用
要加空格的场合
l 在逗号后面和语句中间的分号后面加空格,如:
int i, j, k;
for (i = 0; i n; i++)
result = func(a, b, c);
l 在二目运算符的两边各留一个空格,如
a b a = b i = 0
l 关键字两侧,如if () …, 不要写成if() …
l 类型与指针说明符之间一定要加空格:
char *szName;
不加空格的场合
l 在结构成员引用符号.和-左右两加不加空格:
pStud-szName, Student.nID
l 不在行尾添加空格或Tab
l 函数名与左括号之间不加空格:
func(…)
l 指针说明符号*与变量名间不要加空格:
int *pInt; 不要写成: int * pInt;
l 复合运算符中间不能加空格,否则会产生语法错误,如:
a + = b a = b 都是错误的
空行与换行
l 函数的变量说明与执行语句之间加上空行;
l 每个函数内的主要功能块之间加空行表示区隔;
l 不要在一行中写多条语句.
范例2:空行与换行
int main()
{
int i, j, nSum = 0; //变量说明
for (i = 0; i 10; i++) //执行代码
{
for (j = 0; j 10; j++)
{
nSum += i;
}
}
}
1.3缩进的设置
根据语句间的层次关系采用缩进格式书写程序,每进一层,往后缩进一层
有两种缩进方式:1,使用Tab键;2,采用4个空格。
整个文件内部应该统一,不要混用Tab键和4个空格,因为不同的编辑器对Tab键的处理方法不同。
1.4折行的使用
· 每行的长度不要超过80个字符,当程序行太长时,应该分行书写。
· 当需要把一个程序行的内容分成几行写时,操作符号应该放在行末。
· 分行时应该按照自然的逻辑关系进行,例如:不要把一个简单的逻辑判断写在两行上。
· 分行后的缩进应该按照程序的逻辑关系进行对齐。例如:参数表折行后,下面的行应该在参数表左括号的下方。
范例2:折行的格式
dwNewShape = matAffineTransform(coords, translation,
rotation);
if (((new_shape.x left_border)
(new_shape.x right_border))
((new_shape.y bottom_border)
(new_shape.y top_border)))
{
draw(new_shape);
}
1.5嵌套语句(语句块)的格式
对于嵌套式的语句--即语句块(如,if、while、for、switch等)应该包括在花括号中。花括号的左括号应该单独占一行,并与关键字对齐。建议即使语句块中只有一条语句,也应该使用花括号包括,这样可以使程序结构更清晰,也可以避免出错。建议对比较长的块,在末尾的花括号后加上注释以表明该语言块结束。
范例3:嵌套语句格式
if (value max)
{
if (value != 0)
{
func(value);
}
}
} else {
error("The value is too big.");
} /* if (value max) */
2 注释书写规范
注释必须做到清晰,准确地描述内容。对于程序中复杂的部分必须有注释加以说明。注释量要适中,过多或过少都易导致阅读困难。
2.1注释风格
· C语言中使用一组(/* … */)作为注释界定符。
· 注释内容尽量用英语方式表述。
· 注释的基本样式参考范例4。
· 注释应该出现在要说明的内容之前,而不应该出现在其后。
· 除了说明变量的用途和语言块末尾使用的注释,尽量不使用行末的注释方式。
范例4:几种注释样式
/*
* ************************************************
* 强调注释
* ************************************************
*/
/*
* 块注释
*/
/* 单行注释 */
//单行注释
int i; /*行末注释*/
2.2何时需要注释
· 如果变量的名字不能完全说明其用途,应该使用注释加以说明。
· 如果为了提高性能而使某些代码变得难懂,应该使用注释加以说明。
· 对于一个比较长的程序段落,应该加注释予以说明。如果设计文档中有流程图,则程序中对应的位置应该加注释予以说明。
· 如果程序中使用了某个复杂的算法,建议注明其出处。
· 如果在调试中发现某段落容易出现错误,应该注明。
3 命名规范
3.1常量、变量命名
l 符号常量的命名用大写字母表示。如:
#define LENGTH 10
l 如果符号常量由多个单词构成,两个不同的单词之间可以用下划线连接。如:
#define MAX_LEN 50
变量命名的基本原则:
l 可以选择有意义的英文(小写字母)组成变量名,使人看到该变量就能大致清楚其含义。
l 不要使用人名、地名和汉语拼音。
l 如果使用缩写,应该使用那些约定俗成的,而不是自己编造的。
l 多个单词组成的变量名,除第一个单词外的其他单词首字母应该大写。如:
dwUserInputValue。
3.2函数命名
函数命名原则与变量命名原则基本相同。对于初学者,函数命名可以采用“FunctionName”的形式。
4 其它一些小技巧和要求
l 函数一般情况下应该少于100行
l 函数定义一定要包含返回类型,没有返回类型加void
l 写比较表达式时,将常量放在左边
10 == n
NULL != pInt
l 指针变量总是要初始或重置为NULL
l 使用{}包含复合语句,即使是只有一行,如:
if (1 == a)
{
x = 5;
}
写c语言的说明文档时,“程序的设计”需要写些什么?
程序设计就是说你这个程序是怎么设计出来的~
你可以将你所写的函数一一列出来 然后做个详细的函数分析就OK了
比如说 这个函数实现了怎么样的功能啊 是怎么实现的啊