基本信息
源码名称:c++ 学生成绩管理系统 源码下载
源码大小:22.75M
文件格式:.zip
开发语言:C/C++
更新时间:2016-09-03
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
// 学生成绩管理系统Dlg.cpp : implementation file // #include "stdafx.h" #include "学生成绩管理系统.h" #include "学生成绩管理系统Dlg.h" #include "CShowDetailStuInfor.h " #include "CAddStuInfor.h" #include "CMfindstuinfor.h" #include "afxtempl.h" #include "CFindStuInfor.h" #include "ChangeStuDate.h" #include <string> using namespace std; #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //{{AFX_MSG_MAP(CAboutDlg) // No message handlers //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMyDlg dialog CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/) : CDialog(CMyDlg::IDD, pParent) { //{{AFX_DATA_INIT(CMyDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CMyDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMyDlg) DDX_Control(pDX, IDC_LIST2, m_list2); DDX_Control(pDX, IDC_LIST1, m_list); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CMyDlg, CDialog) //{{AFX_MSG_MAP(CMyDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_OPEN, OnOpen) ON_BN_CLICKED(IDC_ADD, OnAdd) ON_BN_CLICKED(IDC_FIND, OnFind) ON_BN_CLICKED(IDC_SAVE, OnSave) ON_BN_CLICKED(IDC_DELETE, OnDelete) ON_BN_CLICKED(IDC_CHANGE, OnChange) ON_BN_CLICKED(IDC_SORT, OnSort) ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST1, OnColumnclickList1) ON_BN_CLICKED(IDC_ANALYSIS, OnAnalysis) ON_BN_CLICKED(IDC_CLEARALL, OnClearall) ON_BN_CLICKED(IDC_MOHUFIND, OnMohufind) ON_BN_CLICKED(IDC_CLEAR1, OnClear1) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMyDlg message handlers BOOL CMyDlg::OnInitDialog() { CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here /////列表框1 m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); m_list.InsertColumn(0, "学号",LVCFMT_LEFT,100); m_list.InsertColumn(1, "姓名",LVCFMT_LEFT,90); m_list.InsertColumn(2, "数学",LVCFMT_LEFT,80); m_list.InsertColumn(3, "物理",LVCFMT_LEFT,80); m_list.InsertColumn(4, "英语",LVCFMT_LEFT,80); m_list.InsertColumn(5, "总分",LVCFMT_LEFT,80); //////列表框二 m_list2.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); m_list2.InsertColumn(0, "学号",LVCFMT_LEFT,100); m_list2.InsertColumn(1, "姓名",LVCFMT_LEFT,90); m_list2.InsertColumn(2, "数学",LVCFMT_LEFT,80); m_list2.InsertColumn(3, "物理",LVCFMT_LEFT,80); m_list2.InsertColumn(4, "英语",LVCFMT_LEFT,80); m_list2.InsertColumn(5, "总分",LVCFMT_LEFT,80); return TRUE; // return TRUE unless you set the focus to a control } void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } } // If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework. void CMyDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon 1) / 2; int y = (rect.Height() - cyIcon 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } } // The system calls this to obtain the cursor to display while the user drags // the minimized window. HCURSOR CMyDlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon; } void CMyDlg::OnOpen() { // TODO: Add your control notification handler code here CStdioFile mfile; CFileDialog dlg(TRUE); CString filename; dlg.m_ofn.lpstrTitle = "打开文件对话框"; dlg.m_ofn.lpstrFilter="Text Files(*.txt) \0*.txt\0All Files(*.*)\0 *.*\0\0"; if (IDOK == dlg.DoModal()) { filename = dlg.GetFileName(); } if (!mfile.Open(filename, CFile::modeCreate | CFile::modeNoTruncate | CFile::modeReadWrite)) { MessageBox("未选择文件!", "提示"); return; } else { CString Roneline,temp1, temp2; int i = 0; CArray<CString, CString> strArray; while (mfile.ReadString(Roneline)) { temp1 = Roneline; while (temp1.Find(" ") 1) { int length = temp1.Find(" "); temp2 = temp1.Left(length); strArray.Add(temp2); temp1 = Roneline.Right(temp1.GetLength() - length -1 ); } strArray.Add(temp1); m_list.InsertItem(i, strArray.GetAt(0)); m_list.SetItemText(i, 1, strArray.GetAt(1)); m_list.SetItemText(i, 2, strArray.GetAt(2)); m_list.SetItemText(i, 3, strArray.GetAt(3)); m_list.SetItemText(i, 4, strArray.GetAt(4)); int math, phy,eng, TGoal; CString temp; math = atoi( strArray.GetAt(2)); phy = atoi( strArray.GetAt(3)); eng = atoi( strArray.GetAt(4)); TGoal = math eng phy; temp.Format("%d", TGoal); m_list.SetItemText(i, 5,temp); temp.IsEmpty(); strArray.RemoveAll(); i ; } ListCount = i; } mfile.Close(); } void CMyDlg::OnAdd() { // TODO: Add your control notification handler code here CAddStuInfor dlg; if ( dlg.DoModal() == IDOK) { UpdateData(TRUE); if (dlg.m_Aid.IsEmpty() | dlg.m_Aname.IsEmpty()) { MessageBox("请填写完整!", "提示"); return; } for (int i= 0; i < m_list.GetItemCount(); i ) { m_Id=m_list.GetItemText(i,0); m_Name=m_list.GetItemText(i,1); if (m_Id == dlg.m_Aid || m_Name == dlg.m_Aname) { MessageBox("添加重复,请重新添加!", "提示"); return; } } int count = m_list.GetItemCount(); CString temp; m_list.InsertItem(count, dlg.m_Aid); m_list.SetItemText(count, 1, dlg.m_Aname); temp.Format("%f", dlg.m_Amath); m_list.SetItemText(count, 2, temp); temp.IsEmpty(); temp.Format("%f", dlg.m_Aphy); m_list.SetItemText(count, 3, temp); temp.IsEmpty(); temp.Format("%f", dlg.m_Aeng); m_list.SetItemText(count, 4, temp); temp.IsEmpty(); double total = dlg.m_Amath dlg.m_Aphy dlg.m_Aeng; temp.Format("%f", total); m_list.SetItemText(count, 5, temp); temp.IsEmpty(); UpdateData(false); MessageBox("添加成功!", "提示"); } else return; } void CMyDlg::OnDelete() { // TODO: Add your control notification handler code here CFindStuInfor dlg; CString str, id, name; bool B ; B=false; ChangeStuDate Cdlg; if (dlg.DoModal() == IDCANCEL) return; for (int count = 0;count < m_list.GetItemCount(); count ) { id=m_list.GetItemText(count,0); name=m_list.GetItemText(count,1); if (id == dlg.m_Ftemp || name == dlg.m_Ftemp) { Cdlg.m_Cname=name; Cdlg.m_Cid=id; Cdlg.m_Cmath=atof(m_list.GetItemText(count,2)); Cdlg.m_Cphy=atof(m_list.GetItemText(count,3)); Cdlg.m_Ceng=atof(m_list.GetItemText(count,4)); m_list.SetFocus(); m_list.SetItemState(count,LVIS_SELECTED,LVIS_SELECTED); UpdateData(FALSE); if(Cdlg.DoModal() == IDOK) { m_list.DeleteItem(count); return; } else { B = true; return; } } } if(B==false) { MessageBox("所查找的学生不存在!","提示"); return; } } void CMyDlg::OnFind() { // TODO: Add your control notification handler code here CFindStuInfor dlg; CShowDetailStuInfor Ddlg; bool B_value = false; CString name, id, temp, str1,str2,str3; int count; UpdateData(TRUE); if (dlg.DoModal() == IDCANCEL) return; for (count = 0;count < m_list.GetItemCount(); count ) { UpdateData(TRUE); id=m_list.GetItemText(count,0); name=m_list.GetItemText(count,1); if (id == dlg.m_Ftemp || name == dlg.m_Ftemp) { B_value = true; Ddlg.m_Dname=name; Ddlg.m_Did=id; Ddlg.m_Dmath=atof(m_list.GetItemText(count,2)); Ddlg.m_Dphy=atof(m_list.GetItemText(count,3)); Ddlg.m_Deng=atof(m_list.GetItemText(count,4)); Ddlg.m_Daverage = (Ddlg.m_Dmath Ddlg.m_Dphy Ddlg.m_Deng)/3; int i = m_list2.GetItemCount(); m_list2.InsertItem(i,id); m_list2.SetItemText(i,1,name); m_list2.SetItemText(i,2,m_list.GetItemText(count,2)); m_list2.SetItemText(i,3,m_list.GetItemText(count,3)); m_list2.SetItemText(i,4,m_list.GetItemText(count,4)); CString temp; temp.Format("%f",atof(m_list.GetItemText(count,2)) atof(m_list.GetItemText(count,3)) atof(m_list.GetItemText(count,4)) ); m_list2.SetItemText(i,5,temp); temp.IsEmpty(); m_list.SetFocus(); m_list.SetItemState(count,LVIS_SELECTED,LVIS_SELECTED); m_list2.SetFocus(); m_list2.SetItemState(i,LVIS_SELECTED,LVIS_SELECTED); m_list2.SetFocus(); m_list2.SetItemState(i,LVIS_SELECTED,LVIS_SELECTED); m_list2.SetFocus(); m_list2.SetItemState(i,LVIS_SELECTED,LVIS_SELECTED); Ddlg.DoModal(); return; } } if(B_value==false) MessageBox("所查找的学生不存在!","提示"); return; } void CMyDlg::OnSave() { // TODO: Add your control notification handler code here CStdioFile file; CFileDialog dlg(FALSE); CString filepathname; dlg.m_ofn.lpstrTitle="我的文件保存对话框"; dlg.m_ofn.lpstrFilter="Text Files(*.txt) \0*.txt\0All Files(*.*)\0 *.*\0\0"; dlg.m_ofn.lpstrDefExt="txt"; if(IDOK==dlg.DoModal()) { filepathname = dlg.GetFileName(); } if(file.Open(_T(filepathname),CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite)) { file.SeekToBegin(); CString sID,sName,sMath,sPhy,sEng,sSum,sOneline; int i; for(i=0;i<m_list .GetItemCount();i ) { sID=m_list.GetItemText(i,0); sName=m_list.GetItemText(i,1); sMath=m_list.GetItemText(i,2); sPhy=m_list.GetItemText(i,3); sEng=m_list.GetItemText(i,4); sSum=m_list.GetItemText(i,5); sOneline=sID " " sName " " sMath " " sPhy " " sEng " " sSum '\n'; file.WriteString(sOneline); sOneline.Empty(); } file.Close(); MessageBox("保存成功!","提示"); } else { MessageBox("保存失败!","提示"); } } void CMyDlg::OnChange() { // TODO: Add your control notification handler code here CFindStuInfor dlg; ChangeStuDate Cdlg; bool B ; B=false; CString name,id,temp,str1,str2,str3; if (dlg.DoModal() == IDCANCEL) return; for (int count = 0;count < m_list.GetItemCount(); count ) { UpdateData(TRUE); id=m_list.GetItemText(count,0); name=m_list.GetItemText(count,1); if (id == dlg.m_Ftemp || name == dlg.m_Ftemp) { Cdlg.m_Cname=name; Cdlg.m_Cid=id; Cdlg.m_Cmath=atof(m_list.GetItemText(count,2)); Cdlg.m_Cphy=atof(m_list.GetItemText(count,3)); Cdlg.m_Ceng=atof(m_list.GetItemText(count,4)); m_list.SetFocus(); m_list.SetItemState(count,LVIS_SELECTED,LVIS_SELECTED); UpdateData(FALSE); B = true; if(Cdlg.DoModal() == IDOK) { UpdateData(TRUE); str1.Format("%lf",Cdlg.m_Cmath); str2.Format("%lf",Cdlg.m_Cphy); str3.Format("%lf",Cdlg.m_Ceng); UpdateData(FALSE); m_list.DeleteItem(count); m_list.InsertItem(count, Cdlg.m_Cid); m_list.SetItemText(count, 1, Cdlg.m_Cname); str1.Format("%f", Cdlg.m_Cmath); m_list.SetItemText(count, 2, str1); str2.Format("%f", Cdlg.m_Cphy); m_list.SetItemText(count, 3, str2); str3.Format("%f", Cdlg.m_Ceng); m_list.SetItemText(count, 4, str3); double total = Cdlg.m_Cmath Cdlg.m_Cphy Cdlg.m_Ceng; CString temp; temp.Format("%f", total); m_list.SetItemText(count, 5, temp); temp.IsEmpty(); } } if ( false == B) { MessageBox("要修改的信息不存在", "提示"); return; } } } void CMyDlg::OnSort() { // TODO: Add your control notification handler code here MessageBox("请点击列表头进行排序","提示"); } void CMyDlg::OnColumnclickList1(NMHDR* pNMHDR, LRESULT* pResult) { NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; // TODO: Add your control notification handler code here m_SortColumn = pNMListView->iSubItem; int count = m_list.GetItemCount(); //行数 bool noswap; int i,j; CString temp; B_UpOrDown=!B_UpOrDown ;//升序还是降序 if(!B_UpOrDown) for(i=0;i<count;i ) { noswap=true; for(j=count-1;j>i;j--) { if(m_list.GetItemText(j,m_SortColumn)<m_list.GetItemText(j-1,m_SortColumn)) { temp=m_list.GetItemText(j,0); m_list.SetItemText(j,0, m_list.GetItemText(j-1,0)); m_list.SetItemText(j-1,0,temp); temp.Empty(); temp=m_list.GetItemText(j,5); m_list.SetItemText(j,5,m_list.GetItemText(j-1,5)); m_list.SetItemText(j-1,5,temp); temp.Empty(); temp=m_list.GetItemText(j,4); m_list.SetItemText(j,4,m_list.GetItemText(j-1,4)); m_list.SetItemText(j-1,4,temp); temp.Empty(); temp=m_list.GetItemText(j,3); m_list.SetItemText(j,3,m_list.GetItemText(j-1,3)); m_list.SetItemText(j-1,3,temp); temp.Empty(); temp=m_list.GetItemText(j,2); m_list.SetItemText(j,2,m_list.GetItemText(j-1,2)); m_list.SetItemText(j-1,2,temp); temp.Empty(); temp=m_list.GetItemText(j,1); m_list.SetItemText(j,1,m_list.GetItemText(j-1,1)); m_list.SetItemText(j-1,1,temp); temp.Empty(); noswap=false; } } if(noswap) break; } if(B_UpOrDown) { for(i=0;i<count;i ) { noswap=true; for(j=count-1;j>i;j--) { if(m_list.GetItemText(j,m_SortColumn)>m_list.GetItemText(j-1,m_SortColumn)) { temp=m_list.GetItemText(j,0); m_list.SetItemText(j,0,m_list.GetItemText(j-1,0)); m_list.SetItemText(j-1,0,temp); temp.Empty(); temp=m_list.GetItemText(j,5); m_list.SetItemText(j,5,m_list.GetItemText(j-1,5)); m_list.SetItemText(j-1,5,temp); temp.Empty(); temp=m_list.GetItemText(j,4); m_list.SetItemText(j,4,m_list.GetItemText(j-1,4)); m_list.SetItemText(j-1,4,temp); temp.Empty(); temp=m_list.GetItemText(j,3); m_list.SetItemText(j,3,m_list.GetItemText(j-1,3)); m_list.SetItemText(j-1,3,temp); temp.Empty(); temp=m_list.GetItemText(j,2); m_list.SetItemText(j,2,m_list.GetItemText(j-1,2)); m_list.SetItemText(j-1,2,temp); temp.Empty(); temp=m_list.GetItemText(j,1); m_list.SetItemText(j,1,m_list.GetItemText(j-1,1)); m_list.SetItemText(j-1,1,temp); temp.Empty(); noswap=false; } } if(noswap) break; } } if(m_SortColumn == 2 || m_SortColumn == 3 || m_SortColumn == 4) { if(!B_UpOrDown) for(i = 0; i < count; i ) { noswap=true; for(j = count - 1 ;j > i; j --) { if(atof(m_list.GetItemText(j,m_SortColumn)) < atof(m_list.GetItemText(j-1, m_SortColumn)) ) { temp=m_list.GetItemText(j,0); m_list.SetItemText(j,0,m_list.GetItemText(j-1,0)); m_list.SetItemText(j-1,0,temp); temp.Empty(); temp=m_list.GetItemText(j,5); m_list.SetItemText(j,5,m_list.GetItemText(j-1,5)); m_list.SetItemText(j-1,5,temp); temp.Empty(); temp=m_list.GetItemText(j,4); m_list.SetItemText(j,4,m_list.GetItemText(j-1,4)); m_list.SetItemText(j-1,4,temp); temp.Empty(); temp=m_list.GetItemText(j,3); m_list.SetItemText(j,3,m_list.GetItemText(j-1,3)); m_list.SetItemText(j-1,3,temp); temp.Empty(); temp=m_list.GetItemText(j,2); m_list.SetItemText(j,2,m_list.GetItemText(j-1,2)); m_list.SetItemText(j-1,2,temp); temp.Empty(); temp=m_list.GetItemText(j,1); m_list.SetItemText(j,1,m_list.GetItemText(j-1,1)); m_list.SetItemText(j-1,1,temp); temp.Empty(); noswap=false; } } if(noswap) break; } if(B_UpOrDown) { for(i=0;i<count;i ) { noswap=true; for(j=count-1;j>i;j--) { if(atof(m_list.GetItemText(j,m_SortColumn))>atof(m_list.GetItemText(j-1,m_SortColumn))) { temp=m_list.GetItemText(j,0); m_list.SetItemText(j,0,m_list.GetItemText(j-1,0)); m_list.SetItemText(j-1,0,temp); temp.Empty(); temp=m_list.GetItemText(j,5); m_list.SetItemText(j,5,m_list.GetItemText(j-1,5)); m_list.SetItemText(j-1,5,temp); temp.Empty(); temp=m_list.GetItemText(j,4); m_list.SetItemText(j,4,m_list.GetItemText(j-1,4)); m_list.SetItemText(j-1,4,temp); temp.Empty(); temp=m_list.GetItemText(j,3); m_list.SetItemText(j,3,m_list.GetItemText(j-1,3)); m_list.SetItemText(j-1,3,temp); temp.Empty(); temp=m_list.GetItemText(j,2); m_list.SetItemText(j,2,m_list.GetItemText(j-1,2)); m_list.SetItemText(j-1,2,temp); temp.Empty(); temp=m_list.GetItemText(j,1); m_list.SetItemText(j,1,m_list.GetItemText(j-1,1)); m_list.SetItemText(j-1,1,temp); temp.Empty(); noswap=false; } } if(noswap) break; } } } *pResult = 0; } void CMyDlg::OnAnalysis() { // TODO: Add your control notification handler code here m_list2.DeleteAllItems(); double total1=0, total2=0, total3=0; double j = 0; double FangCha1=0,FangCha2=0,FangCha3=0; double Average1=0, Average2=0, Average3=0, Average4 = 0; CString temp,str1,str2,str3, str; str1 = "各科总分"; str2 = "各科平均分"; str3 = "各科方差"; int i = m_list.GetItemCount(); for (int count = 0; count < m_list.GetItemCount();count ) { //id=m_list.GetItemText(count,0); total1 = atof(m_list.GetItemText(count,2)); total2 =atof(m_list.GetItemText(count,3)); total3 =atof(m_list.GetItemText(count,4)); Average4 = ( atof(m_list.GetItemText(count,2)) atof(m_list.GetItemText(count,3)) atof(m_list.GetItemText(count,4)) )*(atof(m_list.GetItemText(count,2)) atof(m_list.GetItemText(count,3)) atof(m_list.GetItemText(count,4))) ; Average1 =atof(m_list.GetItemText(count,2))*atof(m_list.GetItemText(count,2)); Average2 =atof(m_list.GetItemText(count,3))*atof(m_list.GetItemText(count,3)); Average3 =atof(m_list.GetItemText(count,4))*atof(m_list.GetItemText(count,4)); } UpdateData(TRUE); m_list2.InsertItem(0,str1); temp.Format("%f",total1); m_list2.SetItemText(0, 2,temp ); temp.IsEmpty(); temp.Format("%f",total2); m_list2.SetItemText(0, 3, temp); temp.IsEmpty(); temp.Format("%f",total3); m_list2.SetItemText(0, 4, temp); temp.IsEmpty(); temp.Format("%f",total3 total2 total1); m_list2.SetItemText(0, 5, temp); temp.IsEmpty(); //平均分 UpdateData(TRUE); m_list2.InsertItem(1,str2); temp.Format("%f",total1/i); m_list2.SetItemText(1, 2,temp ); temp.IsEmpty(); temp.Format("%f",total2 / i); m_list2.SetItemText(1, 3, temp); temp.IsEmpty(); temp.Format("%f",total3/i); m_list2.SetItemText(1, 4, temp); temp.IsEmpty(); temp.Format("%f",(total3 total2 total1)/i); m_list2.SetItemText(1, 5, temp); temp.IsEmpty(); UpdateData(FALSE); ///方差 UpdateData(TRUE); m_list2.InsertItem(2,str3); temp.Format("%f",( Average1 - (total1 * total1) / i ) /i ); m_list2.SetItemText(2, 2,temp ); temp.IsEmpty(); temp.Format("%f",( Average2-total2*total2/i)/i); m_list2.SetItemText(2, 3, temp); temp.IsEmpty(); temp.Format("%f",(Average3-total3*total3/i)/i); m_list2.SetItemText(2, 4, temp); temp.IsEmpty(); temp.Format("%f",( Average4-(total1 total2 total3)*(total1 total2 total3 )/i)/i); m_list2.SetItemText(2, 5, temp); temp.IsEmpty(); UpdateData(FALSE); ///不及格人数//// int temp1 = 0, temp2 = 0, temp3 = 0; for ( count = 0; count < m_list.GetItemCount();count ) { if ( atof(m_list.GetItemText(count,2)) < 60 ) { temp1 = 1; } } int h = 0; for ( count = 0; count < m_list.GetItemCount();count ) { if ( atof(m_list.GetItemText(count,3)) < 60 ) { temp2 = 1; } } for ( count = 0; count < m_list.GetItemCount();count ) { if ( atof(m_list.GetItemText(count,4)) < 60 ) { temp3 = 1; } } str = "各科不及格人数"; m_list2.InsertItem(3,str); temp.Format("%d",temp1 ); m_list2.SetItemText(3, 2 , temp); temp.IsEmpty(); str.IsEmpty(); temp.Format("%d",temp2 ); m_list2.SetItemText(3, 3 , temp); temp.IsEmpty(); temp.Format("%d",temp3 ); m_list2.SetItemText(3, 4 , temp); temp.IsEmpty(); str = "各科及格人数"; m_list2.InsertItem(4,str); temp.Format("%d",i - temp1 ); m_list2.SetItemText(4, 2 , temp); temp.IsEmpty(); str.IsEmpty(); temp.Format("%d",i - temp2 ); m_list2.SetItemText(4, 3 , temp); temp.IsEmpty(); temp.Format("%d",i - temp3 ); m_list2.SetItemText(4, 4 , temp); temp.IsEmpty(); str = "总人数"; m_list2.InsertItem(5,str); temp.Format("%d",i ); m_list2.SetItemText(5, 1 , temp); temp.IsEmpty(); str.IsEmpty(); UpdateData(FALSE); m_list2.SetFocus(); m_list2.SetItemState(0,LVIS_SELECTED,LVIS_SELECTED); m_list2.SetFocus(); m_list2.SetItemState(1,LVIS_SELECTED,LVIS_SELECTED); m_list2.SetFocus(); m_list2.SetItemState(2,LVIS_SELECTED,LVIS_SELECTED); m_list2.SetFocus(); m_list2.SetItemState(3,LVIS_SELECTED,LVIS_SELECTED); m_list2.SetFocus(); m_list2.SetItemState(4,LVIS_SELECTED,LVIS_SELECTED); } void CMyDlg::OnClearall() { // TODO: Add your control notification handler code here m_list.DeleteAllItems(); } void CMyDlg::OnMohufind() { // TODO: Add your control notification handler code here m_list2.DeleteAllItems(); string strTempName,strListName,strTempID,strListID; bool B_value=false; CMfindstuinfor dlg; if(dlg.DoModal()==IDOK) { for(int i=0; i <=m_list.GetItemCount();i ) { strListName=m_list.GetItemText(i,1); strListID=m_list.GetItemText(i,0); if(strListName.find(dlg.m_Ptemp)!=string::npos || strListID.find(dlg.m_Ptemp)!=string::npos) { m_list.SetFocus(); m_list.SetItemState(i,LVIS_SELECTED,LVIS_SELECTED); UpdateData(TRUE); int count = m_list2.GetItemCount(); m_list2.InsertItem(count, m_list.GetItemText(i,0) ); m_list2.SetItemText(count, 1, m_list.GetItemText(i,1)); m_list2.SetItemText(count, 2, m_list.GetItemText(i,2)); m_list2.SetItemText(count, 3, m_list.GetItemText(i,3)); m_list2.SetItemText(count, 4, m_list.GetItemText(i,4)); m_list2.SetItemText(count, 5, m_list.GetItemText(i,5)); UpdateData(FALSE); B_value=true; } } if(B_value==false) MessageBox("所查找的学生不存在!","提示"); } } void CMyDlg::OnClear1() { // TODO: Add your control notification handler code here m_list2.DeleteAllItems(); }