新手上路、求助、编写出错了
/*所要用到的头文件*/#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
/*定义结构体*/
struct student /*定义结构体*/
{
long int no; /*学号*/
char name[10]; /*名字*/
char sex[3]; /*性别*/
char major[20]; /*专业*/
int math; /*数学成绩*/
int chinese; /*语文成绩*/
int english; /*英语成绩*/
int score; /*专业课成绩*/
int total; /*总分=数学+语文+英语+专业课*/
};
/*自定义函数*/
void welcome();
void menu();
void input(struct student *stu,int length);
void print(struct student *stu,int *length);
void sore(struct student *stu,int length);
void insert(struct student *stu,int *length);
void del(struct student *stu,int length);
void find(struct student *stu,int length);
void modify(struct student *stu,int length);
/*主函数*/
int main(void)
{
struct student *stu; /*定义结构体指针*/
int length,choice; /*定义要储存的学生人数及选项*/
printf("请输入需要存入的学生人数:");
scanf("%d",&length);
stu=(struct student *)malloc((sizeof(struct student) *length));
/*分配内存空间*/
welcome();
while(1) /*无限循环*/
{
system("cls"); /*清除屏幕*/
menu();
printf("请选择:");
scanf("%d",&choice);
switch(choice)
{
case 1: input(stu,length); break; /*输入学生数据*/
case 2: print(stu,&length); break; /*输出学生数据*/
case 3: sore(stu,length); break;
case 4: insert(stu,&length); break;
case 5: del(stu,length); break;
case 6: find(stu,length); break;
case 7: modify(stu,length); break;
case 8:
case 9:
default: break;
getch();
}
}
return 0;
}
/*欢迎进入模块*/
void welcome()
{
printf("\n\n\n\n");
printf("\t\t**************************************************\n");
printf("\t\t☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆\n");
printf("\t\t★☆ ☆★\n");
printf("\t\t★☆ 欢迎使用学生管理系统 ☆★\n");
printf("\t\t★☆ ☆★\n");
printf("\t\t☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆\n");
printf("\t\t**************************************************\n");
getch();
}
/*菜单函数模块*/
void menu()
{
printf("\n\n\n\n");
printf("\t\t**************************************************\n");
printf("\t\t☆☆☆☆☆☆☆☆☆☆☆ 菜单 ☆☆☆☆☆☆☆☆☆☆☆\n");
printf("\t\t☆----------------------------------------------☆\n");
printf("\t\t☆------------【1】输入学生资料-----------------☆\n");
printf("\t\t☆------------【2】输出学生资料-----------------☆\n");
printf("\t\t☆------------【3】按学生成绩进行排列-----------☆\n");
printf("\t\t☆------------【4】添加学生资料-----------------☆\n");
printf("\t\t☆------------【5】按姓名查找,删除该学生资料---☆\n");
printf("\t\t☆------------【6】查找并显示学生资料-----------☆\n");
printf("\t\t☆------------【7】按姓名查找,修改该学生资料---☆\n");
printf("\t\t☆------------【8】从文件中读入数据-------------☆\n");
printf("\t\t☆------------【9】储存并退出系统---------------☆\n");
printf("\t\t☆----------------------------------------------☆\n");
printf("\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
printf("\t\t**************************************************\n");
}
/*输入学生资料模块*/
void input(struct student *stu,int length)
{
int i;
for(i=0;i<length;i++)
{
printf("请输入第%d个学生的成绩资料:",i+1);
printf("\n==请输入学号:");
scanf("%ld",&stu[i].no); /*学号为长整型*/
printf("==请输入姓名:");
scanf("%s",&stu[i].name); /*姓名为字符型,长度为10*/
printf("==请输入性别:");
scanf("%s",&stu[i].sex); /*性别为字符型,长度为3*/
printf("==请输入专业:");
scanf("%s",&stu[i].major); /*专业为字符型,长度为20*/
printf("==请输入数学成绩:");
scanf("%d",&stu[i].math); /*数学成绩*/
printf("==请输入语文成绩:");
scanf("%d",&stu[i].chinese); /*语文成绩*/
printf("==请输入英语成绩:");
scanf("%d",&stu[i].english); /*英语成绩*/
printf("==请输入专业成绩:");
scanf("%d",&stu[i].score); /*专业成绩*/
stu[i].total=stu[i].math+stu[i].chinese+stu[i].english+stu[i].score;
/*计算该学生成绩总分*/
}
printf("\n");
return;
}
/*输出学生资料模块*/
void print(struct student *stu,int *length)
{
int i;
printf("\n\t================================学生信息================================\n");
printf("\t************************************************************************\n");
printf("\t| 学号 | 姓名 | 性别 | 专业 | 数学 | 语文 | 英语 | 专业课 | 总分 |\n");
printf("\t|--------|--------|------|--------|------|------|------|--------|------|\n");
for(i=0;i<*length;i++)
{
printf("\t|%-8ld|%-8s|%-6s|%-8s",stu[i].no,stu[i].name,stu[i].sex,stu[i].major);
printf("|%-6d|%-6d|%-6d|%-8d|%-6d|\n",stu[i].math,stu[i].chinese,stu[i].english,stu[i].score,stu[i].total);
printf("\t|--------|--------|------|--------|------|------|------|--------|------|\n");
}
printf("\t************************************************************************\n");
getch();
return;
}
/*按成绩排序模块*/
void sore(struct student *stu,int length)
{
int i,j;
struct student temp; /*交换数据的中间变量*/
for(i=0;i<length;i++)
{
for(j=0;j<length-1;j++)
if(stu[j].total<stu[j+1].total)
{
temp.no=stu[j].no;
strcpy(temp.name,stu[j].name);
strcpy(temp.sex,stu[j].sex);
strcpy(temp.major,stu[j].major);
temp.math=stu[j].math;
temp.chinese=stu[j].chinese;
temp.english=stu[j].english;
temp.score=stu[j].score;
temp.total=stu[j].total;
stu[j].no=stu[j+1].no;
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j].sex,stu[j+1].sex);
strcpy(stu[j].major,stu[j+1].major);
stu[j].math=stu[j+1].math;
stu[j].chinese=stu[j+1].chinese;
stu[j].english=stu[j+1].english;
stu[j].score=stu[j+1].score;
stu[j].total=stu[j+1].total;
stu[j+1].no=temp.no;
strcpy(stu[j+1].name,temp.name);
strcpy(stu[j+1].sex,temp.sex);
strcpy(stu[j+1].major,temp.major);
stu[j+1].math=temp.math;
stu[j+1].chinese=temp.chinese;
stu[j+1].english=temp.english;
stu[j+1].score=temp.score;
stu[j+1].total=temp.total;
} /*交换排序*/
}
printf("排序完成并输出!");
print(stu, &length);
return;
}
/*添加学生资料模块*/
void insert(struct student *stu,int *length)
{
int i,num; /*添加的个数*/
printf("请输入您要添加几个学生信息:");
scanf("%d",&num);
stu=(struct student *)malloc((sizeof(struct student) * (*length+num)));
for(i=*length;i<*length+num;i++)
{
printf("请输入第%d个学生信息:",i+1);
printf("==请输入学号:");
scanf("%ld",&stu[i].no); /*学号为长整型*/
printf("==请输入姓名:");
scanf("%s",&stu[i].name); /*姓名为字符型,长度为10*/
printf("==请输入性别:");
scanf("%s",&stu[i].sex); /*性别为字符型,长度为3*/
printf("==请输入专业:");
scanf("%s",&stu[i].major); /*专业为字符型,长度为20*/
printf("==请输入数学成绩:");
scanf("%d",&stu[i].math); /*数学成绩*/
printf("==请输入语文成绩:");
scanf("%d",&stu[i].chinese); /*语文成绩*/
printf("==请输入英语成绩:");
scanf("%d",&stu[i].english); /*英语成绩*/
printf("==请输入专业成绩:");
scanf("%d",&stu[i].score); /*专业成绩*/
stu[i].total=stu[i].math+stu[i].chinese+stu[i].english+stu[i].score;
}
print(stu,&i);
}
/*按姓名查找,删除*/
void del(struct student *stu,int length)
{
long int num;
int i,j;
printf("请输入学号:");
scanf("%ld",&num);
for(i=0;i<length;i++)
{
if(num==stu[i].no)
{
for(j=i+1;j<length;j++)
{
stu[j-1].no=stu[j].no;
strcpy(stu[j-1].name,stu[j].name);
strcpy(stu[j-1].sex,stu[j].sex);
strcpy(stu[j-1].major,stu[j].major);
stu[j-1].math=stu[j].math;
stu[j-1].chinese=stu[j].chinese;
stu[j-1].english=stu[j].english;
stu[j-1].score=stu[j].score;
stu[j-1].total=stu[j].total;
}
break;
}
}
length--;
}
/*查找并显示模块*/
void find(struct student *stu,int length)
{
long int num;
int i;
printf("请输入您要查找的学号:");
scanf("%ld",&num);
for(i=0;i<length;i++)
{
if(num==stu[i].no)
{
printf("\n\t================================学生信息================================\n");
printf("\t************************************************************************\n");
printf("\t| 学号 | 姓名 | 性别 | 专业 | 数学 | 语文 | 英语 | 专业课 | 总分 |\n");
printf("\t|--------|--------|------|--------|------|------|------|--------|------|\n");
printf("\t|%-8ld|%-8s|%-6s|%-8s",stu[i].no,stu[i].name,stu[i].sex,stu[i].major);
printf("|%-6d|%-6d|%-6d|%-8d|%-6d|\n",stu[i].math,stu[i].chinese,stu[i].english,stu[i].score,stu[i].total);
printf("\t************************************************************************\n");
}
}
getch();
return;
}
/*修改学生信息模块*/
void modify(struct student *stu,int length)
{
char name[10];
char ch;
int i;
printf("请您输入要修改的学生的姓名:");
scanf("%s",name);
for(i=0;i<length;i++);
{
if(strcmp(name,stu[i].name)==0)
{
printf("\n\t================================学生信息================================\n");
printf("\t************************************************************************\n");
printf("\t| 学号 | 姓名 | 性别 | 专业 | 数学 | 语文 | 英语 | 专业课 | 总分 |\n");
printf("\t|--------|--------|------|--------|------|------|------|--------|------|\n");
printf("\t|%-8ld|%-8s|%-6s|%-8s",stu[i].no,stu[i].name,stu[i].sex,stu[i].major);
printf("|%-6d|%-6d|%-6d|%-8d|%-6d|\n",stu[i].math,stu[i].chinese,stu[i].english,stu[i].score,stu[i].total);
printf("\t************************************************************************\n");
printf("您确定要修改该学生信息(y/n)");
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
{
printf("\n==请输入学号:");
scanf("%ld",&stu[i].no); /*学号为长整型*/
printf("==请输入姓名:");
scanf("%s",&stu[i].name); /*姓名为字符型,长度为10*/
printf("==请输入性别:");
scanf("%s",&stu[i].sex); /*性别为字符型,长度为3*/
printf("==请输入专业:");
scanf("%s",&stu[i].major); /*专业为字符型,长度为20*/
printf("==请输入数学成绩:");
scanf("%d",&stu[i].math); /*数学成绩*/
printf("==请输入语文成绩:");
scanf("%d",&stu[i].chinese); /*语文成绩*/
printf("==请输入英语成绩:");
scanf("%d",&stu[i].english); /*英语成绩*/
printf("==请输入专业成绩:");
scanf("%d",&stu[i].score); /*专业成绩*/
stu[i].total=stu[i].math+stu[i].chinese+stu[i].english+stu[i].score;
/*计算该学生成绩总分*/
}
}
}
}
还没有写完、添加学生资料模块、修改学生信息模块和删除该学生资料不知道怎么弄了
求大神帮忙一下,指点一下,
非常感谢