课程设计报告封皮

合集下载

课程设计封皮格式要求

课程设计封皮格式要求

课程设计封皮格式要求一、教学目标本课程的教学目标是使学生掌握XX学科的基本知识,理解XX学科的基本概念、原理和方法,能够运用XX学科的知识解决实际问题。

具体来说,知识目标包括:1.掌握XX学科的基本概念、原理和方法;2.了解XX学科的发展历程和现状;3.能够运用XX学科的知识解决实际问题。

技能目标包括:1.能够运用XX学科的方法进行问题分析和解决;2.能够进行XX学科的实验操作和数据分析;3.能够撰写XX学科的相关报告和论文。

情感态度价值观目标包括:1.对XX学科产生浓厚的兴趣和热情;2.培养学生的科学思维和创新能力;3.培养学生的团队合作和沟通能力。

二、教学内容根据课程目标,本课程的教学内容主要包括XX学科的基本概念、原理和方法,以及XX学科的应用和实践。

具体来说,教学大纲的安排如下:1.第一部分:XX学科的基本概念和原理,包括XX概念的定义、XX原理的阐述等;2.第二部分:XX学科的方法和技术,包括XX方法的介绍、XX技术的应用等;3.第三部分:XX学科的应用和实践,包括XX案例的分析、XX实验的操作等。

具体的教材章节和内容如下:1.第1章:XX学科的基本概念,介绍XX学科的基本定义、特点和意义;2.第2章:XX学科的原理,阐述XX学科的基本原理和规律;3.第3章:XX学科的方法,介绍XX学科的常用方法和技巧;4.第4章:XX学科的案例分析,分析XX学科在实际中的应用案例;5.第5章:XX学科的实验操作,介绍XX学科的实验设备和操作步骤。

三、教学方法为了达到课程目标,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等。

具体来说,教学方法的安排如下:1.讲授法:通过教师的讲解,向学生传授XX学科的基本知识和原理;2.讨论法:通过小组讨论,引导学生深入思考和理解XX学科的问题;3.案例分析法:通过分析XX学科的实际案例,让学生了解XX学科的应用和实践;4.实验法:通过实验操作和数据分析,让学生掌握XX学科的方法和技术。

机械课程设计报告封面

机械课程设计报告封面

机械课程设计报告封面一、课程目标知识目标:1. 学生能理解并掌握机械基本原理,包括杠杆、滑轮、齿轮等简单机械的构造及作用。

2. 学生能够描述并分析日常生活中的机械装置,理解其工作原理及在工程中的应用。

3. 学生掌握基础的机械制图知识,能够阅读并绘制简单的机械图纸。

技能目标:1. 学生能够运用所学知识,设计并制作简单的机械装置,如小型的起重机或风力车。

2. 学生通过实际操作,培养动手能力和问题解决能力,提高创新意识和团队协作能力。

3. 学生能够运用机械制图软件,进行基础的机械设计和绘图。

情感态度价值观目标:1. 学生培养对机械工程学科的兴趣和好奇心,增强对科学探究的热情。

2. 学生在学习过程中,培养耐心、细致的工作态度,学会面对困难和挑战。

3. 学生通过课程学习,认识到机械在生活中的重要作用,激发为社会发展和创新贡献力量的责任感。

二、教学内容本课程教学内容主要包括以下几部分:1. 简单机械原理:讲解杠杆、滑轮、齿轮等基本机械原理,结合教材相关章节,通过实例分析使学生深入理解。

2. 机械制图基础:教授制图的基本知识,如三视图、剖面图等,指导学生运用制图软件进行实际操作。

3. 生活中的机械装置:分析日常生活中的机械装置,如门锁、自行车等,探讨其工作原理和应用。

4. 实践操作:组织学生分组设计并制作简单的机械装置,如小型起重机或风力车,培养学生的动手能力和团队协作精神。

5. 机械设计:引导学生运用所学知识,进行简单的机械设计,提高学生的创新意识和问题解决能力。

教学内容安排如下:第一周:简单机械原理学习及实例分析;第二周:机械制图基础知识和软件操作;第三周:生活中的机械装置分析;第四周:实践操作,分组设计并制作简单机械装置;第五周:总结与展示,学生分享设计成果。

教学内容与教材紧密关联,确保学生能够系统地学习和掌握机械课程的核心知识。

三、教学方法本课程将采用以下多样化的教学方法,以激发学生的学习兴趣和主动性:1. 讲授法:在讲解简单机械原理、机械制图基础等理论知识时,以清晰的逻辑和生动的语言,结合教材内容进行系统讲解,帮助学生建立扎实的理论基础。

课程设计报告封皮

课程设计报告封皮

河南理工大学
计算机科学与技术学院
课程设计报告
2015— 2016学年第二学期
课设名称C语言程序设计课程设计课设题目学生成绩管理系统
学生姓名张威严
学号
专业班级
指导教师
年月日
目录
1.设计目的
2.总体设计
3.详细设计
4.调试与测试
5.源程序清单和执行结果
6.小结
1.设计目的
1.1 设计要求功能
(1)能按学期、按班级完成对学生成绩的录入、修改
(2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序
(3)能查询学生成绩,不及格科目及学生名单
(4)能按班级输出学生的成绩单。

(最新版)课程设计报告封面及格式

(最新版)课程设计报告封面及格式

(最新版)课程设计报告封面及格式重庆科技学院《面向对象程序设计》课程设计报告学院:_电气与信息工程学院_ 专业班级: 计科1103学生姓名:兰倩学号:设计地点________计算机自主学习中心________ __ 设计题目:___公司员工信息管理系统设计___________________完成日期:2013 年1月18日指导教师评语: ______________________ ___________________________________________________ __________________________________ __________________________________ __________________________________ __________________________________ _________________________________________ _成绩:______ __________ 指导教师:________ ________ 重庆科技学院课程设计任务书设计题目:公司员工信息管理系统设计学生姓名课程名称地点设计内容及要求兰倩面向对象程序设计I304/I306 专业班级计科1103 起止时间2013年1月7日~1月18日1)问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。

