当前位置:文档之家› 学生信息管理系统编码阶段文档.

学生信息管理系统编码阶段文档.

学生信息管理系统编码阶段文档撰稿人:陈华军许凤珍詹春霞信息工程学院 111班目录1引言 (3)1.1编写目的 (3)1.2引用标准 (3)1.3参考资料 (3)1.4范围 (3)1.5术语定义 (3)1.6版本更新信息 (3)2 代码 (4)2.1连接数据库 (4)2.2登录代码 (4)2.3注册代码 (9)2.4违规处理代码//初始化处理窗口代码 (14)2.5管理员管理用户 (21)1引言1.1编写目的该文档是对学生信息管理系统项目的编码规范和代码说明。

1.2引用标准《企业文档格式标准》 V1.1,北京长江有限公司《软件详细设计报告格式标准》V1.1,北京长江有限公司软件工程过程化组织1.3参考资料《实战 Structs》,Ted Hustes .机械工业出版社《管理信息系统》。

清华大学出版社1.4范围该文档定义了本项目的代码具体内容及说明。

1.5术语定义Class(类):Android程序中的一个程序单位,可以生成很多实例。

Packages(包);由很多类组成的工作包。

1.6版本更新信息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 hereif (((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_studentinfoWHEREtb_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;while(!breakinfostudent->IsEOF()) {breakinfostudent->MoveNext();i= breakinfostudent->GetRecordCount(); } /* CString str;str.Format("i=%d",i);AfxMessageBox(str);*/breakinfostudent->AddNew();breakinfostudent->m_breakid=i+1;breakinfostudent->m_breakcontent=m_breakdlg2_connet; breakinfostudent->m_handleresult=m_breakdlg2_result; breakinfostudent->m_breaktime=m_breakdlg2_time; breakinfostudent->m_studentid=m_breakstudentid; breakinfostudent->m_memo=m_breakdlg2_meno;// AfxMessageBox("3");breakinfostudent->Update();breakinfostudent->Requery();AfxMessageBox("添加记录成功");m_breakdlg2_connet="";m_breakdlg2_result="";m_breakdlg2_time=CTime::GetCurrentTime();m_breakdlg2_meno="";UpdateData(FALSE); }else if(x==2) //删除{if(handlebreakstudent->GetRecordCount()!=0) {m_breakdlg2_connet=handlebreakstudent->m_breakcontent;m_breakdlg2_result=handlebreakstudent->m_handleresult;m_breakdlg2_time=handlebreakstudent->m_breaktime;m_breakdlg2_meno=handlebreakstudent->m_memo;UpdateData(false);handlebreakstudent->Delete();AfxMessageBox("删除记录成功");handlebreakstudent->Requery();if(handlebreakstudent->GetRecordCount()!=0) {m_breakdlg2_connet=handlebreakstudent->m_breakcontent;m_breakdlg2_result=handlebreakstudent->m_handleresult;m_breakdlg2_time=handlebreakstudent->m_breaktime;m_breakdlg2_meno=handlebreakstudent->m_memo;}else{m_breakdlg2_connet="";m_breakdlg2_result="";m_breakdlg2_time=CTime::GetCurrentTime();m_breakdlg2_meno="";}UpdateData(FALSE);} else {AfxMessageBox("无记录可删除");return;}} else { /* m_breakdlg2_connet= handlebreakstudent->m_breakcontent;m_breakdlg2_result=handlebreakstudent->m_handleresult;m_breakdlg2_time=handlebreakstudent->m_breaktime;m_breakdlg2_meno=handlebreakstudent->m_memo;UpdateData(false);*/if(handlebreakstudent->GetRecordCount()==0){ AfxMessageBox("无记录可编辑");return;}UpdateData(true);if(m_breakdlg2_connet.IsEmpty()||m_breakdlg2_result.IsEmpty()){ AfxMessageBox("违规内容违规时间处理结果不能为空");return;}if(handlebreakstudent->GetRecordCount()!=0) { handlebreakstudent->Edit();handlebreakstudent->m_breakcontent=m_breakdlg2_connet; handlebreakstudent->m_handleresult=m_breakdlg2_result;handlebreakstudent->m_breaktime=m_breakdlg2_time;handlebreakstudent->m_memo=m_breakdlg2_meno; handlebreakstudent->Update();handlebreakstudent->Requery();AfxMessageBox("更新记录成功");} else {AfxMessageBox("无记录可编辑");}}}2.5管理员管理用户以下为缺货查询的代码//CQuehuoDlg dialog void Chandleuserdlg::OnDelete() {// TODO: Add your control notification handler code hereif(p==0) {}else if(p==1) {UpdateData(TRUE);if(yonghuming!=m_userdlg_name) {AfxMessageBox("用户名不能修改");m_userdlg_name=yonghuming;UpdateData(FALSE);return; }mangeruser->Edit(); mangeruser->m_pwd1=m_userdlg_pwd; mangeruser->Update();AfxMessageBox("修改成功!"); mima = mangeruser->m_pwd1;CString uname;CString upwd;uname=yonghuming;upwd=mima;m_userdlg_list.DeleteAllItems();m_userdlg_list.InsertItem(0,"");m_userdlg_list.SetItemText(0,0,uname);m_userdlg_list.SetItemText(0,1,upwd);m_userdlg_name=yonghuming;m_userdlg_pwd=mima;UpdateData(FALSE);mangeruser->Requery();}else if(p==2) {if (teacheruser->GetRecordCount()!=0) { teacheruser->Delete();teacheruser->Requery();AfxMessageBox("删除成功!");/* if (!teacheruser->IsEOF()) { teacheruser->MoveNext();}*/ } else { AfxMessageBox("无记录可删除");return;}m_userdlg_list.DeleteAllItems();int q=0;CString uname;CString upwd;teacheruser->MoveFirst();while(!teacheruser->IsEOF()) { uname=teacheruser->m_username;upwd=teacheruser->m_pwd;m_userdlg_list.InsertItem(q,"");m_userdlg_list.SetItemText(q,0,uname); m_userdlg_list.SetItemText(q,1,upwd); teacheruser->MoveNext();q++;}teacheruser->MoveFirst();m_userdlg_name=teacheruser->m_username;m_userdlg_pwd=teacheruser->m_pwd;UpdateData(FALSE);} else if(p==3) {if (studentuser->GetRecordCount()!=0) { studentuser->Delete();studentuser->Requery();AfxMessageBox("删除成功!");/* if (!studentuser->IsEOF()) { studentuser->MoveNext();}*/} else {AfxMessageBox("无记录可删除");return; }m_userdlg_list.DeleteAllItems();int q=0;CString uname;CString upwd;->MoveFirst();while(!studentuser->IsEOF()) {uname=studentuser->m_username;upwd=studentuser->m_pwd;m_userdlg_list.InsertItem(q,"");m_userdlg_list.SetItemText(q,0,uname); m_userdlg_list.SetItemText(q,1,upwd); studentuser->MoveNext();q++;}studentuser->MoveFirst();m_userdlg_name=studentuser->m_username; m_userdlg_pwd=studentuser->m_pwd; UpdateData(FALSE);}。

相关主题