A_lemon_D 2016-12-30 16:24 采纳率: 0%
浏览 1355

c语言写学生管理系统,遇到一些问题

如图,输入函数和输出函数,运行时有很多问题…请问我这是哪些地方有错误?代码如下:

#include
#include
#include

#define N 20

typedef struct stu{
long num;
char name[20];
char sex[10];
int score[3];
int total;
int average;
}Student;
Student p[N];

int n;

void menu(void);
void Management(void);
void insertStu(void);
void StudentTotal(void);
void calcuAverage(void);
void calcuTotal(void);
void calcuMark(void);
void search(void);
void printStu(void);

int main()
{
while(1){
menu();

int a;
printf("请输入选择:\n");
scanf("%d",&a);
switch(a){
case 1:printStu();break;
case 2:Management();break;/*进入管理界面*/
case 3:StudentTotal();break;
case 4:calcuMark();break;
case 5:search();break;
case 6:exit(0);break;
}
}

}

void menu(void)
{
printf("----------------------------\n");
printf("欢迎进入学生成绩管理系统\n");
printf("1.显示基本信息\n");
printf("2.基本信息管理\n");
printf("3.学生成绩统计\n");
printf("4.考试成绩统计\n");
printf("5.根据条件查询\n");
printf("6.退出\n");
printf("----------------------------\n");
}

void Management(void)
{
printf("1.插入学生记录\n");
printf("2.删除学生记录\n");
printf("3.修改学生记录\n");
printf("\n");
printf("请输入选择:\n");

int choice1;
scanf("%d",&choice1);

switch(choice1){
case 1:insertStu();/*添加一条学生记录*/
default:break;
}

}

void insertStu()
{
int i;
printf("请输入添加学生数量:\n");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("请输入学生学号[10位]:\n");
scanf("%s",&p[i].num);
printf("请输入学生姓名:\n");
scanf("%s",&p[i].name);
printf("请输入学生性别:\n");
scanf("%s",&p[i].sex);
printf("请输入学生计算机成绩:\n");
scanf("%d",&p[i].score[0]);
printf("请输入学生数学成绩:\n");
scanf("%d",&p[i].score[1]);
printf("请输入学生英语成绩:\n");
scanf("%d",&p[i].score[2]);
}

}

void StudentTotal(void)
{
printf("学生成绩统计:\n1.计算学生总分\n2.计算学生平均分\n");

int choice2;
printf("请输入选择:\n");
scanf("%d",&choice2);
switch (choice2) {
case 1:calcuTotal();
    break;
case 2:calcuAverage();
    break;
}

}

void calcuTotal(void)
{

}

void calcuAverage(void)
{

}

void calcuMark(void)
{

}

void search()
{

}

void printStu(void)
{
int i;
for(i=0;i<n;i++){
printf("%s","学号:");
printf("%s",&p[i].num);
printf("%s","姓名:");
printf("%s",&p[i].name);
printf("%s","计算机:");
printf("%d",&p[i].score[0]);
printf("%s","数学:");
printf("%d",&p[i].score[1]);
printf("%s","英语:");
printf("%d",&p[i].score[2]);

printf("\n");
}

}
图片

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-12-30 16:31
    关注

    printf("%d",&p[i].score[0]);
    你这个打印的是地址
    printf("%d",p[i].score[0]);
    才是打印数字

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器