中小学生电子助手课程设计.docx

上传人:b****6 文档编号:6590965 上传时间:2023-01-08 格式:DOCX 页数:30 大小:137.80KB
下载 相关 举报
中小学生电子助手课程设计.docx_第1页
第1页 / 共30页
中小学生电子助手课程设计.docx_第2页
第2页 / 共30页
中小学生电子助手课程设计.docx_第3页
第3页 / 共30页
中小学生电子助手课程设计.docx_第4页
第4页 / 共30页
中小学生电子助手课程设计.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

中小学生电子助手课程设计.docx

《中小学生电子助手课程设计.docx》由会员分享,可在线阅读,更多相关《中小学生电子助手课程设计.docx(30页珍藏版)》请在冰豆网上搜索。

中小学生电子助手课程设计.docx

中小学生电子助手课程设计

《高级语言程序设计》

课程设计说明书

中小学生电子助手

 

目录

设计任务·······································(3)

需求分析·····································(4)

系统模块图···································(5)

模块说明·····································(6)

模块1:

函数头·········································(6)

模块2:

主函数·········································(6)

模块3-1:

子函数(建立文件)·································(6)

模块3-2:

子函数(验证用户)·································(7)

模块3-3:

子函数(一元二次方程)·························(7)

模块3-4:

子函数(五子棋)·································(7)

模块3-5:

子函数(四则运算)·································(7)

模块3-6:

子函数(简易通讯录)······························(7)

用户使用说明·································(7)

设计小结····································(9)

参考文献····································(9)

附录(源程序)·································(10)

 

●一.设计任务

(1)要求任务

为中小学生编写一个与中小学生智力活动有关的小型程序,可进行以下程序处理:

①求一元二次方程任意根

②简单屏幕游戏(五子棋)

③小学生四则运算

④简单通信录

(2)创新完成任务

①添加管理员管理全班学生信息

②管理员认可的用户名一人一个密码

③通讯录、管理用户、登陆密码共用一个文件

④程序拥有英文版和中文版,以适应不同操作系统

注:

win7系统不支持中文运行环境!

 

3

●二.需求分析

(1)客户要求:

整个程序应有软件封面、说明和帮助文档功能,并加入用户登录(密码验证)功能程序。

封面上应标明软件名称、版本号、编程者姓名、班级、完成日期和功能菜单。

所有要求用户输入处都应有适当的人机对话。

整个程序设计应按模块化设计的要求,分模块设计和调试,再完成整个系统的调试。

每一模块运行结束都应回到主菜单,正常情况下只能从主菜单中退出,且正常退出后应有适当的告别辞。

(2)软件需要:

拥有软件封面模块、密码验证模块、初始化菜单模块、一元二次方程求解模块、小游戏五子棋模块、四则运算模块、简易通讯录模块,以完成所有需求的任务!

 

4

●三.系统模块图

 

 

5

●四.模块说明

(1)函数头

#include"stdio.h"

#include"conio.h"

#include"graphics.h"

#include"bios.h"

#include"math.h"

#include"dos.h"

#include"ctype.h"

#include"string.h"

调用系统中的相关函数,以确保程序的运行正常。

structstudent

{

charname[20];

charxuehao[11];

charadd[30];

chartel[12];

charmima[20];

}stu[200],shuru,guest;

定义学生结构体

(2)主函数

inti;

定义了一个全局变量i;目的在于在循环主菜单与子菜单的过程中,可以共用一个变量;

while

(1)

用了一个循环语句,目的是能让每次功能操作后都能循环回到主菜单并进行操作;

Switch()

经一个选择语句镶嵌到while

(1)的循环语句中,目的是让用户选择功能进行操作;

(3)子函数(建立文件)

Voidxsxxsr();

功能:

利用文件结构体知识完成文件的建立

6

(4)子函数(验证用户)

Voidyanzheng();

功能:

利用简单C知识完成用户的验证

(5)子函数(一元二次方程)

Voidfunc_ecfc();

功能:

完成一元二次方程的求解包括复数解

(6)子函数(五子棋)

{voidinit();voidplay();voidclose();}

功能:

让用户玩五子棋游戏

(7)子函数(四则运算)

Voidszys();

功能:

完成四则运算的测试

(8)子函数(简易通讯录)

Voidjytxl();

功能:

利用结构体文件知识完成通讯录的显示与建立

●五.用户使用说明

本文截图所用的是英文版程序

注:

请按照程序提示进行操作!

每次输入后都要按回车确定!

主菜单a一元二次方程求根b五子棋游戏c小学四则运算测验

d通讯录e退出系统

用数字输入功能的序号,就可以进入所选功能;

 

7

一元二次函数求解

五子棋游戏

 

8

简易通讯录

●六.设计小结

经过世纪天的艰苦奋斗,我收获了很多。

