VC课程设计 关于签到系统小程序 的设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南农业大学MFC课程设计论文
高校上课签到系统的程序设计
A class sign in system on the program design
学生姓名:欧辉斌
学号: 201041842316
年级专班级:2010级计算机科学与技术(3)班指导老师:傅自钢
学院:信息科学技术学院
湖南·长沙
提交日期:2010 年 6月
目录
前言 (3)
一.需求分析 (4)
1.背景 (4)
2.功能需求 (4)
3.界面需求 (4)
4.软硬件平台 (4)
5.开发工具 (5)
二.系统分析 (5)
1.用例分析 (5)
2.对象分析 (5)
三.界面设计…………………………………………………………………………5四.设计思路及运行版面…………………………………………………………12五.结论与体会……………………………………………………………………14六.参考文献……………………………………………………………………… 1 4
关于一个签到系统小程序的设计过程
学生:欧辉斌
指导老师:傅自钢
(湖南农业大学信息科学技术学院,长沙 410128) 摘要:本文首先介绍了开发工具Visual C++6.0和MFC,然后对程序开发的过程进行了详细的说明,最后再简要的说明了一下该程序的特色。
关键词:MFC;签到系统
A class sign in system on the program design
Student:Ou Huibin
Tutor: Zigang fu
(College of information science and technology,Hunan Agricultural
University, Changsha 410128,China)
Abstract:This article introduces the development tools, Visual C + +6.0 and MFC, and then the process of development a detailed descripion and then briefly describes some of the characteristics of the program.
Key words:MFC;
前言.
我们的课程设计室用Visual C++MFC设计一个小程序,而我设计的是一个高校上课签到系统,为了方便高中学校记录每节课次学生的考勤情况而设计的签到系统,签到系统的功能包括周次、星期、课次的选择,记录签到人名,请假人名及其
请假原因的功能。
可以随时显示签到的情况,方便查询。
一.需求分析
1.背景
制作一个小巧的高校上课签到系统,方便各高校查询各位学生的上课情况,督促大家努力学习。
2. 功能需求
签到系统的功能包括周次、星期、课次的选择,记录签到人名,请假人名及其请假原因的功能。
可以随时显示签到的情况,方便查询。
3.界面要求
1版面简洁,功能足够到位
2方便快速,方便广大师生签到以及查询
4.软硬件平台
对软硬件要求不是很高,操作系统可选择Window 9x,WindowXP. 5.开发工具
使用Visual C++6.0.
二.系统分析
1.用例分析
本实例用例如下,用户使用高校签到系统,然后经过正常输入,若有不会的地方可点击帮助或者咨询老师,正常输入以后会有签到记录,可以随时查询其签到情况。
3.对象分析
对象包含了星期,周次,节次,签到人,请假人,请假原因。
其来签到的人必须认真填写各项目栏,然后提交确认
MFC中没有用于多媒体编程的类,而使用MCI命令与函数进行多媒体编程都要设置很多参数,使用不便。
因此可以自己创建用于签到系统的CName类,封装要用到的MCI的方法和函数,隐藏所有MCE命令参数,仅留简单的操作接口,从而简化MCE编程方式,便于重用和访问。
三.界面设计
界面设计应满足以下要求:
1界面整洁到位,各数据要联系好
2功能简单到位,即方便又便捷,便于签到的实施
四.设计思路
(1)系统框架:
(2)控件对应关系表:
创建新的两个类,以便可以更好的输入输出。
#include "stdafx.h"
class cname //首先创建一个cname类{
public: //然后对其声明定义cname();
void setname(CString xx);
CString getname();
int lenth(CString xx);
private:
CString nn;
};
class creason
{
public:
creason();
void setreason(CString rr);
CString getreason();
int lenth(CString rr);
private:
CString yy;
};
cname::cname() //成员函数添加必要的代码{
nn="";
};
void cname::setname(CString xx)
{
nn=xx;
};
CString cname::getname()
{
return nn;
};
int cname::lenth(CString xx)
{
return xx.GetLength();
};
creason::creason()
{
yy="";
};
void creason::setreason(CString rr)
{
yy=rr;
};
CString creason::getreason()
{
return yy;
};
int creason::lenth(CString rr)
{
return rr.GetLength();
};
(4)对于各按钮的控制:
void CMyDlg::OnOK()
{
// TODO: Add extra validation here //处理其消息函数CMyDlg name;
cname name1;
CStdioFile file;
CString hh='\n';
CString qq="签到:";
char ch[10];
GetDlgItemText(IDC_EDIT1,ch,10);
name1.setname(ch);
file.Open(_T("高校上课签到系统.txt"),CFile::modeReadWrite);
file.SeekToEnd();
file.WriteString(qq);
file.WriteString(name1.getname());
file.WriteString(hh);
UpdateData();
//file.Flush();
file.Close();
//CDialog::OnOK();
}
void CMyDlg::OnOk2()
{
// TODO: Add your control notification handler code here
CMyDlg name;
cname name1;
creason reason;
CString ee='\n';
CString qq="请假:";
CString yy="原因:";
CStdioFile file;
char ch[10];
char zh[100];
GetDlgItemText(IDC_EDIT2,ch,10);
GetDlgItemText(IDC_EDIT3,zh,100);
name1.setname(ch);
reason.setreason(zh);
file.Open(_T("高校上课签到系统.txt"),CFile::modeReadWrite);
file.SeekToEnd();
file.WriteString(qq);
file.WriteString(name1.getname());
file.WriteString(ee);
file.WriteString(yy);
file.WriteString(reason.getreason());
file.WriteString(ee);
file.Close();
//CDialog::OnOK();
}
void CMyDlg::OnOk3()
{
// TODO: Add your control notification handler code here
CDialog::OnOK(); //
}
void CMyDlg::OnOk4()
{
// TODO: Add your control notification handler code here
CString uu;
CString ww="";
CString hh='\n';
CStdioFile file;
file.Open(_T("高校上课签到系统.txt"),CFile::modeReadWrite);
while(file.ReadString(uu))
{
m_list.AddString(uu);
}
file.Close();
// SetDlgItemText(IDC_EDIT4,ww);
UpdateData();
}
void CMyDlg::OnOk5()
{
// TODO: Add your control notification handler code here
CStdioFile file;
char jj[100];
char kk[100];
char ll[100];
CString hh='\n';
GetDlgItemText(IDC_COMBO3,jj,10);
GetDlgItemText(IDC_COMBO1,kk,10);
GetDlgItemText(IDC_COMBO2,ll,10);
file.Open(_T("高校上课签到系统.txt"),CFile::modeReadWrite);
file.SeekToEnd();
file.WriteString(jj);
file.WriteString(kk);
file.WriteString(ll);
file.WriteString(hh);
file.Close();
}
void CMyDlg::OnOk6()
{
// TODO: Add your control notification handler code here
ShellExecute(NULL,"open","Winword.exe","设计报告.doc",NULL,SW_SHOWNORMAL);
}
一,结果显示:
(启动样式)
(选择周次,星期,和节次)
(在签到签到栏中输入姓名)
(再请假栏中输入姓名在原因栏中输入请假原因)
(点击显示,显示签到信息)
二,调试中遇到的问题和解决办法
1,问题:CFile不太会用
解决方法:上网查资料自学
2,问题:输入值不能赋值给字符串
解决方法:通过查资料发现少了GetDlgItemText(),加上即可
3,问题:用CFile语句输入到文档里面会有乱码情况解决方法:加上file.SeekToEnd();即可
,五、结论与体会
通过本次实验,让我逐渐的了解了VC++的强大功能。
刚刚开始实验时自己去网上下载了VC++的软件,安装后当我新建工程时老是出现一个说与原来的版本相冲突的错误。
直到后来重新安装系统才得以解决。
这次实验我懂得了如何去使用VC++这个新的软件,学会了VC++的基本功能,初步了解了MFC,了解了什么是面向对象编程。
VC++更多体现在应用方面,它有强大的类库及功能。
这次设计也使我知道了自己在应用方面是多么地缺乏,刚刚开始时同学都在积极动手操作,后来看到同学都做的那样的漂亮,就想自己也做一个。
可是由于自己以前对VC++和C++都不熟悉,所以在这个过程中遇到了很多问题。
经过自己好几天的努力,使得这个意想不到的签到系统初露原形,使我认识到了编程是一件多么好玩的事情,从而更加坚定了继续学习的信心。
在做这个课程设计之前,我虽然学过C语言,但对Visual C++的设计还很陌生,但通过一个星期课程设计的摸索,掌握了很多Visual C++设计的技术。
在这一周的时间里,我主要把时间花在
了对Visual C++控件、类和消息的处理上,所以对于算法没有太多时间去设计,因为我觉得此次实验主要是我们掌握面向对象技术相关的一些软件开发技术。
利用MFC类库开发Windows应用程序,消息映射是如何工作的。
刚开始设计时,以为只要在对话框中增加几个按钮控制就可以实现播放功能,当时真是想得太天真了,无论我如何按那些按钮,始终没有反应,后来才知道,控件不止要关联变量,还要添加消息映射。
后来做完签到系统的基本操作后,我就研究了如何给对话框增加背景颜色和图片,如何设置对话框和按键上的字体,颜色,争取把其界做得很漂亮啊!可是这个部分还是没有做好。
希望以后的努力可以提高这次实验中解决各种各样问题的综合能力。
总之,虽然这两周每天都待在实验室,感觉还是很辛苦的,不过当我做出了这个签到系统了,我有种说不出来的自豪感,在这里谢谢老师和各位同学的友好帮助,谢谢啦......
七.参考文献:
C++语言程序设计(第3版)
MFC Windows 应用程序设计(第二版)
webmaster@。