首页

毕业论文

首页 毕业论文 问题

基于c语言的通讯录毕业论文

发布时间:

基于c语言的通讯录毕业论文

应该是要求你用C语言写一个关于通讯录和记事本的程序.然后围绕这个来写一篇论文.主要是看你们学校以及你的老师对你有什么具体要求.这个你必须要自己去问清楚.一般来说,现在的学生写毕业设计都是在网上找些相关的,然后再改写别人的论文变成自己的.现在论文网非常多,有的是免费的,有的是要给钱的,你先问清楚老师的要求.然后在网上查一下有没有这方面相关的,有就最好,弄下来,加入与之不同的,去掉不要的,再加入你自己的思想就可以了.这个不用急的,反正到时候,老师自然会帮你想方法的,你记住一定要和老师搞好关系,多勾通一下.有不懂的地方及时的问.这样才能保证你过关,因为写论文一是要搞清楚题目要求,二是要按要求写,比如用什么样的格式,写多少字等等.总之,你首先应该做的是问清具体的要求,然后不懂的就问老师,或者是和老师商量,具体怎么做.然后根据安排再查相关资料完全论文.

#include ""#include ""#include "" #include ""#include "" FILE *fp;int i; //i是全局变量 可代替length struct address { char postnum[10]; char a[40]; //家庭地址};struct birthday { int year; int month; int day; };struct ffriend { int num; //序号char name[20]; char sex; char telephone[13]; struct birthday birthday; struct address address; }friends[50]; void Load(){ int j;long k;fp=fopen("","a+"); //打开文件 if(fp!=NULL){ for(i=1;i<50;i++){ j=fgetc(fp);if(j==EOF) //判断是否到了文件尾return;k=i-1;fseek(fp,k*sizeof(struct ffriend),SEEK_SET);fread(&friends[i],sizeof(struct ffriend),1,fp); //从文件中读取一条记录}}else{ fp=fopen("","w");i=1;}}void Show(int j) {// friends[j].num=i;printf("\n\n\t编号-Nnumber: %3d",friends[j].num);printf("\n\t姓名-Name:%-20s",friends[j].name);printf("\n\t性别-Sex:%c",friends[j].sex);printf("\n\t联系电话-Telephone:%-13s",friends[j].telephone);printf("\n\t出生日期-Birthday:%4d-%2d-%3d",friends[j].[j].[j].);printf("\n\t邮编-Postnum:%-10s",friends[j].);printf("\n\t通信地址-address:%-40s",friends[j].);}void Append(int j) {fflush(stdin); //区内清除文件缓冲区,文件以写方式打开时将缓冲容写入文件//stdin是一个标准FILE*(文件型指针)指向通常是用键盘的输入的输入流friends[j].num=j;printf("\n\t\t\t序号-Number:%d",j);printf("\n\t\t\t姓名-Name:"); scanf("%s",friends[j].name);fflush(stdin); //为什么没有fflush(stdin); 的效果会自动跳过呢?printf("\t\t\t性别-Sex(m/w):"); //为什么输入汉字男女也会自动跳过联系电话呢 scanf("%c",&friends[j].sex);printf("\t\t\t联系电话-telephone:"); scanf("%s",friends[j].telephone);printf("\t出生日期-birthday"); printf("\n\t\t\t年份-year:");scanf("%d",&friends[j].);printf("\t\t\t月份-month:");scanf("%d",&friends[j].);printf("\t\t\t日-day:");scanf("%d",&friends[j].);printf("\t\t\t邮编-Postnumber:"); scanf("%s",friends[j].);printf("\t\t\t通信地址-Address:"); scanf("%s",friends[j].);getchar();}void Delete() {int k;printf("\n\tDelete 序号-Number:"); scanf("%d",&k);if(k<=i){for(int j=k;jk;j--) //插入功能{strcpy(friends[j].name,friends[j-1].name); //数据后移friends[j].sex=friends[j-1].sex;strcpy(friends[j].telephone,friends[j-1].telephone);friends[j].[j-1].;friends[j].[j-1].;friends[j].[j-1].;strcpy(friends[j].[j-1].);strcpy(friends[j].[j-1].);}Append(k);i++; printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");break; case 'D': //删除功能 //增添随意删除多条记录的功能Delete();if(i<1)printf("\n没有记录-No records\n");printf("\n请按回车键继续!");getchar();getchar(); printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");break;case 'E': //查询功能 printf("\n\t请输入要查询记录的相关姓名:"); //增添查询按列号的scanf("%s",searchname);for(j=1;j<=i;j++){if(strcmp(searchname,friends[j].name)==0) //比较字符串{ Show(j); break;}}if(i<1) {printf("\n 没有您所查询的记录-No records");printf("\n 请按回车键继续!");getchar();}printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");getchar();break;case 'F': //修改功能 / /增添按序列号查询printf("\n\t请输入要修改记录的相关姓名:");gets(searchname);scanf("%s",searchname);for(j=1;j<=i;j++){if(strcmp(searchname,friends[j].name)==0) //比较字符串{ Modify(j); // getchar(); //加个输出确定修改吗}}if(i<1) //修改功能{ printf("\n 没有您所要修改的记录-No records");printf("\n 请按回车键继续!");getchar();getchar();}printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");break;case 'G': Save(); //存盘功能 getchar();printf("\n\t\t\t\t\t\t\t此次操作结束"); printf("\n\t------------------------------------------------------------\t\t\n");break;case 'H': //退出功能char x;printf("是否保存?yes/no\n");scanf("%s",&x);//getchar();// getchar();if(x=='y') { Save();exit(0);}elseexit(0);default: printf("\n\t输入有误,请输入正确的序列号!");printf("\n请按回车键继续!");getchar();printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");}}while(1);}

