课程设计C语言关键字中英翻译机.docx
- 文档编号:650894
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:21
- 大小:242.16KB
课程设计C语言关键字中英翻译机.docx
《课程设计C语言关键字中英翻译机.docx》由会员分享,可在线阅读,更多相关《课程设计C语言关键字中英翻译机.docx(21页珍藏版)》请在冰豆网上搜索。
课程设计C语言关键字中英翻译机
课程设计报告
学院、系:
专业名称:
计算机科学与技术
课程设计科目
C语言程序课程设计
所在班级:
学生学号:
学生姓名:
指导教师:
完成时间:
2012年3月-5月
C语言关键字中英翻译机
一、设计任务与目标
(1)输入中文关键字可以翻译成英语,如输入“整型”则输出关键字“int”;
(2)输入英文关键字可以翻译成中文,如输入“int”则输出关键字“整型”;
(3)可多次查询;
(4)输入bye时退出。
二、方案设计与论证
(1)定义两个字符型数组分别存放中文关键字和英文关键字,中文和英文的顺序要一一对应,即数组的下标值要相同;
(2)定义一个字符型数组用来存放输入的字符串;
(3)利用strcmp()函数和循环结构实现输入的英文或中文关键字和已定义的字符型数组中的英文或中文关键字逐一比较;
(4)输入的关键字和已有的关键字比较相同则利用中英相对应的下标值相同输出对应的英文或中文;
(5)利用循环结构实现多次查询的功能;
(6)利用exit()函数实现输入“bye”时退出程序;
三、程序框图或流程图,程序清单与调用关系
是
是
否
否
是
是
是
否
否
否
四、全部源程序清单
#include
#include
#include
voidmain()
{
inti,x,k,time;
chara[15];
char*En[]={"int","float","double","for","return","auto","if","while","continue","break"};
char*Ch[]={"整型","单精度","双精度","循环","返回","自动","如果","当","继续","退出"};
cout<<"中文翻译成英文输入1,英文翻译成中文输入0(要退出程序请在输入1、0后输入bye):
"< for(time=0;time<100;time++) { cin>>x; if(x==1) { cout<<"请输入中文: "; cin>>a; if(strcmp(a,"bye")==0) exit(0); cout<<"翻译后的英文: "; for(i=0;i<10;i++) { if(strcmp(a,Ch[i])==0) { cout< } } cout< } if(x==0) { cout<<"请输入英文: "; cin>>a; if(strcmp(a,"exit")==0) exit(0); cout<<"翻译后的中文: "; for(i=0;i<10;i++) { if(strcmp(a,En[i])==0) { cout< } } cout< } } } 五、程序运行结果测试与分析 (1)输入“1+回车”为中文翻译成英文,输入“0+回车”为英文翻译成中文; (2)输入中文关键字翻译成英文关键字; (3)输入英文关键字翻译成中文关键字; (4)输入“1或0+回车”后输入“bye”则退出程序。 六、结论与心得 在做这个程序的时候首先遇到的问题就是如何实现中英互译,一开始感觉很难。 后来通过仔细的思考和研究,就想到通过两个一维数组分别来保存中文和英文,并且通过使对应英文和中文数组下标保持一致,来实现通过输入的英文或中文跟数组已有的来比较,比较相同,则通过下标值来查找对应的中文或英文,然后输出即可。 但是这个程序还是有不足的地方,因为保存的词比较少,所以只是通过一位数组来保存,而且是没有规律的,如果要像输入法那样保存大量的词汇,这样的方法使用起来很不方便。 所以需要想一种更高效的方法来解决这个问题。 比如通过二维数组来保存词汇,词汇按字母顺序之类的方法来保存,这样就能实现更加高效的查询。 但是实现过程还需要一定的研究。 所以目前所做的程序虽然达到要求,却还是存在很大的不足。 以后需要花多一点时间来考虑并完善该程序。 通过这次课程设计使我懂得了理论与实际相结合的重要性,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 这毕竟是自己独立做的,难免会遇到各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 通过这次课程设计之后,一定要把以前所学过的知识重新温习一下。 七、参考资料 [1]余江等编著,C语言程序设计,天津科学技术出版社,94-104页 八、致谢 衷心感谢许杰辉同学对我的帮助。 年历显示 一、设计任务与目标 (1)输入一个年份,输出是在屏幕上显示该年的日历; (2)输入年月,输出该月的日历; (3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日; (4)某人自1990年1月1日开始,"三天打鱼两天晒网",输入一个1990年以后的日期,输出他这一天是打鱼还是晒网。 二、方案设计与论证 (1)定义2个全局数组,一个数组用来保存闰年和平年的天数,另外的数组用来保存闰年和平年每月的天数。 (2)leapyear函数判断是否是闰年。 能被4整除不能被100整除的年份是閏年,能被100整除又能被400整除的年份也是閏年; (3)alldays函数用来计算从公元1年1月1号开始计算到某年某月某日的总天数; (4)festival函数用来保存一年中公历的节日; (5)outputtoscreen函数用来显示输出界面的格式; (6)oneyear函数通过输入年份,再调用alldays函数和outputtoscreen函数来显示该年份的日历; (7)onemonth函数是通过输入年月,通过调用alldays函数和outputtoscreen汉化来显示查询的某年某月的日历; (8)howlong函数通过输入现在的年月日和要查询的年月日,通过相减得出相差多少天,再通过调用alldays函数计算要查询的日期的总天数除以7取模来显示查询的日期是星期几。 由于会出现除以7整除的情况,所以要另外写一个输出语句使得整除的时候输出为“星期日”。 然后再调用festival函数得出是否是公历节日。 (9)fishornet函数是通过输入某年某月某日,再调用alldays函数来实现某年某月某日的总天数减去1990年1月1日的总天数,然后除以5取模来得出某年某月某日是在打鱼还是在晒网; (10)list函数显示出选项并输入要使用的功能选项序列号; (11)choose函数通过调用list函数返回一个序列所代表的数值,再通过数值调用所需的功能函数。 三、程序框图或流程图,程序清单与调用关系 调用alldays(inty,intm)函数 四、全部源程序清单 #include #include #include #include intdayofyear[2]={365,366}; intdayofmonth[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}}; intleapyear(intyear)//判断是否是闰年 { if(year%4==0&&year%100! =0||year%100==0&&year%400==0) return1;//闰年 else return0;//平年 } intalldays(inty,intm)//公元1月1号到某年某月的总天数 { inta,b,days=1;//因为日历是日一二三四五六的顺序排的,所以要加1避免第一天排在日的位置 for(a=m;a>1;a--) days=days+dayofmonth[leapyear(y)][a-2];//根据上个月的剩余天数来确定下个月的起始位置,所以要减2 for(b=1;b days=days+dayofyear[leapyear(b)]; returndays; } intfestival(intmonth,intday) { intfes[12][31]; fes[0][0]=fes[1][13]=fes[2][7]=fes[3][0]=fes[4][0]=fes[5][0]=1; fes[6][0]=fes[7][0]=fes[8][9]=fes[9][0]=fes[11][24]=1; if(fes[month-1][day-1]==1) return1; else return0; } voidoutputtoscreen(intyear,intmonth,intl)//输出屏幕的日期 { intj,k; cout<<"\t"<<"\t"<<"\t"<<"****"< cout<<"\t"<<"日"<<"\t"<<"一"<<"\t"<<"二"<<"\t"<<"三"<<"\t"<<"四"<<"\t"<<"五"<<"\t"<<"六"< if(l==0) { for(k=1;k<=dayofmonth[leapyear(year)][month-1];k++) { cout<<"\t"< if((l+k)%7==0) cout< } } else { for(j=0;j cout<<"\t"; for(k=1;k<=dayofmonth[leapyear(year)][month-1];k++) { cout<<"\t"< if((l+k)%7==0) cout< } } cout< } voidoneyear()//查询一年的日期 { inti,l,year,month; system("cls"); cout<<"请输入要查询的年份: "; cin>>year; for(month=1;month<13;month++) { i=alldays(year,month); l=i%7; outputtoscreen(year,month,l); } getchar(); } voidonemonth()//查询一个月的日期 { inti,l,year,month; system("cls"); cout<<"请输入要查询的年月份: "; cin>>year>>month; i=alldays(year,month); l=i%7; outputtoscre
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 语言 关键字 翻译机
![提示](https://static.bdocx.com/images/bang_tan.gif)