当前位置:首页 » 考试成绩 » c语言学生成绩管理系统道课巴巴

c语言学生成绩管理系统道课巴巴

发布时间: 2020-12-03 21:55:54

『壹』 用C语言设计一个学生成绩管理系统

#include <stdio.h>
#include <string.h>

#include <stdlib.h>
#defineMAX1000

/*定义学生成绩信息结构*/
struct stu
{

char id[8];
char name[8];


(1)c语言学生成绩管理系统道课巴巴扩展阅读:

short:修饰int,短整型数据,可省略被修饰的int。(K&R时期引入)

long:修饰int,长整型数据,可省略被修饰的int。(K&R时期引入)

long long:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)

signed:修饰整型数据,有符号数据类型。(C89标准新增)

unsigned:修饰整型数据,无符号数据类型。(K&R时期引入)

restrict:用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式。(C99标准新增)

复杂类型关键字

struct:结构体声明。(K&R时期引入)

union:联合体声明。(K&R时期引入)

enum:枚举声明。(C89标准新增)

typedef:声明类型别名。(K&R时期引入)

sizeof:得到特定类型或特定类型变量的大小。(K&R时期引入)

inline:内联函数用于取代宏定义,会在任何调用它的地方展开。(C99标准新增)

『贰』 C语言(学生成绩管理系统)

#include<stdio.h>
#include<string.h>
//记录总数
int num=0;
//结构体定义
struct Student
{
char id[10];
char name[20];
float mark1;//语文
float mark2;//数学
float mark3;//外语
float average;//平均
}stu[1000];
//显示学生记录
void fp_show(int i)
{
printf("\t学号\t姓名\t语文\t数学\t外语\t平均成绩\n");
printf("-------------------------------------------------------------\n");
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",stu[i].id,stu[i].name,
stu[i].mark1,stu[i].mark2,stu[i].mark3,stu[i].average);
}
//1增加学生记录
void fp_add()
{
while(1)
{
printf("\n请输入学号:\n");
scanf("%s",stu[num].id);
printf("\n请输入姓名:\n");
scanf("%s",stu[num].name);
printf("\n请输入语文成绩:\n");
scanf("%f",&stu[num].mark1);
printf("\n请输入数学成绩:\n");
scanf("%f",&stu[num].mark2);
printf("\n请输入英语成绩:\n");
scanf("%f",&stu[num].mark3);
stu[num].average=(stu[num].mark1+stu[num].mark2+stu[num].mark3)/3;
num++;
getchar();
printf("\n是否继续添加(y/n)\n");
if(getchar()=='n') break;
}
}
//2修改学生记录
void fp_modify()
{ char a[20];
int i,t;
while(1)
{
printf("\n请输入学生学号:\n");
scanf("%s",a);
for(t=0;t<num;t++)
{
if(strcmp(stu[t].id,a)==0)
i=t;
}
if(i>=0){
fp_show(i);
printf("\n请输入修改后的学号\n");
scanf("%s",stu[i].id);
printf("\n请输入修改后的姓名\n");
scanf("%s",stu[i].name);
printf("\n请输入修改后的语文\n");
scanf("%f",&stu[i].mark1);
printf("\n请输入修改后的数学\n");
scanf("%f",&stu[i].mark2);
printf("\n请输入修改后的外语\n");
scanf("%f",&stu[i].mark3);
stu[i].average=(stu[i].mark1+stu[i].mark2+stu[i].mark3)/3;}
else
printf("失败");
getchar();
printf("\n是否继续修改(y/n)?\n");
if(getchar()=='n') return;
}
}
//3删除学生记录
void fp_delete()
{int i,t,a[20];
while(1){
printf("\n请输入删除的学生学号:\n");
scanf("%s",a);
for(t=0;t<num;t++)//返回下标;
{
if(strcmp(stu[t].id,a)==0)
i=t;
}
if(i>=0)
{
fp_show(i);
getchar();
printf("\n是否真的要删除?(y/n)\n");
if(getchar()=='y')
{
for(t=i;t<num-1;t++)
stu[t]=stu[t+1];
num--;
}
}
else
printf("失败");
getchar();
printf("\n是否继续删除(y/n)?\n");
if(getchar()=='n') return;
}
}
//4按姓名查询学生记录
void fp_search()
{ void fp_show(int);
char a[20];
int i,t;
while(1)
{
printf("\n请输入学生姓名:\n");
scanf("%s",a);
for(i=0;i<num;i++)
{
if(strcmp(stu[i].name,a)==0)
t=i;
}
if(t>=0)
fp_show(t);
else
printf("失败");
getchar();
printf("\n返回/继续 y/n\n");
if(getchar()=='y') break;
}
}
//5按成绩排序
void fp_grades()
{int i,j;
struct Student temp;
for(i=0;i<num-1;i++)//冒泡法排序
for(j=0;j<num-1-i;j++)
if(stu[i].average>stu[i+1].average)
{ temp=stu[i];
stu[i]=stu[i+1];
stu[i+1]=temp;
}
//输出成绩排序

printf("\t学号\t姓名\t语文\t数学\t外语\t平均成绩\n");
printf("-------------------------------------------------------------\n");
for(i=num-1;i>=0;i--){
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",stu[i].id,stu[i].name,
stu[i].mark1,stu[i].mark2,stu[i].mark3,stu[i].average);
}
getchar();
printf("\n请输入y返回\n");
if(getchar()=='y') return;

}
//打开文件
void fp_open()
{ FILE *fp;
int i;
if((fp=fopen("database.txt","rb"))==NULL)
{
printf("打开文件失败;\n");
return;
}
if(fread(&num,sizeof(int),1,fp)!=1)
{
num=0;
}else
{
for(i=0;i<num;i++)
fread(&stu[i],sizeof(struct Student),1,fp);
}
fclose(fp);
}
//写进数据
void fp_write()
{
FILE *fp;
int i;
if((fp=fopen("database.txt","wb"))==NULL)
{
printf("打开文件失败;\n");
return;
}
if(fwrite(&num,sizeof(int),1,fp)!=1)
{
printf("写入错误;\n");
}
{for(i=0;i<num;i++)
if(fwrite(&stu[i],sizeof(struct Student),1,fp)!=1)
printf("写入错误\n");
}
fclose(fp);

}
//主程序
int main()
{ int choice;
//打开文件
fp_open();
while(1)
{
printf("\n\n◇◇◇◇◇◇◇◇成 绩 管 理 小 程 序◇◇◇◇◇◇◇◇\n\n\n");
printf("\t☆\t1. 增加学生信息\t☆\n");
printf("\t☆\t2. 修改学生信息\t☆\n");
printf("\t☆\t3. 删除学生信息\t☆\n");
printf("\t☆\t4. 查询学生信息\t☆\n");
printf("\t☆\t5. 平均成绩排序\t☆\n");
printf("\t☆\t6. 保存 并退出\t☆\n\n");
printf("◇请选择(1-6)◇ \n");
scanf("%d",&choice);
switch(choice)
{
case 1 : fp_add(); break;
case 2 : fp_modify(); break;
case 3 : fp_delete(); break;
case 4 : fp_search(); break;
case 5 : fp_grades(); break;
default: exit(0);break;
}
//关闭并写入数据
fp_write();
}
return 0;
}

运行结果:

◇◇◇◇◇◇◇◇成 绩 管 理 小 程 序◇◇◇◇◇◇◇◇

☆ 1. 增加学生信息 ☆
☆ 2. 修改学生信息 ☆
☆ 3. 删除学生信息 ☆
☆ 4. 查询学生信息 ☆
☆ 5. 平均成绩排序 ☆
☆ 6. 保存 并退出 ☆

◇请选择(1-6)◇
1

请输入学号:
12

请输入姓名:
张三

请输入语文成绩:
78

请输入数学成绩:
89

请输入英语成绩:
71

是否继续添加(y/n)
y

『叁』 c语言课程设计学生成绩管理系统

#include<stdio.h>
#include<conio.h>
#include <stdlib.h>
#include<string.h>

#define MAX 80
#define max 3

int nu=0;

struct classname
{
char name[20];
float score;
};

struct student
{
char no[20];
char std_name[20];
struct classname km[max];
float ave;
float sum;
int save;
};

struct student stu[MAX],*p;

void chushi()
{
int i,j;
for(i=0;i<MAX;i++)
{
(j=0;j<20;j++)
{
stu[i].no[j]=NULL;
stu[i].std_name[j]=NULL;
stu[i].km[j].name[j]=NULL;
stu[i].km[j].score=0;
}
stu[i].ave=0;
stu[i].sum=0;
stu[i].save=0;
}
}

void av()/*求平均值*/
{
int i;
for(i=0;i<nu;i++)
{
stu[i].sum=stu[i].km[1].score+stu[i].km[2].score+stu[i].km[3].score;
stu[i].ave=stu[i].sum/3;
}
}

