




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C+理于MFC1可視化程序設(shè)計報告方案概述1、問題描述學生信息包括:學號、姓名、性別、年齡、班級、專業(yè)等信息。2、功能要求(1)添加功能:程序能夠添加學生的記錄和課程設(shè)計題目記錄,提供選擇界面供用戶選擇所要添加的類別。添加記錄時,要求學號和編號要唯一。如果添加了重復(fù)記錄,則提示數(shù)據(jù)添加重復(fù)并取消添加。(2)查詢功能:可根據(jù)學號、姓名、編號、名稱等信息對已添加的學生和課程設(shè)計題目進行查詢,如果未找到,給出相應(yīng)的提示信息,如果找到,則顯示相應(yīng)的記錄信息。(3)顯示功能:可當前系統(tǒng)中所有學生的信息和課程設(shè)計題目信息顯示,每條記錄占據(jù)一行。(4)編輯功能:可根據(jù)查詢結(jié)果對相應(yīng)的記錄進行修改,修改時注意
2、學號的唯一性。(5)刪除功能:主要實現(xiàn)對已添加的學生和課程設(shè)計題目記錄進行刪除。如果當前系統(tǒng)中沒有相應(yīng)的記錄,則提示“記錄為空!”并返回操作。(6)保存功能:可將當前系統(tǒng)中各類記錄存入文件中,存入方式任意。(7)注銷功能:注銷當前用戶,返回登陸界面。3、問題的解決方案根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:(1)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計;(2)分析系統(tǒng)中的各個實體及它們之間的關(guān)系;(3)根據(jù)問題描述,設(shè)計系統(tǒng)的類層次;(4)完成類層次中各個類的描述;(5)完成類中各個成員函數(shù)的定義;(6)完成系統(tǒng)的應(yīng)用模塊;(7)功能調(diào)試;(8)完成系統(tǒng)總結(jié)報告。學生選
3、修課系統(tǒng)設(shè)計方案系統(tǒng)普糜索甌系統(tǒng)界面系統(tǒng)信息界面主界面:信息統(tǒng)計界面:系統(tǒng)實現(xiàn):1 .首先建立一個MF曖對話框,添加相關(guān)系統(tǒng)控件。如圖:2 .在解決方案中添加Student類,并實現(xiàn)這個類。代碼如下:/Student.hclassStudentpublic:stringname;stringstuNo;stringsex;stringmajor;doublescore;stringbanji;public:Student(void);Student(stringname,stringstuNo,stringsex,stringmajor,doublescore,stringbanji);Stu
4、dent.cpp#include"StdAfx.h"#include"Student.h"Student:Student(void)score,stringbanji)Student:Student(stringname,stringstuNo,stringsex,stringmajor,doublethis->name=name;this->stuNo=stuNo;this->sex=sex;this->major=major;this->score=score;this->banji=banji;3 .將數(shù)據(jù)保存、
5、讀取。在解決方案中創(chuàng)建FileManager類。代碼如下:/FileManager.h#pragmaonce#include"Student.hclassFileManagerprivate:charfilename40;public:FileManager(charfilename);FileManager(void);voidadd(Studentstu);intremove(stringname);voidedit(Studentstu);Studentsearch(stringname);map<string,Student>loadAll();voidsaveA
6、ll(map<string,Student>m);/FileManager.cpp#include"StdAfx.h"#include"FileManager.h"FileManager:FileManager(charfilename)strcpy_s(this->filename,40,filename);FileManager:FileManager(void)voidFileManager:add(Students)ofstreamfout(filename,ios:out|ios:app);<<s.score<
7、;<fout<<<<""<<s.stuNo<<""<<s.sex<<""<<s.major<<"<<s.banji<<endl;fout.close();intFileManager:remove(stringname)map<string,Student>m=loadAll();map<string,Student>:iteratorit=m.find(name)
8、;if(it=m.end()return0;/表示學生不存在elsem.erase(it);saveAll(m);return1;/表示有一個學生被刪除voidFileManager:edit(Studentstu)map<string,Student>m=loadAll();=stu;saveAll(m);StudentFileManager:search(stringname)Students;map<string,Student>m=loadAll();map<string,Student>:iteratorp;for(p=m.beg
9、in();p!=m.end();p+)據(jù)姓名查if(name=p->first)根據(jù)姓名找到s=p->second;/取出該學生對象break;returns;/將文件中的每一名學生(一行)存入一個mapmap<string,Student>FileManager:loadAll()map<string,Student>m;map<string,Student>:iteratorp;ifstreamfin(filename,ios:in);while(!fin.eof()Students;fin>>>>s.st
10、uNo>>s.sex>>s.major>>s.score>>s.banji;if(.size()!=0)=s;fin.close();returnm;voidFileManager:saveAll(map<string,Student>m)ofstreamfout(filename,ios:out);Students;map<string,Student>:iteratorp;for(p=m.begin();p!=m.end();p+)s=p->second;/取出該學生對象<<
11、s.score<<fout<<<<""<<s.stuNo<<""<<s.sex<<""<<s.major<<"<<s.banji<<endl;fout.close();4 .系統(tǒng)功能鍵有7個:使這7個功能鍵分別起到作用的代碼如下:voidCdialogDlg:OnBnClickedButtonsubmit()/添加按鈕的功能UpdateData(TRUE);FileManagerf(
12、"stuInfo.txt");Studentstu=f.search(LPCSTR(name);if(!="")MessageBox("該學生已存在!","提示");return;CStringmajor;this->cbx_major.GetWindowTextA(major);Students;5 .name=LPCSTR(name);s.stuNo=LPCSTR(stuNo);s.sex=(this->int_sex=0?"男":"女)s.score=
13、score;s.major=LPCSTR(major);s.banji=(this->int_banji=0?"一班":"二班");f.add(s);MessageBox("添力口成功!","提示");voidCdialogDlg:OnBnClickedButtonsearch()/按姓名查找UpdateData(TRUE);FileManagerf("stuInfo.txt");Studentstu=f.search(LPCSTR(name);if(="&quo
14、t;)MessageBox("該學生不存在!","提示");return;/將對象的值在界面顯示出來this->stuNo=stu.stuNo.c_str();this->int_sex=(stu.sex="男"?0:1);this->int_banji=(stu.banji="一班"?0:1);this->score=stu.score;this->cbx_major.SelectString(0,stu.major.c_str();UpdateData(FALSE);/更新界面控件
15、,使其顯示關(guān)聯(lián)變量的值voidCdialogDlg:OnBnClickedButtonremove()/按姓名刪除UpdateData(TRUE);FileManagerf("stuInfo.txt");if(f.remove(LPCSTR(name)=0)MessageBox("該學生不存在!","提示");elseMessageBox("刪除成功!","提示)voidCdialogDlg:OnBnClickedButtonedit()/編輯按鈕的功能UpdateData(TRUE);FileManag
16、erf("stuInfo.txt");Studentstu=f.search(LPCSTR(name);if(="")MessageBox("不允許修改姓名!","提示");return;CStringmajor;this->cbx_major.GetWindowTextA(major);Students;=LPCSTR(name);s.stuNo=LPCSTR(stuNo);s.sex=(this->int_sex=0?"男":"女)s.sco
17、re=score;s.major=LPCSTR(major);s.banji=(this->int_banji=0?"一班":"二班");f.edit(s);MessageBox("修改成功!","提示");voidCdialogDlg:OnBnClickedButton1()/保存按鈕的功能MessageBox("已成功保存所有已編輯信息到stuInfo.txt!","提示");voidCdialogDlg:OnBnClickedButtonsave()voidCdi
18、alogDlg:OnBnClickedButton2()/顯示全部UpdateData(TRUE);FileManagerfi("stuInfo.txt");map<string,Student>p;map<string,Student>:iteratori;p=fi.loadAll();CStringlist=""for(i=p.begin();i!=p.end();i+)list+="學號:"list+=i->second.stuNo.c_str();list+="姓名:"list
19、+=i->.c_str();list+="性別:"list+=i->second.sex.c_str();list+="班級:"list+=i->second.banji.c_str();list+="專業(yè):"list+=i->second.major.c_str();list+=""list+="n"MessageBox(list,"所有學生");voidCdialogDlg:OnBnClickedButton4()/注銷按鈕的
20、功能CDialog:OnOK();Logindlgl;dlg1.DoModal();UpdateData(FALSE);5.創(chuàng)建登陸界面,在解決方案中,以Dlg.h為基類創(chuàng)建一個Login類,代碼如下:/Login.h#pragmaonce/Login對話框classLogin:publicCDialogDECLARE_DYNAMIC(Login)public:Login(CWnd*pParent=NULL);/標準構(gòu)造函數(shù)virtualLogin();/對話框數(shù)據(jù)enumIDD=IDD_LOGIN;protected:virtualvoidDoDataExchange(CDataExchan
21、ge*pDX);/DDX/DDV支持DECLARE_MESSAGE_MAP()public:afx_msgvoidOnBnClickedOk();afx_msgvoidOnBnClickedCancel();CStringzhanghao;CStringmima;;/Login.cpp/Login.cpp:實現(xiàn)文件/usingnamespacestd;#include"stdafx.h"#include"dialog.h"#include"Login.h"/Login對話框IMPLEMENT_DYNAMIC(Login,CDialog
22、)Login:Login(CWnd*pParent/*=NULL*/):CDialog(Login:IDD,pParent),zhanghao(_T(""),mima(_T("")Login:Login()voidLogin:DoDataExchange(CDataExchange*pDX)CDialog:DoDataExchange(pDX);DDX_Text(pDX,IDC_EDIT_username,zhanghao);DDX_Text(pDX,IDC_EDIT_password,mima);BEGIN_MESSAGE_MAP(Login,CDia
23、log)ON_BN_CLICKED(IDOK,&Login:OnBnClickedOk)ON_BN_CLICKED(IDCANCEL,&Login:OnBnClickedCancel)END_MESSAGE_MAP()/Login消息處理程序voidLogin:OnBnClickedOk()UpdateData(TRUE);charname20,pass20;ifstreamfin("login.txt");while(!fin.eof()fin>>name;fin>>pass;if(zhanghao=name&&mima=pass)break;fin.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 做門面招牌合同范本
- 公司鋼材購銷合同范本
- 加裝電梯合伙合同范本
- 出租農(nóng)場果園合同范本
- 與銀行簽訂合同范本
- 分傭合同范例
- 個人軟件項目合同范本
- 個人演出雇用合同范本
- 加盟合同范本化妝
- 內(nèi)墻無機涂料合同范本
- 《玩偶之家(節(jié)選)》課件
- 化工生產(chǎn)設(shè)備安全檢查表
- 安徽2024年安徽醫(yī)科大學招聘管理崗和專業(yè)技術(shù)輔助崗(第二批)筆試歷年參考題庫解題思路附帶答案詳解
- 房建監(jiān)理實施細則
- 國家科學技術(shù)獎勵提名書
- 一年級下期開學第一課
- 舞臺燈光設(shè)計與光影藝術(shù)考核試卷
- 第10輯:句子表達效果(原句vs改句)解題指導-2023年高考語文一輪復(fù)習修辭手法與句子表達效果專練
- 2024年輔警招考時事政治考題及答案(100題)
- 2024年中考數(shù)學《二次函數(shù)的實際應(yīng)用》真題含解析版
- GB 30254-2024高壓三相籠型異步電動機能效限定值及能效等級
評論
0/150
提交評論