📄 新建 文本文档 (4).txt
字号:
#include <stdio.h>
#include <string.h>
#include <malloc.h>
struct student
{
int num;
char name[20];
int gaoshu;
int yingyu;
int wuli;
int chengxu;
int total;
struct student *next;
}stu[30];
struct student *head;
int i=1;
void main() /*主菜单*/
{
void add();
void del();
void create();
void update_num();
void chaxun();
int n;
while(1)
{
printf("欢迎使用学生成绩管理系统\n\n\n");
printf("***************************\n");
printf("操作选单\n\n");
printf("请用数字键选择操作\n\n");
printf("1 成绩录入\n\n");
printf("2 查询\n\n");
printf("3 删除学生资料\n\n");
printf("4 增加学生资料\n\n");
printf("5 修改学生资料\n\n");
printf("0 退出\n\n");
printf("***************************\n");
scanf("%d",&n);
switch(n)
{
case 1:create();break;
case 2:chaxun();break;
case 3:del();break;
case 4:add();break;
case 5:update_num();break;
case 0:exit(0); break;
default:printf("输入有误");
}
}
}
void create() /*输入函数*/
{
int i=1;
struct student *head,*p1,*p2,*p3;
char name[20];
head=(struct student*)malloc(sizeof(struct student));
p2=head;
while(strcmp(name,"quit")!=0)
{
printf("\n输入学生成绩\n");
printf("以学生姓名quit来结束输入\n");
printf("第%d个学生姓名:",i);
scanf("%p3",name);
if(strcmp(name,"quit")!=0)
{
p3=(struct student*)malloc(sizeof(struct student));
strcpy(p3->name,name);
printf("\n第%d个学生学号:",i);
scanf("%d",&p3->num);
printf("\n第%d个学生高数成绩:",i);
scanf("%d",&p3->gaoshu);
printf("\n第%d个学生英语成绩:",i);
scanf("%d",&p3->yingyu);
printf("\n第%d个学生物理成绩:",i);
scanf("%d",&p3->wuli);
printf("\n第%d个学生程序成绩:",i);
scanf("%d",&p3->chengxu);
p3->total=p3->gaoshu+p3->yingyu+p3->wuli+p3->chengxu;
p3->next=NULL;
p2->next=p3;
p2=p3;
i++;
}
}
p2->next=NULL;
p1=head;
head=head->next;
free(p1);
return(head);
}
void chaxun() /*查询菜单*/
{
void numfound();
void namefound();
int m;
while(1)
{
printf("欢迎进入成绩查询系统\n");
printf("----------------------\n");
printf("请用数字键选择操作\n");
printf("1 按学号查询\n");
printf("2 按姓名查询\n");
printf("0 返回\n");
printf("----------------------\n");
scanf("%d",&m);
switch(m)
{
case 0:exit(0);break;
case 1:numfound();break;
case 2:namefound();break;
default:printf("输入有误");
}
}
}
void add() /*增加函数*/
{
struct student * p,* q;
printf("\n填加一个数据\n");
q=(struct student*)malloc(sizeof(struct student));
printf("第%d个学生姓名:",i);
scanf("%s",&q->name);
printf("\n第%d个学生学号:",i);
scanf("%d",&q->num);
printf("\n第%d个学生高数成绩:",i);
scanf("%d",&q->gaoshu);
printf("\n第%d个学生英语成绩:",i);
scanf("%d",&q->yingyu);
printf("\n第%d个学生物理成绩:",i);
scanf("%d",&q->wuli);
printf("\n第%d个学生程序成绩:",i);
scanf("%d",&q->chengxu);
q->total=q->gaoshu+q->yingyu+q->wuli+q->chengxu;
q->next=NULL;
i++;
p=head;
while(p->next!=NULL)
p=p->next;
p->next=q;
return(head);
}
void numfound() /*学号查找*/
{
struct student *p1;
int num;
printf("\n请输入你要查询学生的学号:");
scanf("%d",&num);
p1=head;
while(p1!=NULL&&p1->num!=num)
{
p1=p1->next;
}
if(p1==NULL)
{
printf("没有该学生\n");
return;
}
if(p1->num==num)
{
printf("该学生的学号为:%d",p1->num);
printf("\n该学生的数学成绩为:%d",p1->gaoshu);
printf("\n该学生的英语成绩为:%d",p1->yingyu);
printf("\n该学生的物理成绩为:%d",p1->wuli);
printf("\n该学生的程序成绩为:%d",p1->chengxu);
}
}
void namefound(struct student *head) /*姓名查找*/
{
struct student *p;
char name[20];
printf("\n请输入你要查询学生的姓名:");
scanf("%s",name);
p=head;
while(p!=NULL && strcmp(p->name,name)!=0)
{
p=p->next;
}
if(p==NULL)
{
printf("没有该学生\n");
return;
}
else
{
printf("该学生的学号为:%d",p->num);
printf("\n该学生的数学成绩为:%d",p->gaoshu);
printf("\n该学生的英语成绩为:%d",p->yingyu);
printf("\n该学生的物理成绩为:%d",p->wuli);
printf("\n该学生的程序成绩为:%d",p->chengxu);
}
}
void update_num() /*修改函数*/
{
int i;
int flag=0;
int num;
int reccount=0;
printf("请输入要修改的学号:");
scanf("%d",num);
for(i=0;i<reccount;i++)
if(strcmp(num,stu[i].num)==0)
{
flag=1;
break;
}
if(!flag)
{
printf("学号为:%s的记录不存在!\n",num);
return;
}
printf("\n修改前的数据为:\n");
printf("学号:%s\n",stu[i].num);
printf("姓名:%s\n",stu[i].name);
printf("高数:%s\n",stu[i].gaoshu);
printf("英语:%s\n",stu[i].yingyu);
printf("物理:%s\n",stu[i].wuli);
printf("程序:%s\n",stu[i].chengxu);
printf("\n修改后的数据为:\n");
printf("学号:");
scanf("%s",stu[i].num);
printf("姓名:");
scanf("%s",stu[i].name);
printf("高数:");
scanf("%s",stu[i].gaoshu);
printf("英语:");
scanf("%s",stu[i].yingyu);
printf("物理:");
scanf("%s",stu[i].wuli);
printf("程序:");
scanf("%s",stu[i].chengxu);
}
void del() /*删除函数*/
{
struct student *p1,*p2;
int num;
printf("\n请输入你要删除学生的学号:");
scanf("%d",&num);
if(head->next==NULL&&head->num==num)
return NULL;
p2=head;
p1=head->next;
while(p1!=NULL&&p1->num!=num)
{
p2=p2->next;
p1=p1->next;
}
if(p1==NULL)
{
printf("没有该学生\n");
return head;
}
if(p1->num==num)
p2->next=p1->next;
return(head);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -