A. 求c語言班級點名程序,高手們來幫幫忙啊
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct Student
{
char name[20];
bool IsRead;
}Student;
int main()
{
int i;
int select;
int mark=1;
//下面中你還可以加入一些學生,記得初始化的IsRead都是false
Student student[]=
{
{"張三",false},
{"李四",false},
{"王五",false},
{"劉六",false},
{"趙七",false}
};
printf("歡迎進入點門系統,以下是全班的花名冊:\n");
for (i=0;i<sizeof(student)/sizeof(Student);i++)
printf("%s ",student[i].name);
printf("\n");
do
{
printf("請選擇:\n1.點名\n2.顯示沒有點到的學生名字\n3.退出點名系統\n");
scanf("%d",&select);
system("cls");//如果是Linux系統,把cls改成clear。如果是其他系統請把這行注釋掉,清頻
if(1==select)
{
mark = 1;
while (1)
{
for(i=0;i<sizeof(student)/sizeof(Student);i++)
mark=mark*(student[i].IsRead? 1:0);
if(mark)
{
printf("你已經把全班點了個遍\n");
break;
}
srand(time(NULL));
i = rand()%(sizeof(student)/sizeof(Student));
if(!student[i].IsRead)
{
printf("點名:%s\n",student[i].name);
student[i].IsRead = true;
break;
}
}
}
else if (2==select)
{
for(i=0;i<sizeof(student)/sizeof(Student);i++)
{
if(!student[i].IsRead)
printf("%s ",student[i].name);
}
printf("\n");
}
else if(3==select)
{
printf("謝謝使用\n");
return 0;
}
}while(true);
return 0;
}
這可是我一個字一個字的打出來的,專門為你寫的!~
B. 用C語言做學生點名系統
分太少沒誠意
C. c語言 課堂隨機點名程序 跪求大神幫我修改正確!
#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=0;i<chou;i++)
{
flag=0;
tmp=rand()%stucnt+1;
for (j=0;j<i;j++)
{
if (sel[j]==tmp)
{
flag=1;
break;
}
}
if (flag==1)
{
i--;
}else
{
sel[i]=tmp;
}
}
printf("點名情況如下:\n");
printf("學號\t\t姓名\t性別\n");
for (i=0;i<chou;i++)
{
fflush(stdin);
getchar();
printf("%s",stubuff[sel[i]-1]);
}
}
func2(char stubuff[100][100],int stucnt)
{
int i;
for (i=0;i<stucnt;i++)
{
fflush(stdin);
getchar();
printf("%s",stubuff[i]);
}
}
D. 跪求c語言上課隨機點名程序設計
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#defineSTU_NUM_MAX4
structStudentInfo//學生信息結構
{
charname[15];
intstu_id;
}stu[STU_NUM_MAX];
voidWriteData()//寫入學生信息
{
FILE*fp;
intstu_num=4;
for(inti=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'topenfile ");
exit(1);
}
for(intj=0;j<stu_num;j++)
{
if(fwrite(&stu[j],sizeof(structStudentInfo),1,fp)!=1)
printf("Errorwritingfile. ");
}
fclose(fp);
}
voidTeacherDM(intstuID)//教師點名
{
FILE*fp;
boolfind_mark=false;
printf(" %s %s ","學號","姓名");
if((fp=fopen("myfile.dat","rb"))==NULL)
{
printf("Can'topenfile ");
exit(1);
}
inti=0;
do
{
fseek(fp,i*sizeof(structStudentInfo),SEEK_SET);
fread(&stu[i],sizeof(structStudentInfo),1,fp);
if(stu[i].stu_id==stuID)
{
printf(" %4d %s ",stu[i].stu_id,stu[i].name);
printf(" 請【%s】同學回答某某問題. ",stu[i].name);
find_mark=true;
break;
}
i++;
}while(!feof(fp));
if(!find_mark)printf(" 未能找到學生號為:%d的記錄! ",stuID);
fclose(fp);
}
voidmain(void)
{
intstuID[4]={2013011001,2013011002,2013011003,2013011004};
//WriteData();
srand((unsigned)time(NULL));//隨機種子
TeacherDM(stuID[rand()%(3-0+1)+0]);
}
運行效果截圖:
另外多說一句,你所說的公正性,是不是指被點名過的同學不會再次被隨機點名到。如果是這個意思,那麼你可以通過數組來設置它,即把點名過的同學的學號或姓名保存到一維數組里,隨機判斷時只需循環檢查下該同學是否已被點名過。這里就留給你做了。
E. 急求,課堂隨機點名程序(c語言)
這個程序挺有意思,用MFC編?要求發我郵箱吧,我試試。[email protected]
F. 課堂隨機點名系統(用C語言編寫)
沒有規矩不成方圓,如果沒有人翹課,教務處也不會要求點名。
學風一年不如一年。