void first_check()
{
FILE *p;
int i,j;
struct classname frist[max];
for(i=0;i<max;i++)
{
for(j=0;j<20;j++)
frist[i].name[j]=NULL;
frist[i].score=0;
}
if ((p=fopen("c:\\kemu.txt","r"))==NULL)
{
printf("您好,欢迎使用学生成绩管理系统\n\n因为您是第一次使用,请输入科目名称(三科)\n\n");
p=fopen("c:\\kemu.txt","w");
printf("输入课程1名称:");
scanf("%s",frist[0].name);
fprintf(p,"%s\n",frist[0].name);
printf("输入课程2名称:");
scanf("%s",frist[1].name);
fprintf(p,"%s\n",frist[1].name);
printf("输入课程3名称:");
scanf("%s",frist[2].name);
fprintf(p,"%s\n",frist[2].name);
}
system("cls");
fclose(p);
}

void save_nu()
{
FILE *p;
p=fopen("c:\\renshu.txt","w");
fprintf(p,"%d\n",nu);
fclose(p);
}

void Save_add(int n)
{
FILE * p;
int i;
p= fopen("c:\\cheji.txt","at");
if (p == NULL)
{
printf("文件不存在!!\n");
exit(0);
}
save_nu();
for (i = 0;i<n;i++)
if(stu[i].save==1)
{
stu[i].sum=stu[i].km[1].score+stu[i].km[2].score+stu[i].km[3].score;
stu[i].ave=stu[i].sum/3;
fprintf(p,"%s %s %2.1f %2.1f %2.1f %2.1f %2.1f \n",stu[i].no,stu[i].std_name,stu[i].km[0].score,stu[i].km[1].score,stu[i].km[2].score,stu[i].ave,stu[i].sum);
}
fclose(p);
}

void Save()
{
FILE * p;
int i;
p= fopen("c:\\cheji.txt","w");
if (p == NULL)
{
printf("文件不存在!!\n");
exit(0);
}
save_nu();
for (i = 0;i<nu;i++)
if(stu[i].save==1)
{
av();
fprintf(p,"%s %s %2.1f %2.1f %2.1f %2.1f %2.1f \n",stu[i].no,stu[i].std_name,stu[i].km[0].score,stu[i].km[1].score,stu[i].km[2].score,stu[i].ave,stu[i].sum);
}
fclose(p);
}

int read_nu()
{
FILE *p;
char ch,s[10]={'\0'};
int i=0;
p=fopen("c:\\renshu.txt","r");
if(p==NULL)
{
save_nu();
return 0;
}
ch=fgetc(p);
while(ch!='\n')
{
s[i]=ch;
ch=fgetc(p);
i++;
}
nu=atoi(s);
fclose(p);
return 0;
}

int read_km()
{
FILE *p;
int i,j=0;
char s[20]={'\0'};
chushi();
p=fopen("c:\\kemu.txt","r");
if(p==NULL)
{
printf("ERROR read_km");
return 0;
}
fgets(s,20,p);
while(strlen(s)!=0)
{
for(i=0;i<strlen(s);i++)
if(s[i]==10)
{
s[i]='\0';
break;
}
for(i=0;i<=nu;i++)
strcpy(stu[i].km[j].name,s);
for(i=0;i<20;i++)
s[i]='\0';
j++;
fgets(s,20,p);
}
}

void read()
{
FILE *p;
int i,j,n,k,z=0;
char s[50]={'\0'};
char o[10]={'\0'};
p=fopen("c:\\cheji.txt","r");
if(p==NULL)
printf("ERROR_read");
chushi();
read_km();
fgets(s,50,p);
while(strlen(s)!=0)
{
j=0;
for(i=0;i<50;i++)
{
if(s[i]!='\n')
{
n=0;
while(j==0)
{
if(s[i]!=' ')
{
stu[z].no[n]=s[i];
n++;i++;
}
else
break;
}
while(j==1)
{
if(s[i]!=' ')
{
stu[z].std_name[n]=s[i];
n++;i++;
}
else
break;
}
while(j==2)
{
if(s[i]!=' ')
{
o[n]=s[i];
n++;i++;
}
else
{
stu[z].km[0].score=atoi(o);
break;
}
}
while(j==3)
{
if(s[i]!=' ')
{
o[n]=s[i];
n++;i++;
}
else
{
stu[z].km[1].score=atoi(o);
break;
}
}
while(j==4)
{
if(s[i]!=' ')
{
o[n]=s[i];
n++;i++;
}
else
{
stu[z].km[2].score=atoi(o);
break;
}
}
while(j==5)
{
if(s[i]!=' ')
{
o[n]=s[i];
n++;i++;
}
else
{
stu[z].ave=atoi(o);
break;
}
}
while(j==6)
{
if(s[i]!=' ')
{
o[n]=s[i];
n++;i++;
}
else
{
stu[z].sum=atoi(o);
break;
}
}
for(k=0;k<10;k++)
o[k]='\0';
}
else
break;
j++;
}
for(i=0;i<50;i++)
s[i]='\0';
fgets(s,50,p);
z++;
}
}