/*源程序*//******头文件(.h)***********/#include""/*I/O函数*/#include""/*标准库函数*/#include""/*字符串函数*/#include""/*字符操作函数*/#defineM50/*定义常数表示记录数*/typedefstruct/*定义数据结构*/{charname[20];/*姓名*/charunits[30];/*单位*/chartele[10];/*电话*/}ADDRESS;/******以下是函数原型*******/intenter(ADDRESSt[]);/*输入记录*/voidlist(ADDRESSt[],intn);/*显示记录*/voidsearch(ADDRESSt[],intn);/*按姓名查找显示记录*/intdelete(ADDRESSt[],intn);/*删除记录*/intadd(ADDRESSt[],intn);/*插入记录*/voidsave(ADDRESSt[],intn);/*记录保存为文件*/intload(ADDRESSt[]);/*从文件中读记录*/voiddisplay(ADDRESSt[]);/*按序号查找显示记录*/voidsort(ADDRESSt[],intn);/*按姓名排序*/voidqseek(ADDRESSt[],intn);/*快速查找记录*/voidcopy();/*文件复制*/voidprint(ADDRESStemp);/*显示单条记录*/intfind(ADDRESSt[],intn,char*s);/*查找函数*/intmenu_select();/*主菜单函数*//******主函数开始*******/main(){inti;ADDRESSadr[M];/*定义结构体数组*/intlength;/*保存记录长度*/clrscr();/*清屏*/for(;;)/*无限循环*/{switch(menu_select())/*调用主菜单函数,返回值整数作开关语句的条件*/{case0:length=enter(adr);break;/*输入记录*/case1:list(adr,length);break;/*显示全部记录*/case2:search(adr,length);break;/*查找记录*/case3:length=delete(adr,length);break;/*删除记录*/case4:length=add(adr,length);break;/*插入记录*/case5:save(adr,length);break;/*保存文件*/case6:length=load(adr);break;/*读文件*/case7:display(adr);break;/*按序号显示记录*/case8:sort(adr,length);break;/*按姓名排序*/case9:qseek(adr,length);break;/*快速查找记录*/case10:copy();break;/*复制文件*/case11:exit(0);/*如返回值为11则程序结束*/}}}/*菜单函数,函数返回值为整数,代表所选的菜单项*/menu_select(){chars[80];intc;gotoxy(1,25);/*将光标定为在第25行,第1列*/printf("pressanykeyentermenu\n");/*提示压任意键继续*/getch();/*读入任意字符*/clrscr();/*清屏*/gotoxy(1,1);printf("********************MENU*********************\n\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("***********************************************\n");do{printf("\nEnteryouchoice(0~11):");/*提示输入选项*/scanf("%s",s);/*输入选择项*/c=atoi(s);/*将输入的字符串转化为整型数*/}while(c11);/*选择项不在0~11之间重输*/returnc;/*返回选择项,主程序根据该数调用相应的函数*/}/***输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度*/intenter(ADDRESSt[]){inti,n;char*s;clrscr();/*清屏*/printf("\npleaseinputnum\n");/*提示信息*/scanf("%d",&n);/*输入记录数*/printf("pleaseinputrecord\n");/*提示输入记录*/printf("nameunittelephone\n");printf("------------------------------------------------\n");for(i=0;in-1)/*如果整数i值大于n-1,说明没找到*/printf("notfound\n");elseprint(t[i]);/*找到,调用显示函数显示记录*/}/*显示指定的一条记录*/voidprint(ADDRESStemp){clrscr();printf("\n\n********************************************\n");printf("nameunittelephone\n");printf("------------------------------------------------\n");printf("%-20s%-30s%-10s\n",);printf("**********************end***********************\n");}/*查找函数,参数为记录数组和记录条数以及姓名s*/intfind(ADDRESSt[],intn,char*s){inti;for(i=0;in-1)/*如果i>n-1超过了数组的长度*/printf("nofoundnotdeleted\n");/*显示没找到要删除的记录*/else{print(t[i]);/*调用输出函数显示该条记录信息*/printf("Areyousuredeleteit(1/0)\n");/*确认是否要删除*/scanf("%d",&ch);/*输入一个整数0或1*/if(ch==1)/*如果确认删除整数为1*/{for(j=i+1;j=i;j--)/*从最后一个结点开始向后移动一条*/{strcpy(t[j+1].name,t[j].name);/*当前记录的姓名拷贝到后一条*/strcpy(t[j+1].units,t[j].units);/*当前记录的单位拷贝到后一条*/strcpy(t[j+1].tele,t[j].tele);/*当前记录的电话拷贝到后一条*/}strcpy(t[i].name,);/*将新插入记录的姓名拷贝到第i个位置*/strcpy(t[i].units,);/*将新插入记录的单位拷贝到第i个位置*/strcpy(t[i].tele,);/*将新插入记录的电话拷贝到第i个位置*/n++;/*记录数加1*/returnn;/*返回记录数*/}/*保存函数,参数为结构体数组和记录数*/voidsave(ADDRESSt[],intn){inti;FILE*fp;/*指向文件的指针*/if((fp=fopen("","wb"))==NULL)/*打开文件,并判断打开是否正常*/{printf("cannotopenfile\n");/*没打开*/exit(1);/*退出*/}printf("\nSavingfile\n");/*输出提示信息*/fprintf(fp,"%d",n);/*将记录数写入文件*/fprintf(fp,"\r\n");/*将换行符号写入文件*/for(i=0;i=0&&id0)/*比较大小*/{flag=1;strcpy([j].name);/*交换记录*/strcpy([j].units);strcpy([j].tele);strcpy(t[j].name,t[j+1].name);strcpy(t[j].units,t[j+1].units);strcpy(t[j].tele,t[j+1].tele);strcpy(t[j+1].name,);strcpy(t[j+1].units,);strcpy(t[j+1].tele,);}if(flag==0)break;/*如果标志为0,说明没有发生过交换循环结束*/}printf("sortsucess!!!\n");/*显示排序成功*/}/*快速查找,参数为结构体数组和记录数*/voidqseek(ADDRESSt[],intn){chars[20];intl,r,m;printf("\nPleasesortbeforeqseek!\n");/*提示确认在查找之前,记录是否已排序*/printf("pleaseenternameforqseek\n");/*提示输入*/scanf("%s",s);/*输入待查找的姓名*/l=0;r=n-1;/*设置左边界与右边界的初值*/while(lr)/*如果左边界大于右边界时*/printf("notfound\n");/*显示没找到*/}/*复制文件*/voidcopy(){charoutfile[20];/*目标文件名*/inti,n;ADDRESStemp[M];/*定义临时变量*/FILE*sfp,*tfp;/*定义指向文件的指针*/clrscr();/*清屏*/if((sfp=fopen("","rb"))==NULL)/*打开记录文件*/{printf("cannotopenfile\n");/*显示不能打开文件信息*/exit(1);/*退出*/}printf("Enteroutfilename,forexamplec:\\f1\\:\n");/*提示信息*/scanf("%s",outfile);/*输入目标文件名*/if((tfp=fopen(outfile,"wb"))==NULL)/*打开目标文件*/{printf("cannotopenfile\n");/*显示不能打开文件信息*/exit(1);/*退出*/}fscanf(sfp,"%d",&n);/*读出文件记录数*/fprintf(tfp,"%d",n);/*写入目标文件数*/fprintf(tfp,"\r\n");/*写入换行符*/for(i=0;i

