偷心的贼←_← 2021-07-28 22:50 采纳率: 0%
浏览 31

解决问题 无法解析的外部符号"void_decl艹query(int)",函数_main中引用了该符号

请问这是从错那里了 求解决
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>//学生成绩结构体struct student{ char num[9];//学号 char name[11];//姓名 int chinese;//语文成绩 int math;//数学成绩 int english;//英语成绩 int sumstu;//成绩总数 int rank;//排名 };//函数声明 void showmenu(void);//菜单 void luru(int);//录入成绩 void cx(int);//查询成绩 void xuehao(int);//学号查询 void xinmin(int n);//姓名查询void chazaofansi(void);//查询菜单 void jspm(int);//计算排名 //void bcstu(void);//保存成绩并退出 //main函数 int main(){ int flag, n = 0, count = 0;//flag标志位,count计数,当前总人数//-------------判断文件里面有多少条记录--------------------// FILE* fp; fp = fopen("stu.txt", "a+"); if (fp == NULL) { printf("打开文件失败,请重试!\n"); _getch(); fclose(fp); exit(0); } int cc = 0; while (!feof(fp)) { char cc = fgetc(fp); if (cc == EOF) { break; } //输出字符// putchar(cc); cc++; } count = cc / 14; printf("%d", count); _getch(); fclose(fp); int i = 4, key = 0; char c=0; //初始页面 printf("*************************************************\n"); printf("\t\t学生成绩管理系统\t\t\n"); printf("*************************************************\n"); printf("\t\t功能列表\t\t\t\n"); printf("*************************************************\n"); printf("\t\t1.学生成绩录入\t\t\t\n"); printf("\t\t2.学生成绩保存\t\t\t\n"); printf("\t\t3.学生成绩查询\t\t\t\n"); printf("\t\t4.排序与统计\t\t\t\n"); printf("\t\t0.退出系统\t\t\t\n"); printf("**********************************************\n"); printf("请输入密码\n"); int x = 0; char code[20] = "123456", password[20];int a; while (x < 6 && c != 13) { c = _getch(); if (c != 13) putchar('#'); password[x++] = c; } password[x] = '\0'; while (1) { if (strcmp(password, code)!=0) { fflush(stdin); printf("\n输入密码有误,您还有%d次机会,请重新输入:", i--); if (i == -1) { system("pause"); exit(0); } } else key = 1; x = 0; while (x < 6 && c != 13) { c = _getch(); if (c != 13) putchar('#'); password[x++] = c; } password[x] = '\0'; if (key == 1) break; } printf("\n\n\t\t密码输入正确!!使用"); system("cls"); //清屏 //页面菜单 while (1) { do { showmenu(); scanf("%d", &flag);//选择操作 switch (flag) { case 1: printf("请输入您要录入的人数:"); scanf("%d", &n); luru(n); count += n; break; case 2: cx(count); break; case 3: jspm(count); break; case 0: //退出系统 fflush(stdin); float y, x, b; for (y = 1.5f; y > -1.5f; y -= 0.1f) { for (x = -1.5f; x < 1.5f; x += 0.05f) { b = x * x + y * y - 1; putchar(b * b * b - x * x * y * y * y <= 0.0f ? '*' : ' '); } putchar('\n'); } default:printf("输入错误,请重试!\n"); _getch(); } } while (flag != 0); _getch(); return 0; }}void showmenu(){ system("cls"); printf("*************************************************\n"); printf("*\t\t学生成绩管理系统\t\t*\n"); printf("*************************************************\n"); printf("*\t\t功能列表\t\t\t*\n"); printf("*************************************************\n"); printf("*\t\t1.学生成绩录入\t\t\t*\n"); printf("*\t\t2.学生成绩查询\t\t\t*\n"); printf("*\t\t3.成绩计算及排名\t\t\t*\n"); printf("*\t\t0.退出系统\t\t\t*\n"); printf("*************************************************\n");}//1录入成绩 void luru(int n){ struct student stu[100]; FILE* fp; fp = fopen("stu.txt", "a+"); if (fp == NULL) { printf("打开文件失败,请重试!\n"); _getch(); fclose(fp); exit(0); } printf("请输入您要录入的人数:"); scanf("%d", &n); printf("请输入全部学生的学号,姓名,语文成绩,数学成绩,英语成绩;\n"); int i; for (i = 0; i < n; i++) { printf("----第%d个学生----\n", i + 1); printf("学号:"); scanf("%s", &stu[i].num); printf("姓名:"); scanf("%s", stu[i].name); //} printf("语文成绩:"); scanf("%d", &stu[i].chinese); printf("数学成绩:"); scanf("%d", &stu[i].math); printf("英语成绩:"); scanf("%d", &stu[i].english); //写入数据 fprintf(fp, "%s %s %d %d %d \n", stu[i].num, stu[i].name, stu[i].chinese, stu[i].math, stu[i].english); } fclose(fp); printf("添加学生成功,请按任意键返回\n"); _getch();}//4成绩查询void caxuan(int n) //n全班人数 { int k; do { void chazaofansi(); scanf("%d", &k); switch (k) { case 1:xuehao(n); break;//学号查询 case 2:xinmin(n); break;//姓名查询 case 0:break; default:printf("输入错误,请重新选择\n"); _getch(); } } while (k != 0); return;}//4.0查询菜单void chazaofansi(){system("cls"); printf("******************************************************\n"); printf("*\t\t成绩查询菜单\t\t*\n"); printf("******************************************************\n"); printf("*\t\t\t1: 按学号查询\t\t\t*\n"); printf("*\t\t\t2: 按姓名查询 \t\t\t*\n"); printf("*\t\t\t0: 返回主系统\t\t\t*\n"); printf("******************************************************\n"); printf("选择操作<0-2> \n");}//4.1学号查询void xuehao(int n){ struct student stu[100]; char num[9]; printf("请输入你要查询学生的学号:"); scanf("%s", &num); FILE fp; fp = fopen("stu.txt ", "r"); if (fp == NULL) { printf("打开文件失败!\n"); _getch(); exit(0); } int c = 0; while (!feof(fp)) { fscanf(fp, "%s %s %d %d %d %d %d\n", &stu[c].num, &stu[c].name, &stu[c].chinese, &stu[c].math, &stu[c].english, &stu[c].sumstu, &stu[c].rank); c++; } int i; for (i = 0; i < n; i++) { if (strcmp(num, stu[i].num) == 0) { printf("学号\t姓名\t语文\t数学\t英语\t总分\t名次\n"); printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\n", stu[i].num, stu[i].name, stu[i].chinese, stu[i].math, stu[i].english, stu[i].sumstu, stu[i].rank); printf("按任意键返回\n"); _getch(); fclose(fp); return; } } printf("未找到要查询学生的成绩,请重试!\n"); _getch(); fclose(fp); return;}//4.2姓名查询void xinmin(int n){ struct student stu[100]; char name[11]; printf("请输入你要查询学生的姓名:"); scanf("%s", &name); FILE fp; fp = fopen("stu.txt ", "r"); if (fp == NULL) { printf("打开文件失败!\n"); _getch(); exit(0); } int c = 0; while (!feof(fp)) { fscanf(fp, "%s %s %d %d %d %d %d\n\n", &stu[c].num, &stu[c].name, &stu[c].chinese, &stu[c].math, &stu[c].english, &stu[c].sumstu, &stu[c].rank); c++; } int i; for (i = 0; i < n; i++) { if (strcmp(name, stu[i].name) == 0) { printf("学号\t姓名\t语文\t数学\t英语\t总分\t名次\n"); printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\n", stu[i].num, stu[i].name, stu[i].chinese, stu[i].math, stu[i].english, stu[i].sumstu, stu[i].rank); printf("按任意键返回\n"); _getch(); fclose(fp); return; } } printf("未找到要查询学生的成绩,请重试!\n"); _getch(); fclose(fp); return;}//5计算排名函数 void jspm(int n){ struct student stu[100]; int i, j, temp; int count; FILE fp; fp = fopen("stu.txt", "r"); if (fp == NULL) { printf("打开文件失败!\n"); _getch(); exit(0); } int c = 0; while (!feof(fp)) { fscanf(fp, "%s %s %d %d %d %d %d\n", &stu[c].num, &stu[c].name, &stu[c].chinese, &stu[c].math, &stu[c].english, &stu[c].sumstu, &stu[c].rank); stu[c].sumstu = stu[c].chinese + stu[c].math + stu[c].english; c++; } fclose(fp); //计算排名并存储 for (i = 0; i < n; i++) { temp = 1;//第1名 for (j = 0; j < n; j++) { if (stu[i].sumstu < stu[j].sumstu) temp++;//如果较小,排名下降1名 } stu[i].rank = temp; } //更新记录 fp = fopen("stu.txt", "w"); for (i = 0; i < n; i++) { fprintf(fp, "%s %s %d %d %d %d %d\n", stu[i].num, stu[i].name, stu[i].chinese, stu[i].math, stu[i].english, stu[i].sumstu, stu[i].rank); } fclose(fp); printf("数据重新计算和排名成功,请按任意键返回主菜单。\n"); _getch(); return;}

  • 写回答

2条回答 默认 最新

  • CSDN专家-Time 2021-07-28 23:37
    关注

    请用代码段格式化一下代码。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月28日

悬赏问题

  • ¥15 vc6.0中想运行代码的时候总是提示无法打开文件是怎么回事
  • ¥25 关于##爬虫##的问题,如何解决?:
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题