赞
踩
一、运行环境
Xcode Version 14.2 (14C18)
二、系统功能
1)学生成绩查找功能
2)学生成绩插入功能
3)学生成绩排序功能
4)学生成绩展示功能
5)学生成绩删除功能
6)退出系统
三、功能展示截图
1)学生成绩查找功能
2)学生成绩插入功能
3)学生成绩排序功能
4)学生成绩展示功能
5)学生成绩删除功能
6)退出系统
四、源代码
- #include<iostream>
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- using namespace std;
- typedef struct PNode*LinkList;
- typedef struct PNode{
- int stdio;
- char name[30];
- double chinese;
- double math;
- double english;
- double politics;
- double sum;
- PNode *next;
- }PNode;
-
- void input(LinkList llist){
- printf("请输入考试的学生人数:\n");
- int n;scanf("%d",&n);
- LinkList p;
- for(int i=1;i<=n;i++){
- p=(LinkList)malloc(sizeof(PNode));
- printf("请输入学生学号:\n");
- scanf("%d",&p->stdio);
-
- printf("请输入学生姓名:\n");
- scanf("%s",p->name);
-
- printf("请输入学生语文成绩:\n");
- scanf("%lf",&p->chinese);
-
- printf("请输入学生数学成绩:\n");
- scanf("%lf",&p->math);
-
- printf("请输入学生英语成绩:\n");
- scanf("%lf",&p->english);
-
- printf("请输入学生政治成绩:\n");
- scanf("%lf",&p->politics);
-
- p->sum=p->chinese+p->math+p->english+p->politics;
- p->next=llist->next;
- llist->next=p;
- }
- printf("\n-----------------------—学生成绩完成录入-----------------------\n");
- }
-
- void check(LinkList llist){
- LinkList e=llist->next;
- int f;
- printf("请输入查找的学号:\n");
- scanf("%d",&f);
- while(e->stdio!=f)
- e=e->next;
- if(e->stdio==f)
- printf("%d\t %s%12lf %6lf %6lf %6lf %6lf\n",e->stdio,e->name,e->chinese,e->math,e->english,e->politics,e->sum);
- else
- printf("查找值不存在!\n");
- }
-
- void display(LinkList llist){
- printf("\n-----------------------—学生成绩信息展示-----------------------\n");
- printf("学号\t姓名\t 语文\t 数学\t 英语\t 政治 总分\n");
- LinkList p=llist->next;
- if(llist->next==NULL){
- printf("系统中无学生信息!\n");
- }
- else{
- while(p!=NULL){
- printf(" %d\t %s%12lf %6lf %6lf %6lf %6lf\n",p->stdio,p->name,p->chinese,p->math,p->english,p->politics,p->sum);
- p=p->next;}
- }
- printf("\n-----------------------—学生成绩完成展示-----------------------\n");
- }
-
-
- void sortList(LinkList llist){
- printf("请输入排序的依据:\n");
- printf("1.数学 2.语文 3.英语 4.政治 5.总分\n");
- int a;
- scanf("%d",&a);
- switch(a){
- case 1:
- printf("按照数学排序已完成\n");
- if(llist->next==NULL){
- printf("学生成绩无数据!");
- } else if(llist->next->next==NULL){
- printf("学生成绩为一个,无需排序!");
- }else{
- LinkList p=llist->next->next;
- llist->next->next=NULL;
- LinkList q,r;
- while(p!=NULL){
- q=llist;
- r=p->next;
- while(q->next!=NULL&&q->next->math<p->math){
- q=q->next;
- }
- p->next=q->next;
- q->next=p;
- p=r;
- }
- }
- break;
- case 2:
- printf("按照语文排序已完成\n");
- if(llist->next==NULL){
- printf("学生成绩无数据!");
- } else if(llist->next->next==NULL){
- printf("学生成绩为一个,无需排序!");
- }else{
- LinkList p=llist->next->next;
- llist->next->next=NULL;
- LinkList q,r;
- while(p!=NULL){
- q=llist;
- r=p->next;
- while(q->next!=NULL&&q->next->chinese<p->chinese){
- q=q->next;
- }
- p->next=q->next;
- q->next=p;
- p=r;
- }
- }
- break;
- case 3:
- printf("按照英语排序已完成\n");
- if(llist->next==NULL){
- printf("学生成绩无数据!");
- } else if(llist->next->next==NULL){
- printf("学生成绩为一个,无需排序!");
- }else{
- LinkList p=llist->next->next;
- llist->next->next=NULL;
- LinkList q,r;
- while(p!=NULL){
- q=llist;
- r=p->next;
- while(q->next!=NULL&&q->next->english<p->english){
- q=q->next;
- }
- p->next=q->next;
- q->next=p;
- p=r;
- }
- }
- break;
- case 4:
- printf("按照政治排序已完成\n");
- if(llist->next==NULL){
- printf("学生成绩无数据!");
- } else if(llist->next->next==NULL){
- printf("学生成绩为一个,无需排序!");
- }else{
- LinkList p=llist->next->next;
- llist->next->next=NULL;
- LinkList q,r;
- while(p!=NULL){
- q=llist;
- r=p->next;
- while(q->next!=NULL&&q->next->politics<p->politics){
- q=q->next;
- }
- p->next=q->next;
- q->next=p;
- p=r;
- }
- }
- break;
- case 5:
- printf("按照总分排序已完成\n");
- if(llist->next==NULL){
- printf("学生成绩无数据!");
- } else if(llist->next->next==NULL){
- printf("学生成绩为一个,无需排序!");
- }else{
- LinkList p=llist->next->next;
- llist->next->next=NULL;
- LinkList q,r;
- while(p!=NULL){
- q=llist;
- r=p->next;
- while(q->next!=NULL&&q->next->sum<p->sum){
- q=q->next;
- }
- p->next=q->next;
- q->next=p;
- p=r;
- }
- }
- break;
- default:
- printf(" 输入有误!\n");
- }
- }
-
- void deleteList(LinkList llist){
- LinkList p=llist;
- int d;
- printf("请输入删除的学号:\n");
- scanf("%d",&d);
- while(p!=NULL){
- if(p->next->stdio!=d) p=p->next;break;}
- if(p->next->stdio==d) p->next=p->next->next;
- else
- printf("删除值不存在!\n");
- printf("\n-----------------------—学生成绩完成删除-----------------------\n");
- }
-
- int main(){
- LinkList llist=(LinkList)malloc(sizeof(PNode));
- llist->next=NULL;
- int a=0,b=1;
- while(b){
- printf("\n-----------------------—学生成绩管理系统-----------------------\n");
- printf("请选择你需要的功能:\n");
- printf(" 1.查找 2.插入 3.排序 4.展示 5.删除 6.退出\n");
- scanf("%d",&a);
- switch(a){
- case 1:printf("\n-----------------------—学生成绩查找功能-----------------------\n"); check(llist);break;
- case 2:printf("\n-----------------------—学生成绩插入功能-----------------------\n"); input(llist);break;
- case 3:printf("\n-----------------------—学生成绩排序功能-----------------------\n"); sortList(llist);break;
- case 4:printf("\n-----------------------—学生成绩展示功能-----------------------\n"); display(llist);break;
- case 5:printf("\n-----------------------—学生成绩删除功能-----------------------\n"); deleteList(llist);break;
- case 6:b = 0; break;
- default:printf(" 输入有误!请重新输入!\n");
- }
- }
- printf("\n-----------------------已退出成绩管理系统-----------------------\n");
- return 0;
- }
四、总结
这个学生成绩管理系统到这里就结束了,对于我这个小白来说还是有点难度的,也有很多地方需要改进,欢迎大家来与我相互共勉。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。