C语言课程设计报告—英文排版系统的实现二

合集下载

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语言排班系统课课程设计

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语言的基本语法、数据结构、算法和编程思想,培养学生具备基本的编程能力和算法思维,能运用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语言课程设计-一种简单的英文词典排版系统的实现

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语言课程设计报告一种简单的英文词典排版系统的实现

中国地质大学本科生课程论文封面课程名称C语言课程设计教师姓名本科生姓名本科生学号本科生专业所在院系日期:课程设计评语注:一、无评阅人签名成绩无效;二、必需用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平常成绩,必需在上面评分表中标出,并计算入总成绩。

目录1.课程论文题目一种简单的英文词典排版系统的实现:【要求】(1)能输入和现实打入的单词;(2)能分辨出单词;(3)对重复的单词和已经输入的单词能自动排除;(4)能按A~Z的顺序排版;(5)能将运行结果以文本形式贮存;(6)具有添加新单词从头排版的能力。

[提示](1)需求分析:运行结果以文本形式贮存,因此要提供文件的输入输出操作;通过查找操作检查重复单词;提供排序操作现实按A~Z 的顺序排版;提供插入操作添加新单词并从头排版。

另外通过键盘式菜单实现功能选择。

(2)整体设计:整个系统被设计为单词录入模块,文件存储模块和单词阅读模块。

其中单词录入模块要完成输入单词,检查是不是重复,排序操作。

文件存储模块把寄放单词的数组中的数据写入文件。

单词阅读模块完成英文词典的输出,即文件的输出操作。

(3)数据结构采纳指针数组或二维数组。

以【Enter 】键或空格键作为单词输入终止标志,对重复的单词自动排除可选用查找方式,数据结构可采纳指针和数组。

2.程序设计思路在英文词典排版当中,人工统计的速度很慢,且容易显现过失。

本英文词典排版系统的自动化加速了排版工作,提高工作效率本程序要紧采纳对零散的单词进行自动读取,然后按单词首字母顺序讲单词保留到文档,如此的结构化超级便于程序后续的排版工作。

排版具体进程涉及到自动排除重复单词与添加新单词并从头排版等问题,将于正问中详细介绍。

本程序实现了所有设计要求。

整个系统被设计为单词录入模块、文件存储模块和单词阅读模块。

其中单词录入模块要完成输入单词、检查是不是重复、排序操作。

文件存储模块把寄放单词的数组中的数据写入文件。

单词阅读模块完成英文词典的输出,即文件的输出操作。

cyuyan课程设计报告模板

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 课程设计报告范文一、教学目标本课程的教学目标是使学生掌握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)

现代编译原理-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.。

c语言排班系统课程设计

c语言排班系统课程设计

c语言排班系统课程设计一、课程目标知识目标:1. 理解C语言编程基础,掌握数据类型、运算符、控制结构等基本概念;2. 学会使用数组、函数、指针等C语言特性实现班级排班功能;3. 了解文件操作,实现排班数据的存储与读取。

技能目标:1. 能够运用结构体表示班级、学生等实体信息;2. 掌握模块化编程思想,实现排班系统的功能模块;3. 能够运用算法设计与优化,提高排班系统的运行效率。

情感态度价值观目标:1. 培养学生团队协作意识,学会与他人共同解决问题;2. 增强学生对编程的兴趣,激发创新精神,提高动手实践能力;3. 培养学生严谨、细心的编程习惯,提高程序质量。

课程性质:本课程为C语言编程实践课,旨在让学生通过排班系统项目实战,将所学C语言知识运用到实际项目中,提高编程能力和实际操作能力。

学生特点:学生已具备一定的C语言基础,有一定的编程能力,但对项目实战经验不足,需要通过实践提高。

教学要求:结合学生特点,注重实践操作,引导学生运用所学知识解决实际问题,培养学生编程思维和团队协作能力。

通过课程学习,使学生能够独立完成排班系统设计与实现,并在实践中不断提高。

