课程设计题目讲解分析.docx
- 文档编号:6442990
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:12
- 大小:51.28KB
课程设计题目讲解分析.docx
《课程设计题目讲解分析.docx》由会员分享,可在线阅读,更多相关《课程设计题目讲解分析.docx(12页珍藏版)》请在冰豆网上搜索。
课程设计题目讲解分析
1.按揭购房还款计划
输入:
贷款总额(=商业贷款额+政策贷款额)
还款年限
享受政策贷款的人数
商业贷款年利率
政策性贷款年利率
还款起始年+月
要预计算的一些数值
1.若贷款总额小于享受政策贷款的人数*6(每人最多6万)
则政策贷款额=贷款总额
商业贷款额=0
2.若贷款总额大于享受政策贷款的人数*6(每人最多6万)
则政策贷款额=享受政策贷款的人数*6
商业贷款额=贷款总额-政策贷款额
3.还款月数=还款年限/12
4.月利率=年利率/12
等额本息还款法的输出:
每月还款额=政策贷款每月还款额+商业贷款每月还款额
全部本息总和=每月还款额*还款年限*12
还款与贷款比=全部本息总和/贷款总额
等额本息还款法的计算:
政策性贷款的每月还款额=
政策贷款额*政策贷款月利率*(1+政策贷款月利率)还款月数
(1+政策贷款月利率)还款月数-1
商业贷款的每月还款额=
商业贷款额*商业贷款月利率*(1+商业贷款月利率)还款月数
(1+商业贷款月利率)还款月数-1
等额本金还款法的输出:
每月还款数额
全部本息总和=每月还款数额累加
还款与贷款比=全部本息总和/贷款总额
等额本金还款法的计算:
每月还款数额逐月递减,第i个月的还款额为
政策贷款的每月还款额+商业贷款的每月还款额
政策贷款的每月还款额=
政策贷款额/还款月数+(政策贷款额-已还本金累计额)*政策贷款月利率
已还本金累计额=政策贷款额/还款月数*(i-1)
商业贷款的每月还款额=
商业贷款额/还款月数+(商业贷款额-已还本金累计额)*商业贷款月利率
已还本金累计额=商业贷款额/还款月数*(i-1)
几个建议:
1.由于每种还款法都涉及到两部分:
政策性贷款+商业贷款
所以在计算时,编写过程,多次调用,可以是代码简洁
等额本息还款法----每月还款额一样
FunctionA(corpus!
,rate!
,year%)assingle
输入参数
Corpus:
某种贷款的贷款额
Rate:
某种贷款的年利率
Year:
贷款年限
返回的值:
函数A:
每月还款额
等额本金还款法----每月还款额不一样,逐月递减
SubB(corpus!
,rate!
,year%,arr()AsSingle)
输入参数
Corpus:
某种贷款的贷款额
Rate:
某种贷款的年利率
Year:
贷款年限
返回的值:
arr():
每月还款额
SubB(corpusAsSingle,rateAsSingle,yearAsInteger,arr()AsSingle)
Fori=LBound(arr)ToUBound(arr)
x=corpus*(i-1)/(12*year)
arr(i)=corpus/(12*year)+(corpus-x)*(rate/12)'rate是年利率
Nexti
EndSub
CallB(12,0.04,15,bb())
CallB(8,0.05,15,cc())
s=0
Fori=1To180
mm(i)=bb(i)+cc(i)
s=s+mm(i)
Nexti
2.等额本金还款法中,通过两次调用过程,可以分别得到两种不同贷款的每月还款额,将两个数组中的值求和,就可以得到每月的还款额
再通过循环,将数组中的值添加到列表框中
添加时,同时要添加还款对应的年月信息
year1=2003
month1=10
Fori=1To180'180是每月还款月数
List1.AddItemyear1&"-"&month1&":
"&mm(i)
'mm()数组存放的是每月还款额
month1=month1+1
Ifmonth1Mod13=0Then
year1=year1+1
month1=1
EndIf
Nexti
2.股市计算器
输入:
印花税率(由参数设置中获得)
佣金比率(由参数设置中获得)
最低费用(由参数设置中获得)
持股数量(在投资分析中获得)
买入价位(在投资分析中获得)
卖出价位(在投资分析中获得)
输出
保本价位=(买入佣金+卖出佣金+买入印花税+卖出印花税+股票的投入)/持股数量
股票的投入=持股数量*买入价位
股票所得=持股数量*卖出价位
买入佣金=股票的投入*佣金比率(若计算结果<10,则按10算)
买出佣金=股票所得*佣金比率(若计算结果<10,则按10算)
买入印花税=股票的投入*印花税率
买出印花税=股票所得*印花税率
手续费用=买入佣金+买出佣金+买入印花税+买出印花税
买入资金=股票的投入+买入佣金+买入印花税
回收资金=股票所得-买出佣金-买出印花税
盈亏金额=回收资金-买入资金
盈亏比率=盈亏金额/买入资金
股权除息价=(当前价位-每股分红+配股价位*每股配股)/(1+每股送股+每股配股)
关于SSTab控件
1.是一个activeX控件:
在microsofttabbeddialogcontrol部件中
2.控件之间可以直接像窗体上的控件一样彼此读取数据
建议:
每个标签上有很多文本框-----可以考虑用控件数组来实现
3.彩票选号小助手
1.体育彩票
要求【0-9】的随机数+【0-4】的随机数-----一组号码
Ø巧妙地使用控件数组:
比如每一行的文本框对应一个文本框数组,这样便于用循环结构控制每个文本框的输出
Ø单注生成随机号码----用一个定时器
Ø自动产生多注随机号码-----用另一个定时器
2.福利彩票
要求:
【1-35】间的7个不重复的随机数组成一注。
且按升序排列
最多5注,5注之间不能有重复的
Ø写一个产生自动为数组生成随机数的过程,且数组中的数值不重复
生成一个随机数后要和数组中已有的数进行比较,如果和数组中任何一个数都不重复,则将该数赋值给数组中的某一个元素
Ø写一个将数组进行排序的过程,这样每生成一组数据,调用该过程就可将该数组值进行排序
4.滚动字幕版
穿透式左右摆
打冰雹游戏
1.冰雹的产生
用shape控件数组,boderstyle=0—没有边线
2.鼠标击中冰雹
鼠标点击时,若鼠标的坐标在冰雹区域范围(主要是左右边界和上下边界范围),则认为击中冰雹
3.改变难度
在组合框的click事件中,捕捉用户的改变,并用变量记录
3.冰雹下落及落地
冰雹下落:
在一个定时器事件中,改变每个冰雹(shape(i))控件的top属性,每个冰雹的下落位移由速度和难度综合决定(可以自己设计一个与这两个量有关的表达式)
落地的判断:
设计一个line控件做地面,如果冰雹的底端坐标(=冰雹的top+冰雹的高度)超过line控件的y坐标值,则可断定已落地
4.枪的移动:
可以简化用一根线代替枪,鼠标移动的时候计算黄点的坐标
5.计算器
1.关于布局:
◆11个函数计算的按钮-----用一个命令按钮数组
◆数字0-9、取负、小数点:
用一个命令按钮数组
◆+、-、*、/:
用一个命令按钮数组
◆其余:
用一个命令按钮数组
2.关于函数运算:
可以先写好各种函数完成不同的运算,如正弦运算—先将输入的度数转换成弧度,再调用VB的sin(x)函数,点击不同的函数计算按钮时,调用不同的函数
3.关于双目运算:
(需要两个数的运算,如+-*/)
用户在点击数字按钮时,分两种状态
1)非运算状态(还没有按任何运算符):
需要将输入的数字字符连接---作为第一个运算数
2)运算状态(按下某个运算符):
需要将输入的数字字符连接---作为第二个运算数
用户在点击运算按钮(+、-、*、/)时
需要将状态设置为运算状态,并用一个变量记录运算类型
用户在点击等于按钮时
需要根据运算类型给出运算结果并显示
将运算结果保存到第一个运算数中,将第二个运算数清空
6.排序演示
7.邮编区号查询
1
北京,010,100000
通县,010,101100
昌平,010,102200
2
天津,022,300000
宝坻,022,301800
3
石家庄,0311,050000
邯郸,0310,056000
文件Province.txt文件Postalcode.txt
1,北京
2,天津
3,河北
4,山西
5,辽宁
Ø左边的列表框从Province.txt读取并分离数据,将得到的省会信息放入一个数组
Ø在点击左边列表框中的省会名称时,做如下判断
打开Postalcode.txt文件
循环读文件的每一行
如果读到的内容=选中项的下标+1则
设置读标记为true
如果读到的内容不是数字,并且读标记为true则
将读到的内容放入数组
如果读到的内容是数字,并且读标记为true则
设置读标记为false
退出循环
最后数组中存放的就是该省会下所有城市的邮编信息
Ø可以将数组中的城市用Split函数分离后放入一个一维数组,并在列表框2中显示
图片浏览器
通过改变文件列表控件的listindex属性,来设置当前显示的图片
如显示上一张图片File1.ListIndex=File1.ListIndex-1
用FileName属性来获得当前显示的文件的名称
快速配对游戏
1.点击开始按钮,8幅图为一组,要将相同的两组图片(共16幅),分配到十六个image控件中
Fori=0To15'初始状态为未分配状态
a(i)=-1
Nexti
Fori=0To7'取0-7这8个整数赋值
Forj=0To1'将每一个数赋值两次
Do'该循环寻找未被分配值的对象
m=Int(Rnd*16)'随机确定选中一个对象
Ifa(m)=-1Then'若该对象未被分配,则将循环外的I值分配给该对象
a(m)=i
ExitDo'退出循环,分配下一个值
EndIf
'若不满足上面的条件,则继续循环重新随机选一个对象
Loop
Nextj
NextI
‘数组中存放的是分配到的图像编号
Fori=0To15
Image2(i).Picture=Image1(a(i)).Picture
Nexti
2.如何在点击【开始】按钮后,控制图像框显示正面图1.5秒后,恢复显示背面图
Ø点击【开始】按钮后,16个图像框显示正面图,同时将定时器1的interval
属性设置为1500
Ø在定时器1的定时事件中,将所有图像框都显示背面图
3.如何在点击图像框是,判断两次点击的图像框分配到的图像是否一致
设置一个变量first,用来记录第一次点击的图像框的下标,first的初值设为-1
在用户点击图像框时,做如下判断:
如果first=-1则
将设置first=图像框的下标
并将该图像框显示分配到的图像
如果first的值不是-1(说明是第二次点击)则
将该图像框显示分配到的图像
判断第一次点击的图像框的图像和第二次点击的图像框的图像是否相同[即:
a(first)=a(Index)是否成立],
若成立,则第二次点击的图像框显示正面内容
若不成立,则第二次点击的图像框显示正面内容,并启动定时器2,
在定时器2的定时事件中:
将两次点击的图像框都显示背面图,同时将first设为-1;为下一次的一组点击做好准备
多功能计时器
1.将led.Bmp图片用pictureclip控件分割成16个小图片
pictureclip控件是一个active控件,参见课程设计指导书P65页
下面的代码将切割的图片分别放在image1(0)、image1(0)。
。
。
。
image1(15)控件中
PictureClip1.Picture=LoadPicture(App.Path+"\led.bmp")
PictureClip1.Rows=1
PictureClip1.Cols=16
Fori=0To15
Image1(i).Picture=PictureClip1.GraphicCell(i)
Nexti
机房管理程序
1.80台机器的显示
先在窗体上画一个image1,将index属性设置为0,运行以下代码:
Image1(0).Picture=LoadPicture(App.Path+"\off.bmp")
Image1(0).Visible=True
Fori=1To79
IfiMod8=0Then
LoadImage1(i)
Image1(i).Left=Image1(i-8).Left
Image1(i).Top=Image1(i-8).Top+600
Image1(i).Picture=LoadPicture(App.Path+"\off.bmp")
Image1(i).Visible=True
Else
LoadImage1(i)
Image1(i).Left=Image1(i-1).Left+600
Image1(i).Top=Image1(i-1).Top
Image1(i).Picture=LoadPicture(App.Path+"\off.bmp")
Image1(i).Visible=True
EndIf
Nexti
2.为学生指派机器
自定义一个数据类型,其中包含:
机器号、使用者的学号、开始上机时刻、结束时刻等分量
建立一个动态数组,数组的类型就是自定义类型,
上机登记时,为动态数组分配一个空间,并将机器号、学号、开始上机时间存入该数组
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 题目 讲解 分析
![提示](https://static.bdocx.com/images/bang_tan.gif)