查找:我认为,首先把txt文件存在硬盘上,最好在学生前面编上序号,完了用rand(srand)抽取号码。抽取完毕后,用号码对应用c语言函数fscanf查找号码所对应的学生姓名。
删除和添加可以直接在txt里进行。如果非要在程序中的话,用fprintf就可以实现了。
随机点名:从网上下载个汉语的发音包,用c调用即可。
rand(srand)用法:
计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子。(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,当你取得65535个随机数后它们又重复出现了。)
我们知道rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准以某个递推公式推算出来的一系列数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统。
1rand()
功能:随机数发生器
用法:int rand(void)
所在头文件: stdlibh
rand()的内部实现是用线性同余法做的,它不是真的随机数,因其周期特别长,故在一定的范围里可看成是随机的。
rand()返回一随机数值的范围在0至RAND_MAX 间。RAND_MAX的范围最少是在32767之间(int)。用unsigned int 双字节是65535,四字节是4294967295的整数范围。0~RAND_MAX每个数字被选中的机率是相同的。
用户未设定随机数种子时,系统默认的随机数种子为1。
rand()产生的是伪随机数字,每次执行时是相同的;若要不同,用函数srand()初始化它。
2srand()
功能:初始化随机数发生器
用法: void srand(unsigned int seed)
所在头文件: stdlibh
srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。
3使用当前时钟作为随机数种子
rand()产生的随机数在每次运行的时候都是与上一次相同的。若要不同,用函数srand()初始化它。可以利用srand((unsigned int)(time(NULL))的方法,产生不同的随机数种子,因为每一次运行程序的时间是不同的。
4产生随机数的用法
1) 给srand()提供一个种子,它是一个unsigned int类型;
2) 调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到RAND_MAX之间);
3) 根据需要多次调用rand(),从而不间断地得到新的随机数;
4) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。
0~RAND_MAX之间的随机数程序
#include <iostream>
#include <stdlibh>
#include <timeh>
using namespace std;
int main()
{
srand((unsigned)time(NULL));
for(int i = 0; i < 10;i++ )
cout << rand() << '\t';
cout << endl;
return 0;
}
5产生一定范围随机数的通用表示公式
要取得[a,b)的随机整数,使用(rand() % (b-a))+ a;
要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a;
要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1;
通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。
要取得a到b之间的随机整数,另一种表示:a + (int)b rand() / (RAND_MAX + 1)。
要取得0~1之间的浮点数,可以使用rand() / double(RAND_MAX)。
界面可用switch函数选择
知到app如何点名,第一步:存储全班同学姓名 。
创建一个存储多个同学姓名的容器(数组实现) 键盘输入每个同学的姓名,存储到容器中(数组)
第二步:让程序总览全班同学姓名。
第三步:应用随机原理点名其中一人。
知到(智慧树教育平台)是智慧树在线教育平台提供的一款手机客户端,你可以通过这款软件在手机上在线观看智慧树平台的课程,此外你还可以将课程视频下载到你的手机中离线观看。使用这款软件的用户还可以在线做作业、参加考试,让你能系统的学习想要学的东西。
excel的随机点名的设置步骤如下:
1、首先我们打开电脑里的excel软件,在A列单元格里输入同学们的姓名,我这里为方便用百度+数字来表示。
2、然后我们在另外的单元格先输入函数 =INDIRECT("a") 。
3、然后我们继续输入完整的函数,即“=INDIRECT("a"&RANDBETWEEN(2,16))”表示从A列第2-16单元格里随机选择一个单元格数据。
4、然后我们选中A列。
5、点击右键,点击隐藏,将名字隐藏起来,或许也可以省略这一步。
6、点名的时候只需要一直按住F9即可,松开时,就会出现一个名字了。
1、使用UrlDownLoadToFile这个API下载指定url的学生名单(#include<urlmonh> #pragma comment(lib, "urlmonlib"))
2、使用fopen读取学生名单到一个char的缓冲区, 使用stl string来处理这段缓冲区, 并使用stl vector<SStudentInfo> 存储学生信息
struct SStudentInfo
{
};
vector<SStudentInfo> m_vInfo;
3、使用C语言随机函数取得随机数,
srand((unsigned)time(0)); int rid = rand()%m_vInfosize() - 1; SStudentInfo pInfo = m_vInfo[rid];
4、将pInfo里面的信息显示到界面
界面可以使用MFC, 如果使用控制台做的话也很方便
我只提供一个思路
如果要我提供源码, 你必须告诉我你的那个网站是什么, 我需要分析你的网站信息来编写通过班级选择性加载
//当文件流为eof状态时需先clear再seek
#include <iostream>
#include <string>
#include <fstream>
#include <ctime>
using namespace std;
class Class;
class Student{
string Name;//学生姓名
string ID;//学生学号
string Number;//学生序号
public:
string GetName();
string GetNumber();
string GetID();
friend class Class;
};
string Student::GetID()
{
return ID;
}
string Student::GetName()
{
return Name;
}
string Student::GetNumber()
{
return Number;
}
class System
{
public:
void menu();
};
class Class{
Student student;
int number;
public:
Class(string);
~Class(){delete []student;};
int GetNumber();
friend void System::menu();
};
void System::menu()
{
string temp;
cout<<"请输入学生名单文件(txt)的全路径(输入exit为退出本程序):";
cin>>temp;
if(temp=="exit")exit(0);
Class cls(temp);
char tmp,tp;
loop: cout<<"Enter 1 or 0<1抽取,0退出,其它无效>:";
cin>>tmp;
if(tmp=='1')
{
int NUM;//被选中学生的号码
time_t NowTime;
again: NowTime=time(NULL);//利用系统时间
NowTime=NowTime%clsGetNumber();//用取余的方式求出NUM
NUM=NowTime;
cout<<"被抽中的是:"<<endl;
cout<<"学生序号:"<<clsstudent[NUM]GetNumber()<<endl;
cout<<"学生学号:"<<clsstudent[NUM]GetID()<<endl;
cout<<"学生姓名:"<<clsstudent[NUM]GetName()<<endl;
againchoose: cout<<"Enter 1 or 0<1为继续抽取,0为退出,其它无效>:";
cin>>tp;
if(tp=='1')goto again;
else if(tp=='0')exit(0);
else goto againchoose;
}
else if(tmp=='0')exit(0);
else goto loop;
}
Class::Class(string temp)
{
string tmp;
number=0;
char p=new char[100];
while(1)
{
ifstream File;
Fileopen(tempc_str());
if(Fileis_open())
{
cout<<"文件打开成功"<<endl;
while(!Fileeof()){Filegetline(p,100);number++;}
cout<<number<<endl;
student=new Student[number];
Fileclear(); // must clear when the stream is in the eof statue!!!
Fileseekg(0);
cout << p << endl;
for(int i=0;i<number;i++){
File>>tmp;
student[i]Number=tmp;
File>>tmp;
student[i]ID=tmp;
File>>tmp;
student[i]Name=tmp;
}
Fileclose();
break;
}
else
{
cout<< "Warnning:Cannot open this file!" <<endl;
Fileclose();
}
}
cout<<"已经初始化"<<endl;
cout<<"该班学生人数为:"<<number<<"人"<<endl;
}
int Class::GetNumber()
{
return number;
}
int main()
{
System sys;
sysmenu();
return 0;
}
打开任务管理器,在管理器里面找到正在运行的那个软件程序名并结束任务,结束后再删除!
点名软件(梦畅语音点名软件)是一款支持语音播报点名结果的随机点名软件,您可以自定义名单,点击开始,点名软件(梦畅语音点名软件)会快速滚动显示名字。
1程序免安装,用户只需双击“RollCallexe”即可打开点名软件2首先,点击“编辑名单”3输入要点名 *** 作的姓名,完成点击“文件”-“保存”即可4完成姓名的编辑,点击“开始”
以上就是关于课堂随机点名系统程序设计。全部的内容,包括:课堂随机点名系统程序设计。、知到app如何点名、excel的随机点名怎么弄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)