平均学分绩点计算器.docx
《平均学分绩点计算器.docx》由会员分享,可在线阅读,更多相关《平均学分绩点计算器.docx(13页珍藏版)》请在冰豆网上搜索。
平均学分绩点计算器
实验报告
课程名称:
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姓名:
邓运思
实验步骤或程序:
voidCMy100402317Dlg:
:
OnJisuanButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
floatxfjdh,zxf=0,pjxfjd;
floatsixiu_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,gailvlun_jd;//设置绩点类型
intkc_cj[4]={m_sixiu_cj.GetCurSel(),m_jindaisi_cj.GetCurSel(),m_fbhs_cj.GetCurSel(),m_dgcl_cj.GetCurSel()};//设置考查科目成绩数组
intkc_jd[4];//设置考查科目绩点数组
intkc_check[4]={m_sixiu_check,m_jindaisi_check,m_fbhs_check,m_dgcl_check};//设置考查科目是否重修数组
floatks_cj[14]={m_computer_cj,m_english1_cj,m_english2_cj,m_gaoshu1_cj,m_gaoshu2_cj,m_dawu1_cj,m_dianlu_cj,
m_dawu2_cj,m_english3_cj,m_english4_cj,m_modian_cj,m_shudian_cj,m_cyuyan_cj,m_gailvlun_cj};//设置考试科目成绩数组
floatks_jd[14];//设置考试科目绩点数组
intks_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};//设置考试科目是否重修数组
inti,j,a,b,a1,a2,a3,a4;
floata5;
floatzxf1[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)
{
case0:
kc_jd[i]=8;break;
case1:
kc_jd[i]=6;break;
case2:
kc_jd[i]=4;break;
case3:
kc_jd[i]=2;break;
case4:
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;}
elseks_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];
dawu1_jd=ks_jd[5];
dianlu_jd=ks_jd[6];
dawu2_jd=ks_jd[7];
english3_jd=ks_jd[8];
english4_jd=ks_jd[9];
modian_jd=ks_jd[10];
shudian_jd=ks_jd[11];
cyuyan_jd=ks_jd[12];
gailvlun_jd=ks_jd[13];////////////////////////////////////////////考试科目绩点计算,包括单科成绩满分,包括是否重修
xfjdh=m_jindaisi_xf*jindaisi_jd+m_sixiu_xf*sixiu_jd+m_computer_xf*computer_jd
+m_english1_xf*english1_jd+m_english2_xf*english2_jd+m_gaoshu1_xf*gaoshu1_jd
+m_gaoshu2_xf*gaoshu2_jd+m_dawu1_xf*dawu1_jd+m_dianlu_xf*dianlu_jd
+m_fbhs_xf*fbhs_jd+m_dgcl_xf*dgcl_jd+m_dawu2_xf*dawu2_jd
+m_english3_xf*english3_jd+m_english4_xf*english4_jd+m_modian_xf*modian_jd
+m_shudian_xf*shudian_jd+m_cyuyan_xf*cyuyan_jd+m_gailvlun_xf*gailvlun_jd;//计算学分绩点和
for(b=0;b<18;b++)
zxf=zxf+zxf1[b];///////////////////////////////////////////计算学分和
pjxfjd=xfjdh/zxf;//////////////////////////////////////////////计算平均学分绩点
a1=pjxfjd*1000.0;
a2=pjxfjd*100.0;
a3=a1%10;
if(a3>=5)
{
a4=a2+1;
}
else
{
a4=a2;
}
a5=a4/100.0;
if(pjxfjd<0)
m_aver_edit=0;
else
m_aver_edit=a5;
if(pjxfjd<=0)
m_aver_edit=0;
else
m_aver_edit=a5;
if(m_aver_edit>7)
m_tishi_edit="你可以参加保研!
";
elseif(m_aver_edit<4)
m_tishi_edit="你悲剧了!
";
else
m_tishi_edit="你的学习很平淡那!
";////////////////////////判断绩点给出提示
UpdateData(FALSE);
}
voidCMy100402317Dlg:
:
OnSixiuCheck()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
}
voidCMy100402317Dlg:
:
OnButton1()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(MessageBox("确认是否退出?
","",MB_OKCANCEL)==IDOK)
OnOK();
else{}
///////////////////////////////////////////////////退出按键
}
voidCMy100402317Dlg:
:
OnDateCheck()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
if(m_DateCheck==TRUE)
{CTimetNow;
tNow=CTime:
:
GetCurrentTime();
CStringsNow=tNow.Format("%y.%m.%d");
m_DateEdit.SetSel(0,-1);
m_DateEdit.ReplaceSel(sNow);
}
else
{m_DateEdit.SetSel(0,-1);
m_DateEdit.ReplaceSel("");
}
UpdateData(FALSE);/////////////////////////////////////////显示日期
}
voidCMy100402317Dlg:
:
OnTimeCheck()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
if(m_TimeCheck==TRUE)
{CTimetNow;
tNow=CTime:
:
GetCurrentTime();
CStringsNow=tNow.Format("%I:
%M:
%S");
m_TimeEdit.SetSel(0,-1);
m_TimeEdit.ReplaceSel(sNow);
}
else
{m_TimeEdit.SetSel(0,-1);
m_TimeEdit.ReplaceSel("");
}
UpdateData(FALSE);/////////////////////////////////////////显示时间
}
voidCMy100402317Dlg:
:
OnQingkongButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
m_sixiu_xf=0.0f;
m_sixiu_check=FALSE;
m_computer_xf=0.0f;
m_computer_check=FALSE;
m_english1_xf=0.0f;
m_english1_check=FALSE;
m_english2_xf=0.0f;
m_tishi_edit=_T("");
m_aver_edit=0.0f;
m_english2_cj=0.0f;
m_english1_cj=0.0f;
m_computer_cj=0.0f;
m_english2_check=FALSE;
m_jindaisi_check=FALSE;
m_jindaisi_xf=0.0f;
m_gaoshu1_xf=0.0f;
m_gaoshu1_cj=0.0f;
m_gaoshu1_check=FALSE;
m_dawu1_xf=0.0f;
m_dawu1_cj=0.0f;
m_dawu1_check=FALSE;
m_dianlu_xf=0.0f;
m_dianlu_cj=0.0f;
m_dianlu_check=FALSE;
m_gaoshu2_xf=0.0f;
m_gaoshu2_cj=0.0f;
m_cyuyan_xf=0.0f;
m_cyuyan_cj=0.0f;
m_cyuyan_check=FALSE;
m_dawu2_xf=0.0f;
m_dgcl_xf=0.0f;
m_dgcl_check=FALSE;
m_english4_xf=0.0f;
m_english4_cj=0.0f;
m_english4_check=FALSE;
m_english3_xf=0.0f;
m_english3_cj=0.0f;
m_english3_check=FALSE;
m_gailvlun_xf=0.0f;
m_fbhs_xf=0.0f;
m_fbhs_check=FALSE;
m_shudian_xf=0.0f;
m_shudian_cj=0.0f;
m_shudian_check=FALSE;
m_modian_xf=0.0f;
m_modian_cj=0.0f;
m_modian_check=FALSE;
m_dawu2_check=FALSE;
m_dawu2_cj=0.0f;
m_gailvlun_check=FALSE;
m_gailvlun_cj=0.0f;
m_gaoshu2_check=FALSE;
m_sixiu_cj.SetCurSel(-1),m_jindaisi_cj.SetCurSel(-1),m_fbhs_cj.SetCurSel(-1),m_dgcl_cj.SetCurSel(-1);
UpdateData(FALSE);/////////////////////////////////////////清空按键
}
voidCMy100402317Dlg:
:
Onwangye()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
ShellExecute(NULL,"open","
}///////////////////////////////////////////////////////////////链接工大网址
voidCMy100402317Dlg:
:
OnButton4()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
ShellExecute(NULL,"open","NULL,NULL,SW_SHOWNORMAL);
}
voidCMy100402317Dlg:
:
OnJisuanButton2()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
ShellExecute(NULL,"open","calc.exe",NULL,NULL,SW_SHOWNORMAL);
}/////////////////////////////////////////////////////////////调用计算器