void putin()
{
int n,i=0;
char ch;
read_km();
do
{
printf("\t\t\t\t录入学员信息\n输入第%d个学员的信息\n",i+1);
printf("\n输入学生编号:");
scanf("%s",stu[i].no);
printf("\n输入学员姓名:");
scanf("%s",stu[i].std_name);
printf("\n输入课程%s的分数:",stu[0].km[0].name);
scanf("%f",&stu[i].km[0].score);
printf("\n输入课程%s的分数:",stu[0].km[1].name);
scanf("%f",&stu[i].km[1].score);
printf("\n输入课程%s的分数:",stu[0].km[2].name);
scanf("%f",&stu[i].km[2].score);
stu[i].save=1;
printf("\n\n");
i++;
n=i;
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
system("cls");
if(nu==0)
{
nu=n;
Save();
}
else
{
nu=n+nu;
Save_add(n);
}
}

int putout()
{
int i;char s;
if(nu==0)
{
printf("学生信息为零!请录入...");
return 0;
}
read();
do
{
printf("学生成绩信息:\n\n");
for(i=0;i<nu;i++)
printf("学号:%s 姓名:%s\n%s分数:%2.1f\t%s分数:%2.1f\t%s分数:%2.1f\n平均分数:%2.1f\t总成绩:%2.1f\n\n",stu[i].no,stu[i].std_name,stu[i].km[0].name,stu[i].km[0].score,stu[i].km[1].name,stu[i].km[1].score,stu[i].km[2].name,stu[i].km[2].score,stu[i].ave,stu[i].sum);
printf("\t\t按任意键返回主菜单");
fflush(stdin);
s=getch();
}
while(!s);
system("cls");
}

int sort()/*排序数据函数*/
{
struct student temp;
int i,j;
char s;
if(nu==0)
{
printf("学生信息为零!请录入...");
return 0;
}
chushi();
read();
for(i=1;i<nu;i++)
{
for(j=1;j<=nu-i;j++)
{
if(stu[j-1].ave<stu[j].ave)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
do
{
printf("学生成绩信息:\n\n");
for(i=0;i<nu;i++)
printf("学号:%s 姓名:%s 平均成绩:%2.1f\n\n",stu[i].no,stu[i].std_name,stu[i].ave);
printf("\t\t按任意键返回主菜单");
fflush(stdin);
s=getch();
}
while(!s);
system("cls");
}

void find()/*查询函数*/
{
int j,i=0;
int c=0;
char search[10]={'\0'};
char as;
if(nu==0)
{
printf("学生信息为零!请录入...");
return 0;
}
chushi();
read();
do
{
printf("输入要查询课程名称:");
scanf("%s",search);
for(j=0;j<max;j++)
if(!strcmp(stu[i].km[j].name,search))
{
c=1;
printf("\n该课程不及格学生姓名:\n");
for(i=0;i<nu;i++)
if(stu[i].km[j].score<60)
printf("%s\n",stu[i].std_name);
}
if(c==0)
printf("无此课程!");
printf("\n\t\t按任意键返回主菜单");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}

void tongji()
{
int j,m,z,i=0;
char s;
if(nu==0)
{
printf("学生信息为零!请录入...");
return 0;
}
chushi();
read();
for(z=0;z<max;z++)
{
m=stu[i].km[z].score;j=0;
printf("%s 最高分: ",stu[i].km[z].name);
for(i=0;i<nu;i++)
if(m<stu[i].km[z].score)
{
m=stu[i].km[z].score;
j=i;
}
printf("%s\t",stu[j].std_name);
j=0;i=0;m=stu[i].km[z].score;
printf("%s 最低分: ",stu[i].km[z].name);
for(i=0;i<nu;i++)
if(m>stu[i].km[z].score)
{
m=stu[i].km[z].score;
j=i;
}
printf("%s\t",stu[j].std_name);
m=0;j=0;i=0;
printf("%s 平均分: ",stu[i].km[z].name);
for(i=0;i<nu;i++)
m=m+stu[i].km[z].score;
printf("%d\n",m/nu);
m=0;i=0;
printf("%s 分数低于的60人数: ",stu[i].km[z].name);
for(i=0;i<nu;i++)
if(stu[i].km[z].score<60)
m++;
printf("%d\t",m);
m=0;j=0;i=0;
printf("%s 分数高于60的人数: ",stu[i].km[z].name);
for(i=0;i<nu;i++)
if(stu[i].km[z].score>60)
m++;
printf("%d\n\n",m);
}
do
{
printf("\t\t按任意键返回主菜单");
fflush(stdin);
s=getch();
}
while(!s);
system("cls");
}

void main()/*主函数*/
{
int as;
first_check();
start: printf("\n\t\t\t欢迎使用学生成绩管理系统\n");
/*一下为功能选择模块*/
do
{
printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.查询不及格学生\n\t\t\t\t5.统计信息\n\t\t\t\t6.退出\n");
printf("\t\t\t\t选择功能选项:");
fflush(stdin);
read_nu();
scanf("%d",&as);
switch(as)
{
case 1:system("cls");putin();break;
case 2:system("cls");putout();break;
case 3:system("cls");sort();break;
case 4:system("cls");find();break;
case 5:system("cls");tongji();break;
case 6:system("exit");exit(0);
default:system("cls");goto start;
}
}
while(1);
/*至此功能选择结束*/
}

『肆』 c语言实现设计一个学生成绩管理系统课程

参考代码如下,不过还是建议自己写一写比较好:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct student //结构体
{
char name[20]; //姓名
char number[20]; //学号
double math; //数学
double english; //英语
double chinese; //语文
double program; //程序
}s[50];

void head() //界面
{
printf(
"**********************************************************************\n"
"** **\n"
"** **\n"
"** 学生成绩管理系统 **\n"
"** **\n"
"** 1.信息录入 **\n"
"** 2.信息统计 **\n"
"** 3.信息浏览 **\n"
"** 4.信息查询 **\n"
"** 5.信息排序 **\n"
"** 6.信息删除 **\n"
"** 0.退出系统 **\n"
"** **\n"
"**********************************************************************\n"
);
}
void ru(struct student s[], int* n) //文件导入函数
{
FILE *p;
int i=*n;
if((p=fopen("数据.txt", "r"))==NULL)
{
n=n;
}
else
{
while(!feof(p))
{
fscanf(p, "%s%s%lf%lf%lf%lf\n", s[i].name, s[i].number, &s[i].math, &s[i].english, &s[i].chinese, &s[i].program);
i++;
*n=*n+1;
}
}
fclose(p);
}
void chu(struct student s[], int n)
{
FILE *p;
int i=0;
if((p=fopen("数据.txt", "w"))==NULL)
{
printf("无法打开此文件!");
}
else
{
while(i<n-1)
{
fprintf(p, "%s %s %lf %lf %lf %lf\n", s[i].name, s[i].number, s[i].math, s[i].english, s[i].chinese, s[i].program);
i++;
}
fprintf(p, "%s %s %lf %lf %lf %lf", s[i].name, s[i].number, s[i].math, s[i].english, s[i].chinese, s[i].program);
}
fclose(p);
}
void dayin(struct student s[], int n) //显示所有信息
{
int i;
double all=0.0;
printf("\n姓名\t\t学号\t\t数学\t英语\t语文\t程序\t总分\n");
for (i=0; i<n; i++)
{
all=s[i].math+s[i].english+s[i].chinese+s[i].program;
printf("%s\t\t%s\t\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n", s[i].name, s[i].number, s[i].math, s[i].english, s[i].chinese, s[i].program, all);
}
}
void shuru(struct student s[], int* n) //信息输入函数
{
int i=*n, j, k, m;
printf("请输入学生姓名:");
scanf("%s", s[i].name);
printf("请输入学生学号:");
for (j=0; ; j++)
{
m=0;
scanf("%s", s[i].number);
for (k=0; k<i; k++)
{
if (strcmp(s[i].number, s[k].number)==0)
{
m=m+1;
printf("学号重复,请重新输入学号:");
break;
}
}
if (m==0)
{
break;
}
}
printf("请输入数学成绩:");
scanf("%lf", &s[i].math);
printf("请输入英语成绩:");
scanf("%lf", &s[i].english);
printf("请输入语文成绩:");
scanf("%lf", &s[i].chinese);
printf("请输入程序成绩:") ;
scanf("%lf", &s[i].program);
printf("添加信息成功!\n");
*n=*n+1;
chu(s, *n);
}
void paixu(struct student s[], int n) //排序函数
{
int i, j;
double all1, all2;
struct student stu;
for (i=0; i<n-1; i++)
{
for (j=i+1; j<n; j++)
{
all1=s[i].math+s[i].english+s[i].chinese+s[i].program;
all2=s[j].math+s[j].english+s[j].chinese+s[j].program;
if (all1<all2)
{
stu=s[i];
s[i]=s[j];
s[j]=stu;
}
}
}
printf("排序后的数据:\n");
dayin(s, n);
}
void chazhao(struct student s[], int n) //查找函数
{
char name[20], num[20];
int m1, m2=0, i, j;
printf("1.按姓名查找\n2.按学号查找\n选择查询方式(1或2):");
scanf("%d", &m1);
if (m1==1)
{
printf("请输入您要查找的学生姓名:");
scanf("%s", name);
for (i=0; i<n; i++)
{
if (strcmp(s[i].name, name)==0)
{
m2=m2+1;
if (m2==1)
{
printf("\n姓名\t\t学号\t数学\t英语\t语文\t程序\n");
}
printf("%s\t\t%s\t\t%s\t\t%s\t\t%s\n", s[i].name, s[i].number, s[i].math, s[i].english, s[i].chinese, s[i].program);
}
}
if (m2==0)
{
printf("没有此学生信息!\n");
}
}
else if (m1==2)
{
printf("请输入您要查找的学生学号:");
scanf("%s", num);
j=0;
for (i=0; i<n; i++)
{
if (strcmp(s[i].number, num)==0)
{
m2=m2+1;
if (m2==1)
{
printf("\n姓名\t\t学号\t数学\t英语\t语文\t程序\n");
}
printf("%s\t\t%s\t\t%s\t\t%s\t\t%s\n", s[i].name, s[i].number, s[i].math, s[i].english, s[i].chinese, s[i].program);
}
}
if (m2==0)
{
printf("没有此学生信息!\n");
}
}
}
void shanchu(struct student s[], int* n) //删除函数
{
char num[20];
int m=0, i, j;
printf("请输入您要删除的学生学号:");
scanf("%s", num);
for (i=0; i<=*n; i++)
{
if (strcmp(s[i].number, num)==0)
{
m=m+1;
for (j=i; j<*n; j++)
{
s[j]=s[j+1];
}
*n=*n-1;
}
}
if (m==0)
{
printf("没有此学生信息!\n");
}
else
{
chu(s, *n);
printf("删除完毕!\n");
}
}
void allAndAver(struct student s[], int n)
{
int i ;
double all=0.0, aver=0.0;
for (i=0; i<n; i++)
{
all=s[i].math+s[i].english+s[i].chinese+s[i].program;
aver=all/4;
printf("%s\t\t%s\t\t%.1lf\t%.1lf\n", s[i].name, s[i].number, all, aver);
}
}
void Fail(struct student s[], int n) //统计单科不及格人数
{
int i, fail[4]={0};
for (i=0; i<n; i++)
{
if (s[i].math<60)
{
fail[0]++;
}
if (s[i].english<60)
{
fail[1]++;
}
if (s[i].chinese<60)
{
fail[2]++;
}
if (s[i].program<60)
{
fail[3]++;
}
}
printf("\n不及格信息:\n");
printf("数学不及格的人数为:%d人\n", fail[0]);
printf("英语不及格的人数为:%d人\n", fail[1]);
printf("语文不及格的人数为:%d人\n", fail[2]);
printf("程序不及格的人数为:%d人\n", fail[3]);
}
void Max(struct student s[], int n) //统计单科最高分人数
{
int i, counter[4]={0};
double max[4]={s[0].math, s[0].english, s[0].chinese, s[0].program};
for (i=0; i<n; i++)
{
if (s[i].math>max[0])
{
max[0]=s[i].math;
}
if (s[i].math>max[1])
{
max[1]=s[i].math;
}
if (s[i].math>max[2])
{
max[2]=s[i].math;
}
if (s[i].math>max[3])
{
max[3]=s[i].math;
}
}
for (i=0; i<n; i++)
{
if (s[i].math==max[0])
{
counter[0]++;
}
if (s[i].math==max[1])
{
counter[1]++;
}
if (s[i].math==max[2])
{
counter[2]++;
}
if (s[i].math==max[3])
{
counter[3]++;
}
}
printf("\n最高分信息:\n");
printf("数学最高分为:%.1lf, 人数为:%d人\n", max[0], counter[0]);
printf("英语最高分为:%.1lf, 人数为:%d人\n", max[1], counter[1]);
printf("语文最高分为:%.1lf, 人数为:%d人\n", max[2], counter[2]);
printf("程序最高分为:%.1lf, 人数为:%d人\n", max[3], counter[3]);
}
void Min(struct student s[], int n) //统计单科最低分人数
{
int i, counter[4]={0};
double min[4]={s[0].math, s[0].english, s[0].chinese, s[0].program};
for (i=0; i<n; i++)
{
if (s[i].math<min[0])
{
min[0]=s[i].math;
}
if (s[i].math<min[1])
{
min[1]=s[i].math;
}
if (s[i].math<min[2])
{
min[2]=s[i].math;
}
if (s[i].math<min[3])
{
min[3]=s[i].math;
}
}
for (i=0; i<n; i++)
{
if (s[i].math==min[0])
{
counter[0]++;
}
if (s[i].math==min[1])
{
counter[1]++;
}
if (s[i].math==min[2])
{
counter[2]++;
}
if (s[i].math==min[3])
{
counter[3]++;
}
}
printf("\n最低分信息:\n");
printf("数学最低分为:%.1lf, 人数为:%d人\n", min[0], counter[0]);
printf("英语最低分为:%.1lf, 人数为:%d人\n", min[1], counter[1]);
printf("语文最低分为:%.1lf, 人数为:%d人\n", min[2], counter[2]);
printf("程序最低分为:%.1lf, 人数为:%d人\n", min[3], counter[3]);
}
void tongji(struct student s[], int n) //统计函数
{
printf("统计信息如下:\n");
printf("\n姓名\t\t学号\t\t总分\t平均分\n");
allAndAver(s, n);
Max(s, n);
Min(s, n) ;
Fail(s, n);
}
int main() //主函数
{
int k, n=0;
ru(s, &n);
chu(s, n);
while (1)
{
head();
printf("\n请按对应的键选择相应的功能:");
scanf("%d",&k);
switch (k)
{
case 1:
shuru(s, &n);
break;
case 2:
tongji(s, n);
break;
case 3:
dayin(s, n);
break;
case 4:
chazhao(s, n);
break;
case 5:
paixu(s, n);
break;
case 6:
shanchu(s, &n);
break;
case 0:
exit(1);
break;
default : printf("请输入正确的命令!\n");
}
system("pause");
system("cls");
}
return 0;
}

『伍』 C语言编写一个简单的学生成绩管理系统

C语言程序:

#include<stdio.h>
#include<string.h>

typedefstructstudent
{
charname[20]; /*姓名*/
intcode; /*学号*/
intkor,eng,math; /*3门课程的成绩*/
}STUDENT;

/*返回输入数据*/
STUDENTInput();

/*输出所有输入的数据*/
voidOutput(STUDENTinfo[],intcnt);

/*将输入分数转换为A-F*/
chargrade(intscore);

intmain()
{
STUDENTS[10];
intcnt=0,select;
inti,j;
intcode;

while(1)
{
printf(" 学生信息管理系统 ");
printf(" 1 添加 ");
printf(" 2 删除 ");
printf(" 3 查询 ");
printf(" 0 结束 ");
printf(" 您的选择[0-3]:");
scanf("%d",&select);

if(select<0||select>3)
continue;
if(select==0)
{
printf("退出系统! ");
break;
}

if(select==1) /*添加*/
{
S[cnt++]=Input();
}
elseif(select==2) /*删除*/
{
printf(" 待删除学生的学号:");
scanf("%d",&code);

for(i=0;i<cnt;i++)
if(S[i].code==code)
break;
if(i>=cnt)
{
printf("学号不存在,删除失败! ");
}
else{
for(j=i+1;j<cnt;j++)
{
strcpy(S[j-1].name,S[j].name);
S[j-1].code=S[j].code;
S[j-1].kor=S[j].kor;
S[j-1].eng=S[j].eng;
S[j-1].math=S[j].math;
}
cnt--;
printf("删除成功! ");
}
}
else /*查询*/
{
printf(" 待查找学生的学号:");
scanf("%d",&code);

for(i=0;i<cnt;i++)
if(S[i].code==code)
break;
if(i>=cnt)
{
printf("学号不存在,查找失败! ");
}
else
{
printf(" 查询结果: ");
Output(S,i);
}
}
}

return0;
}

/*返回输入数据*/
STUDENTInput()
{
STUDENTstu;
printf(" 新学生信息 ");
printf(" 学号:");
scanf("%d",&stu.code);
printf(" 姓名:");
getchar();
gets(stu.name);
printf(" 3门课程成绩(以空格分隔):");
scanf("%d%d%d",&stu.kor,&stu.eng,&stu.math);

returnstu;
}

/*输出所有输入的数据*/
voidOutput(STUDENTinfo[],intcnt)
{
printf("学号:%d ",info[cnt].code);
printf("姓名:");
puts(info[cnt].name);
printf("成绩:%c%c%c ",grade(info[cnt].kor),grade(info[cnt].eng),grade(info[cnt].math));
}

/*将输入分数转换为A-F*/
chargrade(intscore)
{
if(score<0||score>100)
return'F';
if(score>=90)
return'A';
if(score>=80)
return'B';
if(score>=70)
return'C';
if(score>=60)
return'D';
else
return'E';
}


运行测试:

『陆』 c语言学生成绩管理系统 急求答案 谢谢

去年写的,你稍微改下加个成绩就行

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
FILE*fp;
structstudent{
charname[10];
charnumber[12];
charage[3];
structstudent*next;
};
structstudent*creat();//手动创建链表
structstudent*build_list();//从文件读取信息创建链表
voidread_list(structstudent*head);//打印链表
voidsearch(structstudent*head);//查找相应信息
structstudent*delete_(structstudent*head);//删除相应信息
voidad_list(structstudent*head);//增加信息
intcontrol(structstudent*head);//控制函数
voidhead_print();//打印界面函数
voidchange_list(structstudent*head);//更改链表信息函数
voidsave(structstudent*head);//保存文件
voidremove(structstudent*head);//递归释放链表空间
charname[10],number[12],age[3];//学生姓名、学号、年龄全局变量
intmain(){
structstudent*head;
head=(structstudent*)malloc(sizeof(structstudent));
control(head);
free(head);
fclose(fp);
return0;
}
structstudent*creat(){
structstudent*head;
charname[10],number[12],age[3];
structstudent*p,*r,*p1;
head=(structstudent*)malloc(sizeof(structstudent));
p=head->next;
r=head;
printf("依次输入姓名学号年龄(按q退出): ");
scanf("%s",name);
while(name[0]!='q'){
p1=(structstudent*)malloc(sizeof(structstudent));
scanf("%s",number);
scanf("%s",age);
strcpy(p1->name,name);
strcpy(p1->number,number);
strcpy(p1->age,age);
p1->next=NULL;
r->next=p1;
r=p1;
scanf("%s",name);
}
printf("建立成功 ");
returnhead;
}
/*若无文件或文件为空,用链表创建函数,为防止占用多余内存在循环入口处进行判断,函数返回头指针地址*/
structstudent*build_list(){
charch;
structstudent*head;
structstudent*p1,*r;
rewind(fp);
head=(structstudent*)malloc(sizeof(structstudent));
r=head;
while(!feof(fp)){
p1=(structstudent*)malloc(sizeof(structstudent));
fscanf(fp,"%s%s%s",p1->name,p1->number,p1->age);
p1->next=NULL;
r->next=p1;
r=p1;
fseek(fp,2L,SEEK_CUR);
if((ch=getc(fp))==EOF)
break;
else
fseek(fp,-3L,SEEK_CUR);
}
returnhead;
}
/*文件内有信息时按行读取文件信息并创建链表,为防止误读结尾换行符,用fseek函数在每次循环后移两单位判断是否为空
,若为空结束循环,若不为空则用fseek函数前移三个单位*/
voidread_list(structstudent*head){
structstudent*p;
p=head->next;
if(p==NULL){
head=creat();
}
printf("******************************************* ");
while(p!=NULL){
printf("%-20s%-12s%-3s ",p->name,p->number,p->age);
p=p->next;
}
printf("******************************************* ");
}
/*输出链表信息,如果进行删除操作后链表为空则转到链表创建函数;按行读取文件信息并输出。*/
voidsearch(structstudent*head){
chars[20];
structstudent*p;
intk=0;
printf("请输入要查询的字符串: ");
p=head->next;
scanf("%s",s);
printf("查询结果: ");
while(p!=NULL){
if((strcmp(s,p->age)&&strcmp(s,p->name)&&strcmp(s,p->number))==0){
printf("%-20s%-12s%-3s ",p->name,p->number,p->age);
k=1;
}
p=p->next;
}
if(k==0)
printf("无记录 ");
}
/*查找函数,*/
structstudent*delete_(structstudent*head){
chars[20];
charch;
intv=0;
structstudent*p,*q;
printf("请输入要删除的学生的学号: ");
scanf("%s",s);
p=head->next;
q=head;
while(p!=NULL){
if(strcmp(s,p->number)==0){
q->next=p->next;
v=1;
free(p);
break;
}
q=p;
p=p->next;
}
if(v==1)
printf("删除成功 ");
else{
printf("未删除成功 ");
returnq->next;
}
if(head->next==NULL){
printf("已无信息,是否输入新的(Y/N): ");
scanf("%c",&ch);
ch=getchar();
if(ch=='y')
head=creat();
returnhead;
}
returnq->next;
}
voidad_list(structstudent*head){
chars[20];
intv=0;
structstudent*p,*q;
q=(structstudent*)malloc(sizeof(structstudent));
p=head->next;
printf("插在学号为多少的学生后? ");
scanf("%s",s);
while(p!=NULL){
if(strcmp(s,p->number)==0){
printf("请输入学生信息(姓名学号年龄): ");
scanf("%s%s%s",q->name,q->number,q->age);
q->next=p->next;
p->next=q;
v=1;
break;
}
p=p->next;
}
if(v==0)
printf("插入失败 ");
}
voidchange_list(structstudent*head){
chars1[12];
charch;
structstudent*p;
printf("请输入要更改的学生的学号: ");
scanf("%s",s1);
p=head->next;
while(p!=NULL){
if(strcmp(s1,p->number)==0)
break;
p=p->next;
}
printf("请输入要更改的内容: a.姓名 b.学号 c.年龄 ");
scanf("%c",&ch);
ch=getchar();
printf("请输入更改后结果: ");
scanf("%s",s1);
switch(ch){
case'a':strcpy(p->name,s1);break;
case'b':strcpy(p->number,s1);break;
case'c':strcpy(p->age,s1);break;
}
}
voidsave(structstudent*head){
structstudent*p;
p=head->next;
fp=fopen("stu.out","w+");
rewind(fp);
while(p!=NULL){
fprintf(fp,"%-20s%-12s%3s ",p->name,p->number,p->age);
p=p->next;
}
printf("保存成功 ");
}
voidremove(structstudent*head){
if(head==NULL)
return;
remove(head->next);
free(head);
}
intcontrol(structstudent*head){
inti=0;
charch;
head_print();
if((fp=fopen("stu.out","r"))==NULL){
printf("无文件,请先建立: ");
head=creat();
}
elseif((ch=getc(fp))==EOF){
printf("无信息,请先建立: ");
head=creat();
}
else
head=build_list();
while((ch=getchar())!='q'){
switch(ch){
case'a':search(head);break;
case'b':delete_(head);break;
case'c':ad_list(head);break;
case'd':change_list(head);break;
case'e':read_list(head);break;
case'f':save(head);break;
case'h':head_print();
}
}
if(ch=='q')
remove(head);
return0;
}
voidhead_print(){
printf("%13.0s********************************************%13.0s ");
printf("%13.0s**%40.0s** ");
printf("%13.0s**%9.0sa.查找%9.0sb.删除%10.0s** ");
printf("%13.0s**%40.0s** ");
printf("%13.0s**%9.0sc.增加%9.0sd.更改%10.0s** ");
printf("%13.0s**%40.0s** ");
printf("%13.0s**%9.0se.查看%9.0sf.存档%10.0s** ");
printf("%13.0s**%40.0s** ");
printf("%13.0s**%9.0s按h显示提示信息,q退出%10.0s** ");
printf("%13.0s********************************************%13.0s ");
}

『柒』 C语言,学生成绩管理系统

C语言课程设计任务书
一、题目: 学生成绩管理
二、目的与要求
1. 目的:
(1)基本掌握面向过程程序设计的基本思路和方法;
(2)达到熟练掌握C语言的基本知识和技能;
(3)能够利用所学的基本知识和技能,解决简单的程序设计问题
2. 要求
基本要求:
1. 要求利用C语言面向过程的编程思想来完成系统的设计;
2. 突出C语言的函数特征,以多个函数实现每一个子功能;
3. 画出功能模块图;
4. 进行简单界面设计,能够实现友好的交互;
5. 具有清晰的程序流程图和数据结构的详细定义;
6. 熟练掌握C语言对文件的各种操作。
创新要求:
在基本要求达到后,可进行创新设计,如系统用户功能控制,对管理员级和一般级别的用户系统功能操作不同
三、信息描述
输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求:
1)排序用一个函数实现。
2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。
3)按实验报告电子模板格式填写实验内容。
四、功能描述
1. 学生基本信息及成绩所选科目成绩的录入。
2. 基本信息的查询(分系、班级;分科目)与修改。
3. 对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率);
4. 对所开课程的成绩分析(求其平均成绩,最高分和最低分);
5. 对学生考试成绩进行排名(单科按系别或班级进行排名,对每一个班级,同一学期学生总体成绩进行排名,并显示各科成绩信息)
五、解决方案
1. 分析程序的功能要求,划分程序功能模块。
2. 画出系统流程图。
3. 代码的编写。定义数据结构和各个功能子函数。
4. 程序的功能调试。
5. 完成系统总结报告以及使用说明书
六、进度安排
此次课程设计时间为两周,分四个阶段完成:
1. 分析设计阶段。指导教师应积极引导学生自主学习和钻研问题,明确设计要求,找出实现方法,按照需求分析、总体设计、详细设计这几个步骤进行。
2. 编码调试阶段:根据设计分析方案编写C代码,然后调试该代码,实现课题要求的功能。
3. 总结报告阶段:总结设计工作,写出课程设计说明书,要求学生写出需求分析、总体设计、详细设计、编码、测试的步骤和内容。
4. 考核阶段。
#include <stdio.h>
#include <stdlib.h>
#define STU_NUM 10 /*宏定义学生的数量*/
struct student /*定义一个结构体用来存放学生学号、三门课成绩、总分及平均成绩*/
{
char stu_id[20]; /*学生学号;*/
float score[3]; /*三门课成绩;*/
float total; /*总成绩;*/
float aver; /*平均成绩;*/
};
/*排序用一个函数来实现*/
void SortScore(student *stu,int n)
{
student stud;
for(int i = 0; i < n-1; i++)
for(int j = i+1 ; j < n; j++)
{
if(stu[i].total < stu[j].total)
{
stud = stu[i];
stu[i] = stu[j];
stu[j] = stud;
}
}
}
int main( )
{
student stu[STU_NUM]; /*创建结构体数组中有10个元素,分别用来保存这10个人的相关信息。*/
/*输入这十个学生的相关信息*/
for(int i = 0; i<STU_NUM; i++)
{
printf("请输入第%d个学生的学号:",i+1);
scanf("%s",&stu[i].stu_id);
printf("输入第%d个学生的数学成绩:",i+1);
scanf("%f",&stu[i].score[0]);
printf("输入第%d个学生的英语成绩:",i+1);
scanf("%f",&stu[i].score[1]);
printf("输入第%d个学生的计算机成绩:",i+1);
scanf("%f",&stu[i].score[2]);
stu[i].total = stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
stu[i].aver = stu[i].total/3;
}
printf("\n");

SortScore(stu,STU_NUM);/*调用排序函数*/
/*输出排序后的各学生的成绩*/
for(i = 0 ; i < STU_NUM; i++)
{
printf("序号: %d\t",i);
printf("学号:%s\t",stu[i].stu_id);
printf("数学:%f\t",stu[i].score[0]);
printf("英语:%f\t",stu[i].score[1]);
printf("计算机:%f\t",stu[i].score[2]);
printf("平均成绩:%f\t",stu[i].aver);
printf("总分:%f\t",stu[i].total);
printf("\n\n");
}
return 0;
}
注:(源程序中主要标识符含义说明)
#define STU_NUM 10 /*宏定义学生的数量*/
struct student /*定义一个结构体用来存放学生学号、三门课成绩、总分及平均成绩*/
{
char stu_id[20]; /*学生学号;*/
float score[3]; /*三门课成绩;*/
float total; /*总成绩;*/
float aver; /*平均成绩;*/
}
实验结果:
输入 :(只输入后面的数字,前面的文字是自己产生的)。
请输入第1个学生的学号:001
输入第1个学生的数学成绩:1
输入第1个学生的英语成绩:1
输入第1个学生的计算机成绩:1
请输入第2个学生的学号:002
输入第2个学生的数学成绩:2
输入第2个学生的英语成绩:2
输入第2个学生的计算机成绩:2
请输入第3个学生的学号:003
输入第3个学生的数学成绩:3
输入第3个学生的英语成绩:3
输入第3个学生的计算机成绩:3
请输入第4个学生的学号:004
输入第4个学生的数学成绩:4
输入第4个学生的英语成绩:4
输入第4个学生的计算机成绩:4
请输入第5个学生的学号:005
输入第5个学生的数学成绩:5
输入第5个学生的英语成绩:5
输入第5个学生的计算机成绩:5
请输入第6个学生的学号:006
输入第6个学生的数学成绩:6
输入第6个学生的英语成绩:6
输入第6个学生的计算机成绩:6
请输入第7个学生的学号:007
输入第7个学生的数学成绩:7
输入第7个学生的英语成绩:7
输入第7个学生的计算机成绩:7
请输入第8个学生的学号:008
输入第8个学生的数学成绩:8
输入第8个学生的英语成绩:8
输入第8个学生的计算机成绩:8
请输入第9个学生的学号:009
输入第9个学生的数学成绩:9
输入第9个学生的英语成绩:9
输入第9个学生的计算机成绩:9
请输入第10个学生的学号:010
输入第10个学生的数学成绩:10
输入第10个学生的英语成绩:10
输入第10个学生的计算机成绩:10
输出:
序号: 0 学号:010 数学:10.000000 英语:10.000000 计算机:10.000000
平均成绩:10.000000 总分:30.000000

序号: 1 学号:009 数学:9.000000 英语:9.000000 计算机:9.000000
平均成绩:9.000000 总分:27.000000

序号: 2 学号:008 数学:8.000000 英语:8.000000 计算机:8.000000
平均成绩:8.000000 总分:24.000000

序号: 3 学号:007 数学:7.000000 英语:7.000000 计算机:7.000000
平均成绩:7.000000 总分:21.000000

序号: 4 学号:006 数学:6.000000 英语:6.000000 计算机:6.000000
平均成绩:6.000000 总分:18.000000

序号: 5 学号:005 数学:5.000000 英语:5.000000 计算机:5.000000
平均成绩:5.000000 总分:15.000000

序号: 6 学号:004 数学:4.000000 英语:4.000000 计算机:4.000000
平均成绩:4.000000 总分:12.000000

序号: 7 学号:003 数学:3.000000 英语:3.000000 计算机:3.000000
平均成绩:3.000000 总分:9.000000

序号: 8 学号:002 数学:2.000000 英语:2.000000 计算机:2.000000
平均成绩:2.000000 总分:6.000000

序号: 9 学号:001 数学:1.000000 英语:1.000000 计算机:1.000000
平均成绩:1.000000 总分:3.000000
七、撰写课程设计报告或课程设计总结
课程设计报告要求:
总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结、参考资料等,不符合以上要求者,则本次设计以不及格记。

C语言常见错误
书写标识符时,忽略了大小写字母的区别
main()
{
int a=5;
printf("%d",A);
}
编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。
2.忽略了变量的类型,进行了不合法的运算。
main()
{
float a,b;
printf("%d",a%b);
}
%是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。
3.将字符常量与字符串常量混淆。
char c;
c="a";
在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C规定以“\”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a'和‘\',而把它赋给一个字符变量是不行的。
4.忽略了“=”与“==”的区别。
在许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序中可以写
if (a=3) then …
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:
if (a==3) a=b;
前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。
5.忘记加分号。
分号是C语句中不可缺少的一部分,语句末尾必须有分号。
a=1
b=2
编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。
{ z=x+y;
t=z/100;
printf("%f",t);
}
对于复合语句来说,最后一个语句中最后的分号不能忽略不写(这是和PASCAL不同的)。
6.多加分号。
对于一个复合语句,如:
{ z=x+y;
t=z/100;
printf("%f",t);
};
复合语句的花括号后不应再加分号,否则将会画蛇添足。
又如:
if (a%3==0);
I++;
本是如果3整除a,则I加1。但由于if (a%3==0)后多加了分号,则if语句到此结束,程序将执行I++语句,不论3是否整除a,I都将自动加1。
再如:
for (I=0;I<5;I++);
{scanf("%d",&x);
printf("%d",x);}
本意是先后输入5个数,每输入一个数后再将它输出。由于for()后多加了一个分号,使循环体变为空语句,此时只能输入一个数并输出它。
7.输入变量时忘记加地址运算符“&”。
int a,b;
scanf("%d%d",a,b);
这是不合法的。Scanf函数的作用是:按照a、b在内存的地址将a、b的值存进去。“&a”指a在内存中的地址。
8.输入数据的方式与要求不符。①scanf("%d%d",&a,&b);
输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:
3,4
输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab。
②scanf("%d,%d",&a,&b);
C规定:如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。下面输入是合法的:
3,4
此时不用逗号而用空格或其它字符是不对的。
3 4 3:4
又如:
scanf("a=%d,b=%d",&a,&b);
输入应如以下形式:
a=3,b=4
9.输入字符的格式与要求不一致。
在用“%c”格式输入字符时,“空格字符”和“转义字符”都作为有效字符输入。
scanf("%c%c%c",&c1,&c2,&c3);
如输入a b c
字符“a”送给c1,字符“ ”送给c2,字符“b”送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。
10.输入输出的数据类型与所用格式说明符不一致。
例如,a已定义为整型,b定义为实型
a=3;b=4.5;
printf("%f%d\n",a,b);
编译时不给出出错信息,但运行结果将与原意不符。这种错误尤其需要注意。
11.输入数据时,企图规定精度。
scanf("%7.2f",&a);
这样做是不合法的,输入数据时不能规定精度。
12.switch语句中漏写break语句。
例如:根据考试成绩的等级打印出百分制数段。
switch(grade)
{ case 'A':printf("85~100\n");
case 'B':printf("70~84\n");
case 'C':printf("60~69\n");
case 'D':printf("<60\n");
default:printf("error\n");
由于漏写了break语句,case只起标号的作用,而不起判断作用。因此,当grade值为A时,printf函数在执行完第一个语句后接着执行第二、三、四、五个printf函数语句。正确写法应在每个分支后再加上“break;”。例如
case 'A':printf("85~100\n");break;
13.忽视了while和do-while语句在细节上的区别。
(1)main()
{int a=0,I;
scanf("%d",&I);
while(I<=10)
{a=a+I;
I++;
}
printf("%d",a);
}
(2)main()
{int a=0,I;
scanf("%d",&I);
do
{a=a+I;
I++;
}while(I<=10);
printf("%d",a);
}
可以看到,当输入I的值小于或等于10时,二者得到的结果相同。而当I>10时,二者结果就不同了。因为while循环是先判断后执行,而do-while循环是先执行后判断。对于大于10的数while循环一次也不执行循环体,而do-while语句则要执行一次循环体。
14.定义数组时误用变量。
int n;
scanf("%d",&n);
int a[n];
数组名后用方括号括起来的是常量表达式,可以包括常量和符号常量。即C不允许对数组的大小作动态定义。
15.在定义数组时,将定义的“元素个数”误认为是可使的最大下标值。
main()
{static int a[10]={1,2,3,4,5,6,7,8,9,10};
printf("%d",a[10]);
}
C语言规定:定义时用a[10],表示a数组有10个元素。其下标值由0开始,所以数组元素a[10]是不存在的。
16.初始化数组时,未使用静态存储。
int a[3]={0,1,2};
这样初始化数组是不对的。C语言规定只有静态存储(static)数组和外部存储(exterm)数组才能初始化。应改为:
static int a[3]={0,1,2};
17.在不应加地址运算符&的位置加了地址运算符。
scanf("%s",&str);
C语言编译系统对数组名的处理是:数组名代表该数组的起始地址,且scanf函数中的输入项是字符数组名,不必要再加地址符&。应改为:
scanf("%s",str);
18.同时定义了形参和函数中的局部变量。
int max(x,y)
int x,y,z;
{z=x>y?x:y;
return(z);
}
形参应该在函数体外定义,而局部变量应该在函数体内定义。应改为:
int max(x,y)
int x,y;
{int z;
z=x>y?x:y;
return(z);
}

『捌』 用c语言实现一个简单的学生成绩管理系统,包括:学号,姓名,科目,成绩

//用字符界面实现,比如按数字1,可以录入学生所有信息;
//按数字2,显示所有学生成绩;
//按数字3,进入查询,按学号或姓名查询该学生是否存在,如果存在显示他的所有信息,///否则给出不存在提示。
#include<stdio.h>
structstudent
{
charnum[6];/*学号*/
charname[10];
charsubject[20];/*科目*/
floatgrade;
}stu[10];
voidmenu()
{
printf("==================================== ");
printf("|学生成绩管理系统| ");
printf("|1输入学生成绩| ");
printf("|2输出学生成绩| ");
printf("|3查询学生成绩| ");
printf("|0退出管理系统| ");
printf("==================================== ");
}
voidinput()
{
for(inti=0;i<10;i++)
scanf("%s%s%s%f",stu[i].num,stu[i].name,stu[i].subject,&stu[i].grade);
}
voidshow()
{
printf("学号 姓名 科目 成绩 ");
for(inti=0;i<10;i++)
printf("%s %s %s %f ",stu[i].num,stu[i].name,stu[i].subject,stu[i].grade);
}
voidserach()
{
charobj[10];
printf("输入要查询的学号");
scanf("%s",obj);
for(inti=0;i<10;i++)
{
if(strcmp(obj,stu[i].num))
{
printf("学号 姓名 科目 成绩 ");
printf("%s %s %s %f ",stu[i].num,stu[i].name,stu[i].subject,stu[i].grade);
}
}
}
intmain()
{
intselection;
while(true)
{
clrscr();
menu();
printf("请选择0--3:");
scanf("%d",&selection);
switch(selection)
{
case1:input();break;
case2:show();break;
case3:search();break;
case0:exit(0);break;
default:printf("错误的输入,请重新输入:");
}
}
return0;
}

『玖』 c语言学生管理系统学生成绩管理系统 功能: 每个学生信息为一个记录,包括学号,姓名,性别,3 门课程成绩

#include"stdio.h"
#include"conio.h"
#include"string.h"
#include"stdlib.h"
void look(); /*声明查看函数*/
void save(); /*声明保存函数*/
void search_name(); /*声明按姓名查看函数*/
void search_number(); /*声明按学号查看函数*/
void order(); /*声明排序函数*/
void del(); /*声明删除函数*/
int openl(); /*声明打开函数*/
void welcome(); /*声明我的个人信息函数*/
void type(); /*声明输入函数*/
void see(); /*声明打开并查看文件函数*/
struct student /*定义学生信息的结构体类型*/
{
char num[15]; /*学号*/
char name[20]; /*姓名*/
char sex[4]; /*性别*/
int english; /*英语成绩*/
int math; /*数学成绩*/
int chinese; /*语文成绩*/
float aver; /*平均成绩*/
float sum; /*总成绩*/
}stu[100];
int n; /*声明一个全局变量*/
void main() /*主函数即用户的操作界面*/
{
system("color 1E"); /*设计文本颜色*/
int b,flag=0; /*声明局部变量*/
while(1) /*循环输出以下信息*/
{
printf("\n\t\t\t欢迎来到学生成绩管理系统!\n");
printf("\n\t\t\t\t ###制作\n");
printf("\t\t\t-------------------------------\n");
printf("\t\t\t1.键入学生的信息\n\n"); /*键入学生的信息*/
printf("\t\t\t2.查看录入的学生信息\n\n"); /*查看录入的学生信息*/
printf("\t\t\t3.按姓名查看学生的信息\n\n"); /*按姓名查看学生的信息*/
printf("\t\t\t4.按学号查看学生的信息\n\n"); /*按学号查看学生的信息*/
printf("\t\t\t5.按平均成绩排序\n\n"); /*排序*/
printf("\t\t\t6.删除学生信息\n\n"); /*删除学生信息*/
printf("\t\t\t7.保存学生信息\n\n"); /*保存*/
printf("\t\t\t8.打开文件\n\n"); /*打开文件*/
printf("\t\t\t9.我的个人信息\n\n"); /*我的个人信息*/
printf("\t\t\t0.退出\n\n"); /*退出*/
printf("\t\t\t请输入你的选择:");
scanf("%d",&b);
switch(b)
{
case 1:type();break; /*调用键入学生信息函数*/
case 2:look();break; /*调用查看函数*/
case 3:search_name();break; /*调用姓名查看函数*/
case 4:search_number();break; /*调用学号查看函数*/
case 5:order();break; /*调用排序函数*/
case 6:del();break;/*调用删除函数*/
case 7:save();break;/*调用保存函数*/
case 8:see();break;/*调用打开文件函数*/
case 9:welcome();break;/*调用我的个人信息函数*/
case 0:flag=1;break;/*退出SWITCH语句*/
default :printf("错误!");
}
if(flag) break; /*如果选择0就退出循环*/
}
}
void welcome() /*我的个人信息函数*/
{
system("CLS");
printf("\n\n\t\t------------个人信息------------"); /*在屏幕上输出一下信息*/
printf("\n\n\n\n\t\t姓名:###");
printf("\t\t\tSex:#\n");
printf("\t\t年龄:#\n");
printf("\n\t\t\t--------学习经历--------\n\n\n");
printf("\t\t小学:######\n\n");
printf("\t\t初中:#####\n\n");
printf("\t\tS高中:######\n\n");
printf("\t\t大学:######\n\n");
printf("\n\n\t\t按任意键返回欢迎屏幕!");
getch(); /*按任意键返回主函数*/
}
void type() /*定义键入学生信息函数*/
{
system("CLS");
int i; /*定义局部变量*/
printf("\t\t输出你想输入的学生信息个数:");
scanf("%d",&n);
for(i=0;i<n;i++) /*输入每个学生的信息*/
{
printf("\n\t\t\t----------------\n");
printf("\t\t\t学号:");
scanf("%s",&stu[i].num); /*输入学号*/
printf("\t\t\t姓名:");
scanf("%s",&stu[i].name); /*输入姓名*/
printf("\t\t\t性别:");
scanf("%S",&stu[i].sex); /*输入性别*/
printf("\t\t\t英语:");
scanf("%d",&stu[i].english); /*输入英语成绩*/
printf("\t\t\t数学:");
scanf("%d",&stu[i].math); /*输入数学成绩*/
printf("\t\t\t语文:");
scanf("%d",&stu[i].chinese); /*输入语文成绩*/
stu[i].aver=((float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese)/3;/*计算平均成绩*/
stu[i].sum=(float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese;/*计算总成绩*/
printf("\t\t\t平均成绩=%4.1f\n",stu[i].aver); /*输出平均成绩*/
printf("\t\t\t总成绩=%4.1f\n",stu[i].sum); /*输出总成绩*/
}
printf("\n\n\t\t\t按任意键返回菜单!!");
getch();
save();
}
void save() /*建立保存文件函数*/
{
system("CLS");
FILE *fp; /*定义文件型指针*/
int i;
if((fp=fopen("student.txt","wb"))==NULL) /*打开输出文件*/
{
printf("不能打开文件!\n");
return; /*终止程序*/
}
for(i=0;i<n;i++) /*向student文件中写入信息*/
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("文件写入错误\n");
fclose(fp); /*关闭文件*/
printf("\n\n\n\n\t\t\t学生信息保存成功!\n");
printf("\n\n\n\n\t\t\t按任意键返回菜单!!");
getch();
}
void look() /*定义查看函数*/
{
system("CLS");
int i;
//n=openl(); /*调用openl函数*/
printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i<n;i++) /*输出所有的学生信息*/
{
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
}
printf("\n\n\n\t\t\t按任意键返回菜单");
getch();
}
void search_name() /*按姓名查看函数*/
{
system("CLS");
int i;
char name[20]; /*声明字符数组*/
printf("\t\t\t请输入学生姓名:\n");
scanf("%s",name);
printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i<n;i++)
if(strcmp(stu[i].name,name)==0) /*将输入的姓名与结构体中的姓名进行比较*/
{
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
printf("\n\n\n\t\t\t按任意键返回菜单");
}
getch();
}
void search_number() /*定义按学号查看函数*/
{
system("CLS");
int i;
char number[15]; /*声明字符数组*/
printf("\t\t\t请输入学号:\n");
scanf("%s",number);
printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i<n;i++)
if(strcmp(stu[i].num,number)==0) /*将输入的学号与结构体中的学号进行比较*/
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
printf("\n\n\n\t\t\t按任意键返回菜单");
getch();
}
void order() /*定义排序函数*/
{
system("CLS");
int i,j;
char a;
struct student temp; /*声明结构体变量*/
printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i<n;i++) /*对数据进行排序*/
{
for(j=i+1;j<n;j++)
if(stu[i].sum<stu[j].sum)
{
temp=stu[i];
stu[i]= stu[j];
stu[j]=temp;
}
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
}
getch();
printf("是否保存?(y or n)");
getchar();
scanf("%c",&a);
if(a=='y') /*是否保存排序后的文件*/
save();
else
printf("退出");
getch();
}
void del() /*定义删除学生信息函数*/
{
int i;
char a;
char name[20];
system("CLS");
printf("\t\t\t输入学生名字:\n");
scanf("%s",name);
system("CLS");
printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i<n;i++)
if(strcmp(stu[i].name,name)==0)
{
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
getch();
printf("真的删除?(y or n)");
getchar();
scanf("%c",&a);
if(a=='y') /*是否删除该信息*/
{
for(;i<n;i++)
stu[i]=stu[i+1];
n=n-1;
printf("你已经删除信息");
}
else
printf("退出");
getch();
}
save();
}
int openl() /*定义打开文件函数*/
{
system("CLS");
int i;
FILE *fp;
if((fp=fopen("student.txt","rb"))==NULL)
{
printf("Cannot open file.\n");
exit(0);
}
for(i=0;!feof(fp);i++)
fread(&stu[i],sizeof(struct student),1,fp);
fclose(fp);
return(i-1);
}
void see() /*打开并查看文件*/
{
system("CLS");
int i;
n=openl();
printf("文件打开成功!\n");
printf("按任意键查看!\n");
getch();
printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i<n;i++) /*输出所有的学生信息*/
{
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);

}
printf("\n\n\n\t\t\t按任意键返回菜单");
getch();

