平均学分绩点计算器
- 格式:wps
- 大小:271.77 KB
- 文档页数:12
实验报告
课程名称:VC++面向对象与可视化程序设计
实验项目:平均学分绩点计算器
专业班级:电子信息工程1003班
姓名:邓运思学号:100402317实验室号:信息205 实验组号:17
实验时间:2012/12/10批阅时间:
指导教师:伞宏力成绩:
沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级:电子信息1003班学号:100402317 姓名:邓运思
实验名称:平均学分绩点计算器
1.实验目的:
掌握使用VC++6.0为编程开发环境,进行简单的可视化编程
设计一个学分绩点计算器,并能按要求进行计算
2.实验内容:
建立类型为基本对话框的工程
熟练掌握简单控件的用法
学习掌握计算的算法
3. 实验方案(程序设计说明)
算法:平均学分绩点=各科成绩*各科对应的学分/学分之和
界面设计:分两个学年(包括成绩输入,学分输入,是否从修的选择),有时间显示,计算结果的输出,对结果的相关提示,插入图片,连接网站,背景颜色设置,字体设置
设计流程图:
建立工程:
界面:
控件:用到的有静态,组框,组合框,编辑,复选框,按钮,图像等控件退出对话框:
4. 实验步骤或程序(经调试后正确的源程序)
见附件A
5.程序运行结果
6.出现的问题及解决办法
1.组合框无法清零
解决办法:找到.SetCurSel()函数,括号里的值为-1
2.保留计算结果后2位有效数字
解决办法:a1=pjxfjd*1000.0;
a2=pjxfjd*100.0;
a3=a1%10;
if(a3>=5)
{
a4=a2+1;
}
else
{
a4=a2;
}
a5=a4/100.0;
这种方法还保证了进位
3.计算有负位
解决办法:有时输入的不合理造成不对的输出结果,所以给输出加限制条件4.加入图片
解决办法:须转换为8位256色数的BMP格式的图片
7.心的体会
附件A 沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级:电子信息1003班学号:100402317 姓名:邓运思
实验步骤或程序:
void CMy100402317Dlg::OnJisuanButton()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
float xfjdh,zxf=0,pjxfjd;
float
sixiu_jd,jindaisi_jd,computer_jd,english1_jd,english2_jd,gaoshu1_jd,gaoshu2_jd,dawu1_jd, dianlu_jd,
fbhs_jd,dgcl_jd,dawu2_jd,english3_jd,english4_jd,modian_jd,shudian_jd,cyuyan_jd,gai lvlun_jd;//设置绩点类型
int
kc_cj[4]={m_sixiu_cj.GetCurSel(),m_jindaisi_cj.GetCurSel(),m_fbhs_cj.GetCurSel(),m_dgcl _cj.GetCurSel()};//设置考查科目成绩数组
int kc_jd[4];//设置考查科目绩点数组
int kc_check[4]={m_sixiu_check,m_jindaisi_check,m_fbhs_check,m_dgcl_check};//设置考查科目是否重修数组
float
ks_cj[14]={m_computer_cj,m_english1_cj,m_english2_cj,m_gaoshu1_cj,m_gaoshu2_cj,m_d awu1_cj,m_dianlu_cj,
m_dawu2_cj,m_english3_cj,m_english4_cj,m_modian_cj,m_shudian_cj,m_cyuyan_cj,m_gai lvlun_cj};//设置考试科目成绩数组
float ks_jd[14];//设置考试科目绩点数组
int ks_check[14]={m_computer_check,m_english1_check,m_english2_check,
m_gaoshu1_check,m_gaoshu2_check,m_dawu1_check,m_dianlu_check,
m_dawu2_check,m_english3_check,m_english4_check,
m_modian_check,m_shudian_check,m_cyuyan_check,m_gailvlun_check};//设置考试科目是否重修数组
int i,j,a,b,a1,a2,a3,a4;
float a5;
float zxf1[18]={m_jindaisi_xf,m_sixiu_xf,m_computer_xf,m_english1_xf,
m_english2_xf,m_gaoshu1_xf,m_gaoshu2_xf,m_dawu1_xf,m_dianlu_xf,
m_fbhs_xf,m_dgcl_xf,m_dawu2_xf,m_english3_xf,m_english4_xf,
m_modian_xf,m_shudian_xf,m_cyuyan_xf,m_gailvlun_xf};//设置全科目学分数组
for(i=0;i<4;i++)
{
a=kc_cj[i];
switch(a)
{
case 0:kc_jd[i]=8;break;
case 1:kc_jd[i]=6;break;
case 2:kc_jd[i]=4;break;
case 3:kc_jd[i]=2;break;
case 4:kc_jd[i]=0;break;
}
if(kc_check[i]>0)
kc_jd[i]--;
}
sixiu_jd=kc_jd[0];
jindaisi_jd=kc_jd[1];
fbhs_jd=kc_jd[2];
dgcl_jd=kc_jd[3];//////////////////////////考查科目绩点计算,包括是否重修
for(j=0;j<14;j++)
{
if(ks_cj[j]<=99&&ks_cj[j]>=60)
{
ks_jd[j]=2+(ks_cj[j]-60)*0.2;
}
else
if (ks_cj[j]=100)
{ks_jd[j]=11;}
else ks_jd[j]=0;
if(ks_check[j]>0)
ks_jd[j]--;
}
computer_jd=ks_jd[0];
english1_jd=ks_jd[1];
english2_jd=ks_jd[2];
gaoshu1_jd=ks_jd[3];
gaoshu2_jd=ks_jd[4];