good
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void help();
void stu(); //录入学生信息
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;
}
}
0 Answer
good
thanks for elder brother,
this is directly to find the ChatGPT answered
This answer quotes ChatGPT
There are some obvious problems in your code that may cause the data in the linked list to not be printed correctly:
In the stu function, you should use the %s format controller instead of %d when you input a string using scanf.
In the addstu function, when you enter a string using scanf, you should precede the string with a space to eliminate the preceding newline character.
In the addstu function, when you enter a character using scanf, you should precede the character with a space to eliminate the preceding line break.
In the printfstu function, when you print the date and health code, you should put it in a brace to avoid formatting string errors.
Here are the addstu and printfstu functions that have been modified:
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(" %s", pNewNode->stu.name);
printf("请输入到校日期,例如:yyyy-mm-dd\n");
scanf(" %s", pNewNode->stu.day);
printf("请选择健康码类型,红码填A,黄码填B,绿码填C\n");
scanf(" %c", &(pNewNode->stu.ma));
printf("请选择返校方式(单选题)\nA火车/动车/高铁\nB飞机\nC自驾\nD其他\n");
scanf(" %s", pNewNode->stu.fangshi);
printf("请输入乘坐车次\n");
scanf(" %s", pNewNode->stu.chaci);
printf("请选择风险类型(单选题)\nA无\nB途径高风险地区\nC居住在高风险地区\nD密接高危人群\n");
scanf(" %s", pNewNode->stu.leixing);
printf("请输入途经城市(包括家和学校所在城市,城市间用空格分隔)\n");
scanf(" %s", pNewNode->stu.tujing);
printf("请输入最近一次做核酸时间,格式为:yyyy-nn-dd\n请选择最近一次核酸结果,-表示阴性,+表示阳性\n");
scanf(" %s", pNewNode->stu.hesuanshijian);
printf("学生信息录入完成\n");
}
void printfstu()
{
printf(" ******************************************************************\n\n");
printf(" * \t 疫情防控管理系统 \t *\n");
printf("*\t学号\t姓名\t到校日期\t健康
这家伙很懒,什么都没留下...