【正文】
putfile!n”)。exit(1)。}while(pwd[++k])。ch=fgetc(fp1)。while(!feof(fp1)){fputc(ch^pwd[j=k?j=0:j++],fp2)。ch=fgetc(fp1)。}fclose(fp1)。fclose(fp2)。}4.移位加密與解密 include“” main(){int choice=0,k。FILE *fp1,*fp2。char c,filename1[30],filename2[30]。printf(“Please input two deferent filename:”)。scanf(“%s%s”,filename1,filename2)。printf(“Please input the password :n”)。scanf(“%d”,amp。k)。if((fp1=fopen(filename1,“r”))==NULL)printf(“nERROR!CAN NOT OPEN THE FILEn”)。else{fp2=fopen(filename2,“w”)。printf(“nChoose:(1jiami 2jiemi)”)。scanf(“%d”, amp。choice)。switch(choice){ case 1: do{ c=getc(fp1)。if(((c=39。a39。)amp。amp。(c=39。A39。)amp。amp。(celse if(((c39。z39。k)amp。amp。(c39。Z39。k)amp。amp。(cputc(c,fp2)。}while(c!=EOF)。break。case 2: do{c=getc(fp1)。if(((c=39。a39。+k)amp。amp。(c=39。A39。+k)amp。amp。(celse if(((c=39。a39。)amp。amp。(c=39。A39。)amp。amp。(cputc(c,fp2)。}while(c!=EOF)。break。default:printf(“nYou have choose a wrong number!Please choose again!”)。} }fclose(fp1)。fclose(fp2)。}5.輔助運(yùn)算(1)整數(shù)N模m的乘法逆tmain(){unsigned n,m,t=1。int c。printf(“Please enter the number:n”)。scanf(“%d,%d”,amp。n,amp。m)。while(tc=n*t%m。if(c==1||c==0)break。t++。}if(t==65535||c==0)printf(“Nicheng number is not exited!n”)。if(c==1)printf(“T is : %dn”,t)。getch()。}(2)統(tǒng)計(jì)字母?jìng)€(gè)數(shù) include “” main(){ int i,j,t。char a[80],b[26]。int c[26]。char e。printf(“Please enter the letters:n”)。gets(a)。for(i=0。ifor(j=0。jif(a[j]==b[i]||a[j]==b[i]+32)c[i]++。}if(a[j]==39。39。)break。}for(j=0。jc[i+1]){t=c[i]。c[i]=c[i+1]。c[i+1]=t。e=b[i]。b[i]=b[i+1]。b[i+1]=e。} } }for(i=25。i=0。i){if(c[i]!=0)printf(“The %c letter number is %d n”,b[i],c[i])。} getch()。}(3)OTP加密 include “” main(){char a[80],b[80],c[80]。int i。printf(“Please enter the x :n”)。gets(a)。printf(“Please enter the k :n”)。gets(b)。for(i=0。i六 心得體會(huì)通過(guò)此次C語(yǔ)言程序設(shè)計(jì)實(shí)踐,本人實(shí)在是獲益不淺!C語(yǔ)言是上個(gè)學(xué)期開(kāi)的課程,所以這個(gè)學(xué)期并沒(méi)怎么看過(guò),當(dāng)要開(kāi)始設(shè)計(jì)的時(shí)候,還真不知從哪下手!結(jié)果,第一次的上機(jī),我只坐了一個(gè)下午,什么也沒(méi)干!回去以后,我想,這樣不行,這樣下去還得了!我就重新學(xué)了一遍我們上個(gè)學(xué)期的教材,發(fā)覺(jué)自已有許多都遺忘了!特別是有文件的操作,幾乎是一遍空白!溫習(xí)過(guò)后,開(kāi)始做題!那個(gè)歡迎動(dòng)畫(huà)是在”C語(yǔ)言之家”找到的,自已改了一下,但并沒(méi)做多大的改動(dòng)!之后做出來(lái)的第一個(gè)程序是”統(tǒng)計(jì)字母?jìng)€(gè)數(shù)”,因?yàn)樯蟼€(gè)學(xué)做過(guò)類似的!接著是”乘法逆”,這個(gè)我覺(jué)得比較簡(jiǎn)單!再接著是”O(jiān)TP”加密!而那個(gè)學(xué)生成績(jī)管理系統(tǒng)是參考了上機(jī)手冊(cè)后做出來(lái)的!最后,花了最多時(shí)間的是”異或加密與解密”和”移位加解密”,幾乎花了我百分之九十的時(shí)間,而且還是在一些在其他大學(xué)讀計(jì)科專業(yè)的同學(xué)的幫助下和在上網(wǎng)查看了大量的資料之后才做出來(lái)!最后,想說(shuō)兩句,這次設(shè)計(jì),讓我重新掌握了C語(yǔ)言,而且還得到了用C語(yǔ)言解決實(shí)際問(wèn)題的寶貴經(jīng)驗(yàn)!七 參考文獻(xiàn)