各位高手~~帮忙做一下这个题~新手的我实在不懂咋做!我把所有积分都给你们! 50
本题中已经定义了相应的数据结构用来存放学生的学号、姓名、三门课的成绩,并设计了一个简单的菜单;请同学们完成以下设计(各函数的具体实现):(1)创建一个链表;voidcre...
本题中已经定义了相应的数据结构用来存放学生的学号、姓名、三门课的成绩,并设计了一个简单的菜单;请同学们完成以下设计(各函数的具体实现):
(1)创建一个链表;void create(),有两种方式,
1) 可以从键盘上接收数据创建一个链表,
2) 也可以从一个文件中读取数据,创建一个链表。 (文件中内容格式自己定)
例如,可以是:
20072308 张三 45 87 98
20072308 李四 67 83 90
(2)输出一个链表;void output( )
(3)删除一个节点信息,当输入一个学生学号,如果链表中存在该学号的的结点,则显示此结点的数据,否则输出没有该学号的结点。void delete_()
(4)追加一个学生节点,void append()
可以有两种方式:
1) 在链表头节点后面追加一个节点;
2) 也可以在链表尾追加一个节点;
(5)链表查询,当输入一个学生学号,如果链表中存在该学号的的结点,则输出该结点信息,否则显示链表中没有该学号的结点。void query()
(6)链表信息保存到文件中。void save()
提示
采用动态分配内存,用new分配内存空间,不需要时用delete释放空间。
#include<stdio.h>
#include<process.h>
#include<string.h>
typedef struct link /*定义链表*/
{ long num;
char name[10];
float scor[3];
struct link *next;
}LINK;
LINK *head; /*链表头节点*/
/*清屏并显示题目*/
void page_title(char *menu_item)
{
printf("\n\n\t\t******** Link Operation ********\n\n \t\t\t\t%s\n\n",menu_item);
}
/*建立一个链表,头节点存及入head中*/
void create()
{
}
/*输出以head开始的头节点的链表*/
void output( )
{
}
/*输入学生学号,删除该节点*/
void delete_()
{
}
/*追加一个学生信息(节点)*/
void append()
{
}
/*输入学生学号,查询该学生的信息*/
void query()
{
}
/*将链表信息存入到文件中*/
void save()
{
}
void menu() /*菜单函数*/
{ int choice;
menu: page_title("--menu--\n");
printf("\t\t\t1.Create a link\n");
printf("\t\t\t2.Output a link\n");
printf("\t\t\t3.Delete a node\n");
printf("\t\t\t4.Append a node\n");
printf("\t\t\t5.Query a node\n");
printf("\t\t\t6.save link's information\n");
printf("\t\t\t0.Quit system\n\n\n");
printf("\t\t\tPlease enter choice(0~6)");
scanf("%d",&choice);
switch(choice)
{
case 1:Create();break;
case 2:output();break;
case 3:delete_();break;
case 4:Append();break;
case 5:Query();break;
case 6:save();break;
case 0:exit(0);
}
if(choice<0||choice>7)printf("\n\n\n\t\tplease choose again!\n\n");
goto menu;
}
/*主函数*/
void main()
{
menu();
} 展开
(1)创建一个链表;void create(),有两种方式,
1) 可以从键盘上接收数据创建一个链表,
2) 也可以从一个文件中读取数据,创建一个链表。 (文件中内容格式自己定)
例如,可以是:
20072308 张三 45 87 98
20072308 李四 67 83 90
(2)输出一个链表;void output( )
(3)删除一个节点信息,当输入一个学生学号,如果链表中存在该学号的的结点,则显示此结点的数据,否则输出没有该学号的结点。void delete_()
(4)追加一个学生节点,void append()
可以有两种方式:
1) 在链表头节点后面追加一个节点;
2) 也可以在链表尾追加一个节点;
(5)链表查询,当输入一个学生学号,如果链表中存在该学号的的结点,则输出该结点信息,否则显示链表中没有该学号的结点。void query()
(6)链表信息保存到文件中。void save()
提示
采用动态分配内存,用new分配内存空间,不需要时用delete释放空间。
#include<stdio.h>
#include<process.h>
#include<string.h>
typedef struct link /*定义链表*/
{ long num;
char name[10];
float scor[3];
struct link *next;
}LINK;
LINK *head; /*链表头节点*/
/*清屏并显示题目*/
void page_title(char *menu_item)
{
printf("\n\n\t\t******** Link Operation ********\n\n \t\t\t\t%s\n\n",menu_item);
}
/*建立一个链表,头节点存及入head中*/
void create()
{
}
/*输出以head开始的头节点的链表*/
void output( )
{
}
/*输入学生学号,删除该节点*/
void delete_()
{
}
/*追加一个学生信息(节点)*/
void append()
{
}
/*输入学生学号,查询该学生的信息*/
void query()
{
}
/*将链表信息存入到文件中*/
void save()
{
}
void menu() /*菜单函数*/
{ int choice;
menu: page_title("--menu--\n");
printf("\t\t\t1.Create a link\n");
printf("\t\t\t2.Output a link\n");
printf("\t\t\t3.Delete a node\n");
printf("\t\t\t4.Append a node\n");
printf("\t\t\t5.Query a node\n");
printf("\t\t\t6.save link's information\n");
printf("\t\t\t0.Quit system\n\n\n");
printf("\t\t\tPlease enter choice(0~6)");
scanf("%d",&choice);
switch(choice)
{
case 1:Create();break;
case 2:output();break;
case 3:delete_();break;
case 4:Append();break;
case 5:Query();break;
case 6:save();break;
case 0:exit(0);
}
if(choice<0||choice>7)printf("\n\n\n\t\tplease choose again!\n\n");
goto menu;
}
/*主函数*/
void main()
{
menu();
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询