网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

C语言课程设计报告_学生成绩管理系统

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务


 
4.移位加密与解密
#include"stdio.h"
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",&k);
   if((fp1=fopen(filename1,"r"))==NULL)
     printf("\nERROR!CAN NOT OPEN THE FILE\n");
       else{
      fp2=fopen(filename2,"w");
    printf("\nChoose:(1-jiami 2-jiemi)");
    scanf("%d", &choice);
    switch(choice){
     case 1:
          do{
               c=getc(fp1);
              if(((c>='a')&&(c<='z'-k))||((c>='A')&&(c<='Z'-k)))
                      putc(c+k,fp2);
                else if(((c>'z'-k)&&(c<='z'))||((c>'Z'-k)&&(c<='Z')))
                      putc(c-(26-k),fp2);
                  else
                         putc(c,fp2);
             }while(c!=EOF);
          break;
         case 2:
           do{
               c=getc(fp1);
              if(((c>='a'+k)&&(c<='z'))||((c>='A'+k)&&(c<='Z')))
                      putc(c-k,fp2);
                else if(((c>='a')&&(c<'a'+k))||((c>='A')&&(c<'A'+k)))
                      putc(c+(26-k),fp2);
                  else
                         putc(c,fp2);
             }while(c!=EOF);
                  break;
 
         default:
               printf("\nYou have choose a wrong number!Please choose again!");
      }
 }
     fclose(fp1);
      fclose(fp2);
}
 
 
5.辅助运算
(1)整数N模m的乘法逆t

main()
{
 unsigned n,m,t=1;
 int c;
 printf("Please enter the number:\n");
 scanf("%d,%d",&n,&m);
 while(t<65535)
 {
  c=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 : %d\n",t);
 getch();
 }
 
 
(2)统计字母个数
#include "string.h"
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;i<26;i++)
   b[i]='A'+i;
 for(i=0;i<26;i++)
  c[i]=0;
 for(j=0;j<80;j++)
  {for(i=0;i<26;i++)
   {
    if(a[j]==b[i]||a[j]==b[i]+32)
      c[i]++;
   }
  if(a[j]=='\0')
  break;
 }
 for(j=0;j<=25;j++)
  {for(i=0;i<=25;i++)
    {if(c[i]>c[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 "stdio.h"
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<80;i++)
  c[i]=(a[i]+b[i])%26;
 printf("The result is :\n");
 for(i=0;i<80&&c[i]!='\0';i++)
   printf("%c",c[i]);
 getch();

六 心得体会 
通过此次C语言程序设计实践,本人实在是获益不浅!C语言是上个学期开的课程,所以这个学期并没怎么看过,当要开始设计的时候,还真不知从哪下手!结果,第一次的上机,我只坐了一个下午,什么也没干!回去以后,我想,这样不行,这样下去还得了!我就重新学了一遍我们上个学期的教材,发觉自已有许多都遗忘了!特别是有文件的操作,几乎是一遍空白!温习过后,开始做题!那个欢迎动画是在”C语言之家”找到的,自已改了一下,但并没做多大的改动!之后做出来的第一个程序是”统计字母个数”,因为上个学做过类似的!接着是”乘法逆”,这个我觉得比较简单!再接着是”OTP”加密!而那个学生成绩管理系统是参考了上机手册后做出来的!最后,花了最多时间的是”异或加密与解密”和”移位加解密”,几乎花了我百分之九十的时间,而且还是在一些在其他大学读计科专业的同学的帮助下和在上网查看了大量的资料之后才做出来!最后,想说两句,这次设计,让我重新掌握了C语言,而且还得到了用C语言解决实际问题的宝贵经验!
七 参考文献<><><>C语言之家(http://www.cstudyhome.com)C语言教室(http://www.vcok.com)Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=773985

设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师