二、教学内容1. C语言基础知识复习:数据类型、变量、常量、运算符、控制结构(教材第1-4章);2. 结构体与数组:使用结构体表示班级、学生信息,数组管理学生数据(教材第5章);3. 函数与模块化编程:设计功能模块,实现排班系统功能,如添加、删除、修改、查询等(教材第6-7章);4. 指针与动态内存管理:利用指针操作数据,实现动态数组,优化内存使用(教材第8章);5. 文件操作:实现排班数据的存储与读取,掌握文件操作函数(教材第9章);6. 算法设计与优化:分析排班需求,设计合适算法,提高系统运行效率;7. 项目实战:根据教学进度,分阶段完成排班系统设计、编码、调试和优化。

教学进度安排:1. 第一周:C语言基础知识复习,结构体与数组;2. 第二周:函数与模块化编程;3. 第三周:指针与动态内存管理;4. 第四周:文件操作;5. 第五周:算法设计与优化;6. 第六周:项目实战,总结与展示。

c排班课程设计报告

c排班课程设计报告

c 排班课程设计报告一、教学目标本课程的教学目标是让学生掌握C语言的基本语法、数据结构和算法,培养学生运用C语言进行程序设计的能力。

具体分为以下三个部分:1.知识目标:学生需要了解C语言的发展历史、基本语法、数据类型、运算符、控制结构、函数、数组、指针、结构体等基本概念。

2.技能目标:学生能够熟练使用C语言编写程序,解决实际问题,具备基本的程序调试能力。

3.情感态度价值观目标:培养学生对计算机科学的兴趣,增强学生的自主学习能力,培养学生的团队合作意识。

二、教学内容根据课程目标,教学内容主要包括以下几个部分:1.C语言的基本语法和数据类型;2.控制结构和函数;3.数组、指针和结构体;4.算法和编程技巧;5.程序设计实践。

具体安排如下:第1-2周:C语言的基本语法和数据类型;第3-4周:控制结构和函数;第5-6周:数组、指针和结构体;第7-8周:算法和编程技巧;第9-10周:程序设计实践。

三、教学方法为了达到课程目标,我们将采用以下教学方法:1.讲授法:用于讲解C语言的基本语法、数据类型、控制结构、函数等基本概念。

2.案例分析法:通过分析实际案例,让学生掌握数组、指针、结构体的使用方法。

3.实验法:安排实验课,让学生动手实践,培养编程能力。

4.讨论法:课堂讨论,分享学习心得,提高学生的沟通能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R);2.参考书:《C Primer Plus》、《C和指针》;3.多媒体资料:PPT课件、教学视频;4.实验设备:计算机、编程环境。

通过以上教学资源,为学生提供丰富的学习体验,提高学生的学习效果。

五、教学评估本课程的教学评估将采用多元化评价方式,全面客观地评价学生的学习成果。

评估方式包括:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。

2.作业:布置课后编程作业,评估学生的编程能力和对知识的掌握程度。

现代编译原理-C语言描述英文版教学设计

现代编译原理-C语言描述英文版教学设计

