您的位置:

c语言设计文档,c语言设计文档在哪里

本文目录一览:

急求!!!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了

比如说 这个函数实现了怎么样的功能啊 是怎么实现的啊