#include <stdio.h>
#include <stdlib.h>
#define STUDENTNUM 4 //定义班级学生的总人数
//定义一个学生结构体,用来存储学生的各种信息
typedef struct{
char studentNo[3];//学生编号
char studentName[15];//学生姓名
} student;
//定义一个结构体数组,用来保存班级所有学生的信息
student information[STUDENTNUM]={0};
int main(int argc, const char * argv[]) {
//函数声明部分
void studentInformation();
void callRoll();
void ui();
printf("********欢迎使用随机点名系统********\n");
//打印界面
ui();
//接收用户的输入,并进行对应的操作
int flag;
while (1) {
scanf("%d",&flag);
if (flag==1) {
//调用录入学生信息函数
studentInformation();
printf("信息录入完毕,请使用功能键进行其他操作\n");
ui();
continue;
}else if(flag==2){
//调用随机点名函数
callRoll();
}else if(flag==3){
//退出系统
printf("系统已成功退出,感谢您的使用\n");
return 0;
}else{
printf("您的输入不正确,请重新输入\n");
continue;
}
}//while 到此结束
return 0;
}
/**
* 录入学生信息函数
*/
void studentInformation(){
//循环遍历数组,接收用户输入的学生信息
for (int i=0; i<sizeof(information)/sizeof(student); i++) {
printf("请输入第%d个学生的编号\n",i+1);
scanf(" %s",information[i].studentNo);
printf("请输入第%d个学生的姓名\n",i+1);
scanf(" %s",information[i].studentName);
}
FILE *fp=fopen("/Users/oujun/Desktop/1.txt", "w");
if (fp) {
fwrite(information, sizeof(information), 1, fp);
}
fclose(fp);
}
/**
* 随机点名函数
*/
void callRoll(){
//从文件中读取数据
FILE *fp=fopen("/Users/oujun/Desktop/1.txt", "r");
if (fp) {
fread(information, sizeof(information), 1, fp);
}
fclose(fp);
char select=0;
int i=0;//定义变量保存随机数
printf("请按a键进行随机点名\n");
while (1) {
printf("\n");
scanf(" %c",&select);
if (select=='a') {
printf("点点点......,哎呀\n");
//利用随机出来的数 作为结构体数组的下标来访问输出学生的信息
i=arc4random_uniform(STUDENTNUM);
printf("%s同学,轮到你回答问题了哦\n",information[i].studentName);
}
else{
printf("不要乱点\n");
}
}
}
/**
* 打印界面函数
*/
void ui(){
//打印界面
printf("**请根据提示选择你需要的功能进行操作**\n");
printf("1->手动录入学生信息\n");
printf("2->进行随机点名\n");
printf("3->退出系统\n");
}