用功能8录入学生信息后,使用功能6打印不出来链表里面的内容,求解
运行结果及详细报错内容
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void help();
void addstu(); //录入学生信息
void printfstu(); //打印学生信息
void yemian();
typedef struct stu
{
int ID;// 学号
char name[10]; //姓名
char day[15]; //日期
char ma[5]; //健康码
char fangshi[10]; //返校方式
char chaci[20]; //车次
char leixing[10]; //风险类型
char tujing[20]; // 途经城市
char hesuanshijian[10]; // 核酸时间 及结果
struct stu* next;
}student;
//节点
typedef struct Node
{
student stu; //学生
struct Node* pNext;
}Node;
Node *g_pHead = NULL; //头结点
//-----------------------------主函数----------------------
int main()
{
int choice,t;
while(1)
{
yemian();
scanf("%d",&choice);
switch (choice)
{
case 0:
help();
break;//帮助信息
case 1:
// head = readInfo(head);
; break; //刷新人员信息
case 2:
printf("请输入身份证号:\n");
// tmp = seacher(head, id);
// if (tmp) printSingle(tmp);
// else printf("该人员信息不存在!\n");
break;//查询人员信息
case 3:
printf("请输入要更改人员的身份证号:\n");
// tmp = seacher(head, id);
// if (tmp) change(tmp);
// else printf("该人员信息不存在!\n");
; break;//修改人员信息
case 4:
// head=addPeople(head);
; break;//增加人员信息
case 5:
printf("请输入要删除的编号:\n");
// scanf("%d", &t);
// head=delByNum(head, t);
; break;//按编号删除信息
case 6:
printfstu();
; break;//显示当前信息
case 7:
// save(head);
; break;//保存当前人员信息
case 8:
addstu();
break;
case 9:
// saveAd(Admihead);
printf("成功退出!欢迎下次使用!\n");
return 0;; break; //退出系统
default:printf("请输入正确的序号(0~8)!\n");
}
system("pause");
system("cls");
}
return 0;
}
//-----------------------------函数区---------------------
void yemian()
{
printf(" *******************************************************\n\n");
printf(" * 疫情防控管理系统 *\n");
printf(" *******************************************************\n\n");
printf("***********************系统功能菜单***********************\n");
printf("**********************请选择功能编号************************\n");
printf(" ------------------------- ------------------------\n");
printf(" *****************************************************\n");
printf(" * 0.系统帮助及说明 * * 1.刷新人员信息 *\n");
printf(" *****************************************************\n");
printf(" * 2.查询人员信息 * * 3.修改人员信息 *\n");
printf(" *****************************************************\n");
printf(" * 4.增加人员信息 * * 5.按编号删除信息 *\n");
printf(" *****************************************************\n");
printf(" * 6.打印学生信息 * * 7.保存当前人员信息 *\n");
printf(" *****************************************************\n");
printf(" * 8.疫情问卷调查填报 * * 9.退出系统 \n");
printf(" *****************************************************\n");
printf(" ------------------------- ------------------------\n");
}
void help()
{
printf("-------------------帮助信息-------------------\n\n");
printf("1.输入序号1~9、并回车,选择相应功能。\n");
printf("2.身份证默认18位。\n");
printf("4.退出程序之前要保存当前信息。\n");
printf("5.由于格式问题,在文件中直接更改的话可能导致部分数据乱码。\n");
printf("6.功能2中的查询信息可以根据姓名、城市、健康码类别(红码/黄码)核酸阳性查询。\n");
}
void addstu ()
{
//创建新的节点
Node *pNewNode=(Node*)malloc(sizeof(Node));
pNewNode->pNext=NULL;
//头插法
if(g_pHead==NULL)
{
g_pHead = pNewNode;
}
else
{
pNewNode->pNext=g_pHead;
g_pHead = pNewNode;
}
printf("请输入学号\n");
scanf("%d",&(pNewNode->stu.ID));
printf("请输入姓名\n");
scanf("%d",pNewNode->stu.name);
printf("请输入到校日期,例如:yyyy-mm-dd\n");
scanf("%d",pNewNode->stu.day);
printf("请选择健康码类型,红码填A,黄码填B,绿码填C\n");
scanf("%c",pNewNode->stu.ma);
printf("请选择返校方式(单选题)\nA火车/动车/高铁\nB飞机\nC自驾\nD其他\n");
scanf("%c",pNewNode->stu.fangshi);
printf("请输入乘坐车次\n");
scanf("%c",pNewNode->stu.chaci);
printf("请选择风险类型(单选题)\nA无\nB途径高风险地区\nC居住在高风险地区\nD密接高危人群\n");
scanf("%c",pNewNode->stu.leixing);
printf("请输入途经城市(包括家和学校所在城市,城市间用空格分隔)\n");
scanf("%c",pNewNode->stu.tujing);
printf("请输入最近一次做核酸时间,格式为:yyyy-nn-dd\n请选择最近一次核酸结果,—表示阴性,+表示阳性\n");
scanf("%c",pNewNode->stu.hesuanshijian);
printf("学生信息录入完成\n");
}
void printfstu ()
{
printf(" ******************************************************************\n\n");
printf(" * \t 疫情防控管理系统 \t *\n");
printf("*\t学号\t姓名\t到校日期\t健康码\t返校方式\t车次\t风险类型\t途经城市\t核算时间\n");
//遍历链表
Node* p=g_pHead;
while(p!=NULL)
{
printf("\t%d\t%s\t%s\t*%s\t*%s\t*%s\t*%s\t*%s\t*%s\t*%s*\n",p->stu.ID,p->stu.name,p->stu.day,p->stu.ma,p->stu.fangshi,
p->stu.chaci,p->stu.leixing,p->stu.tujing,p->stu.hesuanshijian);
p=p->pNext;
}
}