『拾』 学生成绩管理系统(C语言)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#define NUM_SUBJECT 4
typedef struct zl
{
char no[5]; /*学号*/
char name[6]; /*姓名*/
int score[NUM_SUBJECT]; /*各门学科成绩*/
float total; /*总分*/
float average; /*平均分*/
int order; /*名次*/
}STUDENT;
int REC_NUM=0; /*学生记录数*/
char*subject[]={"数学","电脑","物理","电工学"};
char*menu[]={"**************MENU***************",
"1. Enter new record",
"2. Display record",
"3. Search record",
"4. Modify record",
"5. Delete a record to list",
"6. Add a record to list",
"7. Sort to make new file",
"8. Save the file",
"9. Load the file",
"10. Quit"};
STUDENT records[10];
void newRec();
void showTable();
void showTable2(Iint);
void display();
void searchRec();
void modifyRec();
void deleteRec();
void addRec();
void orderRec();
void sortRec();
void saveRec();
void loadRec();
void Rec(STUDENT*,STUDENT*);
void quit();
int menu_select();
int findRec(char*,int,int);
void main()
{
system("cls");
for(;;)
{
switch(menu_select())
{
case 1: newRec();break;
case 2: display();break;
case 3: searchRec();break;
case 4: modifyRec();break;
case 5: deleteRec();break;
case 6: addRec();break;
case 7: sortRec();break;
case 8: saveRec();break;
case 9: loadRec();break;
case 10: quit();
}
}
}

