专业课程设计II报告 短信发送平台Word格式文档下载.docx
《专业课程设计II报告 短信发送平台Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《专业课程设计II报告 短信发送平台Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
设计的科学、合理性
功能丰富、符合题目要求
界面友好、外观漂亮、大方
程序功能执行的正确性
程序算法执行的效能
设计报告
设计报告正确合理、反映系统设计流程
文档内容详实程度
文档格式规范、排版美观
验收答辩
简练、准确阐述设计内容,能准确有条理回答各种问题,系统演示顺利。
评分等级
指导教师
简短评语
指导教师签名
日期
2012.11
备注
评分等级有五种:
优秀、良好、中等、及格、不及格
目录
一、题目要求,需求分析,使用说明3
基本功能:
3
使用说明:
二、设计思路分析4
1.短信发送模块:
4
2.登陆,权限模块:
3.数据库模块:
三、概要设计4
1.短信发送类:
2.MFCAPP类和DLG类5
4.数据解密5
5.登陆匹配6
6.根据权限发送(响应发送按钮)8
四、详细设计11
1、数据库模块(使用Access):
11
2.短信发送接口14
3、锁机制14
五、测试数据及其结果分析15
1、密码校验15
2、各用户权限15
3、发送实验17
六、调试过程中的问题18
问题一:
18
问题二:
19
七、专业课程设计总结20
短信发送平台
一、题目要求,需求分析,使用说明
1、输入任意手机号码,实现短信发送功能;
2、对手机号码进行分组管理
3、支持定时发送,群组管理;
4、根据用户等级支持不同权限发送功能,界面友好
1、在CSms1086Dlg的构造函数中修改username和password的初始值为可用账号和密码
2、在CSms1086Dlg的响应函数OnButton3()中修改账号和密码,权限等
二、设计思路分析
调用网站上提供的接口,注册使用,可以进行发送短信
根据登陆账号判断权限,根据权限判断是否可以发送,群发等
调用ADO,连接Access数据库
三、概要设计
文字处理软件:
WPS、MicrosoftOffiecWord2007
绘图工具:
MicrosoftOfficeVisio2003
classCHttpUrl
{
public:
CHttpUrl();
virtual~CHttpUrl();
CStringSendSms(CStringUserName,CStringPassWord,CStringMObiles,CStringContent);
//发送短信的函数
CStringHttpRequest(CStringurl);
CURLEncodeUrlEncode;
CURLDecodeUrlDecode;
CStringPassWord;
CStringUserName;
CStringBaseUrl;
};
2.MFCAPP类和DLG类
自带,略;
3.数据加密
classCURLEncode
private:
staticCStringcsUnsafeString;
CStringdecToHex(charnum,intradix);
boolisUnsafe(charcompareChar);
CStringconvert(charval);
CURLEncode(){};
virtual~CURLEncode(){};
CStringURLEncode(CStringvData);
4.数据解密
classCURLDecode
CStringURLDecode(CStringrdata);
CURLDecode();
virtual~CURLDecode();
charStrToBin(char*str);
charCharToInt(charch);
5.登陆匹配
判断账号,更新前端程序显示。
UpdateData();
if(m_username=="
pigzhangC"
&
m_password=="
123456"
)
{
MessageBox("
登陆成功!
"
);
m_activeuser="
张松"
;
m_level="
钻石会员"
m_send="
可以"
m_allsend="
}
elseif(m_username=="
pigzhangB"
白金会员"
不可以"
pigzhangA"
普通会员"
else
用户密码名错误!
m_password="
UpdateData(FALSE);
6.根据权限发送(响应发送按钮)
voidCSms1086Dlg:
:
OnButton1()
CHttpUrlHttpUrl;
CStringmobiles;
CStringcontent;
GetDlgItem(IDC_EDIT3)->
GetWindowText(m_number);
GetDlgItem(IDC_EDIT4)->
GetWindowText(content);
intcount=0;
if(m_send=="
if(m_allsend=="
{
while
(1)
{
mobiles=m_number.Mid(0+count,11+count);
CStringRt=HttpUrl.SendSms(username,password,mobiles,content);
AfxMessageBox(Rt,0,0);
count+=11;
if(m_number.GetLength()>
=(11+count+1)&
m_number[count]=='
'
)
{
count++;
continue;
}
else
break;
}
}
else
mobiles=m_number.Mid(0,11);
没有权限发送短信"
四、详细设计
第一步:
数据库操作准备
1)导入ADO动态链接库。
。
在stdafx.h中。
在工程的stdafx.h中加入如下语句:
#import"
c:
\programfiles\commonfiles\system\ado\msado15.dll"
no_namespacerename("
EOF"
"
adoEOF"
这一句有何作用呢?
其最终作用同我们熟悉的#include类似,编译的时候系统会我们声称msado15.tlh和msado15.tl两个C++头文件来定义ADO库。
即加载ADO动态连接库。
其中no_namespace表明不使用命名空间,rename("
)表明把ADO中用到的EOF改为adoEOF,防止命名冲突。
注意:
改代码需要在一行中完成,如果写成两行或者多行,末行要加上"
\"
符号,表示把这几行看成一行。
2)初始化OLE/COM环境,在应用类(app)的lnitlnstance成员函数中。
方法:
在应用类的lnitlnstance成员函数中,添加AfxOlenit函数(在退出应用时,该函数也将负责COM资源的释放)
BOOLCSms1086App:
InitInstance()
AfxEnableControlContainer();
//添加的初始化OLE/COM环境代码
if(!
AfxOleInit()){
AfxMessageBox("
初始化OLEDLL失败!
returnFALSE;
}
第二步:
连接数据库
1)先在APP头文件中声明一个connection指针。
方法为:
双击APP类----即进入头文件,,在头文件中声明成员变量。
或者右键鼠标---添加成员变量。
如下
classCSms1086App:
publicCWinApp
_ConnectionPtrm_pcon2;
CSms1086App();
_ConnectionPtrm_pcon;
//声明一个连接指针
2)在lnitlnstance中创建Connection对象(实例化)
打开lnitlnstance函数
//第一步时自己写的用于初始化OLE/COM的代码
m_pcon.CreateInstance(_uuidof(Connection));
//创建Connection对象---自己写的
3)设置连接字符串,,以便制定需要的连接
//初始化OLE/COM
//创建Connection对象
try//负责抛出
CStringSQL="
Provider=Microsoft.ACE.O