大家帮忙设计下。我才学。我很想自己写个,但是自己写了问题是在太多了。大家出出力 谢谢
要求写一个程序,读入学生姓名,学好。英语数学语文成绩。。将其放在文件里,在查询期中的学生信息,我想达到的目标是一输入学生学号,就能得到该学生的这些信息。。。。
#include<stdio.h>
FILE *fp;
struct
{
int num;
char name[20];
double score[4];
}stu[20];
void input(void);
void search(void);
int main(void)
{
int n;
printf("您已经进入了学生查询系统\n");
printf("1学生信息录入\n");
printf("2学生信息查询\n");
do
{
scanf(" %d", &n);
switch(n)
{
case 1:
input();
break;
case 2:
search();
break;
}
if(n>2)
{
printf("您输入的选项有误!\n");
}
}while(n!=0);
return 0;
}
void input(void)
{
int i = 0;
if((fp=fopen("filename", "w")) == NULL){
printf ("打开文件失败!\n");
exit(0);
}
do
{
printf("请输入学生学号 姓名 语文 数学 英语;\n");
fscanf ("%f%s%f%f%f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3]);
stu[i].score[3] = stu[i].score[1] + stu[i].score[2] +stu[i].score[3]/3;
}while(stu[i].num !=0);
fclose(fp);
}
void search(void)
{
int num, k=0, i=0;
if((fp=fopen("filename","r"))==NULL)
{
printf("不能打开");
exit(0);
}
printf("请输入你要查询学生信息");
do
{
while(!feof(fp)){
scanf("%d",&num);
fscanf (fp,"%f%s%f%f%f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3]);
if(num == stu[i].num)
{
fprintf ("%d %s %.1f %.1f %.1f %.1f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3]);
k=1;
break;
}
}
if(k=0)
printf ("没有该学生的信息!\n");
printf("请重新输入:\n");
}while(num!=0);
fclose(fp);