其中,雇员分为经理、技术人员、销售人员和销售经理。

设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。

2)功能要求添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。

查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;显示功能:可显示当前系统中所有记录,每条记录占据一行。

课程设计模板封面

课程设计模板封面

课程设计模板封面一、教学目标本课程的教学目标是使学生掌握XX学科的基本知识,理解XX学科的基本概念和原理,培养学生运用XX学科知识分析和解决问题的能力。

具体分为三个部分:1.知识目标:学生能够掌握XX学科的基本知识和概念,了解XX学科的发展历程,理解XX学科的基本原理和方法。

2.技能目标:学生能够运用XX学科知识解决实际问题,提高学生运用科学方法进行探究和分析的能力。

3.情感态度价值观目标:培养学生对XX学科的兴趣和热情,使学生认识到XX学科在生活中的重要性和价值,培养学生的科学精神和创新意识。

二、教学内容本课程的教学内容主要包括XX学科的基本概念、基本原理和应用。

具体安排如下:1.第一部分:XX学科的基本概念和基本原理,包括XX概念的定义、XX原理的阐述等。

2.第二部分:XX学科的发展历程和重要人物,介绍XX学科的重要发现和突破,以及相关科学家的贡献。

3.第三部分:XX学科的应用,介绍XX学科在生活中的应用实例,以及如何运用XX学科知识解决实际问题。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学。

具体包括:1.讲授法:通过教师的讲解,使学生掌握XX学科的基本知识和概念。

2.讨论法:学生进行小组讨论,培养学生运用XX学科知识分析和解决问题的能力。

3.案例分析法:通过分析实际案例,使学生了解XX学科在生活中的应用,提高学生的实践能力。

4.实验法:学生进行实验,培养学生动手能力和实践能力,加深学生对XX学科知识的理解。

四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:选择内容系统、难易适中的教材,作为学生学习的主要参考资料。

2.参考书:推荐一些经典的参考书,供学生拓展阅读和深入研究。

3.多媒体资料:制作PPT、视频等多媒体资料,帮助学生更好地理解和掌握知识。

4.实验设备:准备必要的实验设备,为学生提供动手实践的机会。

以上是本课程的教学设计,我们将根据实际情况进行调整和优化,以达到最佳的教学效果。

2024年度备课教案封皮模板(优秀)

2024年度备课教案封皮模板(优秀)
格。
选择适合的颜色
根据教案的主题和风格,选择适 合的颜色搭配,营造出符合主题
的视觉氛围。
确定字体和字号
选择与主题和风格相匹配的字体 和字号,确保文字的可读性和美
观性。
2024/2/2
14
选择合适的设计元素
1
图片选择
选择与教案内容相关的图片,并进行适当的处理 和调整,使其符合封皮设计的整体风格。
2
图标和符号
2024/2/2
在教案封皮设计中体现环保理念,采用环保 材料、减少浪费和污染等措施,为保护地球 环境贡献一份力量。
31
THANKS
感谢观看
2024/2/2
32
色彩协调
注意色彩的协调和搭配,避免出现过于刺眼或单调的色彩组合。
2024/2/2
细节处理
注重细节处理,如边角、线条等,使其更加精致、美观,同时也 能提升整体的设计品质。
17
04 常见错误及避免 方法
2024/2/2
18
文字错误:拼写、格式等
拼写错误
封皮上的标题、姓名、学科等文字信息需反复校 对,确保没有拼写错误。
格式错误
字体、字号、字距等格式要统一,符合学校或机 构要求。
标题居中
标题应位于封皮正中,且左右边距相等。
2024/2/2
19
图片错误:清晰度、相关性等
图片清晰度
选用高分辨率图片,确保打印后清晰可辨。
图片相关性
图片应与教案内容相关,能够反映教案主题。
图片版权
使用无版权或已购买版权的图片,避免侵权问题。
个性化设计
互动性增强
根据不同学科、不同年级、不同教学目标 的需求,设计更加个性化的教案封皮,以 更好地体现教学特点和要求。

课程设计报告封面

课程设计报告封面

课程设计报告题目贪吃蛇游戏———程序预处理模块课程名称结构化程序设计课程设计院部名称龙蟠学院专业软件工程班级 M13软件工程学生姓名林皞学号 1321106028 课程设计地点工科楼A105课程设计学时20学时指导教师吕艳琳金陵科技学院教务处制(一)课程设计目的与要求目的:在繁忙的工作之余,有很多年轻人会想到通过玩游戏来放松自己,享受生活,以避免自己的神经过于紧张。

这款趣味性游戏——贪吃蛇游戏,帮助年轻人消除一天工作的疲劳,带来轻松简单快乐的心情。

要求:1、使用图形函数绘制墙2、可选择游戏难度3、可以穿墙4、达到一定分数升一级5、达到一定分数速度加快(二)课程设计的主要内容1、项目名称:贪吃蛇游戏2、实验设备及环境:1、计算机硬件及专用设备CPU:Intel MMX 233 MHz内存:128MB硬盘空间:1.5GB显卡:4Mb显存以上的PCI、AGP显卡声卡:最新的PCI声卡COM-ROM:8x以上COM-ROM2、软件环境Windows xpTurbo C 2.0可运行于IBM-Pc系列微机,包括XT,AT及IBM兼容机。

此时要求DOS2.0或更高版本支持,并至少需要560K的ROM,可在任何彩、单色80列监视器上运行。

支持数学协处理器芯片,也可以进行浮点仿真,可加快程序的运行。

3、软件功能介绍及结构设计功能介绍:玩家可以输入选择的关卡编号(1-9)然后按enter即可进入游戏,用游戏控制方向键上下左右控制蛇的方向,寻找食物,每吃一口就能得到一定的积分而且蛇的身子会越吃越长,蛇身越长玩的难度就越大,可碰墙,但不能碰到蛇身,等达到一定分数,就能过关,然后继续玩下一关。

