平均学分绩点计算器文档格式.docx
- 文档编号:21750130
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:13
- 大小:246.69KB
平均学分绩点计算器文档格式.docx
《平均学分绩点计算器文档格式.docx》由会员分享,可在线阅读,更多相关《平均学分绩点计算器文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
建立类型为基本对话框的工程
熟练掌握简单控件的用法
学习掌握计算的算法
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班学号:
实验步骤或程序:
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;
case2:
kc_jd[i]=4;
case3:
kc_jd[i]=2;
case4:
kc_jd[i]=0;
}
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]>
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;
//////////////////////////////////////////////计算平均学分绩点
if(pjxfjd<
m_aver_edit=0;
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)
你悲剧了!
你的学习很平淡那!
////////////////////////判断绩点给出提示
UpdateData(FALSE);
OnSixiuCheck()
OnButton1()
if(MessageBox("
确认是否退出?
"
MB_OKCANCEL)==IDOK)
OnOK();
else{}
///////////////////////////////////////////////////退出按键
OnDateCheck()
if(m_DateCheck==TRUE)
{CTimetNow;
tNow=CTime:
GetCurrentTime();
CStringsNow=tNow.Format("
%y.%m.%d"
);
m_DateEdit.SetSel(0,-1);
m_DateEdit.ReplaceSel(sNow);
{m_DateEdit.SetSel(0,-1);
m_DateEdit.ReplaceSel("
/////////////////////////////////////////显示日期
OnTimeCheck()
if(m_TimeCheck==TRUE)
{CTimetNow;
%I:
%M:
%S"
m_TimeEdit.SetSel(0,-1);
m_TimeEdit.ReplaceSel(sNow);
{m_TimeEdit.SetSel(0,-1);
m_TimeEdit.ReplaceSel("
/////////////////////////////////////////显示时间
OnQingkongButton()
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);
/////////////////////////////////////////清空按键
Onwangye()
ShellExecute(NULL,"
open"
}///////////////////////////////////////////////////////////////链接工大网址
OnButton4()
ShellExecute(NULL,"
"
NULL,NULL,SW_SHOWNORMAL);
OnJisuanButton2()
ShellExecute(NULL,"
calc.exe"
NULL,NULL,SW_SHOWNORMAL);
}/////////////////////////////////////////////////////////////调用计算器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 平均 学分 计算器