这个问题答案网上很多,这个地址就是或#include 我也答过#include "" #include "" #include "" #include "" #include "" #include "" /#include "" #define N 3 typedef struct z1 { char no[11]; char name[15]; int score[N]; float sum; float average; int order; struct z1 *next; }STUDENT;STUDENT *init(); STUDENT *create(); STUDENT *delete(STUDENT *h); void print(STUDENT *h); /* 显示所有记录*/void search(STUDENT *h); /*查找*/void save(STUDENT *h); /*保存*/STUDENT *load(); /*读入记录*/void computer(STUDENT *h); /*计算总分和均分*/STUDENT *insert(STUDENT *h); /*插入记录*/void append(); /*追加记录*/void copy(); /*复制文件*/STUDENT *sort(STUDENT *h); /*排序*/STUDENT *index(STUDENT *h); /*索引*/void total(STUDENT *h); /*分类合计*/int menu_select(); /*菜单函数*//******主函数开始*******/main(){ int i; STUDENT *head; /*链表定义头指针*/ head=init(); /*初始化链表*/ clrscr(); /*清屏*/ for(;;) /*无限循环*/ { switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/ { /*值不同,执行的函数不同,break 不能省略*/ case 0:head=init();break; case 1:head=create();break; case 2:head=delete(head);break; case 3:print(head);break; /*显示全部记录*/ case 4:search(head);break; /*查找记录*/ case 5:save(head);break; /*保存文件*/ case 6:head=load(); break; /*读文件*/ case 7:computer(head);break; /*计算总分和均分*/ case 8:head=insert(head); break; /*插入记录*/ case 9:copy();break; /*复制文件*/ case 10:head=sort(head);break; /*排序*/ case 11:append();break; /*追加记录*/ case 12:head=index(head);break; /*索引*/ case 13:total(head);break; /*分类合计*/ case 14:exit(0); /*如菜单返回值为14程序结束*/ } }}/*菜单函数,返回值为整数*/menu_select(){ char *menu[]={"***************MENU***************", /*定义菜单字符串数组*/ " 0. init list", /*初始化*/ " 1. Enter list", /*输入记录*/ " 2. Delete a record from list", /*从表中删除记录*/ " 3. print list ", /*显示单链表中所有记录*/ " 4. Search record on name", /*按照姓名查找记录*/ " 5. Save the file", /*将单链表中记录保存到文件中*/ " 6. Load the file", /*从文件中读入记录*/ " 7. compute the score", /*计算所有学生的总分和均分*/ " 8. insert record to list ", /*插入记录到表中*/ " 9. copy the file to new file", /*复制文件*/ " 10. sort to make new file", /*排序*/ " 11. append record to file", /*追加记录到文件中*/ " 12. index on nomber", /*索引*/ " 13. total on nomber", /*分类合计*/ " 14. Quit"}; /*退出*/ char s[3]; /*以字符形式保存选择号*/ int c,i; /*定义整形变量*/ gotoxy(1,25); /*移动光标*/ printf("press any key enter menu......\n"); /*压任一键进入主菜单*/ getch(); /*输入任一键*/ clrscr(); /*清屏幕*/ gotoxy(1,1); /*移动光标*/ textcolor(YELLOW); /*设置文本显示颜色为黄色*/ textbackground(BLUE); /*设置背景颜色为蓝色*/ gotoxy(10,2); /*移动光标*/ putch(0xc9); /*输出左上角边框┏*/ for(i=1;i<44;i++) putch(0xcd); /*输出上边框水平线*/ putch(0xbb); /*输出右上角边框 ┓*/ for(i=3;i<20;i++) { gotoxy(10,i);putch(0xba); /*输出左垂直线*/ gotoxy(54,i);putch(0xba); } /*输出右垂直线*/ gotoxy(10,20);putch(0xc8); /*输出左上角边框┗*/ for(i=1;i<44;i++) putch(0xcd); /*输出下边框水平线*/ putch(0xbc); /*输出右下角边框┛*/ window(11,3,53,19); /* 制作显示菜单的窗口,大小根据菜单条数设计*/ clrscr(); /*清屏*/ for(i=0;i<16;i++) /*输出主菜单数组*/ { gotoxy(10,i+1); cprintf("%s",menu[i]); } textbackground(BLACK); /*设置背景颜色为黑色*/ window(1,1,80,25); /*恢复原窗口大小*/ gotoxy(10,21); /*移动光标*/ do{ printf("\n Enter you choice(0~14):"); /*在菜单窗口外显示提示信息*/ scanf("%s",s); /*输入选择项*/ c=atoi(s); /*将输入的字符串转化为整形数*/ }while(c<0||c>14); /*选择项不在0~14之间重输*/ return c; /*返回选择项,主程序根据该数调用相应的函数*/}STUDENT *init(){ return NULL;}/*创建链表*/STUDENT *create(){ int i; int s; STUDENT *h=NULL,*info; /* STUDENT指向结构体的指针*/ for(;;) { info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/ if(!info) /*如果指针info为空*/ { printf("\nout of memory"); /*输出内存溢出*/ return NULL; /*返回空指针*/ } inputs("enter no:",info->no,11); /*输入学号并校验*/ if(info->no[0]=='@') break; /*如果学号首字符为@则结束输入*/ inputs("enter name:",info->name,15); /*输入姓名,并进行校验*/ printf("please input %d score \n",N); /*提示开始输入成绩*/ s=0; /*计算每个学生的总分,初值为0*/ for(i=0;iscore[i]); if(info->score[i]>100||info->score[i]<0) printf("bad data,repeat input\n"); }while(info->score[i]>100||info->score[i]<0); s=s+info->score[i]; } info->sum=s; info->average=(float)s/N; info->order=0; info->next=h; h=info; } return(h); /*返回头指针*/}/*输入字符串,并进行长度验证*/inputs(char *prompt, char *s, int count){ char p[255]; do{ printf(prompt); /*显示提示信息*/ scanf("%s",p); if(strlen(p)>count)printf("\n too long! \n"); }while(strlen(p)>count); strcpy(s,p); }void print(STUDENT *h){ int i=0; /* 统计记录条数*/ STUDENT *p; /*移动指针*/ clrscr(); /*清屏*/ p=h; /*初值为头指针*/ printf("\n\n\n****************************STUDENT********************************\n"); printf("|rec|nO | name | sc1| sc2| sc3| sum | ave |order|\n"); printf("|---|----------|---------------|----|----|----|--------|-------|-----|\n"); while(p!=NULL) { i++; printf("|%3d |%-10s|%-15s|%4d|%4d|%4d| % | % | %3d |\n", i, p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order); p=p->next; } printf("**********************************end*********************************\n");}/*删除记录*/STUDENT *delete(STUDENT *h){ STUDENT *p,*q; /*p为查找到要删除的结点指针,q为其前驱指针*/ char s[11]; /*存放学号*/ clrscr(); /*清屏*/ printf("please deleted no\n"); /*显示提示信息*/ scanf("%s",s); /*输入要删除记录的学号*/ q=p=h; /*给q和p赋初值头指针*/ while(strcmp(p->no,s)&&p!=NULL) /*当记录的学号不是要找的,或指针不为空时*/ { q=p; /*将p指针值赋给q作为p的前驱指针*/ p=p->next; /*将p指针指向下一条记录*/ } if(p==NULL) /*如果p为空,说明链表中没有该结点*/ printf("\nlist no %s student\n",s); else /*p不为空,显示找到的记录信息*/ { printf("*****************************have found***************************\n"); printf("|no | name | sc1| sc2| sc3| sum | ave |order|\n"); printf("|----------|---------------|----|----|----|--------|-------|-----|\n"); printf("|%-10s|%-15s|%4d|%4d|%4d| % | % | %3d |\n", p->no, p->name,p->score[0],p->score[1],p->score[2],p->sum, p->average,p->order); printf("********************************end*******************************\n"); getch(); /*压任一键后,开始删除*/ if(p==h) /*如果p==h,说明被删结点是头结点*/ h=p->next; /*修改头指针指向下一条记录*/ else q->next=p->next; /*不是头指针,将p的后继结点作为q的后继结点*/ free(p); /*释放p所指结点空间*/ printf("\n have deleted No %s student\n",s); printf("Don't forget save\n");/*提示删除后不要忘记保存文件*/ } return(h); /*返回头指针*/}/*查找记录*/void search(STUDENT *h){ STUDENT *p; char s[15]; clrscr(); printf("please enter name for search\n"); scanf("%s",s); /*输入姓名*/ p=h; /*将头指针赋给p*/ while(strcmp(p->name,s)&&p!=NULL) /*当记录的姓名不是要找的,或指针不为空时*/ p=p->next; /*移动指针,指向下一结点*/ if(p==NULL) /*如果指针为空*/ printf("\nlist no %s student\n",s); /*显示没有该学生*/ else /*显示找到的记录信息*/ { printf("\n\n*****************************havefound***************************\n"); printf("|nO | name | sc1| sc2| sc3| sum | ave |order|\n"); printf("|----------|---------------|----|----|----|--------|-------|-----|\n"); printf("|%-10s|%-15s|%4d|%4d|%4d| % | % | %3d |\n", p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order); printf("********************************end*******************************\n"); }}/*插入记录*/STUDENT *insert(STUDENT *h){ STUDENT *p,*q,*info; /*p指向插入位置,q是其前驱,info指新插入记录*/ char s[11]; /*保存插入点位置的学号*/ int s1,i; printf("please enter location before the no\n"); scanf("%s",s); /*输入插入点学号*/ printf("\nplease new record\n"); /*提示输入记录信息*/ info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/ if(!info) { printf("\nout of memory"); /*如没有申请到,内存溢出*/ return NULL; /*返回空指针*/ } inputs("enter no:",info->no,11); /*输入学号*/ inputs("enter name:",info->name,15); /*输入姓名*/ printf("please input %d score \n",N); /*提示输入分数*/ s1=0; /*保存新记录的总分,初值为0*/ for(i=0;iscore[i]); if(info->score[i]>100||info->score[i]<0) printf("bad data,repeat input\n"); }while(info->score[i]>100||info->score[i]<0); s1=s1+info->score[i]; /*计算总分*/ } info->sum=s1; /*将总分存入新记录中*/ info->average=(float)s1/N; /*计算均分*/ info->order=0; /*名次赋值0*/ info->next=NULL; /*设后继指针为空*/ p=h; /*将指针赋值给p*/ q=h; /*将指针赋值给q*/ while(strcmp(p->no,s)&&p!=NULL) /*查找插入位置*/ { q=p; /*保存指针p,作为下一个p的前驱*/ p=p->next; /*将指针p后移*/ } if(p==NULL) /*如果p指针为空,说明没有指定结点*/ if(p==h) /*同时p等于h,说明链表为空*/ h=info; /*新记录则为头结点*/ else q->next=info; else if(p==h) { info->next=p; h=info; } else { info->next=p; q->next=info; } printf("\n ----have inserted %s student----\n",info->name); printf("---Don't forget save---\n"); /*提示存盘*/ return(h); /*返回头指针*/}/*保存数据到文件*/void save(STUDENT *h){ FILE *fp; /*定义指向文件的指针*/ STUDENT *p; /* 定义移动指针*/ char outfile[10]; /*保存输出文件名*/ printf("Enter outfile name,for example c:\\f1\\:\n"); /*提示文件名格式信息*/ scanf("%s",outfile); if((fp=fopen(outfile,"wb"))==NULL) /*为输出打开一个二进制文件,如没有则建立*/ { printf("can not open file\n"); exit(1); } printf("\nSaving file......\n"); /*打开文件,提示正在保存*/ p=h; /*移动指针从头指针开始*/ while(p!=NULL) /*如p不为空*/ { fwrite(p,sizeof(STUDENT),1,fp);/*写入一条记录*/ p=p->next; /*指针后移*/ } fclose(fp); /*关闭文件*/ printf("-----save success!!-----\n"); /*显示保存成功*/}/* 从文件读数据*/STUDENT *load(){ STUDENT *p,*q,*h=NULL; /*定义记录指针变量*/ FILE *fp; /* 定义指向文件的指针*/ char infile[10]; /*保存文件名*/ printf("Enter infile name,for example c:\\f1\\:\n"); scanf("%s",infile); /*输入文件名*/ if((fp=fopen(infile,"rb"))==NULL) /*打开一个二进制文件,为读方式*/ { printf("can not open file\n"); /*如不能打开,则结束程序*/ exit(1); } printf("\n -----Loading file!-----\n"); p=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/ if(!p) { printf("out of memory!\n"); /*如没有申请到,则内存溢出*/ return h; /*返回空头指针*/ } h=p; /*申请到空间,将其作为头指针*/ while(!feof(fp)) /*循环读数据直到文件尾结束*/ { if(1!=fread(p,sizeof(STUDENT),1,fp)) break; /*如果没读到数据,跳出循环*/ p->next=(STUDENT *)malloc(sizeof(STUDENT)); /*为下一个结点申请空间*/ if(!p->next) { printf("out of memory!\n"); return h; } q=p; p=p->next; } q->next=NULL; /*最后一个结点的后继指针为空*/ fclose(fp); /*关闭文件*/ printf("---You have success read data from file!!!---\n"); return h; /*返回头指针*/}/*追加记录到文件*/void append(){ FILE *fp; /*定义指向文件的指针*/ STUDENT *info; /*新记录指针*/ int s1,i; char infile[10]; /*保存文件名*/ printf("\nplease new record\n"); info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/ if(!info) { printf("\nout of memory"); /*没有申请到,内存溢出本函数结束*/ return ; } inputs("enter no:",info->no,11); /*调用inputs输入学号*/ inputs("enter name:",info->name,15); /*调用inputs输入姓名*/ printf("please input %d score \n",N); /*提示输入成绩*/ s1=0; for(i=0;iscore[i]); /*输入成绩*/ if(info->score[i]>100||info->score[i]<0)printf("bad data,repeat input\n"); }while(info->score[i]>100||info->score[i]<0); /*成绩数据验证*/ s1=s1+info->score[i]; /*求总分*/ } info->sum=s1; /*保存总分*/ info->average=(float)s1/N; /*求均分*/ info->order=0; /*名次初始值为0*/ info->next=NULL; /*将新记录后继指针赋值为空*/ printf("Enter infile name,for example c:\\f1\\:\n"); scanf("%s",infile); /*输入文件名*/ if((fp=fopen(infile,"ab"))==NULL) /*向二进制文件尾增加数据方式打开文件*/ { printf("can not open file\n"); /*显示不能打开*/ exit(1); /*退出程序*/ } printf("\n -----Appending record!-----\n"); if(1!=fwrite(info,sizeof(STUDENT),1,fp)) /*写文件操作*/ { printf("-----file write error!-----\n"); return; /*返回*/ } printf("-----append sucess!!----\n"); fclose(fp); /*关闭文件*/}/*文件拷贝*/void copy(){ char outfile[10],infile[10]; FILE *sfp,*tfp; /*源和目标文件指针*/ STUDENT *p=NULL; /*移动指针*/ clrscr(); /*清屏*/ printf("Enter infile name,for example c:\\f1\\:\n"); scanf("%s",infile); /*输入源文件名*/ if((sfp=fopen(infile,"rb"))==NULL) /*二进制读方式打开源文件*/ { printf("can not open input file\n"); exit(0); } printf("Enter outfile name,for example c:\\f1\\:\n"); /*提示输入目标文件名*/ scanf("%s",outfile); /*输入目标文件名*/ if((tfp=fopen(outfile,"wb"))==NULL) /*二进制写方式打开目标文件*/ { printf("can not open output file \n"); exit(0); } while(!feof(sfp)) /*读文件直到文件尾*/ { if(1!=fread(p,sizeof(STUDENT),1,sfp)) break; /*块读*/ fwrite(p,sizeof(STUDENT),1,tfp); /*块写*/ } fclose(sfp); /*关闭源文件*/ fclose(tfp); /*关闭目标文件*/ printf("you have success copy file!!!\n"); /*显示成功拷贝*/}/*排序*/STUDENT *sort(STUDENT *h){ int i=0; /*保存名次*/ STUDENT *p,*q,*t,*h1; /*定义临时指针*/ h1=h->next; /*将原表的头指针所指的下一个结点作头指针*/ h->next=NULL; /*第一个结点为新表的头结点*/ while(h1!=NULL) /*当原表不为空时,进行排序*/ { t=h1; /*取原表的头结点*/ h1=h1->next; /*原表头结点指针后移*/ p=h; /*设定移动指针p,从头指针开始*/ q=h; /*设定移动指针q做为p的前驱,初值为头指针*/ while(t->sumsum&&p!=NULL) /*作总分比较*/ { q=p; /*待排序点值小,则新表指针后移*/ p=p->next; } if(p==q) /*p==q,说明待排序点值大,应排在首位*/ { t->next=p; /*待排序点的后继为p*/ h=t; /*新头结点为待排序点*/ } else /*待排序点应插入在中间某个位置q和p之间,如p为空则是尾部*/ { t->next=p; /*t的后继是p*/ q->next=t; /*q的后继是t*/ } } p=h; /*已排好序的头指针赋给p,准备填写名次*/ while(p!=NULL) /*当p不为空时,进行下列操作*/ { i++; /*结点序号*/ p->order=i; /*将名次赋值*/ p=p->next; /*指针后移*/ } printf("sort sucess!!!\n"); /*排序成功*/ return h; /*返回头指针*/}/*计算总分和均值*/void computer(STUDENT *h){ STUDENT *p; /*定义移动指针*/ int i=0; /*保存记录条数初值为0*/ long s=0; /*总分初值为0*/ float average=0; /*均分初值为0*/ p=h; /*从头指针开始*/ while(p!=NULL) /*当p不为空时处理*/ { s+=p->sum; /*累加总分*/ i++; /*统计记录条数*/ p=p->next; /*指针后移*/ } average=(float)s/i;/* 求均分,均分为浮点数,总分为整数,所以做类型转换*/ printf("\n--All students sum score is:%ld average is %\n",s,average);}/*索引*/STUDENT *index(STUDENT *h){ STUDENT *p,*q,*t,*h1; /*定义临时指针*/ h1=h->next; /*将原表的头指针所指的下一个结点作头指针*/ h->next=NULL; /*第一个结点为新表的头结点*/ while(h1!=NULL) /*当原表不为空时,进行排序*/ { t=h1; /*取原表的头结点*/ h1=h1->next; /*原表头结点指针后移*/ p=h; /*设定移动指针p,从头指针开始*/ q=h; /*设定移动指针q做为p的前驱,初值为头指针*/ while(strcmp(t->no,p->no)>0&&p!=NULL) /*作学号比较*/ { q=p; p=p->next; } if(p==q) /*p==q, { t->next=p; h=t; } else { t->next=p; /*t的后继是p*/ q->next=t; /*q的后继是t*/ } } printf("index sucess!!!\n"); /*索引排序成功*/ return h; /*返回头指针*/}/*分类合计*/void total(STUDENT *h){ STUDENT *p,*q; /*定义临时指针变量*/ char sno[9],qno[9],*ptr; /*保存班级号的*/ float s1,ave; /*保存总分和均分*/ int i; clrscr(); /*清屏*/ printf("\n\n *******************Total*****************\n"); printf("---class---------sum--------------average----\n"); p=h; while(p!=NULL) { memcpy(sno,p->no,8); /*从学号中取出班级号*/ sno[8]='\0'; /*做字符串结束标记*/ q=p->next; /*将指针指向待比较的记录*/ s1=p->sum; /*当前班级的总分初值为该班级的第一条记录总分*/ ave=p->average; /*当前班级的均分初值为该班级的第一条记录均分*/ i=1; /*统计当前班级人数*/ while(q!=NULL) /*内循环开始*/ { memcpy(qno,q->no,8); /*读取班级号*/ qno[8]='\0'; /*做字符串结束标记*/ if(strcmp(qno,sno)==0) /*比较班级号*/ { s1+=q->sum; /*累加总分*/ ave+=q->average; /*累加均分*/ i++; /*累加班级人数*/ q=q->next; /*指针指向下一条记录*/ } else break; } printf("%s % %\n",sno,s1,ave/i); if(q==NULL) break; else p=q; } printf("---------------------------------------------\n");}