碰到蛇身游戏结束。

4、主要内容和步骤gamespeed=100000-400*level-300*level*level; if(level>9||level<1){cleardevice();setcolor(YELLOW);settextstyle(0,0,2);outtextxy(150,200,"level input error"); getch();level=1;}}void DRAW(void){cleardevice(); /*清屏*/setcolor(2);setlinestyle(SOLID_LINE,0,THICK_WIDTH) rectangle(45,45,465,325);}/*玩游戏具体过程*/void GamePlay(void){setcolor(5);setlinestyle(SOLID_LINE,0,THICK_WIDTH); randomize();food.yes=1;snake.life=0;snake.direction=1;snake.x[0]=320;snake.y[0]=240;snake.x[1]=330;snake.y[1]=240;snake.node=3;PrScore();while(1){while(!kbhit()){if(food.yes==1){food.x=rand()%360+70;food.y=rand()%250+60;while(food.x%10!=0)food.x++;while(food.y%10!=0)food.y++;food.yes=0;}if(food.yes==0){setcolor(GREEN);rectangle(food.x,food.y,food.x+10,food.y-10);}for(i=snake.node-1;i>0;i--){snake.x[i]=snake.x[i-1];snake.y[i]=snake.y[i-1];}/*1,2,3,4表示右,左,上,下四个方向,通过这个控制来移动蛇头*/ switch(snake.direction){case 1: snake.x[0]+=10;break;case 2: snake.x[0]-=10;break;case 3: snake.y[0]-=10;break;case 4: snake.y[0]+=10;break;}for(i=3;i<snake.node;i++){if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]){GameOver();(三)遇到的问题及解决办法问题:1、源程序中的主要函数不了解不清楚作用(例如:getch()) 2、源程序中德主要函数混淆解决方法:1、了解getch()函数所在头文件:conio.h函数用途:从控制台读取一个字符函数原型:int getch(void)返回值:读取的字符易错点:1.所在头文件是conio.h。

课程设计封皮格式

课程设计封皮格式

课程设计封皮格式一、教学目标本课程的教学目标是让学生掌握XX学科的基本概念、原理和方法,能够运用所学知识解决实际问题。

具体包括以下三个方面的目标:1.知识目标:学生能够准确地掌握XX学科的基本概念、原理和公式,了解学科的发展历程和现状,以及相关领域的应用。

2.技能目标:学生能够运用所学知识解决实际问题,具备一定的实验操作能力和数据分析能力。

3.情感态度价值观目标:学生能够认识到XX学科在生活和科学研究中的重要性,培养对学科的兴趣和热情,形成积极的学习态度和探究精神。

二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.XX学科的基本概念和原理:通过讲解和案例分析,使学生了解并掌握XX学科的基本概念和原理。

2.XX学科的发展历程和现状:介绍XX学科的历史背景、发展过程和现状,使学生了解学科的背景和动态。

3.XX学科的应用:通过实际案例和实验,展示XX学科在生活和科学研究中的应用,提高学生的学习兴趣和实际操作能力。

4.相关领域的知识:介绍与XX学科相关的其他领域的知识,拓宽学生的知识视野。

三、教学方法为了实现课程目标,本课程将采用以下几种教学方法:1.讲授法:通过教师的讲解,使学生掌握XX学科的基本概念和原理。

2.讨论法:学生进行课堂讨论,培养学生的思考能力和团队协作精神。

3.案例分析法:通过分析实际案例,使学生了解XX学科的应用和实际操作。

4.实验法:安排实验课程,让学生亲自动手操作,提高实验能力和数据分析能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程将利用以下教学资源:1.教材:选用权威的XX学科教材,作为学生学习的基本参考书。

2.参考书:提供相关的参考书籍,供学生拓展阅读和深入研究。

3.多媒体资料:制作多媒体课件和教学视频,增强课堂教学的趣味性和直观性。

4.实验设备:提供实验设备和相关材料,让学生进行实际操作和实验。

五、教学评估本课程的评估方式包括平时表现、作业、考试等多个方面,以全面客观地评价学生的学习成果。

课程设计报告封面

课程设计报告封面

课程设计报告封面一、课程目标知识目标:1. 学生能够掌握课程相关的基本概念,如××××(具体概念),并能够运用到实际情境中。

2. 学生能够理解××××(学科知识点)的基本原理,解释相关现象,并解决实际问题。

3. 学生能够总结本章节的核心知识点,形成知识体系。

技能目标:1. 学生通过本课程学习,能够运用××××(具体技能)解决实际问题,提高解决问题的能力。

2. 学生能够运用所学知识,进行小组讨论、分析问题,培养团队合作精神和沟通能力。

3. 学生能够通过实际操作,提高动手实践能力,将理论知识与实际应用相结合。

情感态度价值观目标:1. 学生通过本课程的学习,培养对××××(学科)的兴趣,激发学习的积极性。

2. 学生能够认识到所学知识在现实生活中的应用,增强学习的实用性和实践性。

3. 学生在学习过程中,培养良好的学习习惯和自主学习能力,形成正确的价值课程性质:本课程为××××(学科)示范课,旨在帮助学生巩固基础知识,提高实践能力,培养学科素养。

学生特点:本课程针对的学生群体为××年级学生,他们在前期的学习中已具备一定的学科基础,但需加强知识运用能力和实践操作能力。

教学要求:结合课程性质、学生特点,明确课程目标,将目标分解为具体的学习成果,为后续的教学设计和评估提供依据。

在教学过程中,注重启发式教学,引导学生主动探究,培养其独立思考和解决问题的能力。

同时,关注学生的情感态度价值观培养,使其在学习过程中形成良好的学习习惯和价值观。

二、教学内容根据课程目标,本章节的教学内容主要包括以下几部分:1. 知识点讲解:-××××(具体概念)的定义、性质与分类。

-××××(学科知识点)的原理、方法与应用。

2024版教学设计的封皮模板

2024版教学设计的封皮模板
质感和触感。
2024/1/28
调整纹理的透明度、大小、方向 等参数,使其与封面整体风格相
协调。
纹理背景能够为封面增添细节和 丰富度,提升整体的视觉效果。
11
自定义背景实现个性化
使用自定义的图片或图形作为背景,展示独特的设计风格和创意。
2024/1/28
可将校徽、校名、专业特色等元素融入背景设计中,体现个性化特征。
24
图标颜色、大小及位置调整技巧
颜色调整
根据设计需求选择合适 的颜色,注意与背景色 的对比和搭配,突出图 标的视觉效果。
2024/1/28
大小调整
根据封面布局和图标重 要性,合理调整图标大 小,使其与整体设计相 协调。
位置调整
将图标放置在合适的位 置,如标题附近、角落 等,以引导观众视线并 突出主题。
排版要整齐划一,注意行间距、字间距的调整,以及对齐方式
03
的设置,使整个封面看起来更加美观舒适。
6
图片、图标等素材使用建议
图片和图标的使用应与教学设计的主题和内容相关,能够直观地表达课程的核心思 想或特点。
图片和图标的选择要清晰度高、色彩鲜艳、寓意明确,避免使用模糊不清或寓意不 明的素材。
在使用图片和图标时,要注意其版权问题,确保使用的素材来源合法且已获得授权。
控制行间距
多行标题排版时,应适当控制行间距,避免过于拥挤或过于稀疏。
对齐方式选择
根据标题长度和版面需要选择合适的对齐方式,如左对齐、右对齐 或居中对齐等。
保持整体协调性
多行标题排版时,应注意各元素间的协调性,确保整体视觉效果和 谐统一。
17
04 图片素材选用及处理方法
2024/1/28
18
高质量图片来源推荐

课程设计报告封面(分组版)

课程设计报告封面(分组版)

北京邮电大学课程设计报告一.需求分析随着科学技术的不断提高,计算机科学日渐成熟,其强大功能已为人们深刻认识,它已进入人们生活的各个领域,并发挥了越来越重要的作用,针对人工管理的缺点,最好的解决办法就是借助计算机技术提供一个电子化的课程设计管理平台。

为了更好地管理设计过程中所产生的资料文档,我们开发一个软件工程课程设计管理系统。

教师和学生可以应用该系统实现如下功能:(1)添加学生信息;(2)删除学生信息;(3)显示学生信息;(4)查找学生信息;(5)修改学生信息;(3)算法分析。

三.设计分析1.各函数的功能和实现学生成绩管理的相关功能由对应的函数来实现。

Student Management工程使用了一个头文件两个源文件,在inform.h头文件中对工程的变量和函数进行了声明,主要的变量包括name,id,sex,number,phonenumber,主要的函数包括insert(添加函数) del (删除函数)find(查找函数)modify(修改函数)。

在stu.cpp中对这些函数进行的定义,在main.cpp中实现了工程中要求实现的对学生信息的操作。

2.实现的过程(1)利用带头结点的链表记录数据,同态分配存储空间,在头结点后插入记录。

(2)从头结点的后继结点开始查找要删除的学生记录的学号,找到后释放相应的存储空间,完成记录的删除。

(3)从头结点的后继结点开始查找要修改的学生记录的学号,找到该结点后重新输入该学的姓名和成绩,完成修改记录的操作。

(4)先学生记录的个数,然后从第一个学生记录开始,对所有的学生成绩求和,然后求平均值,完成对学生求平均成绩的操作。

(5)通过主函数调用其他函数,完成学生管理系统的全部操作。

3. 工程的的结构图如下4. 工程中的分工:工程的inform.h头文件有何奇峰完成,main.cpp源文件有梁伟完成,stu.cpp中的del(删除函数)以及modify(修改函数)的定义有何奇峰完成,insert(增加学生信息函数)和find(函数)的定义和编写有梁伟完成,其中的get(输入指令的函数)以及界面的循环油两人共同讨论编写。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《Java语言程序设计》课程设计报告题目: ATM机设计者:何珍珍张明月班级: 10信息一班学号: 210510113 210510152指导教师:魏艳铭系部:信息管理系专业:计算机应用技术2011年 6 月25 日ATM机设计报告目录1 概述 (2)1.1 问题分析 (2)1.2功能 (2)2 总体设计 (3)3 详细设计 (3)1.登录界面Client()类结构介绍: (3)2.卡号生成界面AtmDemo()类结构介绍:........................................................ 错误!未定义书签。

3.功能界面Main()类结构介绍: (4)4.存款的界面KeepMoney()和取款的界面GetMoney()结构介绍: (4)5.修改密码界面Change()类结构介绍:....................................................... 错误!未定义书签。

7.查询余额界面Yuxia.java()类结构介绍: (5)4 实现 (5)1. 运行环境 (5)2. 运行情况抓图 (5)5 总结与体会 (7)6 参考文献 (7)7 附录:程序清单..................................................................................................... 错误!未定义书签。

1 概述1.1 问题分析模拟ATM机基本操作功能:存款、取款、余额查询、修改密码等;初始账户10000元;修改密码时必须修改两次,确认后才可使用;取款的款项和存款的款项必须是100的整倍数;1.2功能1)模拟ATM机实现当用户进入登陆页面后,用户需先点击银行开户按钮进行银行开户;2)进入银行开户页面之后,进行填写客户信息,系统会自动生成卡号,信息填写完整后系统会自动保存用户信息在生成的文件中,并返回登陆页面进行登录。

3)登陆成功之后进入ATM机操作页面进行存款、取款、余额查询、修改密码,点击一个按钮都会显示出对应的页面。

