学生信息管理系统编码阶段文档.docx
《学生信息管理系统编码阶段文档.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统编码阶段文档.docx(21页珍藏版)》请在冰豆网上搜索。
学生信息管理系统编码阶段文档
学
生
信
息
管
理
系
统
编
码
阶
段
文
撰稿人:
陈华军许凤珍詹春霞
信息工程学院111班
档
目录
1引言2
1.1编写目的2
1.2引用标准2
1.3参考资料2
1.4范围2
1.5术语定义2
1.6版本更新信息2
2代码3
2.1连接数据库3
2.2登录代码3
2.3注册代码8
2.4违规处理代码 //初始化处理窗口代码13
2.5管理员管理用户20
1引言
1.1编写目的
该文档是对学生信息管理系统项目的编码规范和代码说明。
1.2引用标准
《企业文档格式标准》V1.1,北京长江有限公司
《软件详细设计报告格式标准》V1.1,北京长江有限公司软件工程过程化组织
1.3参考资料
《实战Structs》,TedHustes.机械工业出版社
《管理信息系统》。
清华大学出版社
1.4范围
该文档定义了本项目的代码具体内容及说明。
1.5术语定义
Class(类):
Android程序中的一个程序单位,可以生成很多实例。
Packages(包);由很多类组成的工作包。
1.6版本更新信息
编号
修改日期
修改后版本
修改位置
修改内容概述
000
2代码
2.1连接数据库
if (CoInitialize(NULL)!
=0) {
AfxMessageBox("初始化COM支持库失败!
");
exit
(1);
}
try{
CString strConnect;;
strConnect.Format("DSN=myastudentsys;");
if(m_DB.Open(NULL,false,false,"ODBC;DSN=mystudentsys;UID=Sa;PWD=;")==0) {
AfxMessageBox("Unable to Connect to the Specified Data Source");
return FALSE
}
} catch(CDBException *pE) {
pE->ReportError();
pE->Delete();
return FALSE;
}
2.2登录代码
以下为总表查询的源代码:
CZongbiao message handlers void Clogindlg:
:
OnButton1() {
if (((CButton*)GetDlgItem(IDC_RADIO1))->GetCheck()) {
MessageBox("1被选中","",MB_OK);
UpdateData(TRUE);
if(m_name.IsEmpty() || m_pw.IsEmpty()){
MessageBox("用户名或密码不能为空");
return;
}
m_Num++;
CString sql;
sql.Format("select * from tb_studentuser where username = '%s' and pwd = '%s'",m_name,m_pw);
m_LoginSets = new Cloginsets(&((CMystudentApp*)AfxGetApp())->m_DB);
if(!
m_LoginSets->Open(AFX_DB_USE_DEFAULT_TYPE,sql)) {
AfxMessageBox("tb_studentuser 表打开失败!
"); }
if(m_LoginSets->GetRecordCount()!
=0) {
yonghuming=m_name;
mima=m_pw; Cstudentdlg dlg;
CDialog:
:
OnOK();
dlg.DoModal();
} else {
if(m_Num == 3) {
MessageBox("密码3次不正确");
CDialog:
:
OnCancel();
} else {
MessageBox("用户名或密码不正确");
m_name = "";
m_pw = "";
UpdateData(FALSE);
}
}
if(m_LoginSets->IsOpen()) {
m_LoginSets->Close();
delete m_LoginSets;
}
}else if (((CButton*)GetDlgItem(IDC_RADIO2))->GetCheck()) {
MessageBox("2被选中","",MB_OK);
UpdateData(TRUE);
if(m_name.IsEmpty() || m_pw.IsEmpty()) {
MessageBox("用户名或密码不能为空");
return; }
m_Num++;
CString sql;
sql.Format("select * from tb_teacheruser where username = '%s' and pwd = '%s'",m_name,m_pw);
m_LoginSett = new Cloginsett(&((CMystudentApp*)AfxGetApp())->m_DB);
if(!
m_LoginSett->Open(AFX_DB_USE_DEFAULT_TYPE,sql)) {
AfxMessageBox("tb_teacheruser 表打开失败!
");
} if(m_LoginSett->GetRecordCount()!
=0) {
yonghuming=m_name;
mima=m_pw;
Cteacherdlg2 dlg2;
CDialog:
:
OnOK();
dlg2.DoModal();
} else {
if(m_Num == 3) {
MessageBox("密码3次不正确");
CDialog:
:
OnCancel();
} else {
MessageBox("用户名或密码不正确");
m_name = "";
m_pw = "";
UpdateData(FALSE);
}
}
if(m_LoginSett->IsOpen())
{m_LoginSett->Close();
delete m_LoginSett; }
} else if (((CButton*)GetDlgItem(IDC_RADIO3))->GetCheck())
MessageBox("3被选中","",MB_OK);
UpdateData(TRUE);//编辑器里的值读到对应的窗口类中的成员变量中 if(m_name.IsEmpty() || m_pw.IsEmpty()) {
MessageBox("用户名或密码不能为空");
return;
}
m_Num++;
CString sql;
sql.Format("select * from tb_user where username1 = '%s' and pwd1 = '%s'",m_name,m_pw);
m_LoginSet = new Cloginset(&((CMystudentApp*)AfxGetApp())->m_DB);
if(!
m_LoginSet->Open(AFX_DB_USE_DEFAULT_TYPE,sql)) {
AfxMessageBox("tb_user 表打开失败!
");
}
if(m_LoginSet->GetRecordCount()!
=0) {
yonghuming=m_name;
mima=m_pw;
Cmangerdlg dlg;
CDialog:
:
OnOK();
dlg.DoModal();
} else {
if(m_Num == 3) {
MessageBox("密码3次不正确");
CDialog:
:
OnCancel();
} else {
MessageBox("用户名或密码不正确");
m_name = "";
m_pw = "";
UpdateData(FALSE);
}
}
if(m_LoginSet->IsOpen()) {
m_LoginSet->Close();
delete m_LoginSet;
}
}
}
2.3注册代码
void Clogondlg:
:
OnOK() {
// TODO:
Add extra validation here
if (((CButton*)GetDlgItem(IDC_RADIO1))->GetCheck()) {
UpdateData(TRUE);
if(m_oname.IsEmpty() || m_opwd.IsEmpty()) {
MessageBox("用户名或密码不能为空");
return;
}
// m_Num++;
CString sql;
sql.Format("select * from tb_studentuser where username = '%s'",m_oname,m_opwd);
m_LoginSets = new Cloginsets(&((CMystudentApp*)AfxGetApp())->m_DB);
if(!
m_LoginSets->Open(AFX_DB_USE_DEFAULT_TYPE,sql)) {
AfxMessageBox("tb_studentuser 表打开失败!
");
}
if(m_LoginSets->GetRecordCount()!
=0) {
AfxMessageBox("用户名已经存在");
if(m_LoginSets->IsOpen()) {
m_LoginSets->Close();
delete m_LoginSets;
}
return;
} else {
m_LoginSets->AddNew();
m_LoginSets->m_username=m_oname;
m_LoginSets->m_pwd=m_opwd;
m_LoginSets->Update();
m_LoginSets->Requery();
AfxMessageBox("注册成功");
} if(m_LoginSets->IsOpen()) {
m_LoginSets->Close();
delete m_LoginSets; }
}
else if (((CButton*)GetDlgItem(IDC_RADIO2))->GetCheck())
// MessageBox("2被选中","",MB_OK);
UpdateData(TRUE);
if(m_oname.IsEmpty() || m_opwd.IsEmpty()) {
MessageBox("用户名或密码不能为空");
return;
}
// m_Num++;
CString sql;
sql.Format("select * from tb_teacheruser where username = '%s'",m_oname,m_opwd);
m_LoginSett = new Cloginsett(&((CMystudentApp*)AfxGetApp())->m_DB);
if(!
m_LoginSett->Open(AFX_DB_USE_DEFAULT_TYPE,sql)) {
AfxMessageBox("tb_teacheruser 表打开失败!
");
}
if(m_LoginSett->GetRecordCount()!
=0) {
AfxMessageBox("用户名已经存在");
if(m_LoginSett->IsOpen()) {
m_LoginSett->Close();delete m_LoginSett;
}
return;
} else {
m_LoginSett->AddNew();
m_LoginSett->m_username=m_oname;
m_LoginSett->m_pwd=m_opwd;
m_LoginSett->Update();
m_LoginSett->Requery();
AfxMessageBox("注册成功");
}
if(m_LoginSett->IsOpen()) {
m_LoginSett->Close();
delete m_LoginSett; }
} else if (((CButton*)GetDlgItem(IDC_RADIO3))->GetCheck()) {
// MessageBox("3被选中","",MB_OK);
UpdateData(TRUE); //编辑器里的值读到对应的窗口类中的成员变量中
if(m_oname.IsEmpty() || m_opwd.IsEmpty()) {
MessageBox("用户名或密码不能为空");
return;
}
// m_Num++;
CString sql;
sql.Format("select * from tb_user where username1 = '%s'",m_oname,m_opwd);
m_LoginSet = new Cloginset(&((CMystudentApp*)AfxGetApp())->m_DB);
if(!
m_LoginSet->Open(AFX_DB_USE_DEFAULT_TYPE,sql)) {
AfxMessageBox("tb_user 表打开失败!
");
} if(m_LoginSet->GetRecordCount()!
=0) {
AfxMessageBox("用户名已经存在");
if(m_LoginSet->IsOpen()) {
m_LoginSet->Close();
delete m_LoginSet;
}
return;
} else {
m_LoginSet->AddNew();
m_LoginSet->m_username1=m_oname;
m_LoginSet->m_pwd1=m_opwd;
m_LoginSet->Update();
m_LoginSet->Requery();
AfxMessageBox("注册成功");
} if(m_LoginSet->IsOpen()) {
m_LoginSet->Close();
delete m_LoginSet; }
} CDialog:
:
OnOK();
}
}
2.4违规处理代码 //初始化处理窗口代码
void Cregbreakstudentdlg:
:
OnBreakSearch() {
// TODO:
Add your control notification handler code
UpdateData(true);
m_breakdlg_list.DeleteAllItems();
if(m_breakdlg_studentid.IsEmpty()) {
AfxMessageBox("请输入学号");
return;
}
CString sql_break;
sql_break="SELECT*FROMtb_regbreakinfoWHEREtb_regbreakinfo.studentid='"+m_breakdlg_studentid+"'";
breakstudent=new Cbreakinfoset(&((CMystudentApp*)AfxGetApp())->m_DB);if(!
breakstudent->Open(AFX_DB_USE_DEFAULT_TYPE,sql_break)) {
AfxMessageBox("tb_regbreakinfo 打开失败"); }
CString sql_breakstudent;
sql_breakstudent="SELECT*FROMtb_studentinfoWHERE
tb_studentinfo.studentid='"+m_breakdlg_studentid+"' ";
breakstudent1=new Caddstudentset(&((CMystudentApp*)AfxGetApp())->m_DB);
if(!
breakstudent1->Open(AFX_DB_USE_DEFAULT_TYPE,sql_breakstudent)) {
AfxMessageBox("tb_studentinfo 打开失败");
} if(breakstudent1->GetRecordCount()==0) {
AfxMessageBox(" 此学号不存在");
if(breakstudent1->IsOpen()) {
breakstudent1->Close();
delete breakstudent1;
} return;
} if(breakstudent->GetRecordCount()==0) {
AfxMessageBox("无此学生违规记录");
m_breakdlg_name=breakstudent1->m_studentname; m_breakdlg_class=breakstudent1->m_class; UpdateData(false);
if(breakstudent->IsOpen()) {
breakstudent->Close();
delete breakstudent;
} return;
} CString recontent;
CString reresult;
CString remeno;
CString redate;
CTime tdate;
int i=0;
while(!
breakstudent->IsEOF()) {
recontent=breakstudent->m_breakcontent;
reresult=breakstudent->m_handleresult;
remeno=breakstudent->m_memo;
tdate=breakstudent->m_breaktime;
redate=tdate.Format("%d/%m/%y");
m_breakdlg_list.InsertItem(i,"");
m_breakdlg_list.SetItemText(i,0,recontent);
m_breakdlg_list.SetItemText(i,1,reresult);
m_breakdlg_list.SetItemText(i,2,remeno);
m_breakdlg_list.SetItemText(i,3,redate);
breakstudent->MoveNext();
i++; }
breakstudent->MoveFirst();
m_breakdlg_name=breakstudent1->m_studentname;
m_breakdlg_class=breakstudent1->m_class;
UpdateData(false);
if(breakstudent1->IsOpen()) {
breakstudent1->Close();
delete breakstudent1;
}
if(breakstudent->IsOpen()) {
breakstudent->Close();
delete breakstudent;
}
}
//根据选择对数据进行相应操作代码
void Cbreakhandledlg:
:
OnSure() {
// TODO:
Add your control notification handler code he
if(x==1)//添加x为外部变量用来在两个cpp文件间传递 {
UpdateData(true);
if(m_breakdlg2_connet.IsEmpty()||m_breakdlg2_result.IsEmpty()){
AfxMessageBox("违规内容 违规时间 处理结果 不能为空");
return;
}
int i;
whi