这几天,我真的很疲惫,因为,基本每时每刻都在思考这个程序,我觉得作为一个编程员真的太辛苦了,但是当我看到中学生电子助手V1.0版的时候,我觉得辛苦是值得的!

我认为编程的时候一定要仔细,耐心,一定要有创新思维,其实编程难就难在思考和调试的过程,一定要思考,一定要不厌其烦的调试,尽情享受编程的乐趣

●七.参考文献

9

[1]谭浩强.C程序设计(第二版).北京:

清华大学出版社,1999

[2]谭浩强.C程序设计(第三版).北京:

清华大学出版社,2010

[3]谭浩强.C程序设计习题集(第三版).北京:

清华大学出版社,2010

●七.附录(中文版源代码)

/*HELLO.C--Hello,world*/

#include"stdio.h"

#include"conio.h"

#include"graphics.h"

#include"bios.h"

#include"math.h"

#include"dos.h"

#include"ctype.h"

#include"string.h"

charch,adm[7]={"123456"};

doublea,b,c,l,x,y,x1,x2;

/********************************************************************/

/********************************************************************/

/************************学生信息文本构建*****************************/

structstudent

{

charname[20];

charxuehao[11];

charadd[30];

chartel[12];

charmima[20];

}stu[200],shuru,guest;

FILE*fp;

intstunum=0;

voidxsxxsr()

