c++编程问题 学生成绩查询系统
使用C语言建立一个学生成绩管理系统,实现学生对成绩的查询功能,下面是利用C语言建立的结构体类型Student和Course,分别表示学生和课程的信息,一个学生可以选修多门课程,同时一门课程有多名学生选修。
具体要求如下:
(1)在主函数中实现学生的登录功能。
(2)登录成功后,提供学生功能选择,1为查询所有成绩;2为查询某一门课程成绩;3为查询不及格课程的课程名称和成绩;4为查询学生所有课程的平均成绩。如果登录失败,则给出提示。
参考代码:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define SN 8 //表示学生学号为7位
#define SNAME 30 //表示学生的姓名最长运行29个字符
#define PN 7 //表示学生的登录密码为6位
#define CN 7 //表示课程编号为6位
#define CNAME 30 //表示课程名称最多29个字符
#define SCN 3 //表示每个学生选修3门课程
#define STN 3 //表示有3个学生
struct Course
{
char coursenumber[CN]; //表示课程编号
char coursename[CNAME]; //表示课程名称
int score; //表示课程成绩
};
struct Student
{
char studentnumber[SN]; //表示学号
char studentname[SNAME]; //表示学生姓名
char password[PN]; //表示密码
Course courses[SCN]; //表示学生选修课程的信息
};
Student st[STN]={{"0921001","张一","123456",{{"000001","C语言程序设计",78},{"000002","高等数学",56},{"000003","计算机基础",98}}},{"0921002","张二","123456",{{"000001","C语言程序设计",88},{"000002","高等数学",56},{"000003","计算机基础",94}}},{"0921003","张三","123456",{{"000001","C语言程序设计",88},{"000002","高等数学",66},{"000003","计算机基础",77}}}};
int login(char *sn,char *psd)
{
int i;
for(i=0;i<STN;i++)
{
if(strcmp(st[i].studentnumber,sn)==0 && strcmp(st[i].password,psd)==0)
return 1;
}
return 0;
}
void printAllScore(char *sn)
{
int i,j;
for(i=0;i<STN;i++)
{
if(strcmp(st[i].studentnumber,sn)==0)
{
for(j=0;j<SCN;j++)
printf("%s %d\n",st[i].courses[j].coursename,st[i].courses[j].score);
}
}
}
void printFailure(char *sn)
{
}
int getScore(char *sn,char *cn)
{
}
int getAver(char *sn)
{
int i,j,sum=0;
for(i=0;i<STN;i++)
{
if(strcmp(st[i].studentnumber,sn)==0)
{
for(j=0;j<SCN;j++)
sum+=st[i].courses[j].score;
}
}
return sum/SCN;
}
void main()
{
char tempt1[SN]={'\0'};
char tempt2[PN]={'\0'};
int i;
printf("请输入您的学号:");
for(i=0;i<7;i++)
tempt1[i]=getche();
printf("\n请输入您的密码:");
for(i=0;i<6;i++)
{
tempt2[i]=getch();
putchar('*');
}
if(login(tempt1,tempt2)==1)
{
printf("\n登录成功,请选择服务:1、查询所有课程成绩;2、查询某一门课程成绩;3、查询不及格课程名称和成绩;4、查询平均成绩\n");
int tag;
scanf("%d",&tag);
switch(tag)
{
case 1:
printAllScore(tempt1);
break;
case 2:
break;
case 3:
break;
case 4:
printf("您的平均成绩为%d\n",getAver(tempt1));
break;
default:
printf("输入选择错误!\n");
}
}
else
printf("登录失败");
}
希望有高手尽快帮我填补上缺少的部分 谢谢谢谢~~~~~~~~