
求C语言做的学生点名程序(急......~!!!!!)
要求1:输入学生数据2:对学生进行点名3:统3次未到的学生记录将其考试标志置为04:统计缺席次数少于3次的学生记录,将其考试标志置为15:输出能参加考试和不能参加考试的的...
要求1:输入学生数据
2:对学生进行点名
3:统3次未到的学生记录将其考试标志置为0
4:统计缺席次数少于3次的学生记录,将其考试标志置为1
5:输出能参加考试和不能参加考试的的学生名称
6:随即查询学生信息并输出,
每个学生数据包括学号,姓名,点名记录,考试标志四个信息,保存在".txt文件中"
希望高手帮帮忙,急用,用数组做就可以,太难的不好用~! 展开
2:对学生进行点名
3:统3次未到的学生记录将其考试标志置为0
4:统计缺席次数少于3次的学生记录,将其考试标志置为1
5:输出能参加考试和不能参加考试的的学生名称
6:随即查询学生信息并输出,
每个学生数据包括学号,姓名,点名记录,考试标志四个信息,保存在".txt文件中"
希望高手帮帮忙,急用,用数组做就可以,太难的不好用~! 展开
4个回答
展开全部
#include<stdio.h>
#include<string.h>
main()
{
int a=0,b=0,c=0,d=0;
char chr='O';
char t[]="noEnd";
//char *m[]={"20013011001杜永宁","20013011002王传华","20013011003殷泳","20013011004杨柳青"};
printf("........... A 开始点名.........end 结束点名...........\n");
printf("........... B 显示显示所有同学点名情况 ...........\n");
printf("........... C 保存点名 ...........\n");
printf("........... D 退出点名系统 ...........\n");
FILE *ft;
//fp=fopen("myfile.dat","r");
ft=fopen("baochun.txt","w");
// fscanf(fp,"%s,%s,%s,%s",m[0],m[1],m[2],m[3]);
while(chr!='x')
{
scanf("%c",&chr);
switch(chr)
{
case 'A':
while(strcmp(t,"over")!=0)
{
if(a+b+c+d==12) {a=b=c=d=0; printf ("清零!\n");}
scanf("%s",&t);
if(strcmp(t,"20013011001杜永宁")==0)
{
a++;
if(a<=3) printf("杜永宁已被点%d次\n",a);
if(a>3)
{ a=3;
printf("杜永宁已被点完三次\n");
}
}
else if(strcmp(t,"20013011002王传华")==0) {
b++;
if(b<=3) printf("王传华已被点%d次\n",b);
if(b>3)
{b=3;
printf("王传华已被点完三次\n");}
}
else if(strcmp(t,"20013011003殷泳")==0){
c++;
if(c<=3) printf("殷泳已被点%d次\n",c);
if(c>3)
{c=3;
printf("殷泳已被点完三次\n");
}
}
else if(strcmp(t,"20013011004杨柳青")==0) {
d++;
if(d<=3) printf("杨柳青已被点%d次\n",d);
if(d>3)
{d=3;
printf("杨柳青已被点完三次\n");
}
}
}break;
case 'B': {
printf("20013011001杜永宁已被点过名的次数为%d\n20013011002王传华已被点过名的次数为%d\ n20013011003殷泳已被点过名的次数为%d\n20013011004杨柳青已被点过名的次数为%d\n",a,b,c,d);}break;
case 'C':{ printf("保存成功\n");
fprintf(ft,"20013011001 杜永宁 已被点过名的次数为%d\n,20013011002 王传华已被点过名的次数为%d\n,20013011003 殷泳 已被点过名的次数为%d\n,20013011004 杨柳青已被点过名的次数为%d\n",a,b,c,d);}break;
default:break;
}
}//while(chr!='x');
}
#include<string.h>
main()
{
int a=0,b=0,c=0,d=0;
char chr='O';
char t[]="noEnd";
//char *m[]={"20013011001杜永宁","20013011002王传华","20013011003殷泳","20013011004杨柳青"};
printf("........... A 开始点名.........end 结束点名...........\n");
printf("........... B 显示显示所有同学点名情况 ...........\n");
printf("........... C 保存点名 ...........\n");
printf("........... D 退出点名系统 ...........\n");
FILE *ft;
//fp=fopen("myfile.dat","r");
ft=fopen("baochun.txt","w");
// fscanf(fp,"%s,%s,%s,%s",m[0],m[1],m[2],m[3]);
while(chr!='x')
{
scanf("%c",&chr);
switch(chr)
{
case 'A':
while(strcmp(t,"over")!=0)
{
if(a+b+c+d==12) {a=b=c=d=0; printf ("清零!\n");}
scanf("%s",&t);
if(strcmp(t,"20013011001杜永宁")==0)
{
a++;
if(a<=3) printf("杜永宁已被点%d次\n",a);
if(a>3)
{ a=3;
printf("杜永宁已被点完三次\n");
}
}
else if(strcmp(t,"20013011002王传华")==0) {
b++;
if(b<=3) printf("王传华已被点%d次\n",b);
if(b>3)
{b=3;
printf("王传华已被点完三次\n");}
}
else if(strcmp(t,"20013011003殷泳")==0){
c++;
if(c<=3) printf("殷泳已被点%d次\n",c);
if(c>3)
{c=3;
printf("殷泳已被点完三次\n");
}
}
else if(strcmp(t,"20013011004杨柳青")==0) {
d++;
if(d<=3) printf("杨柳青已被点%d次\n",d);
if(d>3)
{d=3;
printf("杨柳青已被点完三次\n");
}
}
}break;
case 'B': {
printf("20013011001杜永宁已被点过名的次数为%d\n20013011002王传华已被点过名的次数为%d\ n20013011003殷泳已被点过名的次数为%d\n20013011004杨柳青已被点过名的次数为%d\n",a,b,c,d);}break;
case 'C':{ printf("保存成功\n");
fprintf(ft,"20013011001 杜永宁 已被点过名的次数为%d\n,20013011002 王传华已被点过名的次数为%d\n,20013011003 殷泳 已被点过名的次数为%d\n,20013011004 杨柳青已被点过名的次数为%d\n",a,b,c,d);}break;
default:break;
}
}//while(chr!='x');
}
展开全部
考试标志不应为一个字段
由点名记录即可推断出。
由点名记录即可推断出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
分数太少,不值得做这么复杂的题目。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
50分下午我给你做!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询