写的学生成绩管理系统,还没写完,只写个1个功能两个函数,运行有异常,返回值为3221225477
代码如下
struct Student {
char num[10];//学号
char name[15];//姓名
char major[10];//专业computer,softwear,network
int classNo;//班级
int score[3];//3门课的成绩
int sum;//3门课的总成绩
struct Student *next;//指针 88u
};
int n,a;
struct Student * input();
void save(struct Student
```c
struct Student * input()
{
n=0;
struct Student *head;
struct Student *p1,*p2;
head=(struct Student *)malloc(len);
printf("请输入学生人数:");
scanf("%d",&a);
printf("请录入这%d名学生的信息:\n",a);
while(n<a)
{
p1=(struct Student*)malloc(sizeof(len));
scanf("%s-%s-%s-%d-%d-%d-%d",&p1->num,&p1->name,&p1->major,&p1->classNo,&p1->score[0],&p1->score[1],&p1->score[2]);
p1->sum=0;
p1->sum=p1->score[0]+p1->score[1]+p1->score[2];
n++;
if(n==1)
{
head=p1->next;
}
else
{
p2->next=p1;
p2=p1;
}
}
p2->next=NULL;
return(head);
}
void save(struct Student *head)
{
struct Student *p1;
char s[15];
p1=head->next;
FILE *fp;
printf("亲输入要建立的文件名:\n");
scanf("%s",&s);
if((fp=fopen("s.txt","wb"))==NULL)
{
printf("打开文件失败");
exit(0);
}
while(p1!=NULL)
{
fwrite(p1,len,1,fp);
p1=p1->next;
}
}
```c
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
#define len sizeof(struct Student)
#include"声明.h"
#include"自定义函数.h"
int main(void)
{
char s[15];
while(1)
{
printf("请输入功能编号完成相应功能\n");
printf("1.输入学生信息并保存\n");
printf("2.从文件中读取学生信息,并建立链表\n");
printf("3.按学号删除学生信息\n");
printf("4.按学号插入学生信息\n");
printf("5.显示当前文件信息\n");
printf("6.查找总成绩最高的学生\n");
printf("7,寻找指定学号或姓名的学生并修改该学生信息 \n");
printf("8.查找某个专业、某门课程的成绩小于某个分数的学生\n");
printf("9.删除某个班级、某门课程的成绩小于某个分数的学生\n");
printf("10.按照姓名排序\n");
printf("11.保存当前信息\n");
printf("其他,推出系统\n");
int x;
struct Student *h;
printf("亲输入编号:");
scanf("%d",&x);
switch(x)
{
case(1):h=input();save(h);break;
default: break;
}
}
return 0;
}
运行结果