C语言课程设计报告—英文排版系统的实现二
C语言课程设计报告总结计划书教小学生学英语

C语言课程设计报告总结计划书教小学生学英语C语言课程设计报告书教小学生学英语1 / 42C语言程序设计课程设计报告设计题目:教小学生学英语专业微电子学号 3130434063班级 132班姓名布玛利亚 .吾斯曼指导教师张老师2013年秋天学期2 / 42设计任务:题目:计算机协助教课( CAI )软件开发:教小学生学英语功能:1.屏幕上随机出现一个汉语单词,英语单词,汉语词组,英语词组或一短句提示小学生给出相应答案,答错了要提示要求从头输入,直到答对为止。
要统计给分,且累计,够必定分数后可进级,即从单词到词组,从词组到短句。
相同,也可降级。
起步阶段可各选 30 个,软件可扩大,即扩大词库的容量。
( rand(),#include<stdio.h>结构体、文件或数组)2.保留:将有关数据写入磁盘文件,便于存、取操作。
分步实行:1、初步达成整体设计,搭好框架,确定人机对话的界面,确立函数个数;2、达成最低要求:能教单词,并有统3 / 42计功能,即一次答对的成功率为 90% 以上后可晋级;3、进一步要求:将词库、目前晋级等级保留在磁盘文件,每次登录时读取。
要求: 1 、用 C 语言实现程序设计;2、利用构造体进行有关信息办理;3 、系统的各个功能模块要求用函数的形式实现;4 、界面友善(优秀的人机交互),程序要有说明。
平常成绩:查收辩论成绩:设计报成功绩:总评成绩:指导教师:一、整体设计1.程序的整体设计思虑怎样使用合理方法使使用者有效利用软件记着单词,将自己的想法经过程序来实现。
4 / 422.数据构造3.函数原型申明二、详尽设计1.main( )(流程图)2.源程序#include<stdio.h>#include<string.h>#include<time.h>#include<stdlib.h>#define SIZE 100//申明函数,构造void zero();// 主显示界面 voidselect();// 选择界面 voidsave();// 保留界面函数 voidsave1();// 保留单词函数 voidsave2();// 保留短语函数5 / 42void save3();// void see();// void see1();// void see2();// void see3();// void one();// void two();// void three();// struct word_list {char a1[10];char b1[10];保留短句函数查察词库界面查察单词词库查察短语词库查察短句词库学习单词函数学习短语函数学习短句函数}word[SIZE];struct phrase_list{ char a2[20];char b2[20];}phrase[SIZE];struct sentence_list{ char a3[100];char b3[100];}sentence[SIZE];//定义函数void main(){zero();select();}void zero(){printf("\n");printf("\n\n\n");printf("\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~|\n");6 / 42printf("\t||\n");printf("\t||\n");------快- 乐- 学- 习—printf("\t|—快 - 乐- 成- 长-----|\n");printf("\t||\n");love me, loveprintf("\t|English!|\n");printf("\t||\n");printf("\t||\n");1.printf("\t|开始学习|\n");printf("\t||\n");2.printf("\t|扩大词库|\n");printf("\t||\n");3.printf("\t|查察词库|\n");printf("\t||\n");4.printf("\t|退出系统|\n");printf("\t||\n");printf("\t||\n");printf("\t||\n");printf("\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n");7 / 42}void select(){ int a;printf("\t\t 请选择 : ");scanf("%d",&a);switch(a){case 1:one();break;case 2:save();break;case 3:see();break;case 4:exit(0); default:printf("error\n");}}void save(){int b;printf("\n");printf("\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t||\n");快- 乐- 学 - 习— &&&—printf("\t\t| ------快- 乐- 成- 长----- |\n");printf("\t\t||\n"); printf("\t\t| english!!!!!!love me, love |\n");printf("\t\t||\n");8 / 42printf("\t\t| 1.记录单词|\n");printf("\t\t||\n");2.printf("\t\t|记录词组|\n");printf("\t\t||\n");3.printf("\t\t|记录句子|\n");printf("\t\t||\n");4.printf("\t\t|返回|\n");printf("\t\t||\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n"); printf("\t\t请输入 : ");scanf("\n %d",&b);switch(b){case 1:save1();break;case 2:save2();break;case 3:save3();break;case 4:zero(); select();break;default: printf("error\n");}}void save1(){int i,j,m1;FILE *fp1,*fi1;if((fp1=fopen("word_list","r"))==NULL){fp1=fopen("word_list","wb");fclose(fp1);}9 / 42if((fi1=fopen("c1","r"))==NULL){m1=0;fi1=fopen("c1","wb");fwrite(&m1,sizeof(int),1,fi1);fclose(fi1);}if((fi1=fopen("c1","rb"))!=NULL){fi1=fopen("c1","rb");fread(&m1,sizeof(int),1,fi1);i=m1;}for(i;i<=SIZE;i++){if(m1>=(SIZE-1)){printf("\n---------------------------已存满,不可以存入数据break;}--------------------------");else请输入英文单词: "); {printf("getchar();gets(word[i].a1);printf("\n请输入中文词语: "); gets(word[i].b1);if((fp1=fopen("word_list","ab"))==NULL) {printf("cannot open file\n");exit(0);}if(fwrite(&word[i],sizeof(structword_list),1,fp1)!=1)printf("file write error\n");fclose(fp1);m1=m1+1;if((fi1=fopen("c1","wb"))==NULL){printf("cannot open file\n");10 / 42exit(0);}if(fwrite(&m1,sizeof(int),1,fi1)!=1)printf("file write error\n");fclose(fi1);printf("\t\t\n");printf("\t\t\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t||\n");记录成功 ! 能否持续printf("\t\t|----------记录单词 -----------|\n");printf("\t\t||\n");printf("\t\t||\n");1.持续 ---printf("\t\t||\n");printf("\t\t||\n");2.退出 ---printf("\t\t||\n");printf("\t\t||\n");printf("\t\t||\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n"); printf("\t\t请输入 : ");scanf("%d",&j);if(j==1) ;else if(j==2)break;}}zero();select();}void save2(){int i,j,m2;FILE *fp2,*fi2;if((fp2=fopen("phrase_list","r"))==NULL){fp2=fopen("phrase_list","wb");fclose(fp2);}if((fi2=fopen("c2","r"))==NULL){m2=0;fi2=fopen("c2","wb");fwrite(&m2,sizeof(int),1,fi2);fclose(fi2);}if((fi2=fopen("c2","rb"))!=NULL){fi2=fopen("c2","rb");fread(&m2,sizeof(int),1,fi2);i=m2;}for(i;i<=SIZE;i++){if(m2>=(SIZE-1)){printf("\n---------------------------已存满,不可以存入数据break;}--------------------------");else请输入英文短语: "); {printf("getchar();gets(phrase[i].a2);printf("\n请输入中文短语: ");gets(phrase[i].b2);if((fp2=fopen("phrase_list","ab"))==NULL){printf("cannot open file\n");exit(0);}if(fwrite(&phrase[i],sizeof(structphrase_list),1,fp2)!=1)printf("file write error\n");fclose(fp2);m2=m2+1;if((fi2=fopen("c2","wb"))==NULL){printf("cannot open file\n");exit(0);}if(fwrite(&m2,sizeof(int),1,fi2)!=1)printf("file write error\n");fclose(fi2);printf("\t\t\n");printf("\t\t\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t||\n");记录成功 ! 能否持续printf("\t\t|----------记录单词 -----------|\n");printf("\t\t||\n");printf("\t\t||\n");持续 ---printf("\t\t|1.|\n");printf("\t\t||\n");printf("\t\t| 2.退出---|\n");printf("\t\t||\n");printf("\t\t||\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t请输入 : ");scanf("%d",&j);if(j==1) ;else if(j==2)break;}}zero();select();}void save3(){int i,j,m3;FILE *fp3,*fi3;if((fp3=fopen("sentence_list","r"))==NULL){fp3=fopen("sentence_list","wb");fclose(fp3);}if((fi3=fopen("c3","r"))==NULL){m3=0;fi3=fopen("c3","wb");fwrite(&m3,sizeof(int),1,fi3);fclose(fi3);}if((fi3=fopen("c3","rb"))!=NULL){fi3=fopen("c3","rb");fread(&m3,sizeof(int),1,fi3);i=m3;}for(i;i<=SIZE;i++){if(m3>=(SIZE-1)){printf("\n---------------------------已存满,不可以存入数据break;}--------------------------");else请输入英文短句: "); {printf("getchar();gets(sentence[i].a3);printf("\n请输入中文短句: "); gets(sentence[i].b3);if((fp3=fopen("sentence_list","ab"))==NU LL){printf("cannot open file\n");exit(0);}if(fwrite(&sentence[i],sizeof(struct sentence_list),1,fp3)!=1)printf("file write error\n");fclose(fp3);m3=m3+1;if((fi3=fopen("c3","wb"))==NULL){printf("cannot open file\n");exit(0);}if(fwrite(&m3,sizeof(int),1,fi3)!=1)printf("file write error\n");fclose(fi3);printf("\t\t\n");printf("\t\t\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t||\n");记录成功 ! 能否持续printf("\t\t|----------记录单词 -----------|\n");printf("\t\t||\n");printf("\t\t||\n");1.持续 ---printf("\t\t||\n");printf("\t\t||\n");2.退出 ---printf("\t\t||\n");printf("\t\t||\n");printf("\t\t||\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n"); printf("\t\t请输入 : ");scanf("%d",&j);if(j==1) ;else if(j==2)break;}}zero();select();}void see(){int j;printf("\t\t\n");printf("\t\t\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t||\n");printf("\t\t|---------~~~请选择记忆类型~~~-----------|\n");printf("\t\t||\n");printf("\t\t||\n");1.printf("\t\t|记忆单词|\n");printf("\t\t||\n");2.printf("\t\t|记忆短语|\n");printf("\t\t||\n");3.printf("\t\t|记忆句子|\n");printf("\t\t||\n");4.printf("\t\t|退出|\n");printf("\t\t||\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t请输入 : ");scanf("%d",&j);if(j==1) see1();else if(j==2) see2();else if(j==3) see3();else if(j==4){zero();select();} }void see1(){int i,m1;FILE *fp1,*fi1;if((fi1=fopen("c1","r"))==NULL) {printf("\t----------------------------无储存信息------------------------\n");see();}fi1=fopen("c1","rb");fread(&m1,sizeof(int),1,fi1);if(m1==0){printf("\t----------------------------无储存信息------------------------\n");see();}for(i=0;i<m1;i++){fp1=fopen("word_list","rb");fseek(fp1,i*sizeof(structword_list),0);fread(&word[i],sizeof(structword_list),1,fp1);printf(" 英语: %s\n\n 中文: %s\n",&word[i].a1,&word[i].b1); printf("******************************** ************************\n");}fclose(fp1);fclose(fi1);see();}void see2(){int i,m2;FILE *fp2,*fi2;if((fi2=fopen("c2","r"))==NULL){printf("\t---------------------------无储存信息-----------------------\n");see();}fi2=fopen("c2","rb");fread(&m2,sizeof(int),1,fi2);if(m2==0){printf("\t---------------------------无储存信息-----------------------\n");see();}for(i=0;i<m2;i++){fp2=fopen("phrase_list","rb");fseek(fp2,i*sizeof(structphrase_list),0);fread(&phrase[i],sizeof(structphrase_list),1,fp2);printf("英语: %s\n 中文: %s\n",&phrase[i].a2,&phrase[i].b2);printf("********************************************************\n");}fclose(fp2);fclose(fi2);see();}void see3(){int i,m3;FILE *fp3,*fi3;if((fi3=fopen("c3","r"))==NULL){printf("\t---------------------------无储存信息----------------------\n");see();}fi3=fopen("c3","rb");fread(&m3,sizeof(int),1,fi3);if(m3==0){printf("\t---------------------------无储存信息-\n");see();}-------------------for(i=0;i<m3;i++){fp3=fopen("sentence_list","rb");fseek(fp3,i*sizeof(structsentence_list),0);fread(&sentence[i],sizeof(structsentence_list),1,fp3);printf("英语: %s\n 中文: %s\n",&sentence[i].a3,&sentence[i].b 3);printf("********************************************************\n");}fclose(fp3);fclose(fi3);see();}void one(){int m1,n,k,i,j=0,t;char a[10];getchar();FILE *fi1,*fp1;if((fi1=fopen("c1","r"))==NULL){printf("\t-------------------------无学习信息----------------------\n");zero();select();}fi1=fopen("c1","rb");fread(&m1,sizeof(int),1,fi1);n=m1;fclose(fi1);if(n<10){printf("\n\t---------------学习单词不够,请录入单词------------\n");zero();select();}else{printf("\t——————————————单词练习———————————————\n");srand((unsigned)time(NULL));for(i=0;i<5;i++){k=rand()%n+1;fp1=fopen("word_list","rb");fseek(fp1,(k-1)*sizeof(structword_list),0);fread(&word[k-1],sizeof(structword_list),1,fp1);printf("\n%s翻译为中文:",&word[k-1].a1);if((strcmp(a,word[k-1].b1))==0){printf("\n---------------------------回答正----------------------------\n");确!!!j++;}else{----------------------回答错误 , printf("\n加油,再试一试吧\n");-----------------------printf("\n%s翻译为中文:",&word[k-1].a1);gets(a);if((strcmp(a,word[k-1].b1))==0){printf("\n---------------------------回答正---------------------------确!!!\n");}else {printf("\n----------------回答错误 ,记着下边的正确答案哦!-----------------------\n");printf("正确答案:%s\n",&word[k-1].b1);}}}for(i=5;i<10;i++){k=rand()%n+1;fseek(fp1,(k-1)*sizeof(structword_list),0);fread(&word[k-1],sizeof(structword_list),1,fp1);printf("%s翻译为英文: ",&word[k-1].b1);gets(a);if((strcmp(a,word[k-1].a1))==0){printf("\n---------------------------回答正----------------------------\n");确!!!j++;}else{----------------------回答错误 , printf("\n加油-----------------------,再试一试\n");吧!printf("\n%s翻译为英文:",&word[k-1].b1);gets(a);getchar();if((strcmp(a,word[k-1].a1))==0){printf("\n---------------------------回答正----------------------------\n");确!!!}else{----------------回答错误 , 记printf("\n住下边的正确答案哦!-----------------------\n");printf("正确答}fclose(fp1);答对 %d题,得printf("\n------------------分%d\n",j,j*10);if(j>=(i*0.9)){printf("\t\t\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t||\n");printf("\t\t|-----------!!!恭贺你能够进入下一级 !!!---------|\n");printf("\t\t||\n");1.printf("\t\t|进入下一级|\n");printf("\t\t||\n");2.持续单词翻译printf("\t\t||\n");printf("\t\t||\n");3.printf("\t\t|退出|\n");printf("\t\t||\n");printf("\t\t||\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t请选择: ");scanf("%d",&t);if(t==1)two();if(t==2)one();if(t==3){zero();select();}}else{printf("\t\t\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t||\n");printf("\t\t|-------------------|\n");持续努力printf("\t\t|-------------------|\n");printf("\t\t||\n");1.printf("\t\t|持续|\n");printf("\t\t||\n");2.printf("\t\t|退出|\n");printf("\t\t||\n");printf("\t\t||\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t请选择: ");scanf("%d",&t);if(t==1)one();if(t==2){zero();select();}}}}void two(){int m2,n,k,i,j=0,t;char a[20];getchar();FILE *fi2,*fp2;if((fi2=fopen("c2","r"))==NULL){printf("\n---------------------------------无学习信息--------------------\n");zero();select();}fi2=fopen("c2","rb");fread(&m2,sizeof(int),1,fi2);n=m2;fclose(fi2);if(n<10){printf("\t---------------短语不够,请录入短语 ------------\n");zero();select();}else{printf("\t ——————————————————短语练习———————————————————— \n");srand((unsigned)time(NULL));for(i=0;i<5;i++){k=rand()%n+1;fp2=fopen("phrase_list","rb");fseek(fp2,(k-1)*sizeof(structphrase_list),0);fread(&phrase[k-1],sizeof(structphrase_list),1,fp2);printf("%s翻译为中文:",&phrase[k-1].a2);scanf("%s",a);if((strcmp(a,phrase[k-1].b2))==0){printf("\n---------------------------回答正-------------------------------\n")确!!!;j++;}else{printf("\n------------------------回答错误 , 加油 , 再试一试吧-------------------------gets(a);\n");if((strcmp(a,phrase[k-1].b2))==0) {printf("\n---------------------------回答正-------------------------------\n")确!!!;}else{printf("\n--------------------回答错误, 记着下边的正确答案哦!-------------------\n");printf("%s 翻译为中文:",&phrase[k-1].a2);printf(" 正确答案:%s\n",&phrase[k-1].b2);}}}}for(i=5;i<10;i++){k=rand()%n+1;fp2=fopen("phrase_list","rb");fseek(fp2,(k-1)*sizeof(structphrase_list),0);fread(&phrase[k-1],sizeof(structphrase_list),1,fp2);printf("%s翻译为英文:",&phrase[k-1].b2);gets(a);if((strcmp(a,phrase[k-1].a2))==0){printf("\n---------------------------回答正\n");确!!!----------------------------j++;}else{gets(a);if((strcmp(a,phrase[k-1].a2))==0){printf("\n---------------------------回答正\n");确!!!-----------------------------}else{printf("\n--------------------回答错误, 记着下边的正确答案哦!--------------------\n");printf("%s 翻译为英文:",&phrase[k-1].b2);printf(" 正确答案: %s\n",&phrase[k-1].a2);}}}fclose(fp2);答对 %d题,得printf("\n------------------分%d\n",j,j*10);if(j>=(i*0.9)){printf("\t\t\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t\n");printf("\t\t|~~~~~~~~~~~~~~~~~!!! 太棒了!!!~~~~~~~~~~~~~~~~~|\n");printf("\t\t||\n");printf("\t\t|-----------!!!恭贺你能够进入下一级 !!!---------|\n");printf("\t\t||\n");printf("\t\t| 1.进入下一级|\n");printf("\t\t||\n");printf("\t\t| 2.持续短语翻译|\n");printf("\t\t||\n");printf("\t\t| 3.退出|\n");printf("\t\t||\n");printf("\t\t||\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t请选择: ");scanf("%d",&t);if(t==1)three();if(t==2)two();if(t==3){zero();select();}}else if(j<(i*0.9)&&j>=(i*0.6)){printf("\t\t\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t||\n");printf("\t\t|-------------------|\n");持续努力printf("\t\t|-------------------|\n");printf("\t\t||\n");1.printf("\t\t|持续|\n");printf("\t\t||\n");2.printf("\t\t|退出|\n");printf("\t\t||\n");printf("\t\t||\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n"); printf("\t\t请选择: ");scanf("%d",&t);if(t==1)two();if(t==2){zero();select();}}else{printf("\t\t\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t||\n");printf("\t\t|---------------再做一下单词练习吧 -------------|\n");printf("\t\t||\n");printf("\t\t||\n");1.printf("\t\t|好的|\n");printf("\t\t||\n");2.printf("\t\t|退出|\n");printf("\t\t||\n");printf("\t\t||\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n"); printf("\t\t请选择: ");scanf("%d",&t);if(t==1)one();if(t==2){zero();select();}}}void three(){int m3,n,k,i,j=0,t;char a[100];getchar();FILE *fi3,*fp3;if((fi3=fopen("c3","r"))==NULL){printf("---------------------------------无学习信息--------------------\n");zero();select();}fi3=fopen("c3","rb");fread(&m3,sizeof(int),1,fi3);n=m3;fclose(fi3);if(n<10){printf("\t---------------句子不够,请录入短语 ------------\n");zero();select();}elseprintf("\t————————————————句子练习————————————————— ");srand((unsigned)time(NULL));for(i=0;i<5;i++){k=rand()%n+1;fp3=fopen("sentence_list","rb");fseek(fp3,(k-1)*sizeof(structsentence_list),0);fread(&sentence[k-1],sizeof(structsentence_list),1,fp3);printf("%s翻译为中文:",&sentence[k-1].a3);scanf("%s",a);if((strcmp(a,sentence[k-1].b3))==0){printf("\n---------------------------回答正-----------------------------\n");确!!!j++;}else{printf("\n------------------------回答错误 , 加油 , 再试一试吧-------------------------\n");gets(a);if((strcmp(a,sentence[k-1].b3))==0){printf("\n---------------------------回答正\n");确!!!----------------------------}else{printf("\n--------------------回答错误, 记着下边的正确答案哦!--------------------\n");printf("%s 翻译为中文:",&sentence[k-1].a3);printf(" 正确答案:%s\n",&sentence[k-1].b3);}}}}for(i=5;i<10;i++){k=rand()%n+1;fp3=fopen("sentence_list","rb");fseek(fp3,(k-1)*sizeof(structsentence_list),0);fread(&sentence[k-1],sizeof(structsentence_list),1,fp3);printf("%s翻译为英文:",&sentence[k-1].b3);scanf("%s",a);if((strcmp(a,sentence[k-1].a3))==0){printf("\n---------------------------回答正\n");确!!!----------------------------j++;}else{printf("\n------------------------回答错误 , 加油 , 再试一试吧-------------------------\n");scanf("%s",a);if((strcmp(a,sentence[k-1].a3))==0){printf("\n---------------------------回答正-----------------------------\n");确!!!}else{printf("\n--------------------回答错误, 记着下边的正确答案哦!-------------------\n"); printf("%s翻译为英文:",&sentence[k-1].b3);printf("正确答案:%s\n",&sentence[k-1].a3);}}}fclose(fp3);答对 %d题,得printf("------------------分%d\n",j,j*10);if(j>=(i*0.9)){printf("\t\t\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t||\n");printf("\t\t|~~~~~~~~~~~~~~~~~!!! 太棒了!!!~~~~~~~~~~~~~~~~~|\n");printf("\t\t||\n");printf("\t\t||\n");printf("\t\t| 1. 持续句子翻译 |\n");printf("\t\t||\n");printf("\t\t| 2. 退出 |\n");printf("\t\t||\n");printf("\t\t||\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~printf("\t\t请选择: ");scanf("%d",&t);if(t==1)three();if(t==2){zero();select();}}else if(j<(i*0.9)&&j>=(i*0.6)){printf("\t\t\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t||\n");printf("\t\t|~~~~~~~~~~~~~~~~!!!持续努力!!!~~~~~~~~~~~~~~~~|\n");printf("\t\t||\n");printf("\t\t||\n");printf("\t\t| 1. 持续句子练习 |\n");printf("\t\t||\n");printf("\t\t| 2. 退出 |\n");printf("\t\t||\n");printf("\t\t||\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~printf("\t\t请选择: ");scanf("%d",&t);if(t==1)two();if(t==2){zero();select();}}else{printf("\t\t\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t||\n");printf("\t\t|---------建议你再做一下其余练习吧 !!!----------|\n");printf("\t\t||\n");printf("\t\t||\n");1.printf("\t\t|单词练习|\n");printf("\t\t||\n");2.printf("\t\t|短语练习|\n");printf("\t\t||\n");3.printf("\t\t|退出|\n");printf("\t\t||\n");printf("\t\t||\n");printf("\t\t|~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~|\n");printf("\t\t请选择: ");scanf("%d",&t);if(t==1)one();if(t==2)two();if(t==3){zero();select();}}}三、测试及调试(测试方案、存在的问题及解决方法)四、小结附件:主要源程序代码。
c语言排班系统课课程设计

c语言排班系统课课程设计一、教学目标本课程的学习目标包括以下三个方面:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,了解C语言编程的基本流程,能够运用C语言编写简单的程序。
2.技能目标:学生能够熟练使用C语言编写程序,解决实际问题,具备基本的编程能力和问题解决能力。
3.情感态度价值观目标:学生通过本课程的学习,能够培养对计算机编程的兴趣和热情,提高自我学习和探索的能力,培养良好的编程习惯和团队协作精神。
二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基础知识:介绍C语言的基本语法、数据类型、运算符、控制结构等。
2.函数和模块化编程:讲解函数的定义和调用、模块化编程的思想和技巧。
3.数组和字符串:介绍数组的基本概念和应用、字符串的操作和处理。
4.指针:讲解指针的概念、指针的运算和指针的应用。
5.结构体和文件操作:介绍结构体的定义和应用、文件的基本操作。
6.编程实践:通过实际项目的开发,让学生综合运用所学知识解决实际问题。
三、教学方法本课程的教学方法包括以下几种:1.讲授法:教师通过讲解和演示,向学生传授C语言的基本知识和编程技巧。
2.案例分析法:通过分析实际案例,让学生理解和掌握C语言编程的方法和思路。
3.实验法:学生通过动手实验,巩固所学知识,培养编程能力和问题解决能力。
4.小组讨论法:学生分组讨论和合作,培养团队协作精神和交流沟通能力。
四、教学资源本课程的教学资源包括以下几种:1.教材:《C程序设计语言》或《C Primer Plus》等。
2.参考书:《C语言编程思想》或《C语言实战》等。
3.多媒体资料:教学PPT、视频教程、在线课程等。
4.实验设备:计算机、编程环境、调试工具等。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过学生的课堂参与、提问、回答问题等方式评估学生的学习态度和积极性。
2.作业:通过学生提交的作业评估学生的编程能力和对知识的理解程度。
c语言课程设计英文

c语言课程设计英文一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生具备基本的编程能力和算法思维,能运用C语言解决实际问题。
具体分为以下三个方面的目标:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针、结构体等基本知识。
2.技能目标:学生需要具备编写和调试C语言程序的能力,能运用C语言解决实际问题,具备一定的算法思维。
3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生独立思考、解决问题的能力,培养学生的团队协作意识和创新精神。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和编程思想。
具体安排如下:1.引言:介绍C语言的发展历程、特点和应用领域。
2.基本语法:数据类型、运算符、控制结构、函数、数组、指针、结构体等。
3.数据结构:顺序表、链表、栈、队列、树、图等。
4.算法:排序算法、查找算法、递归算法、动态规划等。
5.编程实践:引导学生运用所学知识解决实际问题,培养学生的编程能力和算法思维。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:教师讲解基本概念、原理和算法,引导学生理解并掌握知识。
2.讨论法:学生进行小组讨论,培养学生的团队协作能力和解决问题的能力。
3.案例分析法:分析实际编程案例,让学生学会将理论知识应用于实际问题。
4.实验法:安排上机实验,让学生动手编写程序,提高学生的编程能力。
四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备。
具体如下:1.教材:选用权威、实用的C语言教材,为学生提供系统、全面的学习资料。
2.参考书:推荐学生阅读一些优秀的C语言编程书籍,丰富学生的知识体系。
3.多媒体资料:制作课件、教学视频等,以生动、形象的方式展示课程内容。
4.实验设备:提供充足的计算机设备,让学生进行上机实验,提高编程能力。
C语言课程设计-一种简单的英文词典排版系统的实现

C语言课程设计-一种简单的英文词典排版系统的实现目录课程设计评语 ..................................................................... ............................. 错误~未定义书签。
2目录...................................................................... ........................................................................ ...... 1 1(课程论文题目 ..................................................................... .. (2)2(程序设计思路 ..................................................................... .. (2)3(功能模块图 ..................................................................... ............................................................... 3 4(数据结构设计 ..................................................................... .. (3)5(算法设计...................................................................... .................................................................. 4 (程序代码...................................................................... ................................................................ 12 6 7(程序运行结果 ..................................................................... (17)8(编程中遇到的困难及解决方法 ..................................................................... .. (19)9(总结心得及良好建议 ..................................................................... (20)10(致谢...................................................................... ......................................................................2011(课程论文题目一种简单的英文词典排版系统的实现【要求】1)能输入和现实打入的单词 ((2)能分辨出单词(3)对重复的单词和已经输入的单词能自动排除(4)能按A~Z的顺序排版(5)能将运行结果以文本形式储存(6)具有添加新单词蹦重新排版的能力[提示](1)需求分析:运行结果以文本形式储存,因而要提供文件的输入输出操作;通过查找操作检查重复单词;提供排序操作现实按A~Z的顺序排版;提供插入操作添加新单词并重新排版。
C语言课程设计报告一种简单的英文词典排版系统的实现

中国地质大学本科生课程论文封面课程名称C语言课程设计教师姓名本科生姓名本科生学号本科生专业所在院系日期:课程设计评语注:一、无评阅人签名成绩无效;二、必需用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平常成绩,必需在上面评分表中标出,并计算入总成绩。
目录1.课程论文题目一种简单的英文词典排版系统的实现:【要求】(1)能输入和现实打入的单词;(2)能分辨出单词;(3)对重复的单词和已经输入的单词能自动排除;(4)能按A~Z的顺序排版;(5)能将运行结果以文本形式贮存;(6)具有添加新单词从头排版的能力。
[提示](1)需求分析:运行结果以文本形式贮存,因此要提供文件的输入输出操作;通过查找操作检查重复单词;提供排序操作现实按A~Z 的顺序排版;提供插入操作添加新单词并从头排版。
另外通过键盘式菜单实现功能选择。
(2)整体设计:整个系统被设计为单词录入模块,文件存储模块和单词阅读模块。
其中单词录入模块要完成输入单词,检查是不是重复,排序操作。
文件存储模块把寄放单词的数组中的数据写入文件。
单词阅读模块完成英文词典的输出,即文件的输出操作。
(3)数据结构采纳指针数组或二维数组。
以【Enter 】键或空格键作为单词输入终止标志,对重复的单词自动排除可选用查找方式,数据结构可采纳指针和数组。
2.程序设计思路在英文词典排版当中,人工统计的速度很慢,且容易显现过失。
本英文词典排版系统的自动化加速了排版工作,提高工作效率本程序要紧采纳对零散的单词进行自动读取,然后按单词首字母顺序讲单词保留到文档,如此的结构化超级便于程序后续的排版工作。
排版具体进程涉及到自动排除重复单词与添加新单词并从头排版等问题,将于正问中详细介绍。
本程序实现了所有设计要求。
整个系统被设计为单词录入模块、文件存储模块和单词阅读模块。
其中单词录入模块要完成输入单词、检查是不是重复、排序操作。
文件存储模块把寄放单词的数组中的数据写入文件。
单词阅读模块完成英文词典的输出,即文件的输出操作。
cyuyan课程设计报告模板

cyuyan课程设计报告模板一、教学目标本课程的教学目标是让学生掌握C语言的基本语法、数据结构和算法,培养学生编写简单程序的能力,使学生了解计算机编程的基本思维和方法。
具体来说,知识目标包括:了解C语言的基本语法、数据结构和算法;技能目标包括:能够运用C语言编写简单的程序;情感态度价值观目标包括:培养学生对计算机编程的兴趣和热情,提高学生解决问题的能力。
二、教学内容根据课程目标,本课程的教学内容主要包括C语言的基本语法、数据结构和算法。
教学大纲如下:1.C语言的基本语法:变量、数据类型、运算符、表达式、语句等。
2.数据结构:数组、链表、栈、队列等。
3.算法:排序算法、查找算法、递归算法等。
三、教学方法本课程采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法。
1.讲授法:通过讲解C语言的基本语法、数据结构和算法,使学生掌握相关知识。
2.讨论法:引导学生针对案例进行分析,培养学生的思考和解决问题的能力。
3.案例分析法:分析实际编程案例,使学生更好地理解C语言的应用。
4.实验法:让学生动手编写程序,提高学生的实际编程能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用权威、实用的C语言教材,为学生提供系统、全面的学习资料。
2.参考书:推荐一些经典的C语言编程参考书,丰富学生的知识储备。
3.多媒体资料:制作精美的课件、教学视频等,提高学生的学习兴趣。
4.实验设备:提供充足的计算机设备,确保学生能够进行实验和实践。
五、教学评估本课程的评估方式包括平时表现、作业和考试。
平时表现主要评估学生的出勤、课堂参与度和团队合作能力;作业分为编程作业和实践报告,主要评估学生的编程能力和实际操作能力;考试分为期中和期末考试,主要评估学生对C语言基本语法、数据结构和算法的掌握程度。
评估方式客观、公正,能够全面反映学生的学习成果。
六、教学安排本课程的教学安排如下:共计32课时,每周2课时,共16周。
c课程设计报告范文

c 课程设计报告范文一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,培养学生具备基本的编程能力和逻辑思维能力。
具体分解为以下三个方面的目标:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针、字符串、结构体等基本概念。
2.技能目标:学生需要能够运用C语言编写简单的程序,解决实际问题,具备基本的编程能力和问题解决能力。
3.情感态度价值观目标:培养学生对编程的兴趣,增强学生的自信心和自主学习能力,培养学生的团队合作意识和创新精神。
二、教学内容根据教学目标,本课程的教学内容主要包括以下几个部分:1.C语言的基本语法和数据类型:变量、常量、数据类型、运算符、表达式等。
2.控制结构:条件语句、循环语句、分支语句等。
3.函数:函数的定义和声明、函数的调用、参数传递、返回值等。
4.数组和指针:一维数组、多维数组、指针的概念和应用等。
5.字符串:字符串的基本操作、字符串数组、字符串指针等。
6.结构体和文件操作等高级内容:结构体的定义和使用、文件的基本操作等。
三、教学方法为了达到教学目标,本课程将采用多种教学方法,包括:1.讲授法:通过讲解和演示,使学生掌握C语言的基本语法和概念。
2.讨论法:通过小组讨论和问题解答,培养学生的思考能力和问题解决能力。
3.案例分析法:通过分析实际案例,使学生了解C语言在实际编程中的应用。
4.实验法:通过编写和调试程序,使学生掌握C语言的编程技巧和调试方法。
四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:《C程序设计语言》(K&R)或《C Primer Plus》。
2.参考书:提供一些相关的参考书籍,如《C语言深度探索》、《C指针》等。
3.多媒体资料:制作课件、演示文稿等多媒体资料,以图文并茂地展示C语言的基本概念和编程技巧。
4.实验设备:提供计算机实验室,让学生能够进行编程实践和调试。
现代编译原理-C语言描述英文版课程设计 (2)

Modern Compiler Design - Course Design in C Language IntroductionCompiler design is an essential topic in computer science and is considered as the backbone of many modern programming languages. It involves the design and development of a software program that can translate or interpret high-level programming languages into machine code that can be understood by the computer. The course on modern compiler design in C language will provide students with a comprehensive understanding of the essential concepts, techniques, and tools required to design and develop a compiler for various programming languages.Course ObjectivesThe course on modern compiler design in C language ms to provide students with the following:1.In-depth knowledge of compiler design principles andtechniques2.Understanding of various phases of compiler design3.Proficiency in using modern tools and technologies forcompiler design4.Ability to design and develop a compiler for a specificprogramming language5.Knowledge of various optimization techniques used incompiler design6.Understanding of the importance of computer architecture incompiler design7.Proficiency in debugging and testing a compiler programCourse CurriculumThe course on modern compiler design in C language will cover the following topics:1.Overview of compiler design and the role of compilers inprogramming languages2.Introduction to C language and its syntax3.Lexical Analysis: Tokenization and Error Handling4.Syntax Analysis: Context-Free Grammars, Parsing Techniques,and Ambiguity Resolution5.Intermediate Code Generation: Three-address code generation,Quadruple Code, Syntax Tree6.Code Optimization: Control Flow Analysis, Data Flow Analysis,and Machine-Independent Optimization7.Machine-Specific Optimization: Register Optimization,Instruction Selection, Instruction Scheduling8.Code Generation: Code Generation for Memory Management, CodeGeneration for Procedure Calls, and Code Generation for ControlFlow9.Debugging and Testing: Debugging a Compiler Program andTesting a Compiler ProgramTeaching MethodologyThe course on modern compiler design in C language will be taught through the following methods:1.Lectures: In-class lectures will be conducted to expln theessential concepts and principles of compiler design.2.Assignments: Various assignments will be given to studentsto practice their skills and implement the learned concepts.3.Projects: Students will be tasked with designing anddeveloping a compiler for a specific programming language toenhance their understanding of compiler design principles andtechniques.4.Assessments: Students will be assessed through quizzes,exams, and presentations.ConclusionThe course on modern compiler design in C language will provide students with a comprehensive understanding of the essential concepts, techniques, and tools required to design and develop a compiler for various programming languages. The course will prepare students to work on real-world projects and provide them with the necessary skills and knowledge needed to succeed in the field of computer science.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int main(void)
{
int i,count;
int start;
char *pt[ROWS];
char ch, len;
char input;
if((fp=fopen("words.txt","a+"))==NULL)
pt[i]=pt[j];
pt[j]=temp;
}
}
}
int check(char arr[], int count)
{
int i;
int flag=0;
for(i=0;i<strlen(arr);i++)
if(isalpha(arr[i])==0)
{
printf("%s不是一个单词.\n",arr);
puts("已有的单词:");
for(i=0;i<count;i++)
{
printf(" ");
puts(a[i]);
}
}
if(input=='b')
{
puts("开始创建词库");
puts("请输入新的单词(每行一个)");
puts("在新行输入END结束输入: ");
count=b(count);
puts("c.对已有的单词进行排序d.退出");
puts("\n\n\t\t**********************************************************\n");
while((input=get_option())!='d')
{
if(input=='a')
{
{
fputs("不能打开或建立文件!\n",stderr);
exit(1);
}
fseek(fp,0L,SEEK_END);
start=(int)ftell(fp)/32;
count=start;
rewind(fp);
if(fread(a,32*sizeof(char),start,fp)==0)
{
i=0;
int b(int count);---完成选项b的作用--接收新单词;
void c(char *pt[], int count);---完成选项c的作用--通过指针对数组排序,实际数组元素位置未改变;
int check(char arr[], int count);---对输入的单词进行分辨,若输入ni hao ,将视为单词ni,并且提示并剔除重复的单词;
flag=1;
break;
}
for(i=0;i<count;i++)
if(strncmp(a[i],a[count],strlen(a[count])+1)==0)
{
puts("重复的单词!");
flag=1;
}
return flag;
}
void storage(char *pt[], int count)
puts("开始创建词库");
puts("请输入单词(每行一个)");
puts("在新行输入END结束输入:");
while(i<ROWS&&scanf("%s", a[i])==1)
{
fflush(stdin);
if(strncmp(a[i],"END",3)==0)
{
count+=i;
break;
return 0;
}
char get_option(void)
{
char ch;
while((ch=getchar())<'a'||ch>'d')
{
while((ch=getchar())!='\n')
;
puts("请输入a,b,c或者d.");
}
fflush(stdin);
return ch;
}
int b(int count)
void storage(char *pt[], int count);---在程序结束之前重新排序存储数组中的单词到文件中。
六。程序源代码。
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "ctype.h"
#define ROWS 256
}
七.心得体会
这两星期一直在做程序设计,今天终于完成了,心里别提有多兴奋。看着这两礼拜自己的劳动成果,这两个礼拜发生的种种历历在目。
还记得刚开始时,进展可以用一筹莫展来形容,当时真想放弃,可自身不轻易认输的性格支持着我。
同时,我也清楚地知道21世纪挑战与机遇并存,没有足够的知识储备必将被时代所抛弃。C语言作为国际上广泛流行的通用程序设计语言,在计算机的研究和应用中已展现出强大的生命力。C语言兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性。虽然我们C语言已有四个月,但一直都重概念、轻实践,这次设计对我们来说是千载难逢的机会,无论如何都要好好把握。
}
if(input=='c')
{
puts("对单词进行排序:");
c(pt, count);
for(i=0;i<count;i++)
{
printf(" ");
puts(pt[i]);
}
}
puts("还要做些什么?");
}
storage(pt,count);
fclose(fp);
puts("谢谢使用,再见!");
心态一转变,整个人的精神状态都非同寻常,而且这种程序设计课比一般的课堂教学更具灵活性,它可以始终使人处于兴奋之中。
高中的教育模式化倾向太强,整齐划一的教育模式使学校变成“工厂”,学生成为统一式模子加工出来的“标准件”。但大学的程序设计实践课促进我们的个性充分、健康地发展,最大限度地激发我们的学习热情和创造热情。我可以说若你一一欣赏我们的设计,你一定会眼花缭乱,因为它们各种各样、各有千秋。并且,它无形中促进我们自主学习,使我们对C语言有了更深刻地了解,对程序设计有了更高的操作水平。
C
语
言
课
程
设
计
英文排版系统的实现
学号:20071000697
班级:055071--04
姓名:黄露
指导老师:刘文中
前言
一、C语言课程设计的目的:
高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。其目的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。
{
int i,j;
char ptr[ROWS][COLS];
c(pt, count);
for(i=0;i<count;i++)
for(j=0;pt[i][j]!='\0';j++)
ptr[i][j]=pt[i][j];
fp=fopen("words.txt","w+");
rewind(fp);
fwrite(ptr,32*sizeof(char),count,fp);
#define COLS 32
static FILE *fp;
static char a[ROWS][COLS];
char get_optiห้องสมุดไป่ตู้n(void);
int b(int count);
void c(char *pt[], int count);
int check(char arr[], int count);
{
int i;
i=count;
while(i<ROWS&&scanf("%s", a[i])==1)
{
fflush(stdin);
if(check(a[i], i))
continue;
if(strncmp(a[i],"END",3)==0)
{
count=i;
break;
}
i++;
}
return count;
}
if(check(a[i], i))
continue;
i++;
}
}
puts("\t\t*********************欢迎使用字典排版系统*******************\n\n");
puts("MENU ");
puts("您要做些什么?");
puts("a.显示已有的单词b.添加新单词");
}
void c(char *pt[], int count)
{
int i,j;
char *temp;