Modern Compiler Design - C Language Description (英文版) Teaching DesignIntroductionThe Modern Compiler Design course is an essential component of computer science education, as it introduces the fundamentals of compiler design and implementation. This course focuses on the process of translating high-level programming languages into machine code, which is executed directly by the computer. The course also covers the theoretical concepts that underlie the tasks performed by the compiler, including parsing, code generation, and optimization.The C programming language is an ideal language to use for teaching compiler design, as its syntax is relatively simple, and its features are well-suited for building a basic compiler. This course is designed to cover the foundations of compiler design and implementation using C as the programming language, with the goal of providing students with a comprehensive understanding of compiler development and implementation.Course ObjectivesThe primary objective of this course is to introduce students to the principles of compiler design and implementation. This includes teaching students the fundamentals of parsing, code generation, and optimization, as well as exposing them to the concepts that underlie these tasks. The course also focuses on the C programming language, as it is a flexible and widely used language suitable for building compilers.By the end of the course, students will be expected to:•Understand the fundamental principles of compiler design•Be familiar with the C programming language syntax and features•Have a working knowledge of parsing, code generation, and optimization•Understand the principles of program analysis and transformation•Be able to design, develop, and implement a simple compiler for a subset of the C programming languageCourse Outline1.Introduction to Compiler Design–History and evolution of compilers–Compiler architecture and process–Compiler front-end and backend–Overview of the C programming language2.Lexical Analysis–Tokenization and lexing–Building a lexer using Flex–Token types and regular expressions3.Syntax Analysis–Building a parser using Bison–Syntax trees and ASTs–Handling parsing errors4.Semantic Analysis–Building a symbol table–Type Checking–Name analysis and scoping rules5.Intermediate Code Generation–Introduction to intermediate representations–Building a simple IR for C–Code optimization techniques6.Backend Code Generation–Introduction to assembly code generation–Register allocation and instruction selection–Building a simple machine code generator7.Conclusion and ProjectCourse DesignThis course is designed to be delivered over a semester, with a weekly lecture and lab session, as well as practical assignments and a final project. The lectures will cover the theoretical concepts related to each topic, and the lab sessions will provide an opportunity for hands-on practice with the tools used in the course.The practical assignments will involve implementing the concepts covered in class, such as building a lexer, parser, and simple compiler for a subset of the C programming language. Each assignment will build on the previous one, culminating in a complete compiler.The final project will give students the opportunity to apply the knowledge they have gned throughout the course to develop a compiler for a more complex programming language. The project will require studentsto design, develop, and test their own compiler, and present their work to the class.ConclusionThe Modern Compiler Design course is a crucial component of computer science education, as it introduces students to the fundamentals of compiler design and implementation. This course using the C programming language as an example language gives students a comprehensive understanding of compiler development and implementation. Students who complete this course will be well-equipped to pursue advanced studies in computer science or to build their own compilers for a wide range of programming languages.。

C语言课程设计排班系统

C语言课程设计排班系统

C语言课程设计排班系统一、教学目标通过本章节的学习,使学生掌握C语言课程设计的基本知识和技能,能够运用C语言设计并实现一个简单的排班系统。

具体目标如下:1.知识目标:–掌握C语言的基本语法和数据结构;–了解排班系统的基本原理和实现方法;–熟悉常用的算法和数据结构在排班系统中的应用。

2.技能目标:–能够使用C语言编写简单的程序;–能够运用所学的知识和技能,设计和实现一个简单的排班系统;–能够对程序进行调试和优化。

3.情感态度价值观目标:–培养学生的创新意识和团队合作精神;–增强学生对计算机科学的兴趣和热情;–培养学生的自主学习和解决问题的能力。

二、教学内容本章节的教学内容主要包括以下几个部分:1.C语言基本语法和数据结构;2.排班系统的基本原理和实现方法;3.常用的算法和数据结构在排班系统中的应用;4.排班系统的实际案例分析和实现。

具体的教学大纲如下:1.第一周:C语言基本语法和数据结构;2.第二周:排班系统的基本原理和实现方法;3.第三周:常用的算法和数据结构在排班系统中的应用;4.第四周:排班系统的实际案例分析和实现。

三、教学方法为了达到本章节的教学目标,我们将采用以下几种教学方法:1.讲授法:通过讲解和演示,使学生掌握C语言基本语法和数据结构,以及排班系统的基本原理和实现方法;2.案例分析法:通过分析实际案例,使学生了解常用的算法和数据结构在排班系统中的应用;3.实验法:通过动手实践,使学生掌握排班系统的实现和调试方法。

四、教学资源为了支持本章节的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》;2.参考书:《C语言 Primer》;3.多媒体资料:PPT课件、教学视频;4.实验设备:计算机、网络环境。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过课堂参与、提问、讨论等方式,评估学生的学习态度和课堂表现;2.作业:布置与课程内容相关的编程作业,评估学生的编程能力和对知识的理解程度;3.考试:定期进行课程考试,评估学生对知识的掌握程度和应用能力。