int menu_select()
{
char s[3];
int c,i;
for(i=0;i<11;i++)
{
printf("%s",menu[i]);
}
window(1,1,80,25);
do
{
printf(" Enter you choice(1-10):");
scanf("%s",s);
c=atoi(s);
}while(c<0||c>11);
return c;
}
void showTable1()
{
system("cls");
printf("*****************STUDENT INFORMATION****************");
printf("????D?D?D?D?D?D?D?D?D?D???\n");
printf("|Rec | No | Name | Computer | Physics | English | total | Average | Order\n");
printf("?¨¤?¨¤?¨¤?¨¤?¨¤?¨¤?¨¤?¨¨\n");
}
void showTable2(int n)
{
if(n==0)n=1;
if(REC_NUM==0)n=-1;
printf("??????????????????\n");
}
void quit()
{
char str[5];
printf("Save records?(Y/N)");
scanf("%s",str);
if(str[0]=='Y'||str[0]=='y')
saveRec();
exit(0);
}
void newRec()
{
int i, j, sum;
system("cls");
printf("Please input the REC_NUM:");
scanf("%d",&REC_NUM);
for(i=0;i<REC_NUM;i++)
{
system("cls");
sum=0;
for(j=0;j<NUM_SUBJECT;j++);
{
scanf("%d",&records[i].score[j]);
sum=sum+records[i].score[j];
}
records[i].total=sum;
records[i].average=records[i].total/NUM_SUBJECT;
records[i].order=0;
}
}
void display()
{
int i=0;
showTable1();
for(i=0;i<REC_NUM;i++)
{
printf("|%2d |%4s |6s?%4d | %4d | %4d | %5.1f | %5.1f | %2d \n",i+1,records[i].no,records[i].name,records[i].score[0],records[i].score[1],records[i].score[2],records[i].score[3],records[i].total,records[i].average,records[i].order);
}
showTable2(i);
printf("Press any key to return!");
getch();
}
void saveRec()
{
FILE*fp1,*fp2;
if((fp1=fopen("d:\\cjt\\tc\\lianxiti\\keshe\\keshe.dat","wb"))==NULL)
{
printf("Cannot open this file!");
exit(1);
}
if((fp2=fopen("d:\\cjt\\tc\\lianxiti\\keshe\\keshe.dat","wb"))==NULL)
{
printf("Cannot open this file!");
exit(1);
}

printf("\nSaving file......\n");
fwrite(&REC_NUM,sizeof(REC_NUM),1,fp2);
fwrite(records,sizeof(STUDENT),REC_NUM,fp1);
fclose(fp1);fclose(fp2);
printf("n\Save success!!\n");delay(1000);
printf("\nPress any key to return!");
getch();
}
void loadRec()
{
FILE*fp1,*fp2;
if((fp1=fopen("d:\\cjt\\tc\\lianxiti\\keshe\\keshe.dat","rb"))==NULL)
{
printf("Cannot open this file!");
exit(1);
}
if((fp2=fopen("d:\\cjt\\tc\\lianxiti\\keshe\\keshe.dat","rb"))==NULL)
{
printf("Cannot open this file!");
exit(1);
}
system("cls");
printf("\nLoading file.....\n");
fread(&REC_NUM,sizeof(REC_NUM),1,fp2);
fread(records,sizeof(STUDENT),REC_NUM,fp1);
fclose(fp1);fclose(fp2);
delay(2000);
printf("\nYou have success read date from file!!!\n");
printf("\press any key to return!");
getch();
}
void searchRec()
{
char str[20];
int i;
system("cls");
printf("Please input the number you want to get:");
scanf("%s",str);
i=findRec(str,1,0);
if(i!=-1)
{
printf("|%2d |%4s | 6s| %4d | %4d | %4d | %4d| %5.1f | %5.1f | %2d \n",i+1,records[i].no,records[i].name,records[i].score[0],records[i].score[1],records[i].score[2],records[i].score[3],records[i].total,records[i].average,records[i].order);
showTable2(0);
}
else printf("Not find!\n");
printf("Press any key to return!");
getch();
}

