900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 班级管理系统c语言学号姓名 c++学生成绩管理系统1 问题描述 学生信息包括:学号

班级管理系统c语言学号姓名 c++学生成绩管理系统1 问题描述 学生信息包括:学号

时间:2018-12-23 23:55:18

相关推荐

班级管理系统c语言学号姓名 c++学生成绩管理系统1 问题描述 学生信息包括:学号

满意答案

qw2206052

.01.11

采纳率:57%等级:8

已帮助:660人

#include #include #include #define MAXLEN 100 #define Null 0 typedef struct node { int num; // 学号 char name[MAXLEN]; // 姓名 int score; // 分数 struct node *next; // 指针域 }list; list *creat() { list *head,*p,*r; int i,n; // n 为学生人数 head=(list *)malloc(sizeof(list)); head->next=Null; r=head; printf("请输入学生人数.\n"); scanf("%d",&n); for(i=1;i<=n;i++) { p=(list *)malloc(sizeof(list)); printf("请输入学生学号:\n"); scanf("%d",&p->num); printf("请输入学生姓名:\n"); scanf("%s",&p->name); printf("请输入学生成绩:\n"); scanf("%d",&p->score); p->next=Null; r->next=p; // 这个地方我总是不明白,是怎样让结点下移一个的呢? r=r->next; } return (head); } void find (list *h) { int k; // 要找的学生学号 list *p; p=h->next; printf("请输入要查找的学生学号:\n"); scanf("%d",&k); while (p && p->num!=k) p=p->next; if(p) { printf("学号\t姓名\t成绩\n"); printf("%d\t%s\t%d\n",p->num,p->name,p->score); } else printf("目标没找到\n"); } list *del (list *h) { int k; // 要删除的学生学号 list *p,*q; // 为什么要两个指针呢? q=h; p=h->next; printf("请输入待删除的学生学号:\n"); scanf("%d",&k); while (p && p->num!=k) { q=p; p=p->next; } if(p) { q->next=p->next; free(p); } else printf("没有此学生的记录,无法删除!\n"); return (h); } list *insert(list *h) { list *p,*q,*r,*head; head=h; r=h; p=h->next; // 下面构造一个学生的信息 q=(list *)malloc(sizeof(list)); printf("请输入待插入学生的学号:\n"); scanf("%d",&q->num); printf("请输入待插入学生的姓名:\n"); scanf("%s",&q->name); printf("请输入待插入学生的成绩:\n"); scanf("%d",&q->score); q->next=Null; // 找到链表的结尾结点 while(p!=Null) { r=p; p=p->next; } // 将新结点插入表尾 r->next=q; r=r->next; return (head); } void output(list *h) { list *p; printf("学号\t姓名\t成绩\n"); p=h->next; while (p!=NULL) { printf("%d\t%s\t%d\n",p->num,p->name,p->score); p=p->next; } } void main() { list *p; int k; // 控制循环的标志 while (1) { printf(" ---------------------------------------\n"); printf(" | 学生成绩管理系统 |\n"); printf(" ---------------------------------------\n"); printf(" | 1. 登记成绩 |\n"); printf(" | 2. 查询成绩 |\n"); printf(" | 3. 插入成绩 |\n"); printf(" | 4. 删除成绩 |\n"); printf(" | 5. 输出所有学生成绩 |\n"); printf(" | 0. 退出系统 |\n"); printf(" ---------------------------------------\n"); printf("请输入你的选择:\n"); scanf("%d",&k); switch(k) { case 1: p=creat(); break; case 2: find(p); break; case 3: p=insert(p); break; case 4: p=del(p); break; case 5: output(p); break; case 0: exit(0); default : printf("选择错误,重新开始!\n"); } }// while }追问: = =亲这个是c语言 我需要c++的..

02分享举报

班级管理系统c语言学号姓名 c++学生成绩管理系统1 问题描述学生信息包括:学号 姓名 性别 年龄 班级等信息。小学生...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。