C语言课程设计报告完整版

C语言课程设计报告完整版

C语言课程设计实习报告学生姓名:学生学号:所在班级:任课教师:课程成绩:1.题目需求(1)在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。

选手的最后得分为:去掉一个最高分和一个最低分后其余8个数的平均值。

(2)同时对评委评分进行裁判,即在十个评委中找出最公平(即评分最接近平均分)和最不公平(即与平均分差距最大)的评委。

2.需求分析根据题目要求,由于数据间单,仅涉及到简单排序及转换,程序中应提供显示、输入、输出、排序等操作,同时还可以提供键盘式选择菜单实现功能选择。

3.总体设计这个系统可分为三个模块(见图 1 ),评分、对评委测评、退出。

其中主要功能是最终得分和对评委测评两个模块。

4.详细设计主函数比较简洁,只提供输入、功能处理和输出部分的函数调用。

其中各功能模块用菜单方式选择;另外,菜单部分也可以写成函数。

其流程图如图 2 所示。

[程序]}#include <stdio.h> #include <math.h> main () /*主函数*/{void V ote_score();/* 声明评分函数*/void BaW();/*声明对裁判测评函数*/int n,w;do{ puts("\t\t**************************MENU****************** *******\n\n");/*选择菜单*/puts("\t\t\t\t 1.V ote and the score ");/*对歌手评分*/puts("\t\t\t\t 2.Best and worest voter");/*对裁判测评*/puts("\t\t\t\t 0.Exit ");/*退出*/puts("\n\n\t\t****************************************************\n\n"); printf("Choice your number (0-2): [ ]\b\b");scanf(" %d",&n);if(n<0 || n>2)/*对选择的数字做判断*/{ w=1;getchar ();}else w=0;}while (w==1);/*选择功能*/switch(n){case 1 : V ote_score();break;case 2 : BaW();break;case 0 : exit(0);}}void V ote_score()/*评分函数*/{i nt a[10],b[10],i,j,k,B,n,w;f loat A;B=0;p rintf("input the content :\n");f or(i=0;i<10;i++)/*输入评选内容并求的评分之和*/ {b[i]=a[i];B=B+b[i];}for (i=0;i<9;i++)/*对评分按从小到大排序*/for(j=1;j<10;j++)if(b[i]>b[j]){k=b[i];b[i]=b[j];b[j]=k;}A=(B-b[0]-b[9])/8.0;/*舍去最低分和最高分求平均分*/ printf("The final score %f .\n",A);/*输出结果*/printf(“What do you what to do?”);printf("\t\t\n********************1.MENU**********\n\n ***********2.Exit *********\n\n");/*选择菜单*/ printf("\t\t\t Choice you number:[ ]\b\b");scanf(" %d",&n);if(n<1 || n>2)/*对选择的数字做判断*/{ w=1;getchar ();}else w=0;while(w==1);/*选择功能*/switch (n){case 1: main() ;break;/*返回主函数*/case 2: exit(0);/*退出*/}}#include <math.h>void BaW()/*对裁判测评函数*/{i nt a[10],b[10],i,j,k,B,n,w;f loat A,f,c[10],d[10];B=0;p rintf("input the content :\n");f or(i=0;i<10;i++)/*输入评选内容并求的评分之和*/ {b[i]=a[i];B=B+b[i];}for (i=0;i<9;i++)for(j=1;j<10;j++)if(b[i]>b[j]){k=b[i];b[i]=b[j];b[j]=k;}A=(B-b[0]-b[9])/8.0;for(i=0;i<10;i++)/*求得各评分与平均分之差的绝对值*/ {c[i]=fabs(a[i]-A);d[i]=c[i];}for(i=0;i<9;i++)/*对所求绝对值按从大到小排序*/for(j=1;j<10;j++){i f(d[i]<d[j]){}}for(i=0;i<10;i++)/*找出最公平评委*/if(c[i]==d[9])printf("The best voter's number is %d . \n",i);for(i=0;i<10;i++)/*找出最不公平评委*/if(c[i]==d[0])printf("The worst voter's number is %d .\n" ,i);printf(“What do you what to do?”);printf("\t\t\n********************1.MENU**********\n\n ***********2.Exit *********\n\n");/*菜单*/printf("\t\t\t Choice you number:[ ]\b\b"); scanf(" %d",&n);if(n<1 || n>2)/*对选择的数字做判断*/{ w=1;getchar ();}else w=0;while(w==1);/*选择功能*/switch (n){case 1: main() ;break;/*回主菜单*/case 2: exit(0);/*退出*/}5. 上机操作1.编译、链接和运行。