void deleteRec()
{
int i, j;
char str[20];
system("cls");
printf("Please input the number you want to delete:");
scanf("%S",str);
i=findRec(str,1,0);
for(j=i;j<REC_NUM;j++)
records[j]=records[j+1];
REC_NUM--;
saveRec();
}
void Rec(STUDENT*src,STUDENT*dest)
{
int i;
strcpy(dest->no,src->no);
strcpy(dest->name,src->name);
for(i=0;i<NUM_SUBJECT;i++)
dest->score[i]=src->score[i];
dest->total=src->total;
dest->average=src->average;
dest->order=src->order;
}
void orderRec()
{
int i;
records[0].order=1;
for(i=1;i<REC_NUM;i++)
if(records[i].total==records[i-1].total)
records[i].order=records[i-1].order;
else
records[i].order=i+1;
}
void sortRec()
{
int i,j,flag;
STUDENT t;
system("cls");
printf("\nsorting file\n");
for(i=0;i<REC_NUM;i++)
{
flag=0;
for(j=REC_NUM-1;j>i;j--)
if(records[j].total>records[j-1].total)
{
Rec(&records[j],&t);
Rec(&records[j-1],&records[j]);
Rec(&t,&records[j-1]);
flag=1;
}
if(!flag) break;
}
orderRec();
delay(2000);
printf("\nsorting success\n");
saveRec();
}