2 总体设计1、Client()类第一个登陆页面主要包括:登陆账号按钮、银行开户按钮、重新登录按钮、退出系统按钮;2、AtmDemo()类第二个登陆页面主要进行用户资料填写主要包括:卡号、密码、确认密码、用户名、性别、存款金额标签;生成卡号、确认开户、取消开户按钮;3、Main()类第二个登陆页面主要设置安放按钮,主要包括:取款、存款、修改密码、查询余额、退出该界面按钮并对所有按钮进行监听;4、GetMoney()类第三个登陆页面主要进行取款设置主要包括:提款金额数目的数字按钮,当点击相应的按钮时,提取金额框内显示相应的取款金额;当提款的金额超出卡内总金额时,取款失败;5、KeepMoney()类第四个登陆页面主要进行存款设置主要包括:存款金额数目的数字按钮,当点击相应的按钮时,存款金额框内显示相应的存款金额;6、Change()类第五个登陆页面主要进行密码修改的设置主要包括:设置“确认”“取消”“返回主页面”三个按钮;两次输入新的密码,当两次密码相同时点击“确认”按钮修改密码成功,第二次进行账户登录时使用修改后的密码7、Yuxia()类第六个登陆页面主要进行余额查询的设置主要包括:当点击“查看余额”按钮时查看存款、取款后卡内的总金额,显示在文本框内;当点击“返回主页面”时返回Main页面;8、Account()类主要保存文件的卡号,密码和账户金额,对进行数据信息在不同的类内调用传递;3 详细设计1.登录界面Client()类结构介绍:主要包括:三个标签:“欢迎登录ATM机”,“卡号”,“密码”两个文本框:JTextField和JPasswordField四个按钮:“登陆账号”,“银行开户”,“重新登录”,“退出系统”对页面使用了空布局。