基于c语言2048的小游戏毕业论文

/*幸运52游戏 */#include<>void main(){int a,b,c;char name[20];printf("请输入您的姓名:\n");scanf("%s",name);printf("请设置玩家的游戏猜谜次数\n");scanf("%d",&b);printf("请设置猜谜的正确答案\n");scanf("%d",&c);printf("\n好了,游戏开始\n*****************************************\n请输入数字:\n");scanf("%d",&a);while(a!=c&&b>0){if(a>c)printf("大了\n");elseprintf("小了\n");b--;scanf("%d",&a);}if(a==c){printf("\n*****************************************\n恭喜您过关了!\n玩家:%s\t",name);}elseprintf("\n*****************************************\n游戏结束,大虾请重新来过\n");getch();}

学号:    姓名:高少魁 【嵌牛导读】2048游戏在网页端与移动端均可以使用,本设计将该游戏移植到了硬件平台FPGA上,使用Digilent Nexys 4 DDR 开发板,使用Xilinx Vivado 用于搭建基于MicroBlaze 软核处理器的硬件运行环境,“2048”游戏主程序和VGA 显示控制等程序的编写在Xilinx SDK 上进行。游戏必需的上、下、左、右方向控制,在物理上由开发板上的按键实现,在软件层面通过查询方式实现。最终,嵌入式系统的运行结果将输出到显示屏上,包含4×4 棋盘方格、游戏得分和游戏结果。 【嵌牛鼻子】FPGA    VGA    最小嵌入式系统    软核CPU 【嵌牛正文】 一、硬件设计 系统设计的整体电路框图如图所示 硬件部分由基于MicroBlaze 软核处理器的最小嵌入式系统和外围的输入输出模块构成。最小嵌入式系统以MicroBlaze 软核处理器、时钟模块(Clocking Wizard)、处理器系统复位模块(Processor System Reset)、调试模块(MicroBlaze Debug Module,MDM)、内置存储(LocalMemory)和外置存储接口模块(Memory Interface Generator,MIG)为核心,以AXI 总线互联模块(AXI Interconnect)作为处理器与外设的通信基础,以直接或间接挂载于其上的AXI 中断控制器(AXI Interrupt Controller)和中断请求集成器(Concat)作为中断信号的数据通路。 外围输入输出模块包括以下若干部分,它们均通过AXI 总线与处理器通信。UART 模块(AXI Uartlite)实现嵌入式系统与计算机的调试通信,GPIO 模块(AXI GPIO)实现按键输入,TFT 模块(AXI TFT Controller)把系统运行结果通过VGA 接口输出。 由于软件部分需要存储大量的图片资源,且TFT 模块要求显存不少于2MB,而处理器的内置存储空间不足,故使用MIG 模块以使用外置DDR2 存储。硬件系统共需要有三种不同频率的时钟信号:处理器需要100MHz 时钟、MIG 模块需要200MHz 时钟、TFT 模块需要25MHz 时钟,故Clocking Wizard 输出三路时钟。 要把上述嵌入式系统在FPGA 上实现,需要添加管脚约束。共有三处需要添加约束:时钟信号输入、GPIO 模块的按键输入和TFT 模块的VGA 接口输出。前两处在添加相应IP 核时以完成约束,TFT 模块的约束需要手动完成,即把红、绿、蓝三通道颜色信号和行、场同步信号约束到VGA 端子上。 二、软件设计 1.图片素材 嵌入式系统的运行结果,即“2048 ”游戏的状态需要以图形的方式输出到显示屏,因此需要把所有可能显示的较为复杂的内容预先制作好并存储起来。这些内容包括2~ 65536 共16个数字方块、用于显示得分的 0~ 9 这十个数字 、“得分”提示语 和游戏给出的“赢”和“输”的提示信息,均使用 Adobe Photoshop制作。然后,利用 Image 2 Lcd 工具软件把图片输出为 C 语言格式的数组备用。 2.主程序部分 主程序实现的功能为:配置硬件工作参数 、调用 VGA 显示部分的函数来显示两幅静态页面 、初始化游戏、初始化屏幕显示和 识别用户输入的控制信号并传输给游戏核心部分。 硬件工作参数包括GPIO 通道的数据传输方向 、 显存基地址 和 TFT 扫描方式 。 GPIO 用于获取用户输入的控制信息,因此方向为输入 TRI 寄存器的值配置为 0 x1F 。显存基地址为0x 87 E 00000 ,大小为 2MB ,该信息写入 AR 寄存器 。 TFT 显示控制器的工作参数为从左到右扫描、开启显示输出,相应地把 0x 1 写入 CR 寄存器。 程序开始执行时,首先调用VGA 显示部分的两个函数分别 2~ 65536 共 16 种不同数字方格的棋盘。 然后,调用函数开始一局新游戏并在屏幕上预先绘制好不需要更新的棋盘区域底框、“得分”提示信息和显示分数的区域的底框。 主程序使用查询的方式不断获取 GPIO 寄存器提供的用户输入信息。当有输入时,调用游戏核心部分的函数更新“棋盘”信息。 显示部分 该部分程序按照一定的规则向显存写入数据以在显示屏上显示不同的内容。这些内容包括 2~ 65536 共 16 种数字方格的棋盘、得分信息、游戏进行时的棋盘和提示信息。 2~ 65536 共 16 种数字方格的棋盘在程序刚开始执行时显示,每幅画面大约显示 5 秒,用软件延时粗略控制。随着游戏的进行, VGA 显示部分不断读取“棋盘”,并把代表相应数字的图片绘制到显示器上。同时,它还读取得分信息,并绘制到预先设定的位置。如果“棋盘”上出现了“ 2048 ”,它输出“赢”的提示信息。如果“棋盘”上的方格均不能移动且没有出现“ 2048 ”,则显示“输”的提示信息。 4.游戏核心部分 游戏核心部分主要涉及对“棋盘” 的处理 ,程序把它抽象为 4 × 4 的二维数组。这部分的功能包括: 游戏初始化、 方块四个方向 的移动和合并策略、向棋盘添加一个新的方块、检查游戏的状态、计算得分和获取游戏的状态信息。 游戏初始化把得分清零,并向棋盘添加两个数字。方块四个方向的移动和合并策略与我们之前体验过的2048 游戏完全一致。方块移动后,“棋盘”上一定会增加一个新的方块,可能是2 或 4 ,概率为 9:1 。之后,程序检查“棋盘”上是否出现过 2048 。如果出现过(“棋盘”上至少有一个不小于“ 2048的方格),则游戏结束,通知 VGA 绘图部分显示“赢”的提示信息。如果没有出现过,则检查棋盘上的空余位置数量数量以以及方块是否还能移动。如果没有空余位置且方块不能继续移动,及方块是否还能移动。如果没有空余位置且方块不能继续移动,则游戏失败,通知则游戏失败,通VGA显示部分显示部分输出“输”的提示信息。接下来,输出“输”的提示信息。接下来,程序将通知程序将通知VGA显示部显示部分更新“棋盘”和得分的显示。分更新“棋盘”和得分的显示。 三、设计运行效果 运行效果如下图

