#include "Student.h"
#include <fstream>
#include <iostream>
#include <vector>
#include <ctime>
#include <cstdlib>
#include <string>
#include <conio.h>
using namespace std;
void getFileData(vector<Student> & rInfor);
void getRecord(char * file);
void main()
{
char* record = "record.txt";
ofstream fout(record, ios_base::out | ios_base::app);
vector<Student> infor;
int it = 0;
int choice;
getFileData(infor);//get data from the file
srand( time(NULL) );
while ( 1 )
{
cout << "1.开始点名 "
<< "2.显示所有同学点名情况 "
<< "3.清屏 "
<< "4.退出 " << endl;
while (!((cin >> choice) && choice > 0 && choice < 5))
{
cin.clear();
while (cin.get()!='\n')
{
continue;
}
cout << "你的输入有误,请重新输入!" << endl;
}
switch (choice)
{
case 1:
{
it = rand() % infor.size();
infor[it].setTime();
infor[it].getInformation(cout);
cout << "是否保存点名? <y or n>";
char temp;
temp = getch();
if (temp == 'y' || temp == 'Y')
{
cout << temp;
infor[it].getInformation(fout);
}
else
{
cout << temp;
}
cin.get();
cout << endl;
break;
}
case 2:
{
getRecord(record);
break;
}
case 3:
{
system("CLS");
break;
}
case 4:
{
exit( 1 );
}
}
}
//it = rand() % infor.size();
fout.close();
}
void getFileData(vector<Student> & rInfor)
{
char * fileName = "1.txt";
ifstream fin(fileName, ios_base::out | ios_base::app);
if (!fin.is_open())
{
cerr << "Could not open the file " << fileName << endl;
exit(EXIT_FAILURE);
}
while( !fin.eof() )
{
Student temp(fin);
rInfor.push_back( temp );
}
fin.clear();
fin.close();
}
void getRecord(char * file)
{
ifstream fin;
string temStr;
fin.open(file);
if (!fin.is_open())
{
cerr << "Could not open the file " << file << endl;
exit(EXIT_FAILURE);
}
while (!fin.eof())
{
getline(fin,temStr);
if (temStr.size() == 0)
{
continue;
}
else
{
cout << temStr << endl;
}
}
fin.clear();
fin.close();
}
随机点名系统(c++)



在IT行业中,编程是解决各种问题的关键工具,而“随机点名系统”就是一个典型的实例,特别是在教育领域。本文将深入探讨如何使用C++语言来实现这样一个系统,以及涉及的主要类和函数。 我们来看标题"随机点名系统(c++)"。这表明我们要用C++编程语言来构建一个软件,它的主要功能是随机选取学生进行点名。C++是一种强大的、面向对象的编程语言,适合开发高效、可靠的应用程序,因此它是实现此类系统的理想选择。 描述中提到,该系统旨在帮助教师在课堂上更方便地进行随机点名。这通常意味着系统需要具备以下功能: 1. 存储学生信息:包括姓名、学号等。 2. 随机选择学生:生成一个随机索引或使用某种随机算法来决定下一个被点名的学生。 3. 显示被选学生的信息:在屏幕上显示被选学生的姓名或学号。 4. 可重复性:能够多次执行点名过程,每次结果独立且随机。 接下来,我们分析一下提供的文件名称列表: - `useStudent.cpp`:这个文件很可能是主程序,它包含了对`Student`类的实例化和使用,以及点名过程的核心逻辑。 - `Student.cpp`:这是实现`Student`类的源代码,可能包含了类的成员函数,如构造函数、获取和设置属性的方法等。 - `Student.h`:这是`Student`类的头文件,定义了类的结构,包括类的声明和可能的公有接口。 在`Student`类的设计中,我们可以考虑以下关键元素: 1. `Student`类应包含表示学生身份的基本属性,如`name`(姓名)和`ID`(学号)。 2. 构造函数可以用于初始化这些属性。 3. 可能需要提供访问器(getter)和修改器(setter)方法来读取和修改学生信息。 4. 类可能还包含其他辅助方法,如打印学生信息的方法。 在`useStudent.cpp`中,我们需要实现点名的逻辑: 1. 创建一个`Student`对象的集合,例如使用`vector<Student>`。 2. 使用C++的`<random>`库来生成随机索引,或者自定义随机数生成算法。 3. 根据生成的索引选取并显示学生信息。 4. 这个过程可以通过循环来重复,直到教师停止点名。 总结起来,创建一个C++的随机点名系统涉及到了面向对象编程、数据存储、随机数生成和用户界面交互等多个方面。通过合理设计`Student`类和实现点名逻辑,我们可以构建出一个实用且易于操作的点名工具,为教师的教学工作带来便利。













- 1

- 粉丝: 132
- 资源: 40
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- stm32的ucos资料
- CentOS7安装xtrabackup及依赖包:亲测可用
- MySql-and-Sql-Server-Script.zip
- DistributedCaching.zip
- 基于Three.js和Chart.js打造未来科技风AI监控仪表盘代码
- PPT文字格式批量处理工具.zip
- Qt数据库编程(SQLite API)
- 零基础学习Xmind 8软件.zip
- 食品集中化信息处理系统
- C语言->学生管理系统
- 商品销售商城-Python+Django
- 简约的域名主页HTML源码带暗黑模式.zip
- 嵌入式蓝桥杯第十五届真题练习
- 毛玻璃个人导航HTML源码.zip
- Python核心编程视频教程完结.zip
- Esp32-c6通过Mqtt实现与巴法云的数据传输和接收,完整数据交互



- 1
- 2
- 3
前往页