学籍管理系统.docx
《学籍管理系统.docx》由会员分享,可在线阅读,更多相关《学籍管理系统.docx(21页珍藏版)》请在冰豆网上搜索。
学籍管理系统
学籍管理系统
1设计目的
VC++程序设计课程设计是计算机科学与技术专业的《VC++程序设计》课程的综合性实践环节。
VC++程序设计是一门实用性很强的学科,是进行软件开发的主要工具,只有进行实际操作,才能将理论知识和实际应用有机的结合起来,锻炼学生分析解决实际问题的能力,提高学生实际运用的能力,为学生毕业设计,日后工作中的软件开发打下良好的基础。
2功能描述
在对话框中添加控件,用来设置学生姓名、性别、出生日期、民族、学号,并在列表框或组合框中选择专业和年级,并录入成绩,最后将设置好的内容显示在单文档界面上,同时具有保存功能。
3方案论证
3.1总体设计
3.1.1功能框图
学籍管理系统总体功能框图如下:
图1总体功能框图
3.1.2程序流程图
图2程序设计过程图
3.2详细设计
3.2.1创建项目
1.创建一个工程项目,名为“学籍管理系统”。
2.创建菜单项:
创建两个菜单项:
其中进入项的ID为ID_ENTER,读取项的ID为ID_READ。
3创建对话框
(1)创建欢迎界面对话框,如下所示:
图3创建欢迎界面对话框
其中“进入登陆界面”项的ID为ID_OK,“放弃项的”ID为ID_QUIT。
为其建立的对框类是CWELDialog。
(2)创建录入界面对话框,如下所示:
图4创建录入界面对话框
各项ID,以及添加的变量如下表所示:
(编辑框和列表框名用对应的静态文本名代
替)并为其创建对话框类CInfoDialog;
表1变量添加表
名称
对应ID
添加的变量
姓名
ID_NAME
m_name
学号
ID_NUM
m_num
民族
ID_NATION
m_nation
男
ID_SEX
m_sex
女
ID_WOMAN
出生日期
ID_BORN
m_born
平均成绩
ID_SCORE
m_score
专业
ID_SUB
m_sub
年级
ID_GRADE
m_grade
显示信息
ID_SHOW
保存
ID_SAVE
读取
ID_READ
取消
ID_CANCEL
(3)创建读取界面对话框,如下所示:
图5创建读取界面对话框
各项ID,以及添加的变量如下所示:
(编辑框和列表框名用对应的静态文本名代替)
并为其创建一对话框类CREADDialog.
表2变量添加表
名称
对应ID
添加的变量
姓名
ID_XINGMING
m_xingming
学号
ID_XUEHAO
m_xuehao
民族
ID_MINZU
m_minzu
男
ID_NAN
m_nan
女
ID_WOMAN
出生日期
ID_RIQI
m_riqi
平均成绩
ID_CHENGJI
m_chengji
专业
ID_ZHUANYE
m_zhuanye
年级
ID_NIANJI
m_nianji
4.对版权信息进行修改如下:
图6对版权信息进行修改
3.2.1添加代码
(1)在CMyview中添加一CWELDialog类型的变量wlg,和CREADDialog类的变量rlg,并分别为两个菜单项映射函数。
添加如下代码:
voidCMyView:
:
OnEnter()
{
wlg.DoModal();
//TODO:
Addyourcommandhandlercodehere
}/
voidCMyView:
:
OnREAD()
{rlg.DoModal();
}
(2)在CWELDialog中定义一CInfoDialiog类的变量dlg,同时为欢迎界面的两个按钮映射函数,并添加如下代码:
voidCWELDialog:
:
OnOK()
{
//TODO:
Addextravalidationhere
dlg.DoModal();
CDialog:
:
OnOK();
}
voidCWELDialog:
:
OnQuit()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
CDialog:
:
OnOK();
}
(3)对录入界面的变量进行初始化:
BOOLCInfoDialog:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
m_name="";
m_num="000000";
m_nation="汉族";
m_score="";
m_sex=0;
m_born="";
m_sub.AddString("计算机科学");
m_sub.AddString("通信工程");
m_sub.AddString("电子信息");
m_sub.AddString("自动化");
m_sub.AddString("汉语言文学");
m_sub.AddString("土木工程");
m_sub.AddString("历史");
m_sub.AddString("藏语物理");
m_sub.AddString("阿拉伯语");
m_sub.AddString("藏语数学");
m_sub.AddString("少数民族语言");
m_grade.AddString("大学一年级");
m_grade.AddString("大学二年级");
m_grade.AddString("大学三年级");
m_grade.AddString("大学四年级");
UpdateData(FALSE);
//TODO:
Addextrainitializationhere
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
}
(4)对录入界面上的“显示信息”按钮映射消息处理函数。
并添加如下代码:
voidCInfoDialog:
:
OnShow()
{
UpdateData();
CStringinfo;
info+=m_name;
info+=",";
info+="学号是:
";
info+=m_num;
info+=",";
info+="民族是\n:
";
info+=m_nation;
info+=",";
if(m_sex==0)
info+="他是个男生\n";
else
info+="她是个女生\n";
info+=",";
info+="出生日期是:
";
info+=m_born;
info+=",";
CStringtemp;
inti=m_sub.GetCurSel();
if(i!
=-1)
{
m_sub.GetText(i,temp);
info+="专业是:
\n";
info+=temp;
}
info+=",";
intj=m_grade.GetCurSel();
if(j!
=-1)
{
m_grade.GetText(j,temp);
info+="是"+temp+"学生";
}
AfxMessageBox(info);
//TODO:
Addextravalidationhere
(5)对录入界面上的“保存”按钮映射消息处理函数。
并添加如下代码:
voidCInfoDialog:
:
OnSave()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
CStringinfo;
info+="文件已保存";
AfxMessageBox(info);
}
(6)对录入界面上的“取消”按钮映射消息处理函数。
并添加如下代码:
voidCInfoDialog:
:
OnRead()
{CDialog:
:
OnOK();
}
(7)对读取界面的变量进行赋值,与录入界面进行联系:
BOOLCREADDialog:
:
OnInitDialog()
{
m_xingming=rlg.m_name;
m_minzu=rlg.m_nation;
m_nan=rlg.m_sex;
m_nianji=rlg.m_grade;
m_riqi=rlg.m_born;
m_xingming=rlg.m_name;
m_xuehao=rlg.m_num;
m_zhuanye=rlg.m_sub;
m_chengji=rlg.m_score;
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
}
4运行结果与分析
(1)运行时初始显示界面如图7:
图7初始显示界面
(2)点击“学籍管理”菜单项后显示如图8
:
图8显示“学籍管理”菜单项
(3)点击“学籍管理”下的“进入”菜单显示如图9:
图9欢迎界面
(4)点击“欢迎界面”上的“进入登陆界面”按钮,显示如图10:
图10进入登陆界面
(5)对初始化的录入界面进行如下所示编辑:
图11录入界面
(6)点击“录入界面”的“显示信息”如图12:
图12显示信息
(7)点击“录入界面”上的“保存”按钮,显示如图13:
图13保存录入信息
(8).点击“学籍管理”下的“读取”菜单显示:
图14读取菜单
(9).点击初始显示界面上的“
”按钮,显示如下:
图15版权界面
5心得体会
此次课程设计历时一周,在老师的帮助下,终于得以完成。
通过本次设计我对VC++这门课程有了更进一步的了解,也对编程的思想有了更深一次次的掌握。
对于如何将简单的实例用编程的形式在电脑上显示出来,这一问题有了新的认识。
同时,在此次设计过程中也获得了一些经验。
当然,由于水平有限,本次设计中还有许多不尽人意的地方。
希望会在以后的学习中找到解决这些不足的方法。
6参考文献
[1]郑阿奇,丁有和.VisualC++教程[M].北京:
清华大学出版社,2010.3:
346-349
[2]马石安,魏文平.VisualC++程序设计与应用教程题解及课程设计[M].北京:
清华大学出版社,2009.7:
101-230
[3]郑莉.VisualC++语言程序设计案例教程[M].北京:
清华大学出版社,2005.7:
24-139
[4]黄明.面向对象程序设计习题详解[M].北京:
机械工业出版社,2003.9:
32-105
[5]黄维通.VisualC++面向对象与可视化设计(第2版)[M].北京:
清华大学出版社,2003.12:
36-105
7附录(部分源代码)
voidCMyView:
:
OnEnter()
{
wlg.DoModal();
//TODO:
Addyourcommandhandlercodehere
}/
voidCMyView:
:
OnREAD()
{rlg.DoModal();
}
voidCWELDialog:
:
OnOK()
{
//TODO:
Addextravalidationhere
dlg.DoModal();
CDialog:
:
OnOK();
}
voidCWELDialog:
:
OnQuit()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
CDialog:
:
OnOK();
}
BOOLCInfoDialog:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
m_name="";
m_num="000000";
m_nation="汉族";
m_score="";
m_sex=0;
m_born="";
m_sub.AddString("计算机科学");
m_sub.AddString("通信工程");
m_sub.AddString("电子信息");
m_sub.AddString("自动化");
m_sub.AddString("汉语言文学");
m_sub.AddString("土木工程");
m_sub.AddString("历史");
m_sub.AddString("藏语物理");
m_sub.AddString("阿拉伯语");
m_sub.AddString("藏语数学");
m_sub.AddString("少数民族语言");
m_grade.AddString("大学一年级");
m_grade.AddString("大学二年级");
m_grade.AddString("大学三年级");
m_grade.AddString("大学四年级");
UpdateData(FALSE);
//TODO:
Addextrainitializationhere
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
}
voidCInfoDialog:
:
OnShow()
{
UpdateData();
CStringinfo;
info+=m_name;
info+=",";
info+="学号是:
";
info+=m_num;
info+=",";
info+="民族是\n:
";
info+=m_nation;
info+=",";
if(m_sex==0)
info+="他是个男生\n";
else
info+="她是个女生\n";
info+=",";
info+="出生日期是:
";
info+=m_born;
info+=",";
CStringtemp;
inti=m_sub.GetCurSel();
if(i!
=-1)
{
m_sub.GetText(i,temp);
info+="专业是:
\n";
info+=temp;
}
info+=",";
intj=m_grade.GetCurSel();
if(j!
=-1)
{
m_grade.GetText(j,temp);
info+="是"+temp+"学生";
}
AfxMessageBox(info);
//TODO:
Addextravalidationhere
voidCInfoDialog:
:
OnSave()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
CStringinfo;
info+="文件已保存";
AfxMessageBox(info);
}
voidCInfoDialog:
:
OnRead()
{
UpdateData();
rlg.DoModal();
}
voidCInfoDialog:
:
OnRead()
{CDialog:
:
OnOK();
}
BOOLCREADDialog:
:
OnInitDialog()
{
m_xingming=rlg.m_name;
m_minzu=rlg.m_nation;
m_nan=rlg.m_sex;
m_nianji=rlg.m_grade;
m_riqi=rlg.m_born;
m_xingming=rlg.m_name;
m_xuehao=rlg.m_num;
m_zhuanye=rlg.m_sub;
m_chengji=rlg.m_score;
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
}