链接地址
biggestcat吧
全部回复
仅看楼主
level 6
太静虎 楼主
要求:学生成绩管理系统
功能要求:
1)、添加学生信息
2)、显示所有学生信息
3)、对指定学生信息进行修改(可以指定学号或姓名)
4)、统计人数:a 按成绩统计 b 按班级统计各科目总分,平均分 c按班级统计指定科目总分,平均分
5)、查询:a 按科目查询(仅显示学号、姓名、课程名、成绩) b 按姓名查询 c 按成绩查询(给定成绩范围)d 按班级查询
6)、退出
说明:
   1)、能用菜单选择各功能。?
   2)、可以进行多次操作,直到程序退出
3)、数据包括:学生信息:姓名、学号(按照规则生成)、班级、课程成绩(包含五门);
课程信息:课程名、成绩
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void input(struct student *stu,int len);
void output(struct student *stu,int len);
void xiugai(struct student *stu,int len);
void km(struct student *stu,int len);
void xm(struct student *stu,int len);
void cj(struct student *stu,int len);
void bj(struct student *stu,int len);
void chaxun(struct student *stu,int len); struct student
{
int num;
char name[10];
float cla;
char kemu[10];
char chengji[10];
float chinese;
float math;
float English;
float C;
float PE;
}stu;
void input(struct student *stu,int len)//输入学生信息
{
int i;
printf("************************************************************\n");
printf("请输入您要添加几个学生信息:");
scanf("%d",&len);
printf("输入学生信息:\n");
for(i=0;i<len;i++)
{
printf("请输入第%d个学生信息:",i + 1);
printf("学号 班级 姓名 语文 数学 英语 C 体育成绩:\n");
scanf("%d %d %s %d %d %d %d %d",&stu[i].num,&stu[i].cla,&stu[i].name,&stu[i].chinese,&stu[i].math,&stu[i].English,&stu[i].C,&stu[i].PE);
}
printf("\n");
return;
}
void output(struct student *stu,int *len)//输出学生信息
{ int i;
printf("************************************************************\n");
for(i=0;i<*len;i++)
{
printf("学号 班级 姓名 语文 数学 英语 C 体育成绩:\n");
scanf("%d %d %s %d %d %d %d %d",&stu[i].num,&stu[i].cla,&stu[i].name,&stu[i].chinese,&stu[i].math,&stu[i].English,&stu[i].C,&stu[i].PE);
}
printf("******************************\n");
getchar();
getchar();
return;
}
void write(struct student *stu[],int len)
{
int i;
FILE *fp = NULL;
fp = fopen("D:\\student.txt","w");
if(fp==NULL)
{
printf("\n\t文件打不开!");
getchar();
exit(0);
}
else
{
for(i=0;i<len;i++)
{
fprintf(fp,"学号 班级 姓名 语文 数学 英语 C 体育成绩:\n");
}
}
printf("已将学生信息保存在了D盘根目录下的student.txt文件中。\n");
getchar();
fclose(fp);
return;
}
void read(struct student *stu,int len)
{
int i;
FILE * fp = NULL;
fp = fopen("D:\\student.txt","r");
if(fp == NULL)
{
printf("数据读取失败!\n");
getchar();
exit(0);
}
else
{
for(i=0; i<len; i++)
{
fscanf(fp,"%d %d %s %d %d %d %d %d",&stu[i].num,&stu[i].cla,&stu[i].name,&stu[i].chinese,&stu[i].math,&stu[i].English,&stu[i].C,&stu[i].PE);
}
} fclose(fp);
return;
} void xiugai(struct student *stu,int len)//修改学生信息
{ int i=0;
int choice;
int a;
int number;
printf("出入修改学生的学号:");
scanf("%d",&a);
while(stu[i].num!=a && i<number) i++;
if(i==number)
{ printf("not find!\n"); }
printf("请选择您要修改学生的内容:\n");
printf("* cla 请按 1 *\n");
printf("* name 请按 2 *\n");
printf("* chinese 请按 3 *\n");
printf("* math 请按 4 *\n");
printf("* English 请按 5 *\n");
printf("* C 请按 6 *\n");
printf("* PE 请按 7 *\n");
printf("* quit 请按 0 *\n");
printf("请输入您的选择:");
scanf("%d", &choice);
switch(choice)
{
case 0:break;
case 1:printf("请输入新班级:");
scanf("%d", stu[i].cla);
break;
case 2:
printf("请输入新姓名:");
scanf("%s", &stu[i].name);
break;
case 3:
printf("请输入新的语文分数:");
scanf("%d",&stu[i].chinese);
break;
case 4:
printf("请输入新的数学分数:");
scanf("%d", &stu[i].math);
break;
case 5:
printf("请输入新的英语分数:");
scanf("%d", &stu[i].English);
break;
case 6:
printf("请输入新的C语言分数:");
scanf("%d", &stu[i].C);
break;
case 7:
printf("请输入新的体育分数:");
scanf("%d", &stu[i].PE);
break;} } void tongji(struct student *stu,int len)
{
} void seek_km(struct student *stu,int len) //按科目
{ FILE *fp;
int i;
char kemu[10];
printf("输入查询科目:");
scanf("%s",&kemu);
if((fp=fopen("student.txt","rb"))==NULL)
{
printf("can't open file!\n");exit(0);
}
while(!feof(fp))
{
fread(&stu[i],sizeof(stu),1,fp);
if(feof(fp))break;
if(strcmp(stu[i].kemu,kemu)==0)
{
printf("num name chinese math English C PE\n");
printf("%2d %7s %5d %6d %7d %6d %4d\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].English,stu[i].C,stu[i].PE);
} }
fclose(fp);
getchar(); }
void seek_xm(struct student *stu,int len)//按姓名
{ FILE *fp;
int i;
char name[10];
printf("输入查询姓名:");
scanf("%s",&name);
if((fp=fopen("student.txt","rb"))==NULL)
{
printf("can't open file!\n");exit(0);
}
while(!feof(fp))
{
fread(&stu[i],sizeof(stu),1,fp);
if(feof(fp))break;
if(strcmp(stu[i].name,name)==0)
{
printf("num name chinese math English C PE\n");
printf("%2d %7s %5d %6d %7d %6d %4d\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].English,stu[i].C,stu[i].PE);
} }
fclose(fp);
getchar(); }
void seek_cj(struct student *stu,int len)//按成绩
{
FILE *fp;
int i;
char chengji[10];
printf("输入查询成绩:");
scanf("%s",&chengji);
if((fp=fopen("student.txt","rb"))==NULL)
{
printf("can't open file!\n");exit(0);
}
while(!feof(fp))
{
fread(&stu[i],sizeof(stu),1,fp);
if(feof(fp))break;
if(strcmp(stu[i].chengji,chengji)==0)
{
printf("num name chinese math English C PE\n");
printf("%2d %7s %5d %6d %7d %6d %4d\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].English,stu[i].C,stu[i].PE);
} }
fclose(fp);
getchar(); }
void seek_cla(struct student *stu,int len)//按班级
{ FILE *fp;
int i;
float cla;
printf("输入查询班级:");
scanf("%s",&cla);
if((fp=fopen("student.txt","rb"))==NULL)
{
printf("can't open file!\n");exit(0);
}
while(!feof(fp))
{
fread(&stu[i],sizeof(stu),1,fp);
if(feof(fp))break;
if(strcmp(stu[i].cla,cla)==0)
{
printf("num name chinese math English C PE\n");
printf("%2d %7s %5d %6d %7d %6d %4d\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].English,stu[i].C,stu[i].PE);
} }
fclose(fp);
getchar(); }
}
void chaxun(struct student *stu,int len)
{ printf(" 1. 按科目查询\n");
printf(" 2. 按姓名查询\n");
printf(" 3. 按成绩查询\n");
printf(" 4. 按班级查询\n");
printf("请输入您的选择:");
int i=1;
int a;
printf("输入你选择项目:");
scanf("%d",&a);
while(i!=a && i<5) i++;
if(i==5)
{ printf("not find!\n"); }
switch(a)
{
case 0: break;
case 1: seek_km(struct student *stu,int len);break;
case 2: seek_xm(struct student *stu,int len);break;
case 3: seek_cj(struct student *stu,int len);break;
case 4: seek_bj(struct student *stu,int len);break;
}
} int main(void)
{ int len=0;
struct student *stu;
int a ;
printf("请输入需要存入的学生人数:");
scanf("%d",&len);
stu = (struct student *)malloc((sizeof(struct student) * len));
printf("按回车键继续\n");
while(1)
{
system("cls");
printf("\n\n\n\n");
printf("\t\t****学生信息管理系统菜单****\n");
printf("\t\t******1 添加学生信息*****\n");
printf("\t\t******2 显示学生信息*****\n");
printf("\t\t******3 修改指定学生信息*****\n");
printf("\t\t******4 统计人数*****\n");
printf("\t\t******5 查询信息*****\n");
printf("\t\t******6 退出*****\n");
printf("************************************************************\n");
printf("请选择: ");
scanf("%d",&a);
switch(a)
{ case 1: input(stu);break;
case 2: output(stu);break;
case 3: xiugai(stu);break;
//case 4: tongji(stu); break;
case 5: chaxun(stu);break;
case 6: exit(0);break;
default:break;
getchar();
}
}
free(stu);
return 0;
}
2013年06月25日 14点06分 1
level 4
这个……没看懂……
2013年06月26日 19点06分 2
level 12
???
2013年06月26日 23点06分 3
level 5
什么东西的代码?许久不见回来就这个?话说瞄大你不是准备去弄游戏么?
2013年06月28日 17点06分 4
level 5
我想说的是,我居然看完了…这串代码是什么节奏??
2013年07月01日 00点07分 5
level 9
……学生信息管理系统……我表示正在填表中
2013年09月12日 14点09分 6
level 2
好渣的C
2013年12月03日 01点12分 7
level 6
c 语言程序设计。初级的。
2014年05月28日 12点05分 8
1