做个毕设100分就有人做?真是值得怀疑?

机顶盒上游戏开发可以么,也是用C语言写的目 录第一章 绪论 机顶盒的产生背景 机顶盒的发展及其现状 游戏模块设计的必要性 模块设计需要解决的问题 3第二章 系统开发环境及相关技术介绍 XX-XX硬件平台 XX操作系统 内核 任务机制 消息队列 信号量 C语言的特点 7第三章 开发流程 功能需求分析 可行性分析 模块设计 编码 测试 11第四章 系统设计 游戏模块接口设计 游戏的初始化 游戏的按键读取和转化 游戏的暂停、恢复和退出 游戏算法设计 推箱子游戏设计 俄罗斯方块游戏设计 黑白棋游戏设计 14结 论 16谢 辞 17参 考 文 献 18附录 推箱子游戏源程序 19

基于语言的毕业论文

像语音学,音位学,以及形态学,句法都不好下手建议写社会语言学或是心理语言学方面的,可以深入对比一下中西方思维的差异之类的,应该是一个好的论点加油~~

英语语言学毕业论文哪些题目好写? 一、英语语言学毕业论文题目:1、中西语言方式对比2、 词汇学3、 近代英语语言的衍变二、英语语言学课程由三个知识模块组成:理论启蒙、基础理论、研究方法。 理论启蒙模块内容涉及英语的词汇知识、语音知识、语法知识、修辞知识、语体知识、英语变体、英语学习策略等。 基础理论模块由英语语言学概论执行,内容涉及语言的各种属性、语言学的学科知识、语音学、形态学、句法学、语义学、语用学、社会语言学、语言与心理、语言与文化、语言习得等。 研究方法模块通过介绍语言学研究的设计与分析方法,帮助学生掌握从事语言研究的本领,并直接与本科毕业论文的写作挂钩。 三、毕业论文,泛指专科毕业论文、本科毕业论文(学士学位毕业论文)、硕士研究生毕业论文(硕士学位论文)、博士研究生毕业论文(博士学位论文)等,即需要在学业完成前写作并提交的论文,是教学或科研活动的重要组成部分之一。 语言学英语专业毕业论文哪个方面比较好写? 说实话毕业论文弄好的话还是比较烦人的,准备了两个星期也没弄出来,题目全被否决了,老师又不给现成的题目,选题都麻烦的不得了,最后直接找VIP英语论文网的帮我的,值得庆幸的是我还好找VIP英语论文网的老师帮了忙,还辅导我熟悉了论文,还有答辩的问题,老师也没发现有什么问题,还是顺利的通过了,嘿嘿 对于英语专业的学生来说应该如何学习语言学论文答辩,最好300字以 名词化的语篇功能330诺曼时期法语对英语词汇的影响339浅谈英语虚拟语气的语用功能340浅谈英语虚拟语气及其语用功能345浅析二十世纪计算机英语词汇的构成特点346浅析汉英动物谚语中的文化348浅析英汉语言中的性别歧视现象及其根源349浅析英语禁忌语及其发展352浅析英语无标志被动句356浅议译者能力359认知语言学角度下“within” 的空间隐喻意义365商标英语汉译的原则和方法384体育新闻英语文体研究375社会语言学视野中的网络语言418新闻英语中的语法特点研究423颜色词在英汉互译中的不对应性425移就的审美价值和生成基础426以认知为基础的颜色隐喻研究428隐喻认知功能研究的新视角429隐喻与一词多义的关系438英汉被动句对比研究439英汉宾语类型差异的认知原因440英汉动词非谓语用法之比较研究442英汉否定问句的答句对比研究443英汉汉英双关语及其翻译研究444英汉合成词构词对比研究446英汉名词短语修饰模式比较447英汉拟声词异同探讨448英汉人称代词运用对比研究449英汉人名的比较研究450英汉时间的空间隐喻对比研究451英汉习语的文化共性和个性的研究453英汉颜色词的引申义的文化差别454英汉颜色词跨域对比分析?—以RED和红为例458英汉隐喻性词汇对比研究462英汉语中红绿色文化比较468英语道歉方式研究 语言学论文的研究思路怎么写 语言学论文的困惑:选题是否有新意或价值,选题是否可行,选题如何打开思路。 一、选题原则:选题要新颖,选题路径:学科、方向、领域、课题、话题、问题,解决方法、效果评估。 选题方向:学科前沿课题,特别是学科交叉性课题,有扩展空间和创新余地。 二、误区:前辈研究很多的东西,没有多少好研究的,在前人的基础上不容再攀高峰。 这需要看研究目标、看研究问题,看研究框架,润物细无声,于无声处听惊雷,时代在进补,科学在发展,流水不腐户枢不蠹,多元化思考,发散思维,去研究人家没有研究过的东西一定有价值,同时前辈的研究成果也可去粗取精,继承学术也要与时俱进,有创新才有发展。 三、从选题找创新:面向新的语言现象(网络时代、自媒体时代语言的研究)、面向旧的语言现象(旧有语言的发展和继承,交叉发展进化等),面向特定语言理论(补充、修正、完善)、面向学科交叉点(社会心理学与语用学:语码转换、符号代替等。 )理论研究:寻求共性(语言共性、语用共性、认知共性等)。 应用研究:寻求对策(面向规划政策、实践(教学、口语化应用、翻译、矫正等。 )。 四、那些选题不会有创新:选题太大,太泛,如语法的认知研究,汉语英语系统的对不分析,认知语法初探等。 太微观没有一般理论性价值。 选题太大,容易重复别人的研究。 结论指向容易归结的常识化和空泛化。 怎样写语言学论文 How to improve your English in full detail (my experience) The Third Edition To be good at English is not particularly easy but not terribly hard you start to learn sentences, or new words, the first and also the most important step is the "pronunciation". To pronounce perfectly you should buy a tape to assist you to learn and practise. This is the fundamental step to learn English, ignore or pay no attention to this step; you will not learn proper English and you will find the later steps more and more difficult. If you are solid and accurate in pronunciation, you will find the later steps much easier and you will stand firmly on the right mastering the pronunciation perfectly, it is the time to accumulate new words and useful expressions. Of course start from the simplest words like “hello, hi, you, me, he, him, his, her”, etc.... and expressions like “how are you, how old are you, how do you do”, etc.......... It is essential to write the words on a piece of paper so that you remember them well. Actually everyone had done these at his/her primary school.*************Now let me tell you how I learnt English in China. ******************* Speaking:In China, you won"t have enough chances to speak English. What I did was in the morning I got up early and read aloud the texts in the textbooks. The initial aim was to achieve the same speed as the tape, and then being able to read aloud the texts with the same style as the English announcer in the tape. By doing this, it helps you to consolidate your pronunciation and it is much easier to learn English in China because you can watch some TV channels in English. The more channels in English the better because you can choose your preferred programmes and it helps you to learn English with interests of your own, hence ideal for listening and expression/words is also very useful to write diaries. On writing diaries, it is not useful if you just write it without the care of grammar and spelling. When you finish you should always read your diaries again to check for errors and refine your sentences (. remove repetitive words, use better expressions, and sort out the structure of the sentences).Reading:It is also very important to read story books in English, starting from thin ones with not many new words. Read as many thin books as you possibly can. Little by Little you will want to read thicker books, and your reading ability will get even four elements together:I have to emphasise that when you do all these reading, listening, writing and speaking; you should join them together as a whole, apply the new words you learn from watching TV, reading books to your writing and enhancement of learning comes from getting hold of the possible opportunities to speak English (in China or abroad):In China, you should try to go to local English corner to practise your oral English. If you are abroad then you should make a lot of English or international friends so you always have the opportunity to speak Spoken English, attitude is very important. You need to be very keen and you must not be shy. Never be afraid to make mistakes. Always think that a talk in English with some one will help you can think in this way: since my parents have paid so much to support me to study abroad, the money is partly spent on the international environment for learning English; therefore I ought to try my best to take every opportunity to practise my English. My English has risen to a higher level in the last 2 years, because I talk in English most of the time. Having some international friends is particularly useful indeed. Summing up the activities:I have also been watching TV too. The real improvement lies in staying with international friends long enough and watching a lot of TV such as news, football, dramas, documentaries etc.... Writing diaries also helps me to remember good words, good expressions and practise sentence structuring.*****Now, I have finished talking about how to learn and improve General is the time to switch to "Your Major in English" ******************************* Knowing general English on its own is not going to be sufficient for most people. Skills are as important as mastering another language. General English helps people to communicate with each other in their lives. Technical English helps you to take on challenges to change the world for the highest, to earn money for your living for the people who have a degree in English go abroad to learn something different but heavily based on the language such as Media study, ... 中文系 关于语言学的论文题目 and the relationship between stress, emphasis, accent and prominence is also defined differently;s build a fire. Táá diné "ooljéé". A syllable can be divided into three parts. In English only long vowels and diphthongs can occur in open syllablesOn suprasegmental features 一. Introduction So far we have been talking about phonetic features as they apply to single phonetic segments: phonetic. (Hawaiian) On the other hand. The study of phonological features which applies to groups larger than the single segment, are known as suprasegmental features, such as the syllable or the word. The study of these features is known as prosody.二. Syllable The most obvious prosodic feature in language is the syllable, nucleus, and coda, of which nucleus is a must. A syllable that has no coda is called an open syllable while a syllable with coda is called a closed syllable. It mainly includes syllable, stress, pitch, that is, onset; they must end in a consonant (Navaho): Háá"ishah dididiljah;syllable". In this paper, I will talk about the suprasegmental features in great detail, that is, they always end in a vowel, never a consonant, suprasegmental.) In other languages, syllables are always closed. Let"s briefly discuss the notion of syllables. Like all of our other basic linguistic concepts, although everyone knows what a syllable is, the concept ", tone. The maximal onset principle states that when there is a choice as to where to place a consonant, it is put into the onset rather than the coda, every Hawaiian syllable must begin with a consonant. (Aloha spoken as a single word begins in a glottal stop, and production of stress is generally believed to depend on the speaker using more muscular energy than is used for unstressed syllables. From the perceptual point of view, all stressed syllables have one characteristic in common, and that is “prominence”. Roach has manifested that at least four different factors are important to make a syllable prominent:i) Loudness: Most people seem to feel that stressed syllables are louder than unstressed ones; in other words, loudness is a component of ) Length: The length of syllables has an important part to play in prominence; the syllables which are made longer than the others will be heard as ) Pitch: Pitch in speech is closely related to the frequency of vibration of the vocal folds and to the musical notion of low-pitched and high-pitched notes; if one syllable is said with a pitch that is noticeably different from that of the others, this will have a strong tendency to produce the effect of ) Quality: a syllable will tend to be prominent if it contains a vowel that is different in quality from neighboring vowels. Languages differ in how they use ) In some languages, each syllable is equally stressed or unstressed,as in Cambodian2) the syllable in each word is more stressed. The place of stress is fixed on a certain syllable:1) initial. Finnish, Hungarian and other Finno-Ugric languages2) penultimate. Polish,3) final. ) Complex set of rules. In Bulgarian nouns and verbs have separate sets of rules for stress placement. Hopi (phonetic: first syllable of a two syllable word: síkwi meat; in words of three or more syllables, accent falls on the first long vowel: máamatsi to recognize; or on the first short vowel before a consonant cluster: péntani to write; otherwise it falls on the next to last syllable: wunúvtu stand up) The place of stress is ) In Russian the stress is completely random: xoroshó, xoró) In English the stress is more predictable but still random. Usually a middle syllable of a longer word receives the stress. In two syllable words stress is rando and often renders differences in meaning: project/to project, produce/produce, and insult/ to insult. Some languages have more than one stress per word: English is such a language. In English, words of four syllables or more have a primary and a secondary stress. Some English compounds have phrasal stress on the first element of the compound. Phrasal stress often distinguishes meaning in adjective/noun combinations. Sentence stress in English According to He Shanfen (1992), English sentence stress has two main functions:⑴ to indicate the important words in the sentence; ⑵ to serve as the basis for the rhythmic structure of the sentence. Consequently, in connected English speech, sentence stress usually falls on content ( or lexical) words, which carry the basic meaning of a sentence, . nouns, adjectives, adverbs etc. Those which are usually unstressed in sentences are form (or structural) words, which show grammatical relationships, such as articles,...

Second Language Vocabulary Acquisition Strategies 二语词汇习得策略 [摘 要] 词汇是构成语言的基本单位,词汇习得在语言学习中占有重要地位。英国著名语言学家. Wilkins (1972) 说过:“没有语法,人们不能表达很多东西;而没有词汇,人们则无法表达任何东西。”这就说明了词汇在学习中的重要性。本文旨在分析二语词汇习得策略并应用于不同水平的学习者。学习者根据自己的水平选择正确的习得方法和策略学习词汇,从而提高学习效率和习得效果。 关键字: 二语词汇习得 词汇习得策略 元认知策略 认知策略 Abstract Vocabulary is the basic unit of a language. Language acquisition plays an important role in language learning. Famous linguistics D. A. Wilkins said, “Without grammar, very little can be conveyed, without vocabulary, nothing can be conveyed (Lewis, 1993:16).” It speaks volumes for the importance of vocabulary in language learning. This paper aims to analysis the second language acquisition strategies and applies to different levels of learners. According to the different levels, the learners should choose the proper methods and strategies to promote learning efficiency and acquisition effect. Key words: Second Language Vocabulary Acquisition; Vocabulary Acquisition Strategies; Metacognitive strategy; Cognitive strategy Introduction With economic globalization and multi-polarization of the world, especially the population of the internet, English becomes more and more important, because it is considered as the tool for absorbing and communicating information. As we all known, vocabulary acquisition is one of the most noticed-question of the second language learners. “Vocabulary” appears in the area of linguists’ study. Nowadays, researchers still can not give a complete and reasonable definition of vocabulary. Since 1970s, the second language vocabulary acquisition research has gradually become the hot point and important subject in the second language vocabulary acquisition research area. These researches aim to discuss the efficiency vocabulary memory strategies to promote the memory skills and vocabulary levels. Then how to acquire vocabulary become popular among the researchers. Wenden &Rubin (1987), O’Malley& Chamot (1990) refer to the content of vocabulary acquisition strategies; Rubin (1987) and Oxford (1990) classify the memory strategy to the direct cognitive strategies. Especially, CohenAphek (1981), Porte (1988), O’Malley (1990), Vann (90), Cohen (1990), etc made a basic searching of vocabulary acquisition. In a word, there are various opinions in how to acquire vocabulary. Firstly, it talks about the importance of vocabulary. Secondly, what does it mean to “acquire” a word? This paper mainly aims to the detail analysis of the vocabulary acquisition from three aspects:Meta-cognitive Strategy; Cognitive Strategy and Social or Affective Strategy. Especially, it highlights the effect of the context and rending to vocabulary acquisition. This paper talks about the applications of the vocabulary acquisition strategies. And it puts forward some problems and difficulties of vocabulary acquisition. This paper also discusses the influencing factors to the acquisition. It includes the mother tongue, age, language contact, logical thinking ability, identity degree, and academic motivation . The purpose of this paper is to rise the awareness of English learners that the importance of vocabulary in language learning and the vocabulary acquisition strategies can not be neglected, and each strategies is deeply rooted in its language. Through the analysis of the theory of study, the paper tries to draw the learner’s attention to the strategies of the second language vocabulary acquisition and using the vocabulary in communication. In order to improve the acquisition efficiency, some strategies put into practice are introduced. The first presents the importance of vocabulary, some basic concepts of vocabulary and vocabulary learning, the second part tells what does it mean to know a word, the third part deals with the theory of vocabulary acquisition and presents the factors and differences influencing the vocabulary acquisition. The fourth part is detailed discussion of vocabulary acquisition strategies in different levels of learners. The last part is conclusion. Literature review 1. The importance of vocabulary As the first time, when we go to school and our English teacher will tell us that vocabulary is of great importance in learning English. After several years, we understand words gradually, especially when we study in high school. If we know a little about vocabulary, we may have poor English. That is because the listening, speaking, reading and writing show the necessary of learning vocabulary. Many researchers agree that lexis is at least as important as structure, because it is using wrong words and not wrong grammar that usually breaks down communication. Mistakes in lexis much more often lead to misunderstanding and may be less generously tolerated outside classroom than mistakes in syntax. (Carter, 1987). As Stephen Krashen remarked, “When students travel, they don’t carry grammar books, they carry dictionaries. A significant role of vocabulary in both teaching and learning processes was first stated by Stephen Krashen in The Natural Approach (1985): “Vocabulary is basic for communication. If acquirers do not recognize the meaning of the key words used by those who address them they will be unable to participate in the conversation.” Words are basic tools in human communication; therefore they determine the main part of people’s life-relationships between people and associations with the surrounding world that people live in. The larger one’s vocabulary, the easier it is to express one’s thoughts and feelings. In real communication, correctly and idiomatically used vocabulary can even decrease some structural inaccuracy and grammar errors. (Zhang Jiying, 2002). So learners should enrich and expand their knowledge of words as much as possible in order to communicate effectively in a foreign language. 2. What does it mean to “know” a word? Knowing a word is not a simple phenomenon. In fact, it is quite complex and goes far beyond the word’s meaning and pronunciation. (Zhang Jiying, 2002). Richards (1976) think knowing a word means also knowing the frequency of words and their likely collocates; being aware of the functional and situation limitations that apply; knowledge of the “syntactic behavior”; derivational forms and word class; associative and connotative knowledge; semantic value-breaking down words into minimal units as with componential analysis (see Katz&Fodor1963or Leech1974); knowing the other (possible) meaning associated. Nagy and Scott (2000) identify several dimensions that describe the complexity of what it means to know a word. First, word knowledge is incremental, which means that readers need to have many exposures to a word in different contexts before they “know” it. Second, word knowledge is multidimensional. This is because many words have multiple meanings and serve different functions in different function in different sentences, texts, and even conversations. Third, word knowledge is interrelated in that knowledge of one word connects knowledge of other words. What all of this means is that “knowing” a word is a matter of degree rather than an all-or-nothing proposition (Beck&Mckeown, 1991; Nagy&Scott, 2000). The degree of knowing a word are reflected in the precision with which we use a word, how quickly we understand a word, and how well we understand and use words in different modes and different purpose. The memory strategy, cognitive strategy, social strategy and metacognitve strategy are used more frequently than the affective strategy and compensative strategy. Conclusion This paper has attempted to provide some theories of second language vocabulary acquisition and some strategies. Such as metacognitive strategy, cognitive strategy, and social strategy. However, this paper also put forward some microcosmic strategy. As a matter of fact, vocabulary acquisition should combine the context. In addition, this paper hasn’t mentioned that culture is also an important factor in vocabulary acquisition. In the study of second language vocabulary acquisition, we should pay attention to the process and the acquiring results. This paper focuses on the study of the second language vocabulary acquisition strategies. Bibliography [1] . Chamot. The Learning Strategies of ESL Students. In A. L. Wenden & J. Rubin, (eds), Learner Strategies in Language Learning, 1987. [2] Cater. R. and M. McCarthy. Vocabulary and Language Teaching. New York: Longman, 1987. [3] Nation, L. S. P. Teaching and Learning Vocabulary. New Newbury House Publishers, 1990. [4] O’Malley, J. & Chamot, A. U.. Learning Strategies in Second Language Acquisition [J]. Cambridge University Press, 1990:12-15. [5] 陈桦,张益芳.中国儿童英语词汇记忆策略探究[J].外语学刊,2001(4). [11] 戴曼纯. 论第二语言词汇习得研究[J]. 外语教学与研究,2002(2). [12] 徐德凯.大学英语词汇教学理论与实践[M].长春:吉林出版集团有限责任公司,2009. [6] 王文宇.观念、策略与英语词汇记忆[J].外语教学与研究,1998(1). [13] 文秋芳. 英语学习策略论.上海:上海外语教育出版社,1996. [7] 吴霞,王蔷.非英语专业本科生词汇水平研究. 外语教学与研究,1998(1). [15] 张纪英.英语词汇学教学与研究[M]. 武汉:华中科技大学出版社,2007. [16] 朱厚敏. 英语词汇学习策略研究[M] 长春:吉林大学出版社,2009.

一、英语语言学毕业论文题目: 1、中西语言方式对比 2、 词汇学 3、 近代英语语言的衍变 二、 英语语言学课程由三个知识模块组成:理论启蒙、基础理论、研究方法。理论启蒙模块内容涉及英语的词汇知识、语音知识、语法知识、修辞知识、语体知识

关于c语言的本科毕业论文

对于许多初尝文献综述的科研工作者而言,在写作的时候,常常不知如何动笔,建议你多看看计算机科学与应用这本期刊,,然后自己写吧,

.......论文.....源程序...... 一般不会有人给```

论文写作,先不说内容,首先格式要正确,一篇完整的毕业论文,题目,摘要(中英文),目录,正文(引言,正文,结语),致谢,参考文献。学校规定的格式,字体,段落,页眉页脚,开始写之前,都得清楚的,你的论文算是写好了五分之一。然后,选题,你的题目时间宽裕,那就好好考虑,选一个你思考最成熟的,可以比较多的阅读相关的参考文献,从里面获得思路,确定一个模板性质的东西,照着来,写出自己的东西。如果时间紧急,那就随便找一个参考文献,然后用和这个参考文献相关的文献,拼出一篇,再改改。正文,语言必须是学术的语言。一定先列好提纲,这就是框定每一部分些什么,保证内容不乱,将内容放进去,写好了就。参考文献去中国知网搜索,校园网免费下载。 合适采纳

你得说写什么C语言程序呀?大哥!我大二了,写了《学生档案管理》C语言程序,《职工工资管理》C语言程序等等~~就是不知道你要什么哩~`

基于c的网站毕业论文

兄弟,论文要自己用心写。我是过来人,自己写论文只有好处,没有坏处的。

你看下这篇文章跟网站设计相关的主要内容:1)本课题是结合我院新型轮机模拟器的子专题“主机遥控装置仿真”进行的。仿真对象为中国海运集团总公司所属的集装箱船“新大连”号主机遥控装置。2)主机遥控装置是现代化船舶的核心设备,它能根据发出的指令自动完成主机的停车、起动、换向、调速的程序操作。本文旨在通过分析主机操纵应具备的各项条件、条件之间的逻辑关系,编写一套仿真软件,模拟出主机遥控系统能完成的各种操作 3)本文基于仿真对象MAN BW 12K90MC-C主机遥控装置的特点,对主机遥控系统的基本逻辑功能进行分析后,获得了主机各项操作的逻辑条件。分析了该型主机逻辑回路的组成方式、回路之间的连接方式,以及某些特殊逻辑回路的实现方法。4)用面向对象方法进行主机遥控仿真软件开发,开发过程中,选用VC++为开发环境,以C语言为编程工具,采用了两种不同的策略(直接使用控件,调用函数显示底图)搭建界面,相互比较后表明调用函数显示底图方式更为合理。5)针对软件使用数据需大量存储,根据数据库的利用率、通用性、访问数据库速度以及仿真对象的复杂程度等要求,选用了Microsoft公司的Access数据库为后台数据库。6)数据库的访问则选择了Microsoft提供的DAO数据库对象集合的访问技术。为了使主机遥控系统仿真软件为达到逼真的模拟效果,作者开发了专门用于在界面快速定位的工具软件,用于在特定位置界面动态刷新,将相关遥控系统的设备操纵以动画方式显示。编写遥控系统仿真运算软件,运用了数据结构、计算机图形学、ActiveX等知识。7)本文采用故障树分析法对主机遥控系统的可靠性进行了分析,建立了主机遥控系统故障树实例,能帮助维修人员准确快速地诊断故障性质,确定故障位置,及时排除故障。 8)本课题开发的软件控制逻辑与实机相同,实现了该型主机遥控系统较完整的功能,具有友好的人机交互界面,使复杂的主机操作系统原理变得详细、直观、便于理解。故障树分析法在主机遥控系统的运用,使得系统的故障的原因直观,分析法得出的可靠性结论有较强的指导意义。你看下这篇文章可以吧

280919298

做个毕设100分就有人做?真是值得怀疑?

相关百科

热门百科

首页
发表服务