
大致思路就是这样,希望能够帮到你哦~
#include <stdio.h>#include <stdlib.h>
#include<string.h>
#include <time.h>
func1(char stubuff[100][100],int stucnt)
func2(char stubuff[100][100],int stucnt)
struct Student
{
int stdno
char name[20]
char sex[20]
}
int main()
{
FILE *fp
int stucnt=0,x
char line[100]="\0",stubuff[100][100]
char filename[20]
struct Student *st
printf("\t\t\t欢迎使用课堂随机点名程序!\n\n")
printf("点名前请输入您要点名的班级:")
scanf("%s",filename)
fp=fopen(filename,"r")
while (fgets(line,99,fp)!=NULL)
{
strcpy(stubuff[stucnt++],line)
}
printf("该班一共有%d个学生\n",stucnt)
srand((unsigned)time(NULL))
printf("请选择:\n")
printf("1:开始点名\n2:查看全班具体情况\n3:结束程序\n")
printf("请输入您的选择:")
scanf("%d",&x)
switch(x)
{
case 1:
func1(stubuff[100][100],stucnt)break
case 2:
func2(stubuff[100][100],stucnt)break
case 3:
printf("\t\t\t谢谢使用!\n")
}
fclose(fp)
return 0
}
func1(char stubuff[100][100],int stucnt)
{
int i,j,chou,tmp,sel[100]={0},flag
do
{
printf("请输入这次要点名的人数:")
scanf("%d",&chou)
if (chou>stucnt)
{
printf("这个班没有这么多学生\n")
}
} while(chou>stucnt ||chou<0)
for (i=0i<choui++)
{
flag=0
tmp=rand()%stucnt+1
for (j=0j<ij++)
{
if (sel[j]==tmp)
{
flag=1
break
}
}
if (flag==1)
{
i--
}else
{
sel[i]=tmp
}
}
printf("点名情况如下:\n")
printf("学号\t\t姓名\t性别\n")
for (i=0i<choui++)
{
fflush(stdin)
getchar()
printf("%s",stubuff[sel[i]-1])
}
}
func2(char stubuff[100][100],int stucnt)
{
int i
for (i=0i<stucnti++)
{
fflush(stdin)
getchar()
printf("%s",stubuff[i])
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)