c语言课程设计报告书3篇

c语言课程设计报告书3篇

c语言课程设计报告书3篇c语言课程设计报告书1我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。

在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

包括了程序模块处理。

简单界面程序。

高级界面程序。

程序的添加修改。

用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。

课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的.语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c语言这个工具解决实际问题,又必须掌握它。

通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。

对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。

简单的英文词典排版系统实验报告

简单的英文词典排版系统实验报告

实验目录需求分析———————————— 2 整体设计———————————— 2 详细设计———————————— 4 调试与测试——————————— 6 用户手册———————————— 6 总结—————————————— 6 附录—————————————— 9一需求分析1目的我们所做的程序课题是一个“简单的英文词典排版系统”。

该课题目的在于锻炼我们的自主动手和创新、创造能力, 同时通过自己看书学习文件的输入输出等功能的实现, 提升我们的自学能力。

并通过自己思考程序的算法和函数的组建过程来提升我们的逻辑思维能力, 最后是利用自我程序测试和改进来增加我们对编程的进一步了解, 和提升编程的能力。

其大背景是要为同学提供了一个既动手又动脑, 独立实践的机会, 将课本上的理论知识和实际有机的结合起来, 锻炼同学的分析解决实际问题的能力。

提高学生适应实际, 实践编程的能力。

2 预期达到功能(1) 能输入和显示所打的单词。

(2) 能分辨出单词。

(3) 对重复的单词和已经输入的单词能自动排除。

(4) 能按A-Z的顺序排版。

(5) 能将运行结果以文本形式存储。

(6) 具有添加新单词并重新排版的能力。

(7) 实现以上功能的选择操作3 需解决问题主要解决单词输入到文件和从文件输出以及最后文件保存的问题, 但是我们对C++的学习仍不完全, 这就要求我们提前把课本上的“文件与流”这一章节的相关内容进行自学并应用于其中。

其次我们要解决如何实现查找单词、分辨单词、添加单词以及对单词进行排序的系列问题, 这要求我们能对已学习的内容充分掌握并熟练应用。

