⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class.h

📁 随即点名 随即点名 随即点名 随即点名
💻 H
字号:
#include "students.h"

class Class
{
private:
	int count;
	student* per;
public:
	Class()
	{
		//
		// TODO: 在此处添加构造函数逻辑
		//
		count = 1024;

		per =new student[count];
		for(int i=0;i<count;i++) 
		{
			per[i] = student();

			//test code here
			per[i].setSeq("没有加载班级文件!");
			per[i].setID("没有加载班级文件!");
			per[i].setName("没有加载班级文件!");
		}

		//should call InitData() here
		
	}
	void Clear(){
		for(int i=0;i<count;i++) 
		{
			per[i] = student();

			//test code here
			per[i].setSeq("");
			per[i].setID("");
			per[i].setName("");
		}
	}

	void InitData()
	{

		CString strFileOpen;
		BOOL bOpenFileDialog;
		LPCTSTR lpszDefExt = NULL;
		LPCTSTR lpszFileName = NULL;
		DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
		LPCTSTR lpszFilter = NULL;
		CWnd* pParentWnd = NULL;

		//ready for open a file to read
		bOpenFileDialog = TRUE;
		lpszDefExt = _T("txt");
		lpszFileName = _T("stu");
		char BASED_CODE szFilter[] = "Default Rule Files (*.txt)|*.txt|All Files (*.*)|*.*||";
		lpszFilter = szFilter;
 
		CFileDialog fopen_dlg(bOpenFileDialog,lpszDefExt,lpszFileName,dwFlags,lpszFilter,pParentWnd);
		if(fopen_dlg.DoModal() == IDOK)
		{
			Clear();  //clear data first

			CFile cf;
			int len = 0;
			int i = 0,j = 0;
			int c=0,pos;
			char cbuffer[4096],buf[128];
			CString seq,name,no;
			BOOL br = false;

			if(cf.Open(fopen_dlg.GetFileName(),CFile::modeRead)){
				len = cf.Read(cbuffer,4096); 
			



				if(len > 0)
				{
					j=0;
					pos = 0;
					memset(buf,0,128);

					while( i < len ){

						while(cbuffer[i] != ' ' 
							&& cbuffer[i] != '\t'
							&& cbuffer[i] != '\n'
							&& cbuffer[i] != '\r')
							buf[j++] = cbuffer[i++];

						switch(pos++){
						case 0:
							seq = buf;
							break;
						case 1:
							no = buf;
							break;
						case 2:
							name = buf;
							break;
						}
						memset(buf,0,128);
						j = 0;


						while(cbuffer[i] == ' ' 
						|| cbuffer[i] == '\t')	i++;

						if(pos >= 3 )
						{

							//赋值
							per[c].setSeq(seq);
							per[c].setID(no);
							per[c].setName(name);

							pos = 0;
							memset(buf,0,128);
							c++;    //把数组地址加1以便存放下一个数据
							seq = "";
							no = "";
							name = "";

							while(cbuffer[i] != 0x0d && cbuffer[i] != 0x0a) i++;
						}
						while(cbuffer[i] == ' ' 
						|| cbuffer[i] == '\t'
						|| cbuffer[i] == 0x0d
						|| cbuffer[i] == 0x0a)
						i++;
					}

				}
				count = c; //把count的值设成正确的数值
				cf.Close();
			}

		}
	}

	Person getPerson(int i)
	{
		return count==0? per[i]:per[i%count];
	}
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -