问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言 学生证管理系统

发布网友 发布时间:2023-05-17 16:39

我来回答

1个回答

热心网友 时间:2023-09-15 04:33

#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#define SIZE sizeof(student)
void anzhuang();
void jintiao();
void shanchu();
void cunru();
void gongneng();
void chakan();
void xiugai();
void shanchu();
void tuichu();
struct student
{
char name[10];
char sex[10];
char nation[10];
int birthday;
int num;
char zhuanye[10];
student * next;
};
int n;
//链表的删除
student* del(student * head,long num)
{
student * p1,* p2;
if(head==NULL)
{
printf("\nlist null!\n");
return (head);
}
p1=head;
while(num!=p1->num && p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(num==p1->num)
{
if(p1==head)
head=p1->next;
else
p2->next=p1->next;
printf("delete:%ld\n",num);
n=n-1;
}
else
printf("找不到该学生信息\n");
}
//链表的创建
student * creat(void)
{
int n;
student * head;
student * p1,* p2;
n=0;
p1=(student *)malloc(SIZE);
p2 = p1;
printf("请输入学生姓名 学生性别 学生名族 出生年月日 学号 专业\n");
scanf("%s,%s,%s,%ld,%ld,%s,",&p1->name,&p1->sex,&p1->birthday,&p1->num,&p1->zhuanye);
head=NULL;
while(p1->name!=NULL)
{
n=n+1;
if(n==1)head=p1;
else
p2->next=p1;
p2=p1;
p1=(student *)malloc(SIZE);
scanf("%s,%s,%s,%ld,%ld,%s,",&p1->name,&p1->sex,&p1->birthday,&p1->num,&p1->zhuanye);
}
p2->next=NULL;
return (head);
}
int main()
{
anzhuang();
gongneng();
return 0;
}
void anzhuang()
{
int i;
for(i=0;i<100;i++)
{
printf("\n\n\t\t\t ************************\n");
printf("\n\t\t\t 欢迎来到学生证管理系统\n");
printf("\n\t\t\t *******************\n");
jintiao();
printf("\n\t\t\t **************\n");
Sleep(50);
system("cls");
}
}
void jintiao()
{
static int i=0;
printf("\n\t\t\t\t 正在进入请稍等 %d%%\n",i);
i++;
}
void gongneng()
{
int i;
printf("\n请选择以下功能\n\n\n\n");
printf("\t1:存入学生证信息\n");
printf("\t2:查看学生证信息\n");
printf("\t3:修改学生证信息\n");
printf("\t4:删除学生证信息\n");
printf("\t5:退出\n");
scanf("%d",&i);
switch(i)
{
case 1:cunru();Sleep(10000);system("cls");gongneng();break;
case 4:shanchu();Sleep(1000);system("cls");gongneng();break;
case 5:tuichu();break;
default:printf("输入错误,请重新输入\n");system("cls");gongneng();
}
}
void cunru ()
{
student * pt;
printf("开始存入信息,存入姓名为NULL即退出\n");
pt=creat();
}
void shanchu()
{
student * pt;
int a;
printf("请输入该删除学生的学号\n");
scanf("%d",&a);
del(pt,a);
}
void tuichu()
{
printf("程序已退出\n");
}

能运行了,但是有几个问题:
1. 程序最大的问题是最后没有free掉链表,这会引起内存泄漏。
2. 在使用结构体时,只用student * ....就行了,不要再struct student.....,这样是不对的。
打字不易,如满意,望采纳。追问

有一个错误,怎么弄啊!弄好之后,怎么实现查询啊?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
畅享好还是荣耀好 怎么向老师请教问题?? ...和是40.15较大数的小数点向左移动一位就等于较小的数,这两_百度知... 两个数的和是40.15,较大数的小数点向左移动一位就等于较小的数这两... 两个数的和是40.15,较大的数的小数点像向左移动一位就等于较小的数... 两个数的和是40.15,较大数的小数点向左移动一位等于较小的数 ...和是40.15较大数的小数点向左移动一位就等于较小的数这两个数分别... 怎么用手机查询农行信用卡余额? 朝阳公园附近有孩子可以托管的地方吗? 华泰证券怎么添加第二张银行卡 C语言cunm[0].y*cunm[1].x是什么意思 请帮忙把按键精灵前台变后台 安阳宗村屠家庄拆迁吗 能发下.冰河世纪2.[中英双字.1024分辨率]的种子或下载链接么? 求精简VB语句 求精简VB语句,更改固定数值部分 汉字在国际影响力如何? 扶贫套餐移动有几个档次 冷柜上铭牌标示的冷冻能力是什么意思 毕业论文查重一般多少钱一篇? 拍短视频效果最好的OPPO手机是哪一款,拍短视频OPPO手机哪一款效果好,而且价格适中? 深圳一女子核酸阳性故意隐瞒行程被立案,为何此类事件屡禁不止? 女子阳性后跟婆婆诉苦:眼睫毛都痛,感染新冠后的发烧,到底有多可怕? 女子同事全阳了,仅她一人来上班,这算不算天选打工人呢? 北京一女子全副武装的上班,结果第二天确诊阳性,是哪一环节出了问题? iCTR在线调研社区兑换的问题,之前兑换过的,但是现在想更换一下兑换提取的账号,可以吗? 想把iCTR在线调研社区的金豆兑换出来,应该怎么操作啊? iCTR在线调研社区的兑换一般多久能到账? 跃进仪表盘显示edc亮了什么故障 国五跃进小福星紫油版行驶中EDc灯闪亮和故障灯亮是什么原因 恐怖黎明打多少血 恐怖黎明——详细评测 恐怖黎明开局怎么玩 老迈腾仪表mph是什么意思? 《恐怖黎明》隐藏任务攻略及BOSS打法 风扇手工制作方法 如何界定市场支配地位 买卖合同未约定利息 therapeutic equivalence是什么意思 “等效治疗量”怎么理解 非劣效性实验、等效性实验和优效性实验是什么意思? 什么是等效剂量 我情人叫我照顾好自己,他才放心这话是什么意思? 分手后还跟情人聊天,我要他好好保重身体,他说会的,然后要我保护好自己这是什么意思 男情人为什么总是叫我帮他,做这样做那样,时间长了就感觉好累,他怎么会对我产生依赖感呢? 情人为什么会经常叫我帮他照顾他家人 情人老是开玩笑的说叫我养他,这是怎么办 情人为什么要保护我,不让他老婆找到我? 情人说我现在跟不上他的节奏,说不跟我联系现是在保护我什么意思 李宁arc什么意思