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

跪求C语言大作业学生管理系统的程序

发布网友 发布时间:2022-05-26 02:55

我来回答

1个回答

热心网友 时间:2024-05-12 19:50

#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<stdlib.h>
#define NULL 0
#define LEN sizeof(struct student)
struct student
{
int num;
char name[10];
int score;
struct student *next;
};
int n;
struct student *creat()
{
struct student *head;
struct student *p1,*p2;
p1=p2=(struct student *)malloc(LEN);
printf("请输入数据:\n");
printf("-学号---姓名---成绩-\n");
scanf("%d%s%d",&p1->num,p1->name,&p1->score);
head=NULL;
n=0;
while(p1->num!=NULL)
{
n=n+1;
if(n==1) head=p1;
else p2->next=p1;
p2=p1;
p1=(struct student *)malloc(LEN);
scanf("%d%s%d",&p1->num,p1->name,&p1->score);
}
p2->next=NULL;
return(head);
}
void print(struct student *head)
{
struct student *p;
p=head;
if(head!=NULL)
{
printf("-学号---姓名---成绩-\n");
while(p!=NULL)
{
printf("%d %s %d\n",p->num,p->name,p->score);
p=p->next;
}
}
else printf("没有数据 !\n");
}
struct student *del(int num,struct student *head)
{
int a=0;
struct student *p1,*p2;
do
{
p1=head;
if(head==NULL)
{
printf("没有数据 !\n");
goto end;
}
while(p1->num!=num&&p1->next!=NULL)
{
p2=p1;p1=p1->next;
}
if(p1->num==num)
{
if(p1==head) head=p1->next;
else p2->next=p1->next;
printf("删除记录学号为N0.%d\n",num);
n=n-1;
a++;
}
}while(p1->next!=NULL);
if(a==0)
printf("学号未找到 !\n");
end:
return(head);
}
struct student *add(int num,char name[],int score,struct student *head)
{
struct student *p0,*p1,*p2;
p0=(struct student *)malloc(LEN);
p0->num=num,strcpy(p0->name,name),p0->score=score;
p1=head;
if(num==0)
return(head);
if(head==NULL)
{
head=p0;
p0->next=NULL;
}
while(p0->num>p1->num&&p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(p0->num<=p1->num)
{
if(p1==head) head=p0;
else p2->next=p0;
p0->next=p1;
}
else
{
p1->next=p0;
p0->next=NULL;
}
printf("增加记录学号为:%d\n",num);
n=n+1;
return(head);
}
void num(struct student *head)
{
int num,a=0;
struct student *p;
printf("------请输入 \"0\" 结束输入--------\n");
do
{
p=head;
printf("请输入要查找的学号:");
scanf("%d",&num);
if(num!=0)
printf("-学号---姓名---成绩-\n");
while(p!=NULL)
{
if(p->num==num)
{
printf("%d %s %d\n",p->num,p->name,p->score);
a++;
}
p=p->next;
}
if(a==0&num!=0)
printf("学号没找到!\n");
a=0;
}while(num!=0);
system("cls");
}
void name(struct student *head)
{
char name[10],a=0;
struct student *p;
printf("------请输入 \"0\" 结束输入------\n");
do
{
p=head;
printf("请输入要查找的名字:");
scanf("%s",name);
if(name[0]!='0')
printf("-学号---姓名---成绩-\n");
while(p!=NULL)
{
if(strcmp(p->name,name)==0)
{
printf("%d %s %d\n",p->num,p->name,p->score);
a++;
}
p=p->next;
}
if(a==0&&name[0]!='0')
printf("名字未找到 !\n");
a=0;
}while(name[0]!='0');
system("cls");
}
void search(struct student *head)
{
int a;
struct student *p;
p=head;
do
{
printf("1.按学号查找\n2.按名字查找\n3.退出\n");
scanf("%d",&a);
system("cls");
switch(a)
{
case 1:num(p);break;
case 2:name(p);break;
}
}while(a!=3);
}
struct student *sort(struct student *head)
{
struct student *p1,*p2;
int i,j;
int num0,score0;
char string[10];
for(i=0;i<n-1;i++)
{
p1=head;
for(j=n-1;j>0;j--)
while(p1->next!=NULL)
{
p2=p1;p1=p1->next;
if(p2->score>p1->score)
{
num0=p1->num;
p1->num=p2->num;
p2->num=num0;
strcpy(string,p1->name);
strcpy(p1->name,p2->name);
strcpy(p2->name,string);
score0=p1->score;
p1->score=p2->score;
p2->score=score0;
}
}
}
return(head);
}
void main()
{
struct student *head=NULL;
int num,score,a;
char name[10];
do
{
printf("1.创建记录\n2.删除记录\n3.增加记录\n4.查找记录\n5按成绩排序\n6.显示当前记录\n7.退出\n");
scanf("%d",&a);
system("cls");
switch(a)
{
case 1:printf("------请输入 \"0 0 0\" 结束输入------\n");head=creat();print(head);getch();system("cls");break;
case 2:printf("------请输入 \"0\" 结束输入--------\n");do{printf("请输入要删除记录的学号:");scanf("%d",&num);head=del(num,head);print(head);}while(num!=0);system("cls");break;
case 3:printf("------请输入 \"0 0 0\" 结束输入------\n");do{printf("请输入要增加的记录数据:\n");printf("-学号---姓名---成绩-\n");scanf("%d%s%d",&num,name,&score);head=add(num,name,score,head);print(head);}while(num!=0);system("cls");break;
case 4:search(head);break;
case 5:head=sort(head);print(head);getch();system("cls");break;
case 6:print(head);getch();system("cls");break;
}
}while(a!=7);
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Surfer Babe歌词 剁椒蒸?的做法 冲销支出是什么意思6 清蒸洞庭鱼的家常做法是什么? 肌肤保养做到位 秋天防晒很重要 长秋痱子怎么办 痱子和湿疹的图片对比 佛山市顺德区的邮政编码是多少 C语言文本文档写上代码后,要怎么样生成程序呀? 用记事本编代码怎么运行啊 求助!c语言大作业实现一个学生信息管理系统 C语言大作业―学生信息管理系统 假设学生人数为10,实现学生信息的管 ...型号是Y80M-4L-DM,想问下这种泵用什么真空泵油比较合适?_百度... 四年级上册的家长寄语 68号机械油 参数指标 幽门螺杆菌症状? 幽门螺杆菌症状有哪些? 幽门螺杆菌感染有哪些症状?如何治疗? pc系列计算机是大型计算机吗 感染了幽门螺杆菌,身体会有什么症状? 天河一号巨型计算机为何在国防科技大学诞生? 感染了幽门螺杆菌,身体会有哪些症状呢? 真实的街头错别字(图) 喜欢上一个出租车司机,怎么找到这个司机呢,出租车上那个摄像头是干什么... 中国自行研制的巨型机称为什么系列? 小腿酸痛是怎么回事啊 经济基础决定上层建筑是什么意思?什么是经济基础,什么是上层建筑 开设电子信息科学与技术专业的大学有哪些可以选择 那些大学有电子信息工程专业 哪些一本大学的电子信息专业较好? ...做老师布置的SQL大作业,我做的是学生信息管理系统。在创立学生选课表... 2X旋片式真空泵的2X旋片式真空泵技术参数 1. 题目:学生信息管理系统 2. 程序要求: (1)学生信息录入功能 &#xF06C; 用户... 关于c语言大作业学生管理系统 求助,c++大作业,学校信息管理系统 怎么调蜂蜜面膜? 跪求C++ 程序设计大作业 学生信息管理系统 冬季如何健康补水? 奥运或者环保英语演讲稿(3分钟之内) 求c++学生信息管理系统大作业要有设计文档 求一份MFC单对话框的学生信息管理系统的大作业,最好带报告 ...最近要做大作业,关于学生信息管理的,要链接数据库SQL的那种但是是在... 2496读的时候读作二千四百九十六,为什么不能读作二千四百九十六个?_百度... 2496 在在爱情上是什么意思 收到社保12333发来的短信通知,请问这个短信通知是什么意思?我没看懂 ...软件最主流最专业且功能最强大?Samplitude2496是否在录音方面最专... 我知道 QQ上的星星,月亮,太阳,代表等级,但还有什么意思吗 何其不易是什么意思 李梓浩名字的含义是什么? 梓宇这名字有什么寓意?