二整体设计1 程序设计功能模块图2 程序流程示意图词库文件建立并选择功能添加单词单词排序搜索单词显示单词1)字符排序2) 检查模块三详细设计1 函数功能void write(int r) 将单词写入文件的函数int read() 读取文件函数void zhucaidan() 主菜单函数int paixu() 排序函数void jiancha() 检查单词模块void charu(char*d) 插入单词模块void find(char *s) 查找单词模块void xuanze() 选择菜单模块2 参数说明dic[N][20] N为100, 即但单词库课输入100个单词, 每个单词长度不得大于19*p 为指向Data文件的指针flag, temp 在不同的函数模块中用于不同情况下的结果判断与后续的程序执行s[20], d[20], f[20] char类型的数组s、d和f用于临时的单词输入放置t[20] char类型的数组t是用于临时放置从文件中读取的单词way 是用于switch语句中功能选项的选择i, j, c等是普通的int变量3函数调用1)void xuanze()选择菜单调用的函数: jiancha()检查函数、find(d)查找函数、charu(d)插函数以及zhucaidan()主菜单函数2)void find(char *s) 查找单词模块调用的函数: strcpy复制函数、strcmp比较大小函数、write(r)写入文件函数3)void charu(char*d) 插入单词模块调用的函数: read()读取函数、strcmp比较函数、strcpy复制函数、write(r)写入文件函数、paixu()排序函数、4)void jiancha()检查单词模块调用的函数: write(r)写入文件函数5)int paixu()排序函数调用的函数: read()读取函数、strcmp比较大小函数、strcpy复制函数、write(r)写入文件函数6)int read()读取文件函数调用的函数: write(r)写入文件函数main()主函数调用的函数: jiancha()检查函数、paixu()排序函数、xuanze()菜单选择函数4算法实现1)插入模块void charu(char*d)单词存在情况:先输入单词放置于*d指向的d[20]临时数组中, 再利用for循环和strcmp比较函数看输入的单词是否已经存在, 存在flag=1, 不存在将单词保存break跳出for循环从新输入单词, flag仍等于0;单词不存在情况:若flag=0, 利用strcpy复制函数将新输入的单词复制到单词库已存在单词的后面, 单词个数r增加1;继续输入:利用while语句, 只要继续输入的字符不为0(即输入的为单词, 用户不返回主菜单), 就可以执行while语句继续重复上述的检查单词和保存单词的步骤;2)返回主菜单:3)若输入的字符为0(即用户要返回主菜单), while语句无法执行, 经过从新排序后, 利用return返回调用函数, 即void xuanze()菜单选择函数, 可从新选择功能。

本科毕业设计-一个简单的英语词典排版系统设计论文

本科毕业设计-一个简单的英语词典排版系统设计论文

C语言课程设计实习报告姓名:学号:院(系):专业:班级序号:题目类型:□编程实现□代码修改代码分析2016 年 6 月一.题目描述一种简单份的英文词典排版系统要求:(1)能输入和显示打入的词。

(2)能分辨出单词。

(3)对重复的单词和已输入的单词能自动排除。

(4)能按A----Z排序排版。

(5)能将运行结果以文本形式存储。

(6)具有添加新单词并重新排版的能力。

分析:运行结果以文本形式存储,因而要提供文件份额输入输出操作; 通过查找操作检查重复单词;提供排序操作实现按A---Z的顺序排版;提供插入操作添加新单词并重新排版。

另外通过键盘式菜单实现功能选择。

数据结构采用指针数组或二维数组。

以回车键或者空格键作为单词输入结束标志对重复的单词自动排除排除可选第一章的查找方法,数据结构可采用指针和数组。

二.算法设计1 总体设计整个系统被设计为单词录入模块,文件存储模块和单词浏览三个模块。

I.单词录入模块要完成输入单词,检查是否重复,排序操作。

II.文件存储模块把存放单词的词组中的数据写入文件。

III.单词浏览模块完成英文词典的输出,即文件的输出操作。

2详细设计1)按照上面的整体思路,分别设计各个模块。

I.单词录入模块要完成输入单词,检查是否重复,排序操作。

是设计程序的核心部分,对于检查是否重复,以及排序两个主要方面,我在设计中采用了两个结构体。

输入一个单词,存放在一个临时字符数组中,以空格或回车表示单词的结束(这也是默认操作),然后换行输出刚刚输入的单词。

采用插入排序算法的思想把该单词插入单词数组中,不同的是如果两个单词相同则不插入。

II.文件存储模块把存放单词的词组中的数据写入文件,这个模块还需具有添加新单词的功能。

采用fwrite或fprintf把单词数组输入到文件中。

III.单词浏览模块完成英文词典的输出,即文件的输出操作。

将文件储存模块的内容输出。

采用fread或fscanf把单词从文件中读出,然后输出。

现代编译原理-C语言描述英文版课程设计

现代编译原理-C语言描述英文版课程设计

