ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:21.71KB ,
资源ID:7133258      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7133258.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言毕业课程设计报告范例.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言毕业课程设计报告范例.docx

1、C语言毕业课程设计报告范例(此文档为word格式,下载后您可任意编辑修改!)一个好的打字员也必须经过指法练习的磨练才能成才,同样,一个好的指法练习系统对一个打字员也是必不可少的工具。以下是用C语言编写的指法练习系统软件的设计报告。一系统功能本程序完成简单的指法练习全程,实现测试打字过程中返回正确错误个数的功能,能记录用户的最高成绩。部分功能通过类似window界面的下拉式菜单实现,通过键盘能实现各项功能的设置。完全符合课程设计的要求。二系统总框图及函数定义及说明系统总框图: file help setting Uesr recore bgcolor chrcolor time 自定义函数和系统

2、函数: 自定义函数 系统函数welcome()实现欢迎界面textbackground()Textcolor()gotoxy()Window()sleep()randomize()clock()time(NULL)getch()putchar()sound()delay()nosound()kbhit()random()difftime(int,int)exit()cputs()wherex()wherex()menu()画window的窗口界面Selectitem()定义菜单DrawSelectitem()显示主单名RedText(int x,int y,char *z)正常显示菜单Blac

3、kText(int x,int y,char *z)显示选中菜单DrawFrame(int l,int u,int r,int d,int tcolor,int bcolor)画边框函数DrawMl(int n)显示具体下拉选择项目MoveMl(int n,int x)菜单选项的控制,n决定水平项,x决定下拉的选项Enter(int m,int n)菜单选项的具体功能run()按键操作过程Start()开始打字User()输入名字,模式,字数Bgcolor()背景颜色Ccolor()字体颜色Time()设定时间Recore()用户记录Help()系统帮助About()系统信息Exit()退出系

4、统三设计分析程序主要以函数为模块,一个函数实现一个功能或一个设置项,为了阅读的方便,函数里又包含了自定义函数,最后主函数调用自定义的函数,整个过程清晰,各个函数独立性强。算法方面主要是产生随机字符这块要研究一下,其他的大概也没什么好研究的,基本都是输入输出操作。随机字符的产生我利用了数组的下标和random()函数,数组先给赋值了,三个数组就三种情况,达到了设计的要求。还有就是倒计时的实现,因为C语言不能同时执行两条语句,故在打字的过程中和倒计时不能同时实现,为了解决这个问题,我用了kbhit()如果键盘没输入就退出这次输入循环,让倒计时继续执行,当有键盘的输入这次的输入循环也就结束,也是让倒

5、计时继续执行,问题解决。四程序存在的问题由于本人水平有限,本程序存在一些问题,主要有以下几个方面:1 在打字过程中,当打错了字时不能删掉重新输入,只能继续打下去,因为这个过程用的是循环输入,当每入一字就结束了这个字的输入不能修改。2 部分界面的输入没考虑用户各种输入的情况,当用户非正常输入时,系统可能会中止。3 没有考虑当用户选择背景字体颜色都一样时的情况(这种情况导致界面没有东西显示,主要就是背景和字体用了一样的颜色),只是用提示语句提醒用户。五心得体会经过两周的课程设计,对C语言有了更深刻的了解,学到了很多以前没了解过的函数和算法。一直以来就认为C语言就是学编程的基础但用不上场,现在觉得它

6、的确也能用上场了,可以编写软件。虽然只有短短的两周时间,却让我感悟很多。只要肯用心去做每件事情,最终的结果都会让人满意的。六程序源代码#include bios.);*菜单选项的具体功能*void DrawFrame(int left,int up,int right,int down,int textcolor,int backgroundcolor);*画边框*void DrawSelectitem();*显示主菜单*void BlackText(int x,int y,char *z);*选中菜单*void MoveMl(int n,int x);*菜单选项的控制*void run();

7、*具体操作*void Start();char choosec1;int x,y;int first,second;void User();char uname15=quan;int zz=300;void Bgcolor();char bgcol1=1,;void Ccolor();char ccol1=7,;void Time();int m=60;void Recore();FILE *fp;char ; ml3; *选项数*int key; *按键变量*int i,j; char save4096; *保存文本区域空间*char c4096; *清屏专用空间*主函数* main() w

