小弟我刚学C语言不久 想试着写个学生成绩管理系统有有关问题求教
我刚学C语言不久 想试着写个学生成绩管理系统有问题求教。
RT 先上代码,写了一半,编译+连接都成,但运行就出问题了,求解答。
///////////////////////////////////////////////////
//头文件 & 宏定义//
///////////////////////////////////////////////////
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <windows.h>
#define N 32 // 最大学生数
#define LEN sizeof(STU)
////////////////////////////////////////////////
//结构体//
////////////////////////////////////////////////
typedef struct student
{
int StuId; // 学号
char StuName[10]; // 姓名
char StuSex[4]; // 性别
float StuScore[3]; // 三门课(高数、英语、计算机)的成绩
float ScoreTotal; // 每个学生的总成绩
float ScoreAve; // 每个学生的平均成绩
struct student *next; // 结构体指针
}STU;
////////////////////////////////////////////////////////////
////////////////////子函数声明//////////////////////////////
////////////////////////////////////////////////////////////
STU *LinkListInit(); // 链表初始化
void Menu(); // 主界面函数
STU *StuInput(); // 信息录入函数
void StuOutput(STU *); // 信息输出函数
void StuSearch(STU *); // 信息查询函数
void StuSave(STU *); // 信息保存函数
STU *StuLoad(); // 文件数据读取函数
///////////////////////////////////////////////////////////
// 主函数模块 //
///////////////////////////////////////////////////////////
int main()
{
STU *HEAD;
int i; char ch[10]; static count = 0;
HEAD = LinkListInit(); // 表头设置为空
for (i = 0; i < 35; i++)
printf("%c", 2); printf("\n\n");
printf("*****欢迎登录系学生成绩管理系统***\n\n");
for (i = 0; i < 35; i++)
printf("%c", 2); printf("\n\n");
printf("请输入密码:"); // 密码验证
gets(ch);
if (strcmp(ch, "1") == 0)
Menu(HEAD); // 进入主界面
else
{
count++; // 登录次数统计
if (count >= 4) exit(0); // 退出程序
main(); // 返回主函数
}
return 0;
}
////////////////// 链表初始化模块 ////////////////////
STU *LinkListInit()
{
return NULL; // 返回空指针
}
////////////////////// 主界面模块 ////////////////////
void Menu(STU *HEAD)
{
int i;
system("cls");
printf("**********************\n");
printf(" ***欢迎进入主菜单***\n");
printf("**********************\n\n\n");
printf("本系统有如下功能-->\n\n\n0.退出系统\n");
printf("1.信息录入\n2.信息显示\n3.信息查询\n");
printf("4.信息修改\n5.信息删除\n6.信息添加\n");
printf("7.信息排序\n8.信息保存\n9.数据装载\n\n\n");
printf("请选择:");
scanf("%d", &i);
if (i < 0 || i > 9)
{
printf("请输入0--9中的一个数:");
scanf("%d", &i);
}
switch (i)
{
case 0: exit(0); // 退出系统
case 1: HEAD = StuInput(); break;
case 2: StuOutput(HEAD); break;
case 3: StuSearch(HEAD); break;
case 4: break;
RT 先上代码,写了一半,编译+连接都成,但运行就出问题了,求解答。
///////////////////////////////////////////////////
//头文件 & 宏定义//
///////////////////////////////////////////////////
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <windows.h>
#define N 32 // 最大学生数
#define LEN sizeof(STU)
////////////////////////////////////////////////
//结构体//
////////////////////////////////////////////////
typedef struct student
{
int StuId; // 学号
char StuName[10]; // 姓名
char StuSex[4]; // 性别
float StuScore[3]; // 三门课(高数、英语、计算机)的成绩
float ScoreTotal; // 每个学生的总成绩
float ScoreAve; // 每个学生的平均成绩
struct student *next; // 结构体指针
}STU;
////////////////////////////////////////////////////////////
////////////////////子函数声明//////////////////////////////
////////////////////////////////////////////////////////////
STU *LinkListInit(); // 链表初始化
void Menu(); // 主界面函数
STU *StuInput(); // 信息录入函数
void StuOutput(STU *); // 信息输出函数
void StuSearch(STU *); // 信息查询函数
void StuSave(STU *); // 信息保存函数
STU *StuLoad(); // 文件数据读取函数
///////////////////////////////////////////////////////////
// 主函数模块 //
///////////////////////////////////////////////////////////
int main()
{
STU *HEAD;
int i; char ch[10]; static count = 0;
HEAD = LinkListInit(); // 表头设置为空
for (i = 0; i < 35; i++)
printf("%c", 2); printf("\n\n");
printf("*****欢迎登录系学生成绩管理系统***\n\n");
for (i = 0; i < 35; i++)
printf("%c", 2); printf("\n\n");
printf("请输入密码:"); // 密码验证
gets(ch);
if (strcmp(ch, "1") == 0)
Menu(HEAD); // 进入主界面
else
{
count++; // 登录次数统计
if (count >= 4) exit(0); // 退出程序
main(); // 返回主函数
}
return 0;
}
////////////////// 链表初始化模块 ////////////////////
STU *LinkListInit()
{
return NULL; // 返回空指针
}
////////////////////// 主界面模块 ////////////////////
void Menu(STU *HEAD)
{
int i;
system("cls");
printf("**********************\n");
printf(" ***欢迎进入主菜单***\n");
printf("**********************\n\n\n");
printf("本系统有如下功能-->\n\n\n0.退出系统\n");
printf("1.信息录入\n2.信息显示\n3.信息查询\n");
printf("4.信息修改\n5.信息删除\n6.信息添加\n");
printf("7.信息排序\n8.信息保存\n9.数据装载\n\n\n");
printf("请选择:");
scanf("%d", &i);
if (i < 0 || i > 9)
{
printf("请输入0--9中的一个数:");
scanf("%d", &i);
}
switch (i)
{
case 0: exit(0); // 退出系统
case 1: HEAD = StuInput(); break;
case 2: StuOutput(HEAD); break;
case 3: StuSearch(HEAD); break;
case 4: break;