{

intnn,i;

if((fp=fopen("10guangxin.txt","ab+"))==NULL)

{

printf("cannotopenthefile\n");

getch();exit(0);

}

for(i=0;i<200;i++)

{

printf("请输入学生信息-姓名:

");

scanf("%s",stu[i].name);

printf("学号:

");

scanf("%s",stu[i].xuehao);

printf("地址:

");

scanf("%s",stu[i].add);

printf("电话号码:

");

scanf("%s",stu[i].tel);

printf("密码:

");

scanf("%s",stu[i].mima);

stunum++;

fwrite(&stu[i],sizeof(stu[i]),1,fp);

printf("是否继续?

是请按1,否请按0\n");

scanf("%d",&nn);

if(nn==0)

break;

}

fclose(fp);

}

/********************************************************************/

/********************************************************************/

/************************读入学生信息*****************************/

voidreadstu()

{

inti;

if((fp=fopen("10guangxin.txt","rb+"))==NULL)

10

{

printf("cannotopenthefile\n");

getch();exit(0);

}

for(i=0;i<200;i++)

{if((fread(&stu[i],sizeof(stu[i]),1,fp))!

=1)break;stunum++;}

}

/********************************************************************/

/********************************************************************/

/************************密码验证********************************/

voidyanzheng()

{

inti,ii,flag=0,flag1=0;

loopmima:

clrscr();

printf("\n\n\n\n\n\n\n\n\t\t\t\t请输入学号:

");

scanf("%s",guest.xuehao);printf("\n");

printf("\n\t\t\t\t请输入密码:

");

scanf("%s",guest.mima);printf("\n");

for(i=0;i<200;i++);

if(strcmp(stu[i].xuehao,guest.xuehao)==0)

{

flag=1;

/*break;*/

}

for(ii=0;ii<200;ii++);

if(strcmp(stu[ii].mima,guest.mima)==0)

{

flag1=1;

/*break;*/

}

if(flag==1&&flag1==1&&ii==i)

{

guest=stu[i-1];

clrscr();

printf("\n\n\n\n\n\n\n\n\t\t\t\t欢迎你!

\n\n");

printf("\t\t\t按任意键继续...");

getch();

}

elseif(flag==1)

{

printf("密码输入错误.\n");

gotoloopmima;

}

elseif(flag==0)

{printf("不存在此学生\n");

gotoloopmima;}

}

/********************************************************************/

/********************************************************************/

/************************菜单选项界面********************************/

voidmenu_s()

{

printf("\n\n");

printf("\t\t|-----------------------------------------|\n");

printf("\t\t|\t菜单选项|\n");

printf("\t\t|-----------------------------------------|\n");

printf("\t\t|\ta.一元二次方程求根|\n");

printf("\t\t||\n");

printf("\t\t|\tb.五子棋游戏|\n");

printf("\t\t||\n");

printf("\t\t|\tc.小学四则运算测验|\n");

printf("\t\t||\n");

printf("\t\t|\td.通讯录|\n");

printf("\t\t||\n");

printf("\t\t|\te.退出|\n");

printf("\t\t||\n");

printf("\t\t|_________________________________________|\n\n");

printf("\t请选择(a,b,c,d或e):

");getch();

}

/********************************************************************/

/********************************************************************/

/************************软件封面************************************/

voidrjfm()

{

printf("\n\n");

printf("\t\t|-----------------------------------------|\n");

printf("\t\t|\t中小学生电子助手|\n");

printf("\t\t|-----------------------------------------|\n");

printf("\t\t|\t姓名:

刘守起|\n");

printf("\t\t||\n");

printf("\t\t|\t学号:

2010146151|\n");

printf("\t\t||\n");

printf("\t\t|\t指导老师:

杨先卫老师|\n");

printf("\t\t||\n");

printf("\t\t|\t单位:

三峡大学|\n");

printf("\t\t||\n");

printf("\t\t|\t|\n");

printf("\t\t||\n");

printf("\t\t|_________________________________________|\n\n");

printf("\n\n\t\t\t按任意键继续...");

}

/********************************************************************/

/********************************************************************/

/********************************************************************/

/************************一元二次函数********************************/

voidfunc_ecfc()

{

intqq;

clrscr();

loopyiyuan:

printf("请输入一元二次的系数a、b、c:

\n");

scanf("%lf%lf%lf",&a,&b,&c);

if((l=b*b-4*a*c)>0)

{

x1=(-b+sqrt(l))/(2*a);

x2=(-b-sqrt(l))/(2*a);

printf("%.2fX*X+%.2fX+%.2f=0的根为:

\n",a,b,c);

printf("X1=%.2f;\tX2=%.2f.\n",x1,x2);

}

elseif(l==0)

{

x1=x2=-b/2/a;

printf("%.2fX*X+%.2fX+%.2f=0的根为:

\n",a,b,c);

printf("X1=X2=%.2f.\n",x1);

}

else

{

x=-b/2/a;

y=sqrt(abs(l));

printf("%.2fX*X+%.2fX+%.2f=0的根为:

\n",a,b,c);

printf("X1=%.2f+%.2fi\n",x,y);

printf("X1=%.2f-%.2fi\n",x,y);

}

printf("\n\n\t\t\tContiune?

Yes-1,N0-0\n");

scanf("%d",&qq);

if(qq==1){clrscr();gotoloopyiyuan;qq=0;}

printf("\n\n\t\t\t按任意键继续...");

}

/********************************************************************/

/********************************************************************/

/********************************************************************/

/************************五子棋游戏********************************/

#defineUP0x4800

#defineDOWN0x5000

#defineLEFT0x4b00

#defineRIGHT0x4d00

#defineESC0x11b

#defineEnter0x1c0d

staticintflag[10][10]={0};

staticintlife=1,Fx;

staticintI,J,yuan1,yuan2;

staticintwin,color1=6,color2=15;

externintinit()

{autointi,j,gdriver=DETECT,gmode;

/*registerbgifont();*/

registerbgidriver(EGAVGA_driver);

initgraph(&gdriver,&gmode,"");

setbkcolor

(2);setlinestyle(1,0,3);

setcolor(YELLOW);

outtextxy(50,10,"PressESCtoquit!

!

!

!

!

");

outtextxy(400,460,"Madebyweida!

!

Thankyou!

");

outtextxy(10,60,"NOWis:

");

for(i=1;i<=10;i++)

for(j=1;j<=10;j++)

rectangle(100+(i-1)*40,40*j,100+(i-1)*40+40,40*j+40);

return0;

}

staticvoidDrawcircle(intx,inty,intcolor)

{setcolor(YELLOW);setlinestyle(1,0,1);setfillstyle(1,color);

circle(x,y,15);floodfill(x,y,YELLOW);

}

staticvoidbar0(intcolor)

{setfillstyle(1,2);bar(10,70,50,110);

Drawcircle(30,90,color);

}

staticintNew_one(intcolor)

{intcolo=color,i=0,j=0;

for(i=0;i<=9;i++)

{

for(j=0;j<=8&&flag[i][j]!

=0;j++)

if(i==9&&j==8)return0;

if(flag[i][j]==0)break;

}

Drawcircle(40*j+120,(i+1)*40+20,colo);

I=j,J=i;

if(colo==color1)yuan1=0,flag[i][j]=1;

elseyuan2=0,flag[i][j]=2;

return1;

}

staticintWIN(intx,inty)

{int_x=x,_y=y,i,j,k;

for(i=1;i<=5;i++)/*---------------*/

{for(j=1;j<=i-1;j++)

{if((_x-80)/40-1-j<0)gotoloop1;

if(flag[(_y-20)/40-1][(_x-80)/40-j]==flag[(_y-20)/40-1][(_x-80)/40-1-j])

continue;

elsebreak;

}

for(k=0;k<=4-i;k++)

{if((_x-80)/40-1+k>9)gotoloop1;

if(flag[(_y-20)/40-1][(_x-80)/40-1+k]==flag[(_y-20)/40-1][(_x-80)/40+k])

continue;

elsebreak;

}

if(j==i&&k==5-i)return1;loop1:

;

}

for(i=1;i<=5;i++)

{for(j=1;j<=i-1;j++)

{if((_y-20)/40-1-j<0)gotoloop2;

if(flag[(_y-20)/40-j][(_x-80)/40-1]==flag[(_y-20)/40-1-j][(_x-80)/40-1])

con

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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