c语言报告.docx

上传人:b****5 文档编号:30369825 上传时间:2023-08-13 格式:DOCX 页数:40 大小:82.12KB
下载 相关 举报
c语言报告.docx_第1页
第1页 / 共40页
c语言报告.docx_第2页
第2页 / 共40页
c语言报告.docx_第3页
第3页 / 共40页
c语言报告.docx_第4页
第4页 / 共40页
c语言报告.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

c语言报告.docx

《c语言报告.docx》由会员分享,可在线阅读,更多相关《c语言报告.docx(40页珍藏版)》请在冰豆网上搜索。

c语言报告.docx

c语言报告

 

C语言程序设计课程设计报告

 

题目:

c程序简化编写器程序设计

设计者:

**

专业班级:

****班

学号:

************

指导教师:

**

所属系部:

电子信息工程系

 

2013年07月10日

辽东学院信息技术学院

c程序简化编写器程序设计说明文档

题目(问题)描述

本系统主要实现简单的c程序编辑,通过本系统的引导,使用者可以快速编写c程序,由于本系统会自动添加和格式化敏感词汇和字符,所以在编辑简单程序或录入已经写在书面材料上的程序时会节省很多时间。

模块结构图

 

1:

预处理编辑

通过引导,先后完成文件名,头文件,常量声明,全局变量,

2主函数编辑

先完成变量声明,然后调用其他函数组编辑,ifwhilefor

会套用主函数编辑函数做子函数编辑函数,调用结束后分级返回

返回至主函数编辑以上级时,结束main();

3.头文件编辑

头文件选用和写入

4.变量声明

声明变量,并记录变量名至变量目录

5.其他函数编辑和基本语句编辑

模块化编辑不同函数和基本语句编辑,功能因函数种类而异;

系统流程图

 

 

重要数据的数据结构设计

typedefstructblml//变量目录

{

intin,cha,floa/*,qit*/;

charblnameint[50][15];//int族

charblnamechar[50][15];//char族

charblnamefloat[50][15];//float族

/*charblnameqita[50][15];*/

}BLML;

函数声明列表

voidzhu_cd();//主菜单

voidzhu(intmlfw,charname[],charfun[]);//函数编辑

charbl(charch[],intb2,intmlfw);//变量声明

voidforr(intmlfw);//for的实现

voidfz(intmlfw);//赋值的实现

voidiff(intmlfw);//if的实现

voidmldy(intmlfw,inttyp);//函数目录打印

voidtou(intmlfw);//预处理

voidxiywen();//小原文写入

voidzhu(intmlfw,charname[],charfun[]);//主函数编辑与子函数嵌套

voidzhu_cd(charch[],charch1[]);//主函数动态目录

voidmlxr(charch,inta,intmlfw);//函数目录写入

voidwhiled(intmlfw);//while的实现

voidwha(intmlfw);//while()

voidwhb(intmlfw);//do

voidscann(intmlfw);//scanf();引导

使用说明

本系统较为简单,运行系统时要参照系统流程图顺序;

1)输入文件名

2)选择头文件

3)输入常量

4)全局变量声明

5)主函数编写(安提示操作)

6)完成

总结

通过对c语言的学习我已经学会了许多的代码和很多的文本函数、图形函数,也通过这些代码编程出了c程序编写器,不仅锻炼了我对c语言的认识同时,使我了解了一些课堂没学到的函数,获得了很多程序设计的经验,补上了一些没搞懂的知识漏洞。

而且我所编的编写器所输出的文件是.c文件,要保证本程序没格式错同时还要保证,输出程序的格式没有错误,这使得我更深入的了解c语言的编写格式。

 

程序代码:

#include

#include

#include

#defineDASHENsunxun

#defineHSSX50//函数上线

 

typedefstructblml

{

intin,cha,floa/*,qit*/;

charblnameint[50][15];

charblnamechar[50][15];

charblnamefloat[50][15];

/*charblnameqita[50][15];*/

}BLML;

structhsml

{

intgs;

charhsname[15];

chartype[15];

charxsbllb[100];

};

 

intblt=1,i=1;//变量声明用全局变量

intmlb=1,mli=0;//目录用全局变量

intzit1=0;//子函数个数

charfname[23];

structhsmlhsml1[HSSX];//变量目录

BLMLml[HSSX];//子函数目录

 

voidqt(char[],intmlfw);//其他

voidzhu_cd();//主菜单

voidzhu(intmlfw,charname[],charfun[]);//函数编辑

charbl(charch[],intb2,intmlfw,inttt,charcv[]);//变量声明

voidforr(intmlfw);//for的实现

