您的当前位置:首页C语言背单词软件开发

C语言背单词软件开发

2021-08-26 来源:乌哈旅游


中原工学院

课程设计之背单词软件开发

目录

(一)课程设计目的及要求

①第一部分:设计目的

(二)课程设计具体实现

①第一部分:总体设计

一、课程设计目的及要求

第一部分:设计目的

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<<\"不能打开文件\"<exit(0);

}

cout<<\"请录入单词:(例如:输入“me 我”回车结束,输入“0”结束录入)\"<for(i=0;i{

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<<\"不能打开文件\"<exit(0);

}

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返回)\"<cin>>a;

if(a=='1')

for(i=1;i{

n=rand()%d;

cout<cin>>c;

if(strcmp(w[n].chinese,c)==0)

{

q++;

cout<<\"回答正确,已答对\"<}

else

{

cout<<\"回答错误,请重新作答:\"<cin>>c;

if(strcmp(w[n].chinese,c)==0)

{

q++;

cout<<\"回答正确,已答对\"<}

else

{

cout<<\"回答错误,输入1继续答题,输入2退出\"<cin>>m;

if(m==2)

break;

}

}

}

else if(a=='2')

for(i=1;i{

n=rand()%d;

cout<cin>>c;

if(strcmp(w[n].english,c)==0)

{

q++;

cout<<\"回答正确,已答对\"<}

else

{

cout<<\"回答错误,请重新作答:\"<cin>>c;

if(strcmp(w[n].english,c)==0)

{

q++;

cout<<\"回答正确,已答对\"<}

else

{

cout<<\"回答错误,输入1继续答题,输入2退出\"<cin>>m;

if(m==2)

break;

}

}

}

else if(a!='0')

{

cout<<\"输入错误,请重新输入\"<goto l;

}

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<<\"不能打开文件\"<exit(0);

}

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返回)\"<cin>>a;

if(a=='1')

for(i=0;i{

cout<cin>>c;

if(strcmp(w[i].chinese,c)==0)

{

q++;

cout<<\"回答正确,已答对\"<}

else

{

cout<<\"回答错误,请重新作答:\"<cin>>c;

if(strcmp(w[i].chinese,c)==0)

{

q++;

cout<<\"回答正确,已答对\"<}

else

{

cout<<\"回答错误,输入1继续答题,输入2退出\"<cin>>m;

if(m==2)

break;

}

}

}

else if(a=='2')

for(i=0;i{

cout<cin>>c;

if(strcmp(w[i].english,c)==0)

{

q++;

cout<<\"回答正确,已答对\"<}

else

{

cout<<\"回答错误,请重新作答:\"<cin>>c;

if(strcmp(w[i].english,c)==0)

{

q++;

cout<<\"回答正确,已答对\"<}

else

{

cout<<\"回答错误,输入1继续答题,输入2退出\"<cin>>m;

if(m==2)

break;

}

}

}

else if(a!='0')

{

cout<<\"输入错误,请重新输入\"<goto lo;

}

cout<<\"共答\"<fclose(fp);

}

void fanyi()

{

int i,d;

char c[15];

FILE *fp;

word w[N];

if((fp=fopen(\"word.txt\

{

cout<<\"不能打开文件\"<exit(0);

}

fseek(fp,0L,2);

d=ftell(fp)/27;

rewind(fp);

for(i=0;i{

fread(&w[i],sizeof(word),1,fp);

}

loo: cout<<\"请输入要翻译的词:(输入0返回)\"<cin>>c;

for(i=0;i{

if(c[0]=='0')

break;

else if(strcmp(w[i].english,c)==0)

{

cout<break;

}

else if(strcmp(w[i].chinese,c)==0)

{

cout<break;

}

else if(i==d-1)

{

cout<<\"未找到单词\"<goto loo;

}

}

}

int main()

{

char a;

loop: cout<<\"请选择模式:输入1输入单词,输入2随机抽测,输入3顺序抽测,输入4翻译\"<cin>>a;

if(a=='1')

luru();

else if(a=='2')

test();

else if(a=='3')

test1();

else if(a=='4')

fanyi();

else

{

cout<<\"输入错误,请重新输入\"<goto loop;

}

goto loop;

return 0;

}

因篇幅问题不能全部显示,请点此查看更多更全内容