1.跪求c语言上课随机点名程序设计
跪求c语言上课随机点名程序设计
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
#define STU_NUM_MAX 4
struct StudentInfo // 学生信息结构
{
char name[];
int stu_id;
}stu[STU_NUM_MAX];
void WriteData() //写入学生信息
{
FILE *fp;
int stu_num=4;
for (int i=0;i<stu_num;i++)
{
printf("请输入第%d个学生的随机数点姓名:",i+1);
scanf("%s",stu[i].name);
printf("请输入第%d个学生的学号:",i+1);
scanf("%d",&stu[i].stu_id);
}
if ((fp=fopen("myfile.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 StudentInfo),1,fp)!=1)
printf("Error writing file.\n");
}
fclose(fp);
}
void TeacherDM(int stuID) // 教师点名
{
FILE *fp;
bool find_mark=false;
printf("\n\t%s\t\t%s\n","学号","姓名");
if((fp=fopen("myfile.dat","rb"))==NULL)
{
printf("Can't open file\n");
exit(1);
}
int i=0;
do
{
fseek(fp,i*sizeof(struct StudentInfo),SEEK_SET);
fread(&stu[i],sizeof(struct StudentInfo),1,fp);
if(stu[i].stu_id==stuID)
{
printf("\t%4d\t%s\n",stu[i].stu_id,stu[i].name);
printf("\n\n\t请%s同学回答某某问题.\n",stu[i].name);
find_mark=true;
break;
}
i++;
}while(!feof(fp));
if(!find_mark) printf("\n\t\t未能找到学生号为:%d的记录!\n",stuID);
fclose(fp);
}
void main(void)
{
int stuID[4]={ ,,,};
//WriteData();
srand((unsigned)time(NULL));//随机种子
TeacherDM(stuID[rand()%(3-0+1)+0]);
}
运行效果截图:
另外多说一句,你所说的公正性,是不是指被点名过的同学不会再次被随机点名到。如果是名系码随名系码c查看源码这个意思,那么你可以通过数组来设置它,统源统代宠物源码英文即把点名过的同学的学号或姓名保存到一维数组里,随机判断时只需循环检查下该同学是否已被点名过。这里就留给你做了。机点外卖源码 VUE
随机数点喷绘软件源码随机数点喷绘软件源码2025-01-31 13:482531人浏览
2025-01-31 13:271991人浏览
2025-01-31 13:212754人浏览
2025-01-31 12:562109人浏览
2025-01-31 12:152654人浏览
2025-01-31 11:321147人浏览
1.“SCM”作为“源代码管理器”的英文缩写,其在编程中的具体应用是什么?2.“XOM”是“OmniMark Source Code file”的英文缩写吗?3.STL 源码剖析:sort4.pyc英