对文本框进行监听,设置卡号只能为数字,且只能输入8位。

设置密码框不为空。

给四个按钮创建监听ActionListener,四个按钮实现的功能:登陆账号:第一次进入登录界面时,当点击“登录账户”弹出对话框:“请进行银行开户”。

重新登录:当点击“重新登录”按钮,用setText(“”)把文本框和密码框为空。

银行开户:当点击“银行开户”按钮时,界面跳到银行开户的界面里。

退出系统:当点击“退出系统”时,弹出对话框“确定要退出ATM系统?”点击是,退出系统,点击否,留在该界面。

当银行开户成功后,再次输入卡号和密码,如果其中一个或全部错误,弹出对话框:“请核对你的卡号和密码,重新登录”,并不设置文本框为空。

2.卡号生成界面AtmDemo()类结果介绍:继承Jframe创建银行卡号开户窗体,创建监听;应用空布局设置JLabel标签,JTextField, JPasswordField,JButton,JComboBox复选按钮框在窗体中的位置当点击“生成卡号”按钮时系统会自动生成卡号( inti=(int)(Math.random()*100000000);)对生成的卡号进行数据保存(account)由Account传递到登陆页面,让生成的卡号与登陆的卡号相同在登录页面进行登录操作;设置密码与确认密码框中的内容相等,如果不相同提示(“JOptionPane.showConfirmDialog(this,"两次填写密码不同,请重新输入正确的密码!","提示",JOptionPane.OK_CANCEL_OPTION );”),对生成的密码进行数据保存(account)让后传递到ATM—Client页面进行密码连接;设置存款金额框存款金额为100的整倍数;当点击“取消开户”按钮时,所有文本框内容为空;当点击“确认开户”按钮时,如果资料填写不完整,系统进行提示(elseif(jtf1.getText().equals("")||jtf2.getText().equals("")||jtf3.getText().equals("")||s3.equals( "")||s2.equals("")){ JOptionPane.showMessageDialog(this,"开户失败,资料没填写完整!");)反之,页面转到登陆页面;3.功能界面Main()类结构介绍:主要包括:一个标签:“荷塘月色ATM机正在为您服务…”五个按钮:“取款”、“存款”、“查询余额”、“修改密码”、“退出该界面”对页面使用了空布局。

对前四个按钮进行监听,当点击其中任一个按钮时,进入到该按钮实现功能的界面里,当点击“退出该界面”,弹出对话框“确定返回登录面?”点击是,退出该界面,点击否,留在该界面。

4.存款的界面KeepMoney()和取款的界面GetMoney()结构介绍:主要包括:十个按钮:七个固定存取款钱数的按钮和一个“自定义”(存取款的钱数)按钮,还有“确定”按钮和“返回主页面”的按钮。

一个标签:“您提取(存入)的金额数:一个文本框;对页面使用了空布局。

给八个存取款的按钮进行监听。

实现的功能:当点击七个固定存取款的按钮时,按钮上的钱数显示在文本框中,当点击自定义按钮时,可以在文本框中手动输入钱数。

当点击“返回主页面”按钮时,结束该界面的操作,返回Main页面里。

文本框:①文本框设置为不可编辑。

当点击存取款按钮时,钱数显示在文本框中,但不能手动修改文本框中的内容。

当点击自定义按钮时,文本框可以手动输入,文本框中输入的存取款的钱数必须是100的倍数,最少为100,最多为5000元,否则弹出对话框进行提醒,取钱不成功。

②自定义一个监听类,对文本框进行监听,自定义输入钱数时,文本框中只能输入数字,且最多可输入四位数。

当文本框为空时,点击“确定”按钮,弹出对话框:“请输入存(取)款金额”。

在存款KeepMoney.java界面时,当点击“确定”按钮,弹出对话框“您已存款**元,余额为**元”。

在取款GetMoney.java界面时,当点击“确定”按钮时,如果账户金额大于或等于提取金额时,弹出对话框“您已取款**元,余额为**元”。

如果账户金额小于提取金额时,弹出对话框“余额不足,取钱失败”,并获取余额数,停止金额的运算。

以防止取款不成功,但已透支的现象。

5.修改密码界面Change()类结构介绍:继承JFrame创建修改密码窗体,设置窗体的空布局;对确认密码框进行监听和数据传递保存(account.setPwd(s2);)传递到Client()类内;当两次输入密码相同时点击“确认”按钮密码修改成功,下次登录使用新密码进行登录。

;点击“取消”按钮文本框内容消失为空;点击“返回主页面”按钮返回至Main()(else if(e.getSource()==jb3){new Main();this.setVisible(false););6.查询余额界面Yuxia.java()类结构介绍:创建查询余额窗体,应用空布局设置布局;对按钮创建监听(addActionListener)当点击“查看余额”按钮时显示卡内当前的余额(运用Account类进行数据传递实现(jtf1.setText((account.getCountmoney())+"");))4 实现1.运行环境MyEclipse6.52.运行情况抓图1 23 475 总结与体会此次实训基本把我们本学期所学的内容进行综合应用,让我们更加容易简单的了解体验到了未来工作的一般状况,锻炼了我们的实际操作能力,同时也在一定程度上增加了同学们对Java语言学习的信心,一些简单的小游戏,通过运用自己所学也是可以实现的,让我们不在对编程感觉那么神秘。

团队合作与交流很重要,“团结就是力量”在本次项目开发中真的体会得到,在做项目时,小组成员要知道本小组所做项目的基本构想框架,要做什么、实现什么。

如果有自己的想法就要和自己的伙伴进行交流。

6 参考文献【1】魏艳铭,Java程序设计,河南经贸职业学院:ATM机视频提示,2011.6 【2】网络资源:/【3】《Java程序设计精讲》,北京:清华大学出版社,2010.97 附录:程序清单1.Client.java//ATM机的登录界面package client;import javax.swing.*;import client.GetMoney.myKeyListener;import java.awt.*;import java.awt.event.*;import .URL;public class Client extends JFrame implements ActionListener{JLabel jl1,jl2,jl3;JLabel jl;//添加图片的标签JTextField jtf;JPasswordField jpf;JButton jb1,jb2,jb3,jb4;static Account account;public Client(Account account){super("ATM-Client");this.account=account;setLayout(null);jl1=new JLabel("欢迎进入“荷塘月色ATM 机”");Font f=new Font("华文新魏",Font.BOLD,24);jl1.setForeground(Color.BLUE);jl1.setFont(f);jl2=new JLabel("卡号:");jl3=new JLabel("密码:");jtf=new JTextField(8);jtf.addKeyListener(new myKeyListener(jtf));jpf=new JPasswordField();jb1=new JButton("登陆账号");jb1.addActionListener(this);jb2=new JButton("银行开户");jb2.addActionListener(this);jb3=new JButton("重新登录");jb3.addActionListener(this);jb4=new JButton("退出系统");jb4.addActionListener(this);//添加图片jl= new JLabel();URL resource = this.getClass().getResource("/images/6.jpg"); ImageIcon bgImage=new ImageIcon(resource); //创建图标jl.setIcon(bgImage);jl.setBounds(0,0,400,400);jl1.setBounds(25, 40, 400, 40);jl2.setBounds(50, 85, 60, 40);jl3.setBounds(50, 150, 60, 40);jtf.setBounds(120, 90,150, 30);jpf.setBounds(120, 155,150,30);jb1.setBounds(0, 250, 90, 30);jb2.setBounds(100, 250, 90,30 );jb3.setBounds(200, 250, 90,30 );jb4.setBounds(300, 250, 90, 30);this.add(jl1);this.add(jl2);this.add(jtf);this.add(jl3);this.add(jpf);this.add(jb1);this.add(jb2);this.add(jb3);this.add(jb4);this.add(jl);this.setSize(400,400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public static void main(String[] args) {new Client(account);}public void actionPerformed(ActionEvent e) {if(e.getSource()==jb1){String s1=jtf.getText();String s2=new String(jpf.getPassword());if(account!=null){if(s1.equals(account.ip)&&s2.equals(account.pwd)){new Main(account);this.setVisible(false);}else{JOptionPane.showMessageDialog(this,"请核对您的卡号和密码,重新登录");}}else if(account==null){JOptionPane.showMessageDialog(this, "请进行银行开户");}}else if(e.getSource()==jb2){//连接到的AtmDemo.javanew AtmDemo();this.setVisible(false);}else if(e.getSource()==jb3){jtf.setText("");jpf.setText("");}else if(e.getSource()==jb4){//设置jb4——退出系统int i=JOptionPane.showConfirmDialog(this,"您确定要退出ATM机系统?","提示",JOptionPane.YES_NO_OPTION);if(i==1){return;}System.exit(0);}}//创建jtf的监听,使jtf只能输入8个数字,且只能输入数字class myKeyListener extends KeyAdapter{private JTextField jtf;private int length;public myKeyListener(JTextField jtf){this.jtf = jtf;this.length = 8;}public myKeyListener(JTextField jtf,int length){this.jtf = jtf;this.length = length;}public void keyTyped(KeyEvent e){boolean b = Character.toString(e.getKeyChar()).matches("\\d");if(!b || jtf.getText().length() == length){e.consume();}}}}2.AtmDemo.java//ATM卡号生成页面package client;import java.awt.*;import java.awt.event.*;import java.io.*;import .Socket;import java.util.Calendar;import .URL;import javax.swing.*;public class AtmDemo extends JFrame implements ActionListener { JLabel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8;JTextField jtf1,jtf2,jtf3;JPasswordField jpf1,jpf2;JButton jb1,jb2,jb3;JComboBox jcb;BufferedReader br;JLabel msg;Account account;int totalmoney=10000;int money;public AtmDemo(){super("银行卡号开户");this.setLayout(null);jl1=new JLabel("卡号开户");jl2=new JLabel("卡号:");jl3=new JLabel("密码:");jl4=new JLabel("确认密码:");jl5=new JLabel("用户名:");jl6=new JLabel("性别:");jcb = new JComboBox();jcb.addItem("男");jcb.addItem("女");jl7=new JLabel("存款金额:");jb1=new JButton("生成卡号");jb2=new JButton("确认开户");jb3=new JButton("取消开户");jtf1=new JTextField(16);jtf1.setEditable(false);//设置文本框不可见jtf2=new JTextField(4);jtf3=new JTextField();jpf1=new JPasswordField(6);jpf2=new JPasswordField(6);msg=new JLabel("");msg.setForeground(Color.RED);//监听jb1.addActionListener(this);jb2.addActionListener(this);jb3.addActionListener(this);jtf3.addKeyListener(new myKeyListener(jtf3));jl1.setForeground(Color.RED);jl1.setFont(new Font("宋体", Font.PLAIN, 40));//添加图片jl8= new JLabel();URL resource = this.getClass().getResource("/images/8.jpg"); ImageIcon bgImage=new ImageIcon(resource); //创建图标jl8.setIcon(bgImage);jl8.setBounds(0,0,400,400);jl1.setBounds(105, 10, 225, 41);//卡号开户jl2.setBounds(40, 60, 81, 18);//卡号jb1.setBounds(297, 60, 91, 18);//生成卡号jl3.setBounds(40, 90, 81, 18);//密码jl4.setBounds(40, 120, 81, 18);//确认密码jl5.setBounds(40, 150, 81, 18);//用户名jl6.setBounds(40, 180, 81, 15);//性别jcb.setBounds(100, 180, 110, 18);//复选按钮jl7.setBounds(40, 210, 81, 15);//存款金额jtf1.setBounds(100, 60, 190, 18);//卡号框jpf1.setBounds(100, 90, 170, 18);//密码框jpf2.setBounds(100, 120, 150, 18);//确认密码框jtf2.setBounds(100, 150, 130, 18);//用户名框jtf3.setBounds(100, 210, 90, 18);//存款金额框jb2.setBounds(80, 300,100, 25);//确认开户jb3.setBounds(230, 300, 100, 25);//取消开户msg.setBounds(150,260,270,60);add(jb1);add(jb2);add(jb3);add(jcb);add(jl1);add(jl2);add(jl3);add(jl4);add(jl5);add(jl6);add(jl7);add(jpf1);add(jpf2);add(jtf1);add(jtf2);add(jtf3);add(msg);add(jl8);this.setSize(400,400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public static void main(String args[]){new AtmDemo();}public void actionPerformed(ActionEvent e) {String id1=jtf1.getText();//卡号String s1=new String(jpf2.getPassword());//确认密码int mone=money;//生成的金额数account=new Account(id1,s1,mone);//把生成的卡号、确认密码、生成金额数保存在account类内try{//创建文件File f=new File("message.txt");if(e.getSource()==jb1){//生成卡号jtf1.setEditable(true);int i=(int)(Math.random()*100000000);jtf1.setText(Integer.toString(i));jtf1.setEditable(false);msg.setText("");//消失信息提示JOptionPane.showMessageDialog(this,"卡号已生成,请记住卡号,以便登陆!");}else if(e.getSource()==jb2){//确定开户String s3=new String(jpf1.getPassword());String s2=new String(jpf2.getPassword());if(!s3.equals(s2)){JOptionPane.showConfirmDialog(this,"两次填写密码不同,请重新输入正确的密码!","提示",JOptionPane.OK_CANCEL_OPTION );jpf2.setText(null);return;}elseif(jtf1.getText().equals("")||jtf2.getText().equals("")||jtf3.getText().equals("")||s3.equals("")||s2.equals("")){JOptionPane.showMessageDialog(this,"开户失败,资料没填写完整!");}else if(Integer.parseInt(jtf3.getText())%100!=0){JOptionPane.showMessageDialog(this,"存款金额必须是100的倍数!");jtf3.setText("");}elseif(!jtf1.getText().equals("")&&!jtf2.getText().equals("")&&!jtf3.getText().equals("")&&!s3.equals("")&&! s2.equals("")){money=totalmoney+(Integer.parseInt(jtf3.getText()));JOptionPane.showMessageDialog(this,"您已开户成功,卡内金额为:"+money);account.setCountmoney((totalmoney+(Integer.parseInt(jtf3.getText()))));new Client(account);this.setVisible(false);}//写入客户信息保存在message.txt中try{FileWriter fw = new FileWriter(f);BufferedWriter bw=new BufferedWriter(fw);String s = "卡号:"+jtf1.getText()+"\t"+"用户名:"+jtf2.getText()+"\t"+"密码:"+account.getPwd();bw.write(s);bw.newLine();bw.close();fw.close();}catch(IOException ex){ex.printStackTrace();}} else if(e.getSource()==jb3){jpf1.setText(null);jpf2.setText(null);jtf1.setText(null);jtf2.setText(null);jtf3.setText(null);msg.setText("您已成功取消开户!");}}catch (Exception ex){}}}//只允许输入数字的监听器class myKeyListener extends KeyAdapter{private JTextField jtf;private int length;public myKeyListener(JTextField jtf){this.jtf = jtf;this.length = 15;}public myKeyListener(JTextField jtf,int length){this.jtf = jtf;this.length = length;}public void keyTyped(KeyEvent e){boolean b = Character.toString(e.getKeyChar()).matches("\\d");if(!b || jtf.getText().length() == length){e.consume();}}}3.Main.java//主要包括:存款、取款、修改密码、查询余额等按钮package client;import java.awt.*;import java.awt.event.*;import .URL;import javax.swing.*;public class Main extends JFrame implements ActionListener{ JLabel jl1;JLabel jl;JButton jb1,jb2,jb4,jb5,jb6;static Account account;public Main(Account account){super("ATM机主页面");this.account=account;setLayout(null);jl1=new JLabel("荷塘月色ATM机正在为您服务...");jl1.setBounds(50, 0,300, 80);Font f=new Font("华文琥珀",Font.BOLD,20);jl1.setForeground(Color.BLUE);jl1.setFont(f);jb1=new JButton("取款");jb1.addActionListener(this);jb2=new JButton("查询余额");//设置初始账户金额为1000元jb2.addActionListener(this);jb4=new JButton("存款");jb4.addActionListener(this);jb5=new JButton("修改密码");jb5.addActionListener(this);jb6=new JButton("退出该界面");jb6.addActionListener(this);//添加图片jl= new JLabel();URL resource = this.getClass().getResource("/images/6.jpg");ImageIcon bgImage=new ImageIcon(resource); //创建图标jl.setIcon(bgImage);jl.setBounds(0,0,400,400);jb1.setBounds(10,110 ,140 ,40 );jb2.setBounds(10,190 ,140 ,40 );jb4.setBounds(200, 110, 140, 40);jb5.setBounds(200, 190, 140,40 );jb6.setBounds(100, 270,140 ,40 );this.add(jl1);this.add(jb1);this.add(jb2);this.add(jb4);this.add(jb5);this.add(jb6);this.add(jl);this.setSize(400,400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public void actionPerformed(ActionEvent e) {if(e.getSource()==jb1){new GetMoney(account);this.setVisible(false);}else if(e.getSource()==jb2){new Yuxia(account);this.setVisible(false);}else if(e.getSource()==jb4){new KeepMoney(account);this.setVisible(false);}else if(e.getSource()==jb5){new Change(account);this.setVisible(false);}else if(e.getSource()==jb6){int i=JOptionPane.showConfirmDialog(this,"确定要返回登陆界面?","提示",JOptionPane.YES_NO_OPTION );if(i==1){return;}new Client(account);this.setVisible(false);}}public static void main(String[] args) {new Main(account);}}4.GetMoney.java//取款页面package client;import java.awt.*;import javax.swing.*;import java.awt.event.*;import .URL;public class GetMoney extends JFrame implements ActionListener{ JButton jb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8,jb9,jb10;JLabel jl;JLabel jl1;JTextField jtf;int a=0;static Account account;public GetMoney(Account account){super("提取现金");this.account=account;setLayout(null);jb1=new JButton("100");jb1.addActionListener(this);jb2=new JButton("300");jb2.addActionListener(this);jb3=new JButton("500");jb3.addActionListener(this);jb4=new JButton("1000");jb4.addActionListener(this);jb5=new JButton("1500");jb5.addActionListener(this);jb6=new JButton("3000");jb6.addActionListener(this);jb7=new JButton("自定义");jb7.addActionListener(this);jb8=new JButton("5000");jb8.addActionListener(this);jb9=new JButton("确定");jb9.addActionListener(this);jb10=new JButton("返回主页面");jb10.addActionListener(this);jl=new JLabel("您提取的金额数为:");jtf=new JTextField(4);jtf.addKeyListener(new myKeyListener(jtf));//设置文本框不可手动输入jtf.setEditable(false);//添加图片jl1= new JLabel();URL resource = this.getClass().getResource("/images/6.jpg"); ImageIcon bgImage=new ImageIcon(resource); //创建图标jl1.setIcon(bgImage);jl1.setBounds(0,0,400,400);jb1.setBounds(20, 40, 100,40 );jb2.setBounds(20, 90,100 ,40 );jb3.setBounds(20,140 ,100 ,40 );jb4.setBounds(280,40 ,100 ,40 );jb5.setBounds(280,90 ,100 ,40 );jb6.setBounds(280,140 ,100 ,40 );jb7.setBounds(20, 190, 100, 40);jb8.setBounds(280, 190, 100, 40);jb9.setBounds(50,290,100, 40);jb10.setBounds(250,290,100,40 );jl.setBounds(20, 240, 150,40 );jtf.setBounds(180, 250, 100,20 );this.add(jb1);this.add(jb2);this.add(jb3);this.add(jb4);this.add(jb5);this.add(jb6);this.add(jb7);this.add(jb8);this.add(jb9);this.add(jb10);this.add(jl);this.add(jtf);this.add(jl1);this.setSize(400,400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public void actionPerformed(ActionEvent e) {if(e.getSource()==jb1){jtf.setText(jb1.getText());jtf.setEditable(false);}else if(e.getSource()==jb2){jtf.setText(jb2.getText());jtf.setEditable(false);}else if(e.getSource()==jb3){jtf.setText(jb3.getText());jtf.setEditable(false);}else if(e.getSource()==jb4){jtf.setText(jb4.getText());jtf.setEditable(false);}else if(e.getSource()==jb5){jtf.setText(jb5.getText());jtf.setEditable(false);}else if(e.getSource()==jb6){jtf.setText(jb6.getText());jtf.setEditable(false);}else if(e.getSource()==jb7){jtf.setText("");jtf.setEditable(true);}else if(e.getSource()==jb8){jtf.setText(jb8.getText());jtf.setEditable(false);}else if(e.getSource()==jb10){new Main(account);this.setVisible(false);}else if(e.getSource()==jb9){if(jtf.getText().equals("")){JOptionPane.showMessageDialog(this,"请输入取钱金额!" );return;}else if(jtf.getText().charAt(0) == '0'){JOptionPane.showMessageDialog(this,"请正确输入取钱金额!" );jtf.setText("");return;}else if(Integer.parseInt(jtf.getText())%100!=0){JOptionPane.showMessageDialog(this,"请输入100的整倍钱数!" );jtf.setText("");}else if((Integer.parseInt(jtf.getText()))>5000){JOptionPane.showMessageDialog(this,"最多取款5000元!" );jtf.setText("");}else if(jtf.getText()!=null){String s=jtf.getText();int a=Integer.parseInt(s);int b=account.getCountmoney();if(b>a||b==a){account.setCountmoney(b-a);JOptionPane.showMessageDialog(this,"您已取款:"+s+"元。

相关文档
最新文档