问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言 随机点名

发布网友 发布时间:2022-04-23 14:37

我来回答

3个回答

懂视网 时间:2022-04-23 18:59

var random = parseInt(Math.random()*arr.length);
for(var i = 0; i < lis.length; i++) {
lis[i].className = "";
}
lis[random].className = "style";

*(找到对象,多个lis,遍历出来,清掉所有人,lis[i]的i的数字随机赋值样式)

关于排他,前面的去空和后面的赋值,一定要属性一模一样,不然没用!!!

排他

1第一层用来控制所有的input对象

2点击其中的一个input触发事件

3干掉所有的人for""

4复活我自己this.""

假设全选都是true,顶上的那个true;

input[i]遍历之后的选择有一个false, 全是的那就是false,上面的没有

热心网友 时间:2022-04-23 16:07

#include<stdio.h>
#include<stdlib.h>
#include <time.h>
#define STU_NUM_MAX 64 // 假设最多有64个学生
struct Student  
{
char name[10];
int  stuID;
}stu[STU_NUM_MAX];
int exist[STU_NUM_MAX]; // 用以保存被点过名
static int index=0; // 记住点名的次数 
void Iitialize(){
for(int i=0;i<STU_NUM_MAX;i++) exist[i]=0;
}
bool IsExist(int id){
for(int i=0;i<STU_NUM_MAX;i++)
if(exist[i]==id) return true; //已存在
return false; // 不存在
}
void Add() // 添加数据
{
FILE *fp;
int stu_num;
printf("\t\t You want to input the number of student?:");
scanf("%d",&stu_num);
for (int i=0;i<stu_num;i++){
printf("\n");
printf("\t\tPlease input student ID:");
    scanf("%d",&stu[i].stuID);
printf("\t\tPlease input student name:");
scanf("%s",stu[i].name);
fflush(stdin);
}
if((fp=fopen("stu.dat","ab"))==NULL) {
printf("Can't open file\n");
exit(1);
}
for(int j=0;j<stu_num;j++)
{   
if(fwrite(&stu[j],sizeof(struct Student),1,fp)!=1) 
printf("Error writing file.\n");
}
   fclose(fp); 
}
void rollcall() // 随机点名
{
FILE *fp;
    if((fp=fopen("stu.dat","rb"))==NULL)
{
printf("Can't open file.\n");
exit(1);
}
srand((unsigned)time(NULL));
int i=0;
int randID=rand()%(64-1+1)+1; // 1~64
printf("\t\t随机点到的学号为:%d\n\t\t%s\t%s\n",randID,"StuID","StuName"); 
do
{
        fseek(fp,i*sizeof(struct Student),SEEK_SET); 
if(fread(&stu[i],sizeof(struct Student),1,fp)) 
{
if(stu[i].stuID==randID&&!IsExist(randID)){
   printf("\t\t%4d\t%5s\n",stu[i].stuID,stu[i].name);
               exist[index++]=randID;
   break;}
}
  i++;
}while(!feof(fp));

fclose(fp);
}
int main()
{
int select=0;
char answer='y';
Iitialize();
do 
{
printf("1.添加数据 2.随机点名 3.退出\n请选择:");
fflush(stdin);
scanf("%d",&select);
switch(select)
{
case 1:
Add();
break;
case 2:
rollcall();
break;
case 3:
 return 0;
}
fflush(stdin);
printf("You want to continue?:");
scanf("%c",&answer);

} while (answer=='y'||answer=='Y');

return 0;
}

上面的代码,我留下几个细节问题留给你自己学着解决,都是很简单的:

上面的代码,我没有对重复的学号作判断。

上面的代码,我没有把点名存放到另一个文件,而是用数组替代(可以实现的也很简单)。我怕写得代码太多,百度*提交。

上面的代码,是测试数据,stu.dat目标文件并没有64个学生,我只写入了12条数据。

上面的代码,我没有对数据数量(最多64条)作判断。

追问我想问一下 对重复的学号做判断要怎么做 用if检测吗
这个程序能否做到 在关闭一次后重新打开依然不重复
谢谢

追答

由于代码较长百度*了提交,我下面截图给你看:

热心网友 时间:2022-04-23 17:25

好简单的程序,解决的方法很清晰,不过没时间做追问帮个忙吧,这不用半小时的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 新鞋子很磨脚,怎么办? 网上怎么有那么多头等舱耳机? 公交车上16wifi,为什么注册不了?求大神解答 不跨行异地存钱要手续费吗 白衣服染色了怎么办! 人民币贬值对股市和生活有何影响 人民币贬值对股市有什么影响的最新相关信息 人民币贬值了,会影响股市吗 人民币汇率接连下跌 对股市会产生什么影响 人民币跌了,对香港股市和港币有影响吗? 请问武夷岩茶中的“扣冰茶”有谁知道? 如何评价金鹰女神宋茜的整体造型? 由宋茜主演的《心跳源计划》好看吗? 宋茜在韩国被无数网友骂,为什么理由竟是:“脚趾长得丑”? 宋茜新剧豆瓣评分不过6,为什么网友不买账? 如何看待宋茜金鹰女神造型被槽历届最差这件事? 无息贷款什么人才可以贷到款? 宋茜成为金鹰女神一直被黑,你觉得这是艺人本身的问题吗? 塘沽区oppo售后在哪 宋茜“金鹰女神”造型太令人失望,这是怎么回事呢? 飞机上的耳机一般是什么牌子?质量如何? 乌龟头不能吃吗? 龟的头和尾可以吃吗? 如何作为一只咸鱼开心的活下去? 商业礼仪和生活礼仪的PPT教程 i7stws左右声道怎么调换,左耳机播放的是右声道,右耳机播放的是左声道... 我买泰康人寿保险五年期,每年交10000交5年,我交一年想退保,那10000元大约能退多少了,谁帮? 民权清收信用社三停为什么 不良贷款认定暂行办法的中国人民银行通知 夜隼是什么鸟,夜隼,毒刺 夜隼和海东青分别是什么动物? 夜隼怎么念?隼是什么动物? 夜隼的拼音是什么 老鹰能在高空发现猎物,它是不是视力最好的动物? 我养的这个好像叫彩虹鲨。有这么小的鲨鱼吗? 电视剧夜隼这个字念什么? 夜隼一出自什么动漫? 夜隼电视剧里的河野太郎是谁演的河野是那个演员员,叫什么名子? 电视剧夜隼怎么读夜什么? 什么样的塑料瓶能重复使用