有人能帮忙改改这个程度吗?江湖救急,非常感谢,可以有偿,私下聊也行

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

 

#define LEN 15

#define N 70

struct tagStudent

{

char chName[LEN+1];

int nAge;

char chSex;

char chNum[LEN+1];

float score[6];

} stu[N];

int k = 1, n = 0, m = 0;

void Instruction();

void InputStudent();

void OrderStudent();

void SaveStudent();

void DisplayStudent();

int ReadStudent();

void SearchStudent();

void ModifyStudent();

void DeleteStudent();

int main()

{

 

printf("欢迎使用学生档案管理系统\n");

while (k)

{

int num;

printf("\t请选择功能列表\n");

printf("\t\t0.系统说明\n");

printf("\t\t1.录入学生信息\n");

printf("\t\t2.将学生进行排序\n");

printf("\t\t3.保存学生信息\n");

printf("\t\t4.读取学生信息\n");

printf("\t\t5.显示全部学生信息\n");

printf("\t\t6.查找学生信息\n");

printf("\t\t7.修改学生信息\n");

printf("\t\t8.删除学生信息\n");

printf("\t\t9.退出系统\n");

scanf("%d", &num);

switch (num)

{

case'0':

Instruction();

break;

case'1':

InputStudent();

break;

case'2':

OrderStudent();

break;

case'3':

SaveStudent();

break;

case'4':

ReadStudent();

break;

case'5':

DisplayStudent();

break;

case'6':

SearchStudent();

break;

case'7':

ModifyStudent();

break;

case'8':

DeleteStudent();

break;

case'9':

k = 0;

printf("即将退出系统!\n");

break;

default:printf("请在0-9之间进行选择!\n");

}

}

system("pause");

return 0;

}

void Instruction()

{

printf("\n0.欢迎使用系统说明\n");

printf("\n1.请选择菜单上的数字\n");

printf("\n2.修改学生信息后请保存\n");

printf("\n3.谢谢使用\n");

}

void InputStudent()

{

int i = n, j, flag;

printf("请输入待增加的学生数:\n");

scanf("%d", &m);

if (m > 0) 

{

do

{

flag = 1;

while (flag)

{

flag = 0;

printf("请输入第%d位学生的学号:\n", i + 1);

scanf("%s", stu[i].chNum);

for (j = 0; j < i; j++) 

{

if (strcmp(stu[i].chNum, stu[j].chNum) == 0) 

{

printf("该学号已存在,请重新输入!\n");

flag = 1;

break;

}

}

}

printf("请输入第%d 个学生的姓名:\n", i + 1);

scanf("%s", &stu[i].chName);

printf("请输入第%d 个学生的年龄:\n", i + 1);

scanf("%d", &stu[i].nAge);

printf("请输入第%d 个学生的性别:\n", i + 1);

scanf(" %c", &stu[i].chSex);

printf("请输入第%d 个学生的C语言成绩\n", i + 1);

scanf("%f", &stu[i].score[0]);

printf("请输入第%d 个学生的高数成绩:\n", i + 1);

scanf("%f", &stu[i].score[1]);

printf("请输入第%d 个学生的英语成绩:\n", i + 1);

scanf("%f", &stu[i].score[2]);

printf("请输入第%d 个学生的现代成绩:\n", i + 1);

scanf("%f", &stu[i].score[3]);

printf("请输入第%d 个学生的大物成绩:\n", i + 1);

scanf("%f", &stu[i].score[4]);

printf("请输入第%d 个学生的电路成绩:\n", i + 1);

scanf("%f", &stu[i].score[5]);

if (0 == flag) 

{

i++;

}

while (i < n + m);

}

n += m;

printf("学生信息录入完毕!!!\n");

system("pause");

}

void OrderStudent()

{

int i, j, k, * p, * q, s;

char temp[LEN + 1], ctemp;

float ftemp;

for (i = 0; i < n - 1; i++)

{

for (j = n - 1; j > i; j--)

if (strcmp(stu[j - 1].chNum, stu[j].chNum) > 0)

{

strcpy(temp, stu[j - 1].chNum);

strcpy(stu[j - 1].chNum, stu[j].chNum);

strcpy(stu[j].chNum, temp);

strcpy(temp, stu[j - 1].chName);

strcpy(stu[j - 1].chName, stu[j].chName);

strcpy(stu[j].chName, temp);

ctemp = stu[j - 1].chSex;

stu[j - 1].chSex = stu[j].chSex;

stu[j].chSex = ctemp;

p = &stu[j - 1].nAge;

q = &stu[j].nAge;

s = *q;

*q = *p;

*p = s;

for (k = 0; k < 6; k++)

{

ftemp = stu[j - 1].score[k];

stu[j - 1].score[k] = stu[j].score[k];

stu[j].score[k] = ftemp;

}

}

}

}

void SaveStudent() 

{

int i;

FILE* fp;

char filename[LEN + 1];

printf("请输入要保存的文件名:\n");

scanf("%s", filename);

fp = fopen(filename, "w");

for (i = 0; i < n; i++) {

fprintf(fp, "%s%s%d%c%.lf%.lf%.lf\n", stu[i].chNum, stu[i].chName, stu[i].nAge, stu[i].chSex,

stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].score[3], stu[i].score[4], stu[i].score[5]);

}

printf("保存成功!!!\n");

fclose(fp);

system("pause");

}

int ReadStudent() 

