您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > ATM取款机系统&学生学籍管理系统-实现及代码-C语言版(最终完成版)
XXXX大学课程设计课程名称:程序设计语言课程设计设计题目:ATM取款机系统实现及分析经典程序代码学院:信息工程与自动化学院专业:计算机科学与技术年级:学生姓名:指导教师:日期:教务处制信自院程序设计语言课程设计2课程设计任务书学院专业年级学生姓名:学号:课程设计题目:ATM取款机系统实现及分析经典程序代码课程设计主要内容:(1)、读程序。要求学生读两个200行以上的程序,贪吃蛇、学生学籍管理系统。通过读程序,学生应了解大型程序的编写方法、程序的整个结构及框架设计、变量命名的规范、程序的书写规范、及常见问题的算法实现。(2)、写程序。要求学生完成一个管理类的综合型设计:如银行ATM模拟存取系统。要求学生进行数据结构的设计、对函数进行模块化结构化设计、并灵活运用数组、结构体、指针、文件等多种数据类型设计开发系统。通过写程序,学生应掌握用计算机程序设计语言解决实际问题的方法、步骤。该系统应该具有以下功能:1)账户管理功能a)开户:完成账户注册的功能。即输入账户的相关信息。要求账户号长度12位,密码长度不得低于6位,必须使用暗码,账户信息保存到数组中,账户信息最后保存到相关文件中;b)账户登录:输入账户、密码,验证是否能够登录该系统;c)密码修改:输入两次相同的密码方可修改。2)账务管理功能a)存款:每笔存款金额大于0元小于等于1000元,以50元为基本单位。需记录交易日期和时间。b)取款:每笔取款金额大于等于100元小于等于2000元,以50元为基本单位。需记录交易日期和时间。c)转账:每笔转账金额大于等于100元小于等于5000元。需记录交易日期和时间。3)查询功能a)存款记录查询b)取款记录查询c)转账记录查询d)余额查询4)文件功能及其它功能:数据都应保存在相关文件中。设计指导教师(签字):教学基层组织负责人(签字):年月日信自院程序设计语言课程设计3目录一、读程序题部分(贪吃蛇)1、程序的功能………………………………………第5页2、主函数分析………………………………………第5页3、函数的调用关系…………………………………第5页4、数据变量定义作用………………………………第5页5、主要函数的功能、流程图………………………第5页6、程序的不足及改进………………………………第7页7、加上注释、改进后的完整代码…………………第7页二、读程序题部分(学生学籍管理系统)1、程序的功能………………………………………第13页2、主函数分析………………………………………第13页3、函数的调用关系…………………………………第13页4、数据变量定义作用………………………………第14页5、主要函数的功能、流程图………………………第14页6、程序的不足及改进………………………………第15页7、加上注释、改进后的完整代码…………………第16页三、编程题部分1、设计内容…………………………………………第23页2、设计………………………………………………第23页(1)数据分析…………………………………………第23页信自院程序设计语言课程设计4(2)程序流程分析……………………………………第24页3、编码及调试………………………………………第34页4、程序运行截图……………………………………第53页四、总结与体会………………………………………第58页五、参考文献…………………………………………第60页一、读程序题部分(贪吃蛇)信自院程序设计语言课程设计51、程序的功能设计游戏界面,包括画墙、画蛇、画食物,并且设置蛇和食物的属性,编写蛇的运动方式和游戏方式。2、主函数分析主函数中前两行与编写图形程序有关,第三行中调用Speed函数,把Speed函数的返回值付给变量speed;第五行dwall函数的作用是画墙,函数中又调用wall函数来画墙上的砖块3、函数的调用关系4、数据变量定义作用定义食物的横坐标food.x和食物的纵坐标food.y可以有效的随机设置食物出现在界面的任何地方;定义snake.life表示蛇的生死以否,好判断是否结束游戏snake.dir=1;/*方向向右*/定义snake.x[0]和snake.y[0]表示蛇头的坐标,在后面蛇撞墙死的问题上用的到蛇头的坐标;定义蛇的节数snake.node,方便蛇每吃到食物节数增加;定义snake.level,显示蛇的闯关数5、主要函数的功能、流程图主函数功能:dwall():画墙wall():画组成墙的砖Speed():选择贪吃蛇的速度信自院程序设计语言课程设计6line():画线函数,画砖的线条gotoxy():定位坐标Play():调用各函数,开始完游戏GameOver():结束游戏流程图:6、程序的不足及改进信自院程序设计语言课程设计7(1)不足:没有障碍墙,游戏过于简单;没有游戏奖励,游戏趣味性不高;改进:设置障碍墙,蛇撞到墙也死;代码:设置障碍墙for(j=200;j=300;j+=10){wall(j,300);/*画横的障碍墙*/}for(j=300;j=350;j+=10){wall(300,j);/*画竖的障碍墙*/}蛇撞到障碍墙死的代码if(snake.y[0]==300&&snake.x[0]200&&snake.x[0]=300)/*蛇是否撞到横的障碍墙*/{GameOver();/*游戏结束*/snake.life=1;/*蛇死*/break;}if(snake.x[0]==300&&snake.y[0]300&&snake.y[0]=350)/*蛇是否撞到竖的障碍墙*/{GameOver();/*游戏结束*/snake.life=1;/*蛇死*/break;}(2)不足:没有游戏奖励,游戏趣味性不高;改进:增加生命值,蛇每吃到三颗食物,则增加一个生命值;代码:定义food.level,在Play函授中初始化,在设置蛇每吃到一颗食物就增长一节身体的代码后加上if(snake.node%3==0){snake.level++;/*除第一关外,其余每吃3颗食物,就增加一个生命值*/gotoxy(5,2);printf(Thelevelis%d,snake.level);/*左上角显示出生命值(级别)*/}7、加上注释、改进后的完整代码#includegraphics.h#includestdlib.h#includedos.h信自院程序设计语言课程设计8#includeconio.h#defineLEFT0x4b00#defineRIGHT0x4d00#defineDOWN0x5000#defineUP0x4800#defineESC0x011b#defineN100/*贪吃蛇的最大长度*/#defineP0x1970/*定义暂停功能键*/inti,key;intspeed;/*游戏速度*/structFOOD{intx;/*食物的横坐标*/inty;/*食物的纵坐标*/intflag;/*标志是否要出现食物*/}food;structSnake{intx[N];inty[N];intnode;/*蛇的节数*/intdir;/*蛇移动方向*/intlife;/*标志是死是活*/intlevel;/*定义生命值(级别)*/}snake;voidGameOver();/*结束游戏*/voidPlay();/*玩游戏过程*/voiddwall();/*画墙*/voidwall(intx,inty);/*画组成墙的砖*/intSpeed();/*选择贪吃蛇的速度*/main(){intgdriver=DETECT,gmode;initgraph(&gdriver,&gmode,);speed=Speed();/*将函数返回值赋给speed*/cleardevice();/*清屏*/dwall();/*开始画墙*/Play();/*开始完游戏*/getch();closegraph();/*退出图形界面*/}voidwall(intx,inty)信自院程序设计语言课程设计9{intsizx=9;intsizy=9;setcolor(15);/*白色画砖的上边和左边*/line(x,y,x+sizx,y);line(x,y+1,x+sizx-1,y+1);line(x,y,x,y+sizy);line(x+1,y,x+1,y+sizy-1);setcolor(4);/*红色画砖的右面和下面*/line(x+1,y+sizy,x+sizx,y+sizy);line(x+2,y+sizy-1,x+sizx,y+sizy-1);line(x+sizx-1,y+2,x+sizx-1,y+sizy-1);line(x+sizx,y+1,x+sizx,y+sizy);setfillstyle(1,12);/*用淡红色填充砖的中间部分*/bar(x+2,y+2,x+sizx-2,y+sizy-2);}voiddwall()/*用前面画好的砖来画墙*/{intj;for(j=50;j=600;j+=10){wall(j,40);/*画上面墙*/wall(j,451);/*画下面墙*/}for(j=40;j=450;j+=10){wall(50,j);/*画左面墙*/wall(601,j);/*画右面墙*/}for(j=200;j=300;j+=10){wall(j,300);/*画横的障碍墙*/}for(j=300;j=350;j+=10){wall(300,j);/*画竖的障碍墙*/}}intSpeed()/*选择贪吃蛇运行的速度*/{intm;gotoxy(20,10);printf(level1\n);gotoxy(20,12);printf(level2\n);gotoxy(20,14);信自院程序设计语言课程设计10printf(level3\n);gotoxy(20,16);/*增加一个速度选项*/printf(level4\n\t\tpleasechoose:);scanf(%d,&m);switch(m){case1:return60000;case2:return40000;case3:return20000;case4:return10000;default:cleardevice();Speed();}}voidPlay(void)/*游戏实现过程*/{srand((unsignedlong)time(0));food.flag=1;/*1表示需出现新食物,0表示食物已存在*/snake.life=0;/*标志贪吃蛇活着*/snake.dir=1;/*方向向右*/snake.x[0]=300;snake.y[0]=240;/*定位蛇头初始位置*/snake.x[1]=300;snake.y[1]=240;snake.node=2;/*贪食蛇节数*/snake.level=1;/*生命值(级别)初始化*/do{while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/{if(food.flag==1)/*需要出现新食物*/do{food.x=rand()%520+60;food.y=rand()%370+60;food.flag=0;/*标志已有食物*/}while(food.x%10!=0||food.y%10!=0);if(food.flag==0)/*画出食物*/{setcolor(WHITE);/*设置食物的颜色*/setlinestyle(3,0,3);rectangle(food.x,food.y,food.x+10,food.y+10);}for(i=snake.node-1;i0;i--)/*实现蛇向前移动*/信自院程序设计语言课程设计11{snake.x[i]=snake.x[i-1];snake.y[i]=snake.y[i-1];}switch(snake.dir){case1:snake.x[0]+=10;break;/*向右移*/case2:snake.x[0]-=10;break;/*向左移*
本文标题:ATM取款机系统&学生学籍管理系统-实现及代码-C语言版(最终完成版)
链接地址:https://www.777doc.com/doc-3324110 .html