中原工学院
课程设计之背单词软件开发
目录
(一)课程设计目的及要求
①第一部分:设计目的
(二)课程设计具体实现
①第一部分:总体设计
一、课程设计目的及要求
第一部分:设计目的
1. 加深对《C语言》课程所学知识的理解,进一步巩固C语言语法规则。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力。
2. 熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针
数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,包括时间函数、绘图函数,以及文件的读写操作等。
3. 提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。
4. 培养学生在项目开发中团队合作精神,创新意识及能力。
5. 本课程设计主要以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,作出设计报告。
二、课程设计具体实现
C语言代码源为:
#include #include #include #include #include #define N 50 struct word { char english[10]; char chinese[16]; }; void luru() { word w[N]={0}; int i; FILE *fp; if((fp=fopen(\"word.txt\ { cout<<\"不能打开文件\"< } cout<<\"请录入单词:(例如:输入“me 我”回车结束,输入“0”结束录入)\"< cin>>w[i].english>>w[i].chinese; if(w[i].english[0]=='0') break; w[i].chinese[14]='\\r'; w[i].chinese[15]='\\n'; fwrite(&w[i],sizeof(word),1,fp); } fclose(fp); } void test() { int i,n,d,m; double q=0; char c[15],a; FILE *fp; word w[N]; srand(time(0)); if((fp=fopen(\"word.txt\ { cout<<\"不能打开文件\"< } fseek(fp,0L,2); d=ftell(fp)/27; rewind(fp); for(i=0;i fread(&w[i],sizeof(word),1,fp); } l: cout<<\"请选择测试方式:输入1为英译汉,输入2为汉译英(输入0返回)\"< if(a=='1') for(i=1;i n=rand()%d; cout< if(strcmp(w[n].chinese,c)==0) { q++; cout<<\"回答正确,已答对\"< else { cout<<\"回答错误,请重新作答:\"< if(strcmp(w[n].chinese,c)==0) { q++; cout<<\"回答正确,已答对\"< else { cout<<\"回答错误,输入1继续答题,输入2退出\"< if(m==2) break; } } } else if(a=='2') for(i=1;i n=rand()%d; cout< if(strcmp(w[n].english,c)==0) { q++; cout<<\"回答正确,已答对\"< else { cout<<\"回答错误,请重新作答:\"< if(strcmp(w[n].english,c)==0) { q++; cout<<\"回答正确,已答对\"< else { cout<<\"回答错误,输入1继续答题,输入2退出\"< if(m==2) break; } } } else if(a!='0') { cout<<\"输入错误,请重新输入\"< } fclose(fp); cout<<\"共答\"<} void test1() { int i,d,m; double q=0; char c[15],a; FILE *fp; word w[N]; if((fp=fopen(\"word.txt\ { cout<<\"不能打开文件\"< } fseek(fp,0L,2); d=ftell(fp)/27; rewind(fp); for(i=0;i fread(&w[i],sizeof(word),1,fp); } lo: cout<<\"请选择测试方式:输入1为英译汉,输入2为汉译英(输入0返回)\"< if(a=='1') for(i=0;i cout< if(strcmp(w[i].chinese,c)==0) { q++; cout<<\"回答正确,已答对\"< else { cout<<\"回答错误,请重新作答:\"< if(strcmp(w[i].chinese,c)==0) { q++; cout<<\"回答正确,已答对\"< else { cout<<\"回答错误,输入1继续答题,输入2退出\"< if(m==2) break; } } } else if(a=='2') for(i=0;i cout< if(strcmp(w[i].english,c)==0) { q++; cout<<\"回答正确,已答对\"< else { cout<<\"回答错误,请重新作答:\"< if(strcmp(w[i].english,c)==0) { q++; cout<<\"回答正确,已答对\"< else { cout<<\"回答错误,输入1继续答题,输入2退出\"< if(m==2) break; } } } else if(a!='0') { cout<<\"输入错误,请重新输入\"< } cout<<\"共答\"<fclose(fp); } void fanyi() { int i,d; char c[15]; FILE *fp; word w[N]; if((fp=fopen(\"word.txt\ { cout<<\"不能打开文件\"< } fseek(fp,0L,2); d=ftell(fp)/27; rewind(fp); for(i=0;i fread(&w[i],sizeof(word),1,fp); } loo: cout<<\"请输入要翻译的词:(输入0返回)\"< for(i=0;i if(c[0]=='0') break; else if(strcmp(w[i].english,c)==0) { cout< } else if(strcmp(w[i].chinese,c)==0) { cout< } else if(i==d-1) { cout<<\"未找到单词\"< } } } int main() { char a; loop: cout<<\"请选择模式:输入1输入单词,输入2随机抽测,输入3顺序抽测,输入4翻译\"< if(a=='1') luru(); else if(a=='2') test(); else if(a=='3') test1(); else if(a=='4') fanyi(); else { cout<<\"输入错误,请重新输入\"< } goto loop; return 0; } 因篇幅问题不能全部显示,请点此查看更多更全内容}
}
}
}
}
}
}
}