{

char filename[LEN + 1];

int i = 0;

int j = 0;

FILE* fp;

printf("请输入要读取学生信息的文件名:\n");

scanf("%s", filename);

if ((fp = fopen(filename, "r")) == NULL) 

return 0;

while (fscanf(fp, "%s %s %d %s %d %d %d %d %d %d ", &stu[j].chNum, &stu[j].chName, &stu[j].nAge, &stu[j].chSex, &stu[j].score[0], &stu[j].score[1], &stu[j].score[2], &stu[j].score[3], &stu[j].score[4], &stu[j].score[5]) == 10)

{

j++;

}

n = j;

return n;

}

void DisplayStudent()

{

int i;

printf("共有%d位学生的信息:\n", n);

if (0 != n)

{

printf("学生学号 \t学生姓名 \t年龄   \t性别   \tC语言\t高数\t英语\t线代\t大物\t电路\n");

printf("--------------------------------------------------------------------\n");

for (i = 0; i < n; i++)

{

printf("%s \t%s \t%d   \t%c   \t%.1f \t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n", stu[i].chNum, stu[i].chName, stu[i].nAge, stu[i].chSex, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].score[3], stu[i].score[4], stu[i].score[5]);

}

}

system("pause");

}

void SearchStudent() 

{

int i, item, flag;

char s1[21]; 

printf("------------------\n");

printf("-----1.按学号查询-----\n");

printf("-----2.按姓名查询-----\n");

printf("-----3.退出本菜单-----\n");

printf("------------------\n");

while (1)

{

printf("请选择子菜单编号:");

scanf("%d", &item);

flag = 0;

switch (item)

{

case 1:

printf("请输入要查询的学生的学号:\n");

scanf("%s", s1);

for (i = 0; i < n; i++)

if (strcmp(s1, stu[i].chNum) == 0)

{

flag = 1;

printf("学生学号\t学生姓名\t年龄\t性别\tC语言\t高数\t英语\t现代\t大物\t电路\n");

printf("--------------------------------------------------------------------\n");

printf("%s\t%s\t%d\t%6c\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n", stu[i].chNum, stu[i].chName, stu[i].nAge, stu[i].chSex, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].score[3], stu[i].score[4], stu[i].score[5]);

}

if (0 == flag)

printf("该学号不存在!\n"); 

break;

case 2:

printf("请输入要查询的学生的姓名:\n");

scanf("%s", s1);

for (i = 0; i < n; i++)

if (strcmp(stu[i].chName, s1) == 0)

{

flag = 1;

printf("学生学号\t学生姓名\t年龄\t性别\tC语言\t高数\t英语\t现代\t大物\t电路\n");

printf("--------------------------------------------------------------------\n");

printf("%s\t%s\t%d\t%c\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n", stu[i].chNum, stu[i].chName, stu[i].nAge, stu[i].chSex, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].score[3], stu[i].score[4], stu[i].score[5]);

}

if (0 == flag)

printf("该姓名不存在!\n"); 

break;

case 3:

return;

default:printf("请在1-3之间选择\n");

}

}

}

void ModifyStudent() 

{

int i, item, num = -1;

char sex1, s1[LEN + 1], s2[LEN + 1]; 

float score1;

printf("请输入要要修改的学生的学号:\n");

scanf("%s", s1);

for (i = 0; i < n; i++) {

if (strcmp(stu[i].chNum, s1) == 0)

{

num = i;

printf("------------------\n");

printf("1.修改姓名\n");

printf("2.修改年龄\n");

printf("3.修改性别\n");

printf("4.修改C语言成绩\n");

printf("5.修改高数成绩\n");

printf("6.修改英语成绩\n");

printf("7.修改现代成绩\n");

printf("8.修改大物成绩\n");

printf("9.修改电路成绩\n");

printf("10.退出本菜单\n");

printf("------------------\n");

while (1)

{

printf("请选择子菜单编号:");

scanf("%d", &item);

switch (item)

{

case 1:

printf("请输入新的姓名:\n");

scanf("%s", s2);

strcpy(stu[num].chName, s2);

break;

case 2:

printf("请输入新的年龄:\n");

scanf("%d", stu[num].nAge);

break;

case 3:

printf("请输入新的性别:\n");

scanf("%s", &sex1);

stu[i].chSex = sex1;

break;

case 4:

printf("请输入新的C语言成绩:\n");

scanf("%f", &score1);

stu[num].score[0] = score1;

break;

case 5:

printf("请输入新的高数成绩:\n");

scanf("%f", &score1);

stu[num].score[1] = score1;

break;

case 6:

printf("请输入新的英语成绩:\n");

scanf("%f", &score1);

stu[num].score[2] = score1;

break;

case 7:

printf("请输入新的现代成绩:\n");

scanf("%f", &score1);

stu[num].score[3] = score1;

break;

case 8:

printf("请输入新的大物成绩:\n");

scanf("%f", &score1);

stu[num].score[4] = score1;

break;

case 9:

printf("请输入新的电路成绩:\n");

scanf("%f", &score1);

stu[num].score[5] = score1;

break;

case 10: 

return;

default:printf("请在1-10之间选择\n");

}

}

printf("修改完毕!请及时保存!\n");

}

else 

{

printf("没有该学生学号!!!");

}

}

}

void DeleteStudent()

{

int i, j, flag = 0;

char s1[LEN + 1];

printf("请输入要删除学生的学号:\n");

scanf("%s", s1);

for (i = 0; i < n; i++) {

if (strcpy(stu[i].chNum, s1) == 0) 

{

flag = 1;

for (j = i; j < n - 1; j++) 

{

stu[j] = stu[j + 1];

}

}

}

if (0 == flag) 

{

printf("该学号不存在!!!\n");

}

if (1 == flag) 

{

printf("删除成功!!!");

n--;

}

system("pause");

}

这个程序报什么错了么,你把错误代码贴出来,我们方便帮你修改。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632