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

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 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能