8、elcome(); menu(); run();void welcome()textbackground(BLUE);textcolor(7);window();clrscr();gotoxy(20,8);printf(11111111111111111111111111111111111111111);gotoxy(20,9);printf(11111111111111111111111111111111111111111);gotoxy(20,10);printf(111 111);gotoxy(20,11);printf(111 111);gotoxy(20,12);printf(111

9、 WELCOME TO MY TYPE SYSTEM! 111);gotoxy(20,13);printf(111 Copyright(c)2004 by Quan 111);gotoxy(20,14);printf(111 111);gotoxy(20,15);printf(111 111);gotoxy(20,16);printf(111 111);gotoxy(20,17);printf(11111111111111111111111111111111111111111);gotoxy(20,18);printf(1111111111111111111111111111111111111

10、1111);gotoxy(3,19);printf( Press any key to contine.);getch();*画window的界面*void menu() textbackground(BLUE); window(); clrscr(); gotoxy(1,2); printf(%c,218); *画左上角* for(i=0;i78;i+) printf(%c,196); *画水平直线* printf(%c,191); *画右上角* for(i=3;i=23;i+) gotoxy(1,i); printf(%c,179); *画垂直线* gotoxy(80,i); printf

11、(%c,179); printf(%c,192); *画左下角* for(i=0;i78;i+) printf(%c,196); printf(%c,217); *画右下角* gotoxy(1,1); textcolor(7); for(i=0;i80;i+) cprintf(%c,219); *用符号实现画主菜单的灰色背景区* Selectitem(); *调用选项函数* DrawSelectitem(); *画选项* gettext(c); *保存当前文本区域* gotoxy(3,5); printf(name rightrate); if(fp=fopen(recore.txt,r)=N

12、ULL) gotoxy(3,6); printf(cannot open file); return; fread(&=2; *保存菜单的项数*strcpy(ml1.name,setting(F2);strcpy(ml1.str0,User );strcpy(ml1.str1,Bgcolor );strcpy(ml1.str2,Charcolor );strcpy(ml1.str3,Time );strcpy(ml1.str4,Recore );ml1.n=5;strcpy(ml2.name,Help(F3); *系统帮助* strcpy(ml2.str0,Help topic ); strc

13、py(ml2.str1,About ); ml2.n=2;*显示主单名*void DrawSelectitem() for(i=0;i3;i+) RedText(i,1,mli.name); *显示主菜单名,且首字母为红色*正常显示菜单* RedText(int x,int y,char *z) textbackground(7); *设置背景颜色为浅灰色* gotoxy(3+x*20,y); for(j=0;zj;j+) if(j=0) textcolor(RED); *第一个字母显示红色* else textcolor(BLACK); cprintf(%c,zj); *输出菜单名* *显示

14、选中菜单*void BlackText(int x,int y,char *z) textbackground(14); textcolor(15); gotoxy(3+20*x,y); *定位坐标* cputs(z); *输出菜单名字符串*画边框函数*void DrawFrame(int l,int u,int r,int d,int tcolor,int bcolor) textbackground(bcolor); *背景颜色* textcolor(bcolor); *文本颜色* for(i=l;i=r;i+) *输出背景区域* for(j=u;j=d;j+) gotoxy(i,j);

15、printf(%c,219); *输出背景字符* textcolor(tcolor); *边框颜色* for(i=u+1;id;i+) *在背景区域内输出边框线* gotoxy(l,i); cprintf(%c,179); *垂直线* gotoxy(r,i); cprintf(%c,179); for(i=l+1;ir;i+) gotoxy(i,u); cprintf(%c,196); *水平线* gotoxy(i,d); cprintf(%c,196); gotoxy(l,u); cprintf(%c,218); *左上角* gotoxy(r,u); cprintf(%c,191); *右上

16、角* gotoxy(l,d); cprintf(%c,192); *左下角* gotoxy(r,d); cprintf(%c,217); *右下角* gettext(l+1,u+1,r-1,d-1,save1);*保存边框内区域*显示具体下拉选择项目*void DrawMl(int n) gettext(save); *保存被掩盖的地方* BlackText(n,1,mln.name); *反选显示主菜单* DrawFrame(3+20*n-1,2,3+20*n+19,3+mln.n,0,7); *下拉菜单的边框* for(i=3;i3+mln.n;i+) *输出所选菜单各选项* if(i=3

17、) BlackText(n,i,mln.stri-3); *默认选中第一项* else RedText(n,i,mln.stri-3); *其余各项首字符红色显示* gotoxy(79,1); MoveMl(n,3); *菜单选项的控制*菜单选项的控制,n决定水平项,x决定下拉的选项*void MoveMl(int n,int x) int flag=1; while(flag) gotoxy(79,1); key=bioskey(0); *接收按键* gotoxy(79,1); switch(key) case ESC: *退出循环* puttext(save); *恢复打开菜单前的样子*

18、flag=0; break; case LEFT: *移到左边的选项* puttext(save); *恢复打开菜单前的样子* if(n=0) *往左移动越界的话移到最后一个选项* DrawMl(2); else DrawMl(n-1); flag=0; break; case RIGHT:*移动右边的选项* puttext(save);*恢复打开菜单前的样子* if(n=2)*往右移动越界的话移到第一个选项* DrawMl(0); else DrawMl(n+1); flag=0; break; case UP:*具体选项往上移动* RedText(n,x,mln.strx-3);*输出红色

19、字体* if(x=3)*移到最上面再按上键,就移到最下面* x=3+mln.n-1; else x-;*移动到新的要显示的内容* BlackText(n,x,mln.strx-3);*输出黑色字体* flag=1; break; case DOWN:*具体选项往下移动* RedText(n,x,mln.strx-3); if(x=(3+mln.n-1)*移动到最底下再按下键就移到最上面* x=3; else x+;*移动到新的要显示的内容* BlackText(n,x,mln.strx-3); flag=1; break; case ENTER: puttext(save);*恢复打开菜单前的

20、样子* Enter(n,x-3);*菜单选项的具体功能* flag=0; break; gotoxy(79,1); *菜单选项的具体功能*void Enter(int m,int n) switch(m) case 0:switch(n) *选择了Start菜单选项* case 0:Start();break;*开始打字测试* case 1:Exit();break;*结束* break;*退出系统* case 1: switch(n) *选择了Setting菜单选项* case 0: User();break;*定义用户* case 1: Bgcolor();break;*改变背景颜色* c

21、ase 2: Ccolor();break;*改变字体* case 3: Time();break;*改变测试时间* case 4: Recore();*显示所有用户记录* break; case 2:switch(n) *选择了帮助菜单选项* case 0:Help();break; case 1:About(); break;*退出系统* *按键操作过程*void run() while(1) gotoxy(texty,textx); key=bioskey(0);*接收按键* switch(key) case ESC: case F1: DrawMl(0);break;*file* ca

22、se F2:DrawMl(1);break;*显示下拉菜单setting* case F3:DrawMl(2);break;*显示下拉菜单help* *开始打字*void Start()int j,i,total=0; float right=0.0,wrong=0.0; char ch1=abcdefghijklmnopqrstuvwxyz; char ch2=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz; char ch3=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#

23、$%&*()_+.-=?,|;:; char gch300,out300; char key; char rename10; float rerate; clock_t begin,end; textbackground(bgcol0); textcolor(ccol0); window(); clrscr(); randomize(); gotoxy(1,1); switch(choosec0) case 1: for(j=0;jzz;j+) i=random(26); if(j%77=0) printf(nn263 ); printf(%c,ch1i); outj=ch1i; break;

24、 case 2: for(j=0;jzz;j+) i=random(52); if(j%77=0) printf(nn263 ); printf(%c,ch2i); outj=ch2i; break; case 3: for(j=0;jzz;j+) i=random(94); if(j%77=0) printf(nn263 ); printf(%c,ch3i); outj=ch3i; break; default: for(j=0;jzz;j+) i=random(26); if(j%77=0) printf(nn263 ); printf(%c,ch1i); outj=ch1i; gotox

25、y(2,4); begin=clock(); first=time(NULL); j=0; do x=wherex(); y=wherey(); second=time(NULL); if(difftime(second,first)=1) gotoxy(12,19); printf(%3d,m); m-; first=second; gotoxy(3,19); printf(Resttime:); if(total!=0) gotoxy(18,19); printf(Rightrate:%4.4f%ttpress enter to exit,right(right+wrong); gotox

26、y(3,20); printf(Yourname:); gotoxy(12,20); printf(%s,uname); gotoxy(27,20); printf(right:%3.0f wrong:%3.0f total:%3d ,right,wrong,total); gotoxy(x,y); if(kbhit()!=0) gchj=getch(); putchar(gchj); if(j+1)%77=0) printf(nn263 ); line: if(gchj=015) textbackground(RED); textcolor(GREEN); window(); clrscr(); gotoxy(1,1); printf(11111111111111111111111111111111111111111); gotoxy(1,2); printf(11111111111111111111111111111111111111111); gotoxy(1,3); printf(111 111); gotoxy(1,4); printf(111 111); gotoxy(1,5); printf(111 111); gotoxy(1,6); printf(111111

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

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