int findRec(char *target,int tarType,int from)
{
int i;
for(i=from;i<REC_NUM;i++)
{
if((tarType==1&&strcmp(target,records[i].no)==0)
||tarType==2&&strcmp(target,records[i].name)==0)
return(i);
}
return(-1);
}
void modifyRec()
{
int i,j,sum;
char no[20],str[8];
system("cls");
printf("Please input the number you want to modify:");
scanf("%s",no);
i=findRec(no,1,0);
showTable1();
printf("| %2d | %4s | 6s |%4d |%4d | %4d | %4d | %5.1f | %5.1f|%2d |\n",i+1,records[i].no,records[i].name,records[i].score[0],records[i].score[1],records[i].score[2],records[i].score[3],records[i].total,records[i].average,records[i].order);
showTable2(0);
printf("Do you wang to modify this student(Y/N):");
scanf("%s",str);
if(str[0]=='y'||str[0]=='Y')
{
printf("enter number:");scanf("%s",records[i].no);
printf("enter name:");scanf("%s",records[i].name);
sum=0;
for(j=0;j<NUM_SUBJECT;j++)
{
printf("%s:",subject[j]);
scanf("%d",&records[i].score[j]);
sum=sum+records[i].score[j];
}
records[i].total=sum;
records[i].average=records[i].total/NUM_SUBJECT;
records[i].order=0;
}
printf("Press any key to return!");
getch();
}

void addRec()
{
int i,j,sum=0;
char no[20],str[8];
for(;;)
{
system("cls");
printf("Please input the number you want to add:");
scanf("%s",str);
i=findRec(str,1,0);
if(i==-1)break;
else printf("This number is exist!\n");
getch();
}
strcpy(records[REC_NUM].no,str);
printf("enter name:");scanf("%s",records[REC_NUM].name);
for(j=0;j<NUM_SUBJECT;j++)
{
printf("%s:",subject[j]);
scanf("%d",&records[REC_NUM].score[j]);
sum=sum+records[REC_NUM].score[j];
}
records[REC_NUM].total=sum;
records[REC_NUM].average=records[REC_NUM].total/NUM_SUBJECT;
records[REC_NUM].order=0;
REC_NUM++;
saveRec();
}

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919