voidfz(intmlfw);//赋值的实现

voidiff(intmlfw);//if的实现

voidmldy(intmlfw,inttyp);//函数目录打印

voidtou(intmlfw);//预处理

voidxiywen();//小原文写入

voidzhu(intmlfw,charname[],charfun[]);//主函数编辑与子函数嵌套

voidzhu_cd(charch[],charch1[]);//主函数动态目录

voidmlxr(charch,inta,intmlfw,inttt);//函数目录写入

voidwhiled(intmlfw);//while的实现

voidwha(intmlfw);//while()

voidwhb(intmlfw);//do

voidprintt(intmlfw);//scanf();引导

voidscann(intmlfw);//scanf();引导

voidkuoz_cd(charch[],charch1[]);

voidkuoz(intmlfw,charname[],charfun[]);

 

voidzzzsm(intmlfw,charname[],charfun[],inthshuoxc)

{

FILE*p;charch;

if(hshuoxc)zhu_cd(name,fun);

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}

bl(name,1,mlfw,1,"函数");

fprintf(p,"\n%s%s(\n",hsml1[mlfw].type,hsml1[mlfw].hsname);fclose(p);

printf("1,编辑形参,@结束\n");

ch=getchar();

while(ch!

='@')

{if(ch!

='1')ch=getchar();

if(ch=='1')

{//形参编辑

ch=bl(name,blt,mlfw,2,"形参");hsml1[mlfw].gs++;

}

if(ch=='1'){if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}fputs(";",p);fclose(p);}

}

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}

fputs(");\n",p);fclose(p);///子函数说声明

}

 

voidzzzhs(intmlfw,charname[],charfun[])///////////////////////////////////////////////子函数编辑

{

charch;charc='"';

FILE*p;

zhu_cd(name,fun);

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}

fprintf(p,"\n%s%s(\n",hsml1[mlfw].type,hsml1[mlfw].hsname);fclose(p);

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}

fprintf(p,"%s",hsml1[mlfw].xsbllb);

fputs(")\n{",p);fclose(p);

 

ch=getchar();

while(ch!

='@')

