谁能帮我写一份C语言程序设计报告 题目是学生成绩管理,C语言高手前来帮我解答,在线等待。 30

一、题目学生成绩管理二、需要处理的基础数据学生信息:学号、姓名、成绩1、成绩2、成绩3。三、系统功能:1学生成绩管理:A运行后,首先显示主菜单:*************... 一、题目
学生成绩管理

二、需要处理的基础数据
学生信息:学号、姓名、成绩1、成绩2、成绩3。

三、系统功能:
1学生成绩管理:
A 运行后,首先显示主菜单:
********************MENU*********************
1. input list
2. Delete a record from list
3. print list
4. Search record on name
5. insert record to list
6. Quit
***********************************************
Enter you choice(1~6):;

B 当按下1~6其中的一个数字,执行相应的功能:
1:提示录入学生基本内容,当录入学号首字符为#时结束输入
2:输入要删除学生学号,删除该记录,后续记录前移。如查找不到,给出提示信息
3:显示链表中所有记录
4:输入待查找学生姓名,找到并显示该记录信息,查找不到,提示学生不存在。
5:插入记录到表中。
6:退出。
以上每一步操作完成,均提示按任意键返回,之后返回主菜单。

四、要求
1、源程序要有适当的注释,使程序容易阅读。
2、运用学过的基本知识实现系统。
3、写设计报告(要求正规打印,A4幅面),要求见附录。
4、凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。
展开
 我来答
20081050146
2011-06-16 · 超过18用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:41.3万
展开全部
//刚刚写的。现在的功能和你要求的已经一样了
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#define OK 1
#define ERROR 0
#define NULL 0
#define P printf
#define S scanf
typedef int Status;

typedef struct LNode
{
char num[20];
char name[20];
float score1;//这里分数用浮点数,
float score2;
float score3;
struct LNode *next;
}LNode,*LinkList;
LinkList L;
Status GetStu(LinkList &L)//录入学生纯乎册基本内容,即建立带头结点的学生链表
{ L=(LinkList)malloc(sizeof(LNode));
LinkList p=L,q=L;
L->next=NULL;
P("-----------------请录入学生信息,若学号首字符为‘#’则录入结束-----------\n");
while(1)
{
q=(LinkList)malloc(sizeof(LNode));
P("输入学号:\n");
S("%s",q->num);
if(q->num[0]=='#')break;
P("输入姓名:\n");
S("%s",q->name);
P("输入分数 1 2 3(用空格隔开):\n");
S("%f %f %f",&q->score1,&q->score2,&q->score3);
P("\n----------------------------------\n");
q->next=p->next;
p->next=q;
p=q;
}
system("cls");
return OK;

}
Status DeleStu(LinkList &L)//删除学生信息
{
LinkList p=L,q=L;
p=p->next;
char num1[20];
P("请输入要删除的学生学号:\n");
S("%s",num1);
while(p&&strcmp(num1,p->num)!=0)
{
q=p;
p=p->next;
}
if(!p) {system("cls");P("未找到该学号!\n");return ERROR;}
q->next=p->next;
free(p);
system("cls");
P("删除成功!\n");
return OK;
}
Status SerchStu(LinkList L)//查找学生信息,按姓名
{
LinkList p=L;
char name1[20];
P("请输入要查找的学生姓名:\n");
S("%s",name1);
p=p->next;
while(p&&strcmp(name1,p->name)!=0)
p=p->next;
if(!p) {system("cls");P("该学生不存在!\n");return ERROR;}
system("cls");
P("-----------你所查找的学生信息如下----------\n");
P("学号做宏 姓名 分数1 分数2 分数3\n");
P("%s %s %4.1f %4.1f %4.1f\n",p->num,p->name,p->score1,p->score2,p->score2,p->score3);
return OK;

}

Status InsertStu(LinkList &L)//插入记录到表中,这里插在表头端,插在表尾端道理相同
{
LinkList q=L;
q=(LinkList)malloc(sizeof(LNode));
P("\n\n----------输入要插入的学生信息---------------\n");
P("输入学号:\n");
S("%s",q->num);
P("输入姓名:\n");
S("%s",q->name);
P("输入分数 1 2 3(用空格隔开):\n");
S("%f %f %f",&q->score1,&q->score2,&q->顷悄score3);
q->next=L->next;
L->next=q;
system("cls");
P("插入成功!!\n");
return OK;

}
void Print(LinkList L)//显示链表中所有记录
{
LinkList p=L;
p=p->next;
P("----------------学生信息如下------------------\n");
P("学号 姓名 分数1 分数2 分数3\n");
while(p)
{
P("%s %s %4.1f %4.1f %4.1f\n",p->num,p->name,p->score1,p->score2,p->score2,p->score3);
p=p->next;
}

}

int menu()//显示菜单
{
int cho=0;
P("\n\n ------学生成绩管理------\n");
P("********************MENU********************\n");
P(" 1. input list \n");
P(" 2. Delete a record from list \n");
P(" 3. print list \n");
P(" 4. Search record on name \n");
P(" 5. insert record to list\n");
P(" 6. Quit\n");
P("********************************************\n");
P("Enter you choice(1~6): ");
S("%d",&cho);
return cho;

}

void main()
{
int cho=0;
while(1)
{

cho=menu();
switch(cho)
{
case 1:system("cls");
GetStu(L);
break;

case 2:system("cls");
DeleStu(L);
break;
case 3:system("cls");
Print(L);
break;
case 4:system("cls");
SerchStu(L);
break;
case 5:system("cls");
InsertStu(L);
break;
case 6: exit(0);
default:P("请重新选择");break;

}

}
getch();
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式