Modern Compiler Implementation - C LanguageDescription (English Version) Course Design IntroductionCompiler is a key component of the software development cycle. It plays an important role in translating source code into machine codethat can be executed by hardware. Therefore, it is very important for software developers to have a good understanding of how compilers work and how to design and implement them.Modern Compiler Implementation is a classic textbook that provides a comprehensive introduction to the principles and practices of modern compiler design. It covers various topics such as lexical analysis, syntax analysis, semantic analysis, intermediate code generation, optimization, and code generation. The book is written by Andrew W. Appel, a well-known computer science professor at Princeton University.In this course design, we will focus on the C language descriptionof the book. The goal of this course is to provide students with a practical understanding of how to design and implement a compiler for the C programming language. Students will learn how to use the tools and techniques provided by Modern Compiler Implementation to build a working compiler.Course ContentThe course will be organized into the following sections: 1. Introduction to Compiler Design 2. Lexical Analysis 3. Parsing andSyntax Analysis 4. Abstract Syntax Trees and Semantic Analysis 5. Intermediate Code Generation 6. Code Optimization 7. Code Generation Introduction to Compiler DesignIn this section, we will introduce the basics of compiler design, including the different phases of a compiler and the general architecture of a compiler. We will also discuss the challenges and limitations of compiler design.Lexical AnalysisIn this section, we will focus on lexical analysis, also known as scanning. We will discuss the role of the scanner in the compilation process, and cover topics such as regular expressions, finite automata, and lexical error handling. Students will learn how to design and implement a scanner for the C programming language.Parsing and Syntax AnalysisIn this section, we will cover parsing and syntax analysis, which is the process of analyzing the structure of the input program. We will discuss different parsing techniques such as recursive descent, LL, and LR. Students will learn how to design and implement a parser for the C programming language.Abstract Syntax Trees and Semantic AnalysisIn this section, we will discuss abstract syntax trees and semantic analysis. We will introduce the concept of abstract syntax trees and discuss their role in the compilation process. We will also cover semantic analysis, which is the process of checking the meaning of theinput program. Students will learn how to design and implement an abstract syntax tree and semantic analyzer for the C programming language.Intermediate Code GenerationIn this section, we will cover intermediate code generation, whichis the process of generating low-level code that is independent of the target machine and is used as an intermediate representation of the input program. We will discuss different intermediate representations such as three-address code and control flow graphs. Students will learn how to design and implement an intermediate code generator for the C programming language.Code OptimizationIn this section, we will cover code optimization, which is the process of improving the efficiency and performance of the generated code. We will discuss different optimization techniques such as constant folding, common subexpression elimination, and loop optimization. Students will learn how to design and implement code optimization for the C programming language.Code GenerationIn this section, we will cover code generation, which is the process of generating machine code that can be executed by the target machine. We will discuss different code generation techniques such as register allocation and instruction selection. Students will learn how to design and implement a code generator for the C programming language.Course ProjectThe course project will be to design and implement a compiler for a subset of the C programming language. Students will work in groups to complete different phases of the compiler, starting from lexicalanalysis to code generation. The project will be implemented using the tools and techniques provided by Modern Compiler Implementation.ConclusionIn conclusion, this course will provide students with a strong foundation in modern compiler design and implementation. The course will be beneficial for students who are interested in software development, programming languages, and computer science in general. By the end ofthe course, students will have the necessary skills and knowledge to design and implement a practical compiler for the C programming language.。

C语言课程设计报告模版

C语言课程设计报告模版

C语言课程设计报告模版Course Design reporter课程名称: C语言课程设计英文名称 : Course Design of C Programming 专业:经济学+软件工程111学号:姓名:指导教师:赵力日期:2021年 7月12日至2021年 7月18 日大连交通大学软件学院«C语言课程设计»报告C Program Experiment Designing课程编号:0120308006学时: 40学时适用专业:软件工程专业授课单位:软件学院一、C语言课程设计目的及要求目的:依照课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积存调试C程序的体会;通过完成辅导教材中的编程题,逐步培养学生的编程能力、用运算机解决实际问题的能力。

要求:1.熟悉Microsoft Visual C++ 6.0 的编程环境、要紧菜单功能。

2.通过上机验证运算符、表达式、运算规那么、函数使用。

