本文目錄一覽:
急求!!!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了
比如說 這個函數實現了怎麼樣的功能啊 是怎麼實現的啊
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/181518.html