[C] 纯文本查看 复制代码#pragma once
#include
#include
#include
struct node
{
int num;
char name[15];
int c;
node *next;
};
node *create()
{
struct node * head, *p, *q;
int number;
char sname[15];
int sc;
head = (node *)malloc(sizeof(node));
if (head == NULL)
{
printf("创建失败!!");
}
else
{
printf("请输入学号,姓名,成绩\n");
scanf("%d", &number);
scanf("%s", &sname);
scanf("%d", &sc);
head->num = number;
head->c = sc;
strcpy(head->name, sname);
head->next = NULL;
p = head;
while (1)
{
q = (node *)malloc(sizeof(node));
printf("请输入学号,姓名,成绩(输入0时结束)\n");
scanf("%d", &number);
if (number == 0)
{
break;
}
scanf("%s", &sname);
scanf("%d", &sc);
q->num = number;
q->c = sc;
strcpy(q->name, sname);
q->next = NULL;
p->next = q;
p = q;
}
return head;
}
}
node *jiaru(node *head)
{
node *p, *q;
int number;
char sname[15];
int sc;
p = head;
while (p->next != NULL)
{
p = p->next;
}
while (1)
{
q = (node *)malloc(sizeof(node));
printf("请输入学号,姓名,成绩(输入0时结束)\n");
scanf("%d", &number);
if (number == 0)
{
break;
}
scanf("%s", &sname);
scanf("%d", &sc);
q->num = number;
q->c = sc;
strcpy(q->name, sname);
q->next = NULL;
p->next = q;
p = q;
}
return head;
}
node * delete_i(node *head)
{
node *b, *p;
p = head;
int i;
char c;
printf("请输入要删除学生学号:");
scanf("%d", &i);
while (1)
{
if (p == NULL)
{
return head;
}
if (p->num == i)
{
printf("确认删除y/n:");
scanf("%s", &c);
if (c == 'y')
{
if (p == head)
{
head = p->next;
free(p);
printf("删除成功!\n");
return head;
}
else
{
b->next = p->next;
free(p);
printf("删除成功!\n");
return head;
}
}
else
printf("退出删除!\n");
}
b = p;
p = p->next;
}
printf("删除出错!\n");
return head;
}
int query_i(node * head)
{
struct node * p;
int i;
p = head;
printf("请输入你要查找的学号:");
scanf("%d", &i);
while (p != NULL)
{
if (p->num == i)
{
printf(" 学号 姓名 成绩\n");
printf("------------------\n");
printf(" %d | %s | %d\n", p->num, p->name, p->c);
printf("------------------\n");
return 1;
}
p = p->next;
}
printf("没有找到!!!\n");
return 0;
}
int install_i(node * head)
{
struct node *p, *n;
p = head;
n = (node *)malloc(sizeof(node));
int number, inno, j = 1;
char sname[15]; ;
int sc;
printf("请输入学号,姓名,成绩\n");
scanf("%d", &number);
scanf("%s", &sname);
scanf("%d", &sc);
n->num = number;
n->c = sc;
strcpy(n->name, sname);
n->next = NULL;
printf("请输入要插入到第几位学生后面:");
scanf("%d", &inno);
while (p != NULL&&j < inno)
{
p = p->next;
j++;
}
if (j == inno)
{
n->next = p->next;
p->next = n;
return 1;
}
printf("没有找到该学生!!\n");
return 0;
}
int xiugai_i(node *head)
{
node *p;
p = head;
char sname[15];
int sgs, syy, sc, number;
if (p == NULL)
{
printf("无学生信息\n");
}
else
{
printf("请输入你需要修改的学生学号:\n");
scanf("%d", &number);
while (p != NULL)
{
if (p->num == number)
{
printf("请修改该生学号:\n");
scanf("%d", &number);
p->num = number;
printf("请修改该生姓名:\n");
scanf("%s", &sname);
strcpy(p->name, sname);
printf("请修改成绩:\n");
scanf("%d", &sc);
p->c = sc;
return 1;
}
p = p->next;
}
printf("无该学生信息!!!\n");
}
}
void shuchu(node * head)
{
struct node *p;
p = head;
printf(" 学号 姓名 成绩\n");
while (p != NULL)
{
printf("------------------\n");
printf(" %d | %s | %d\n", p->num, p->name, p->c);
p = p->next;
}
printf("------------------\n");
}