平均学分绩点计算器

  • 格式:wps
  • 大小:271.77 KB
  • 文档页数:12

下载文档原格式

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

实验报告

课程名称: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];