C语言课程设计
以下程序已在win-tc和tc20下运行通过,已加详细注释(本人所写)。
/ 数据安全实用程序,加密解密简单程序 /
#include<stdioh>
#include<stdlibh>
#include<conioh>
int flag;
char encrypt(char ch,int key)/加密函数,把字符循环移位/
{
if(ch>='a' && ch<='z') / 如果是小写字母 /
{
ch=(ch-'a'+key%26)%26+'a'; / 字母向后移key%26个位置,超过字母z则再从a开始向后移动 /
}
else if(ch>='A' && ch<='Z') / 如果是大写字母 /
{
ch=(ch-'A'+key%26)%26+'A'; / 字母向后移key%26个位置,超过字母Z则再从A开始向后移动 /
}
return ch;
}
char decrypt(char ch,int key)/解密函数,把字符循环移位/
{
if(ch>='a' && ch<='z') / 如果是小写字母 /
{
ch=(ch-'a'+26-key%26)%26+'a'; / 字母向后移26-key%26个位置,超过字母z则再从a开始向后移动 /
}
else if(ch>='A' && ch<='Z') / 如果是大写字母 /
{
ch=(ch-'A'+26-key%26)%26+'A'; / 字母向后移26-key%26个位置,超过字母Z则再从A开始向后移动 /
}
return ch;
}
void menu()/菜单,1加密,2解密,3显示文本文件内容/
{
clrscr();
printf("\n=======================================================");
printf("\n1Encrypt the text file"); / 加密文件 /
printf("\n2Decrypt the text file"); / 解密文件 /
printf("\n3Display text file contents");/ 显示加密或解密或未加密或解密的文件 /
printf("\n4Quit\n");
printf("=========================================================\n");
printf("Please select a item:"); / 选择一个菜单 /
}
void logo()/显示程序信息/
{
printf("\nwelcome to encrypt program \n ");
return;
}
void encrypt_decrypt_File(char infile,int key, char outfile) / 加密或解密函数 /
{
FILE in,out;
char ch;
clrscr(); / 清屏 /
if((in=fopen(infile,"r"))==NULL) / 打开欲加密或解密的文件/
{
printf("Can not open the infile!\n"); / 如果打开文件失败或文件不存在打印打开失败信息 /
printf("Press any key to exit!\n");
getch(); / 并等待任一按键然后退出程序 /
exit(0);
}
if((out=fopen(outfile,"w"))==NULL) / 打开文件保存加密或解密后的内容/
{
printf("Can not open the outfile!\n"); / 如果打开文件失败或文件不存在打印打开失败信息 /
printf("Press any key to exit!\n"); / 并等待任一按键然后退出程序 /
fclose(in); / 关闭输入文件 /
getch(); / 等待按键,按任一键退出程序 /
exit(0);
}
ch=fgetc(in); /从文本文件中读入字符/
while(ch!=EOF)/加密或解密/
{
/如果是英文字符,则进行加密或解密,否则,不进行加密或解密处理/
if((ch>='a' && ch<='z' ) || (ch>='A' && ch<='Z'))
{ if(flag==1)
fputc(encrypt(ch,key),out);
if(flag==2)
fputc(decrypt(ch,key),out);
}
else
fputc(ch,out);
ch=fgetc(in);
}
/关闭输入及输出文件/
fclose(in);
fclose(out);
}
void displayFile(char infile) /将文本文件的内容显示在屏幕上/
{
FILE fp;
char string[81];
if((fp=fopen(infile,"r"))==NULL) / 以只读方式打开文本文件 /
{
printf("cann't open file");exit(0); / 如果文件不存在或打开失败打印无法打开信息并退出程序 /
}
while(fgets(string,81,fp)!=NULL)
fputs(string,stdout); /把所取字符串送到屏幕显示/
fclose(fp); / 关闭文件 /
}
int main()
{
int i,n;
char ch0,ch1;
char infile[40],outfile[40];
textbackground(LIGHTGRAY); /设置背景颜色为浅灰色/
textcolor(BLACK); /设置文字颜色为黑色/
clrscr();/清除屏幕显示/
logo(); /显示程序信息/
sleep(2); / 延时2秒 /
menu(); /显示屏幕菜单/
ch0=getche();/等待用户从键盘输入,并把输入显示在屏幕上/
while(ch0!='4')
{
clrscr();
if(ch0=='1') /选择加密功能/
{
flag=1;
printf("\nPlease input the infile to be encrypted:"); / 输入要加密的文件名 /
scanf("%s",infile); / 该文件要和本程序放在同一个目录下 /
printf("Please input the encrypt key:");
scanf("%d",&n);/输入加密密码/
printf("Please input the outfile:"); /输入存放加密内容的文件名/
scanf("%s",outfile); / 该文件可以自动创建 /
encrypt_decrypt_File(infile,n,outfile);
printf("\nEncrypt is over!\n");/ 加密成功 /
sleep(1); / 延时1秒 /
}
else if(ch0=='2') /选择解密功能/
{
flag=2;
printf("\nPlease input the infile to be decrypted:"); / 输入要解密的文件名 /
scanf("%s",infile); / 该文件要和本程序放在同一个目录下 /
printf("Please input the decrypt key:");
scanf("%d",&n);/输入解密密码,加密和解密密码应相同/
printf("Please input the outfile:"); /输入存放解密内容的文件名/
scanf("%s",outfile); / 该文件可以自动创建 /
encrypt_decrypt_File(infile,n,outfile);
printf("\nDecrypt is over!\n");
sleep(1); / 延时1秒 /
}
else if(ch0=='3') /选择显示文本文件功能/
{
printf("\nPlease input the infile to be displayed:"); / 输入要显示的文件名 /
scanf("%s",infile);
displayFile(infile);/ 显示文件 /
getch();
}
else
{ /不合法输入/
printf("\nplease input a valid number(1-4)\n");
sleep(1); / 延时1秒 /
}
menu();/显示程序菜单/
ch0=getche(); /等待用户下一次的功能选择/
}
system("cls");/清除屏幕/
logo(); /显示程序信息/
printf("\nGood Bye!\n");
sleep(2);/ 延时2秒 /
system("pause"); / 暂停,按任一键退出程序 /
return 0;
}
就是P0重复定义了
C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译
扩展资料:
C语言特有特点
C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
不同的变量类型可以用结构体(struct)组合在一起。
只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
部份的变量类型可以转换,例如整型和字符型变量。
通过指针(pointer),C语言可以容易的对存储器进行低级控制。
预编译处理(preprocessor)让C语言的编译更具有弹性。
-C语言
x+=y 等价于x = x + y
x-=y 等价于 x = x - y
同理x=y 等价于x = x y。
如以下代码:
int main()
{
int a = 1;
int b = 2;
int c = 1;
a+=b; //等价于a = a + b
c = c + b; //等价于c+=b
printf("%d %d" ,a ,c); //输出a和c
return 0;
}
结果图:
扩展资料:
C语言特性:
C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
C语言传递参数均是以值传递(pass by value)[3],另外也可以传递指针(a pointer passed by value)。
不同的变量类型可以用结构体(struct)组合在一起。
只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
部分的变量类型可以转换,例如整型和字符型变量。
透过指针(pointer),C语言可以容易的对存储器进行低级控制。
编译预处理(preprocessor)让C语言的编译更具有弹性。
表示如下:
首先要把math头文件添加进去
#include<mathh>
在程序中调用 sqrt()函数
给个简单的例子:
#include <stdioh>
#include <mathh>
main ()
{
int a;
double b;
a = 100;
b=sqrt (a) ; //给a开平方
pintf("%lf",b);
}
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。
C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
C语言是普适性最强的一种计算机程序编辑语言,它不仅可以发挥出高级编程语言的功用,还具有汇编语言的优点,因此相对于其它编程语言,它具有自己独特的特点。具体体现为以下三个方面:
其一,广泛性。C语言的运算范围的大小直接决定了其优劣性。C语言中包含了34种运算符,因此运算范围要超出许多其它语言,此外其运算结果的表达形式也十分丰富。此外,C语言包含了字符型、指针型等多种数据结构形式,因此,更为庞大的数据结构运算它也可以应付。
其二,简洁性。9类控制语句和32个关键字是C语言所具有的基础特性,使得其在计算机应用程序编写中具有广泛的适用性,不仅可以适用广大编程人员的操作,提高其工作效率,同时还能够支持高级编程,避免了语言切换的繁琐。
其三,结构完善。C语言是一种结构化语言,它可以通过组建模块单位的形式实现模块化的应用程序,在系统描述方面具有显著优势,同时这一特性也使得它能够适应多种不同的编程要求,且执行效率高。
void f(char s[],int n){
if(s[0]>='a'&&s[0]<='z')
s[0]-=32;
f1(s);//数字与字母,字母与数字间用下划线(_)隔开
f2(s);
}
void f1(char s[],int n)
{
char ch1,ch2;
int i=1,k;
ch1=s[0],ch2;
while(ch2=s[i],s[i]!='\0')
{
if((ch1>='0'&&ch1<='9')&&(ch2>='A'&&ch2<='Z'||ch2>='a'&&ch2<='z')||(ch2>='0'&&ch2<='9')&&(ch1>='A'&&ch1<='Z'||ch1>='a'&&ch1<='z'))
{
k=i;
while(s[k]!='\0') k++;
while(k>=i) {s[k+1]=s[k];k--}
s[i]='_';
}
ch1=ch2;
i++;
}
void f2(char s[])
{
char ch1,ch2;
int i=1,k;
ch1=s[0];
while(ch2=s[i],s[i]!='\0')
{
k=i;
if(ch1==' '&&ch2==' ')
while(s[k+1]!='\0')
s[k]=s[k+1];
continue;
ch1=ch2;
i++;
}
}
C语言课程设计
本文2023-10-24 10:04:32发表“资讯”栏目。
本文链接:https://www.lezaizhuan.com/article/328564.html