3.熟练使用C语言的典型语句编写简单程序。

4.调试典型例题或习题。

5.提高上机编程能力二、实验类型设计类型三、实验学时40学时四、实验设备微型运算机、Windows XP操作系统、Microsoft Visual C++ 6.0软件一套五、C语言课程参考教材:[1] 李瑞,徐克圣,刘月凡,戚海英.C程序设计基础(第2版). 清华大学出版社.2020-2[2] 梁旭,谷晓琳,黄明.C语言课程设计(第2版).人民邮电出版社,2020-8课程设计(报告)任务书任务及要求:1.设计〔研究〕内容和要求研究内容:C语言课程设计题目相关内容5个小程序都分别是什么任务和要求:〔1〕学习C语言基础知识,把握C语言编程和程序调试的差不多技能。

〔2〕对指导教师下达的题目进行系统分析。

〔3〕依照分析结果完成系统设计。

〔4〕编程:在运算机上实现题目的代码实现。

〔5〕完成对该系统的测试和调试。

C语言程序设计课程设计报告电子英汉词典设计

C语言程序设计课程设计报告电子英汉词典设计

C语言程序设计课程设计报告电子英汉词典设计课程设计报告课程名称《C语言程序设计》课题名称电子英汉词典设计专业信息管理与信息系统班级学号姓名指导教师2011年6月22日一、设计内容与设计要求1.课程设计目的全面熟悉、掌握C语言基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的惯和规范编程的思想,为后继课程(数据结构和数据库等课程)的实验以及课程设计打下较扎实的基础。

2.课题题目⑴班级成绩管理系统⑵班级档案管理系统⑶飞机订票系统⑷猜数字游戏⑸电子英汉词典设计⑹通信录管理体系3.设计要求掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的中型问题,为将来开发软件积累一些典型的案例处理经验。

具体要求如下:⑴设计课题题目:每位同学根据自己学号除以6所得的余数加一选择相应题号的课题。

原则上不予换提,私自换题者不记成绩。

⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括系统设计目的与意义;系统功能需求;输入输出的要求。

②完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。

③完成系统详细设计:包括采用C语言定义相关的数据类型;写出各模块的类C码算法;画出函数的调用关系图。

④调试分析、设计体会、测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。

⑤关键源程序(带注释)⑶按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。

⑷不得抄袭别人程序、课程设想报告,每一个人应体现本人的个性设想。

英文排版系统的实现

英文排版系统的实现

C语言课程设计英文排版系统的实现前言一、C语言课程设计的目的:高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。

其目的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。

提高学生适应实际,实践编程的能力。

二,要求一种简单的英文词典排版系统的实现(1)能输入和显示打入的单词。

(2)能分辨出单词。

(3)对重复的单词和已经输入的单词能自动排除。

(4)能按A~Z的顺序排版。

(5)能将运行结果以文本形式存储。

(6)具有添加新单词并重新排版的能力。

三.构架四。

流程图建立词库显示单词对单词进行排序添加单词重新排版以文本形式存储结束开始显示:输入文字输入词i+1=iI=file输入文字END结束五。

程序说明程序第一次运行时,会创建一个“word.txt”(不包括引号)的文本文件,然后要求输入单词。

若要退出,请不要点DOS窗口的小叉叉,输入d即可。

因为程序在结束之前,对数组中的单词重新排序,并存储到文件中。

#include "stdio.h"---#include "stdlib.h" ---为exit()函数提供原型;#include "string.h"---字符串处理函数原型;#include "ctype.h"---字符处理函数原型;#define ROWS 256#define COLS 32---定义“字典”的大小:可存放256个单词,每个单词的长度不超过31static FILE *fp;---定义文件指针:内部链接,文件作用域;static char a[ROWS][COLS];---定义数组:内部链接,文件作用域;该数组的作用是将文件的内容复制进来,并加以处理。

因为处理数组比处理文件方便。

char get_option(void);---接收用户的选项,防止误操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void storage(char *pt[], int count);
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;
相关文档
最新文档