
C语言课程设计
2019-03-12 17:02:19
微信公开课小程序热门讨论「C语言课程设计」最新回复-以下程序已在wintc和tc2.0下运行通过,已加详细注释(本人所写)。/*数据安全实用程序,加密解密简单程序*/#includestdio.h#includestdlib.h#includeconio.hintflag;charencrypt(charch,intkey)/*加密函数,把字符循环移位*/{if(ch=a&&ch=z)/*如果是小写字母*/{ch=(cha+key%26)%26+a;/*字母向后移key%26个位置,超过字母z则再从a开始向后移动*/}elseif(ch=A&&ch=Z)/*如果是大写字母*/{ch=(chA+key%26)%26+A;/*字母向后移key%26个位置,超过字母Z则再从A开始向后移动*/}returnch;}chardecrypt(charch,intkey)/*解密函数,把字符循环移位*/{if(ch=a&&ch=z)/*如果是小写字母*/{ch=(cha+26key%26)%26+a;/*字母向后移26key%26个位置,超过字母z则再从a开始向后移动*/}elseif(ch=A&&ch=Z)/*如果是大写字母*/{ch=(chA+26key%26)%26+A;/*字母向后移26key%26个位置,超过字母Z则再从A开始向后移动*/}returnch;}voidmenu()/*菜单,1.加密,2.解密,3.显示文本文件内容*/{clrscr();printf(\n=======================================================);printf(\n1.Encryptthetextfile);/*加密文件*/printf(\n2.Decryptthetextfile);/*解密文件*/printf(\n3.Displaytextfilecontents);/*显示加密或解密或未加密或解密的文件*/printf(\n4.Quit\n);printf(=========================================================\n);printf(Pleaseselectaitem:);/*选择一个菜单*/}voidlogo()/*显示程序信息*/{printf(\nwelcometoencryptprogram\n);return;}voidencrypt_decrypt_File(char*infile,intkey,char*outfile)/*加密或解密函数*/{FILE*in,*out;charch;clrscr();/*清屏*/if((in=fopen(infile,r))==NULL)/*打开欲加密或解密的文件*/{printf(Cannotopentheinfile!\n);/*如果打开文件失败或文件不存在打印打开失败信息*/printf(Pressanykeytoexit!\n);getch();/*并等待任一按键然后退出程序*/exit(0);}if((out=fopen(outfile,w))==NULL)/*打开文件保存加密或解密后的内容*/{printf(Cannotopentheoutfile!\n);/*如果打开文件失败或文件不存在打印打开失败信息*/printf(Pressanykeytoexit!\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);}elsefputc(ch,out);ch=fgetc(in);}/*关闭输入及输出文件*/fclose(in);fclose(out);}voiddisplayFile(char*infile)/*将文本文件的内容显示在屏幕上*/{FILE*fp;charstring[81];if((fp=fopen(infile,r))==NULL)/*以只读方式打开文本文件*/{printf(canntopenfile);exit(0);/*如果文件不存在或打开失败打印无法打开信息并退出程序*/}while(fgets(string,81,fp)!=NULL)fputs(string,stdout);/*把所取字符串送到屏幕显示*/fclose(fp);/*关闭文件*/}intmain(){inti,n;charch0,ch1;charinfile[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(\nPleaseinputtheinfiletobeencrypted:);/*输入要加密的文件名*/scanf(%s,infile);/*该文件要和本程序放在同一个目录下*/printf(Pleaseinputtheencryptkey:);scanf(%d,&n);/*输入加密密码*/printf(Pleaseinputtheoutfile:);/*输入存放加密内容的文件名*/scanf(%s,outfile);/*该文件可以自动创建*/encrypt_decrypt_File(infile,n,outfile);printf(\nEncryptisover!\n);/*加密成功*/sleep(1);/*延时1秒*/}elseif(ch0==2)/*选择解密功能*/{flag=2;printf(\nPleaseinputtheinfiletobedecrypted:);/*输入要解密的文件名*/scanf(%s,infile);/*该文件要和本程序放在同一个目录下*/printf(Pleaseinputthedecryptkey:);scanf(%d,&n);/*输入解密密码,加密和解密密码应相同*/printf(Pleaseinputtheoutfile:);/*输入存放解密内容的文件名*/scanf(%s,outfile);/*该文件可以自动创建*/encrypt_decrypt_File(infile,n,outfile);printf(\nDecryptisover!\n);sleep(1);/*延时1秒*/}elseif(ch0==3)/*选择显示文本文件功能*/{printf(\nPleaseinputtheinfiletobedisplayed:);/*输入要显示的文件名*/scanf(%s,infile);displayFile(infile);/*显示文件*/getch();}else{/*不合法输入*/printf(\npleaseinputavalidnumber(14)\n);sleep(1);/*延时1秒*/}menu();/*显示程序菜单*/ch0=getche();/*等待用户下一次的功能选择*/}system(cls);/*清除屏幕*/logo();/*显示程序信息*/printf(\nGoodBye!\n);sleep(2);/*延时2秒*/system(pause);/*暂停,按任一键退出程序*/return0;}
//修改完毕#includestdio.h#includetime.h#includestdlib.h#includeconio.hconstintW=3;//横constintH=3;//竖intworld[W][H];//棋盘0为没放的,1是人类放的棋子,2是计算机放的棋子inthard;classplayer{public: intdone;//判断这步谁走……}a,b;//姑且让a为人类,b为计算机voidChange()//走完一步后,人与计算机的先后循序颠倒一下{inttemp;temp=a.done;a.done=b.done;b.done=temp;}voidNew()//初始化界面{inti,j;srand((unsigned)time(NULL));//产生随机数用for(i=0;iW;++i) for(j=0;jH;++j) world[i][j]=0;//初始化棋盘a.done=rand()%2+1;//这里是初始化让谁先走,1先走,2后走b.done=a.done%2+1;//这里是初始化让谁先走,1先走,2后走}voidPrint()//打印界面{inti,j;system(cls);printf(请按小键盘1~9键n);if(a.done==1) printf(nowitshumansturnn);else printf(nowitscomputersturnn);for(i=0;iW;++i){ for(j=0;jH;++j) printf(%d,world[i][j]); putchar(n);}}intAI_easy()//计算机走棋,这个是简单版的,有点傻{inti,j;srand((unsigned)time(NULL));//产生随机数用i=rand()%W;j=rand()%H;if(world[W/2][H/2]==0){ world[W/2][H/2]=2; Change(); Print(); return0;}while(1){ if(world[i][j]==0) { world[i][j]=2; Change(); Print(); return0; } else i=rand()%W; j=rand()%H;}}intWin(intstep)//判断获胜{inti,j,win;intn=0;win=step;for(i=0;iH;++i) if(world[i][0]==win&&world[i][1]==win&&world[i][2]==win) returnwin;for(i=0;iW;++i) if(world[0][i]==win&&world[1][i]==win&&world[2][i]==win) returnwin;if(world[0][0]==win&&world[1][1]==win&&world[2][2]==win) returnwin;if(world[0][2]==win&&world[1][1]==win&&world[2][0]==win) returnwin;for(i=0;iH;++i) for(j=0;jW;++j) if(world[i][j]==0)n++;if(n==0){printf(Draw!n);exit(0);}//平局……因为……没地方放棋子了return0;}intHuman()//人走{charin;in=getch();while(in1||in9) { in=getch();}if(in==7){ if(world[0][0]!=0) Human(); else { world[0][0]=1; Change(); Print(); return0; }}if(in==8){ if(world[0][1]!=0) Human(); else { world[0][1]=1; Change(); Print(); return0; }}if(in==9){ if(world[0][2]!=0) Human(); else { world[0][2]=1; Change(); Print(); return0; }}if(in==4){ if(world[1][0]!=0) Human(); else { world[1][0]=1; Change(); Print(); return0; }}if(in==5){ if(world[1][1]!=0) Human(); else { world[1][1]=1; Change(); Print(); return0; }}if(in==6){ if(world[1][2]!=0) Human(); else { world[1][2]=1; Change(); Print(); return0; }}if(in==1){ if(world[2][0]!=0) Human(); else { world[2][0]=1; Change(); Print(); return0; }}if(in==2){ if(world[2][1]!=0) Human(); else { world[2][1]=1; Change(); Print(); return0; }}if(in==3){ if(world[2][2]!=0) Human(); else { world[2][2]=1; Change(); Print(); return0; }}return0;}voidStart()//游戏开始{while(1){ Print();if(a.done==1){ Human(); if(Win(1)){printf(Winnerishuman!n);exit(0);}}else{ AI_easy(); if(Win(2)){printf(Winneriscomputer!n);exit(0);};}}}intmain(){New();Start();return0;}附流程说明:用数组定义棋盘world[H][W]=0;1为人落得子;2为计算机落得子初始化()哪方先行(定义一个变量done记录是否已经行动过了)1:计算机-AI()-判断是否获胜()-人()-判断是否获胜()-循环2:人()-判断是否获胜()-计算机AI()-判断是否获胜()-循环获胜函数()不能重复在某个位子落子()AI放中间先判断能否直接获胜放边角 更多有关「C语言课程设计」的疑问请扫码关注微信公开课+小程序!
//修改完毕#includestdio.h#includetime.h#includestdlib.h#includeconio.hconstintW=3;//横constintH=3;//竖intworld[W][H];//棋盘0为没放的,1是人类放的棋子,2是计算机放的棋子inthard;classplayer{public: intdone;//判断这步谁走……}a,b;//姑且让a为人类,b为计算机voidChange()//走完一步后,人与计算机的先后循序颠倒一下{inttemp;temp=a.done;a.done=b.done;b.done=temp;}voidNew()//初始化界面{inti,j;srand((unsigned)time(NULL));//产生随机数用for(i=0;iW;++i) for(j=0;jH;++j) world[i][j]=0;//初始化棋盘a.done=rand()%2+1;//这里是初始化让谁先走,1先走,2后走b.done=a.done%2+1;//这里是初始化让谁先走,1先走,2后走}voidPrint()//打印界面{inti,j;system(cls);printf(请按小键盘1~9键n);if(a.done==1) printf(nowitshumansturnn);else printf(nowitscomputersturnn);for(i=0;iW;++i){ for(j=0;jH;++j) printf(%d,world[i][j]); putchar(n);}}intAI_easy()//计算机走棋,这个是简单版的,有点傻{inti,j;srand((unsigned)time(NULL));//产生随机数用i=rand()%W;j=rand()%H;if(world[W/2][H/2]==0){ world[W/2][H/2]=2; Change(); Print(); return0;}while(1){ if(world[i][j]==0) { world[i][j]=2; Change(); Print(); return0; } else i=rand()%W; j=rand()%H;}}intWin(intstep)//判断获胜{inti,j,win;intn=0;win=step;for(i=0;iH;++i) if(world[i][0]==win&&world[i][1]==win&&world[i][2]==win) returnwin;for(i=0;iW;++i) if(world[0][i]==win&&world[1][i]==win&&world[2][i]==win) returnwin;if(world[0][0]==win&&world[1][1]==win&&world[2][2]==win) returnwin;if(world[0][2]==win&&world[1][1]==win&&world[2][0]==win) returnwin;for(i=0;iH;++i) for(j=0;jW;++j) if(world[i][j]==0)n++;if(n==0){printf(Draw!n);exit(0);}//平局……因为……没地方放棋子了return0;}intHuman()//人走{charin;in=getch();while(in1||in9) { in=getch();}if(in==7){ if(world[0][0]!=0) Human(); else { world[0][0]=1; Change(); Print(); return0; }}if(in==8){ if(world[0][1]!=0) Human(); else { world[0][1]=1; Change(); Print(); return0; }}if(in==9){ if(world[0][2]!=0) Human(); else { world[0][2]=1; Change(); Print(); return0; }}if(in==4){ if(world[1][0]!=0) Human(); else { world[1][0]=1; Change(); Print(); return0; }}if(in==5){ if(world[1][1]!=0) Human(); else { world[1][1]=1; Change(); Print(); return0; }}if(in==6){ if(world[1][2]!=0) Human(); else { world[1][2]=1; Change(); Print(); return0; }}if(in==1){ if(world[2][0]!=0) Human(); else { world[2][0]=1; Change(); Print(); return0; }}if(in==2){ if(world[2][1]!=0) Human(); else { world[2][1]=1; Change(); Print(); return0; }}if(in==3){ if(world[2][2]!=0) Human(); else { world[2][2]=1; Change(); Print(); return0; }}return0;}voidStart()//游戏开始{while(1){ Print();if(a.done==1){ Human(); if(Win(1)){printf(Winnerishuman!n);exit(0);}}else{ AI_easy(); if(Win(2)){printf(Winneriscomputer!n);exit(0);};}}}intmain(){New();Start();return0;}附流程说明:用数组定义棋盘world[H][W]=0;1为人落得子;2为计算机落得子初始化()哪方先行(定义一个变量done记录是否已经行动过了)1:计算机-AI()-判断是否获胜()-人()-判断是否获胜()-循环2:人()-判断是否获胜()-计算机AI()-判断是否获胜()-循环获胜函数()不能重复在某个位子落子()AI放中间先判断能否直接获胜放边角 更多有关「C语言课程设计」的疑问请扫码关注微信公开课+小程序!
标签:微信公开课,小程序

「C语言课程设计」热议话题订阅
方法1:微信扫描微信公开课小程序码即可订阅热议话题「C语言课程设计」
方法2:微信搜索微信公开课小程序名称进入,即可订阅热议话题「C语言课程设计」
方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热议话题「C语言课程设计」
微信公开课小程序热议话题「C语言课程设计」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。
微信公开课热议话题「C语言课程设计」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。
微信公开课小程序
更新时间:2019-03-12 17:02:19
>
__methodCallerx27;ofundefined
>-404011cloudfunctionexecutionerror
>,请补充选择商家自营-预付卡销售-发行方类目,并在基础信息处申请该类目,通过
>:host在模拟器中显示无效
>:请在小程序服务页面上架正式(非测试)内容或商品后重新提交审核
>.net 微信小程序 上传图片
>'setTimeout'的问题
>‘三朵里熙SPA主题减压空间’为什么搜索关键词‘三朵里‘搜不到
>‘扫普通链接二维码打开小程序‘中设置为体验版,扫码打开是线上版本
>“cloudfunctions**indexjs”gitignore
>“NO ULINK DEVICE FOUND”是怎么回事
>“万马掌上校园”的类目审核
>“上线了”公司开发的微信小程序怎么样?
>“产品是否一定需要条形码”
>