{

if(ch!

='\n')

{

switch(ch)

{

case'1':

bl(name,0,mlfw,0,0);system("cls");zhu_cd(name,fun);printf("第%d项操作完成!

\n",i++);break;

case'2':

iff(mlfw);system("cls");zhu_cd(name,fun);printf("第%d项操作完成!

\n",i++);break;

case'3':

forr(mlfw);system("cls");zhu_cd(name,fun);printf("第%d项操作完成!

\n",i++);break;

case'4':

fz(mlfw);system("cls");zhu_cd(name,fun);printf("第%d项操作完成!

\n",i++);break;

case'5':

whiled(mlfw);system("cls");zhu_cd(name,fun);printf("第%d项操作完成!

\n",i++);break;

case'6':

scann(mlfw);system("cls");zhu_cd(name,fun);printf("第%d项操作完成!

\n",i++);break;

case'7':

printt(mlfw);system("cls");zhu_cd(name,fun);printf("第%d项操作完成!

\n",i++);break;

case'8':

break;

case'9':

kuoz(mlfw,name,fun);break;

case'0':

qt(name,mlfw);system("cls");zhu_cd(name,fun);printf("第%d项操作完成!

\n",i++);break;

default:

break;

}

}

ch=getchar();

}

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}

fputs("\n}\n",p);fclose(p);

}

voidzihsbj()

{

intmlfw1=2,j;charch,name[]={"仔仔"},fun[HSSX];

printf("1,声明子函数,@结束或跳过\n");

ch=getchar();

while(ch!

='@')

{

if(zit1>HSSX){

ch='@';

printf("错误!

%d个子函数是目前的上限\n更多子函数请用%d上限版\n本程序不会终止\n",HSSX-2,2*HSSX-4);

printf("为更多完成子函数请按3在“其他”中编写\n");

ch=getchar();

if(ch=='3')qt(name,0);

}

if(ch=='1')

{

zzzsm(mlfw1++,"仔仔","子函数",0);

zit1++;

}

printf("1,声明子函数,@结束或跳过\n");

if(zit1<=HSSX)ch=getchar();

}

for(j=2;j

{

strcat(fun,hsml1[j].hsname);

zzzhs(j,name,fun);

}

printf("为完成在其他中声明的子函数请按3在“其他”中编写\n");

ch=getchar();

if(ch=='3')qt(name,0);

}

 

///////////////////////////////////////////////////////////////////////////////////////////////////////扩展包

voidkuoz_cd(charch[],charch1[])//扩展数动态目录//////////////////////////////////////////////////////////////

{

printf("一起来编%s吧!

选择所要的操作\n",ch1);

printf("=====================================\n");

printf("1.暂无\n2.暂无\n3.暂无\n4.暂无\n5.暂无\n6.暂无7暂无8.暂无9.扩展包(暂无)\n");

printf("@.返回上层\n");

}

 

voidkuoz(intmlfw,charname[],charfun[])//扩展函数编辑二级

{

charch;/////可以此为模板做下级菜单(函数级别降一级)

FILE*p;

kuoz_cd(name,fun);//菜单屏显二级

if((p=fopen(fname,"a"))==NULL)

{

printf("文件!

错误\n");

exit(0);

}

fclose(p);

ch=getchar();

while(ch!

='@')

{

if(ch!

='\n')

{

switch(ch)

{

case'1':

case'2':

case'3':

case'4':

case'5':

case'6':

case'7':

case'8':

case'9':

case'0':

default:

break;

}//一级

}ch=getchar();

}

zhu_cd(name,fun);

}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

intgszf()//格式字符提取

{

FILE*p;

intb1=1,b2=0;charch;

ch=getchar();

if((p=fopen(fname,"a"))==NULL)

{

printf("文件!

错误\n");

exit(0);

}

while(b1)

{

if(ch!

='\n'){

if(ch=='/')

{

ch=getchar();

if(ch=='*')

b1=0;elsefputs("/",p);

}

else

fputc(ch,p);if(ch=='%')b2++;

}

ch=getchar();

}fclose(p);

returnb2;

}

voidsclb(intg,intintt)//输出列表

{

FILE*p;inttpsclb=0,jj=1,oo;

oo=g;

if(g){

if(intt)printf("请输入输出列表包含的第一个变量名,“/*”结束\n1.");elseprintf("请输入输出列表包含的第一个变量名的地址,“/*”结束\n1.");

for(;g>0;g--)

{

xiywen();

if(g!

=1){if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}if(oo)fputs(",",p);fclose(p);jj++;}

printf("%d.",jj);

tpsclb++;

if(tpsclb==10)tpsclb=0;

}

}

}

 

voidscann(intmlfw)//scanf();引导

{

charc='"';intsct1;FILE*p;

mldy(mlfw,1);

mldy(mlfw,2);

mldy(mlfw,3);

printf("===================================================\n\n原型scanf(“格式字符”,输出列表)\n请输入格式字符“/*”结束\n");

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}fputs("scanf(",p);fputc(c,p);fclose(p);

sct1=gszf();

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}fputc(c,p);fputs(",",p);fclose(p);

sclb(sct1,1);

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}fputs(");\n",p);fclose(p);

}

voidprintt(intmlfw)//scanf();引导

{

charc='"';intsct1;FILE*p;

mldy(mlfw,1);

mldy(mlfw,2);

mldy(mlfw,3);

printf("===================================================\n\n原型printf(“格式字符”,输出列表)\n请输入格式字符“/*”结束\n");

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}fputs("printf(",p);fputc(c,p);fclose(p);

sct1=gszf();

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}fputc(c,p);fputs(",",p);fclose(p);

sclb(sct1,0);

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}fputs(");\n",p);fclose(p);

}

 

voidwha(intmlfw)//while()

{

FILE*p;

printf("输入循环条件,输入‘/*’结束\n");

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}fputs("while(",p);fclose(p);

xiywen();

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}fputs(")",p);fclose(p);

}

voidwhb(intmlfw)//do

{

FILE*p;

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}fputs("do",p);fclose(p);

 

}

 

voidwhiled(intmlfw)//while的实现

{

FILE*p;

charname[]={"外奥"},fun[]={"while循环"};

intwh=1;charch;

system("cls");

printf("while编辑\n==============================================\n1.while(){}型\n2.do{}while()型\n==========================================\n");

mldy(mlfw,1);

mldy(mlfw,2);

mldy(mlfw,3);

printf("以上为变量目录\n============================================\n");

ch=getchar();

while(ch!

='1'&&ch!

='2')ch=getchar();if(ch!

='1')wh=0;

if(wh)

wha(mlfw);

else

whb(mlfw);

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}fputs("\n{\n",p);fclose(p);

zhu(mlfw,name,fun);

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}fputs("\n}",p);fclose(p);

if(!

wh){wha(mlfw);if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}fputs(";\n",p);fclose(p);}

if((p=fopen(fname,"a"))==NULL){printf("文件!

错误\n");exit(0);}fputs(";\n",p);fclose

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 广告传媒

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1