课程设计之学生成绩管理系统开发
来源:互联网 发布:前端程序员是干什么的 编辑:程序博客网 时间:2024/04/20 13:43
/* 烟台大学计算机与控制工程学院 作者:隋溢凡 时间:2017年1月1日 问题描述:设计一个学生成绩管理系统完成学生成绩管理基本业务。并实现如下功能: 1.输入学生成绩2.输出学生成绩 3.学生数据查询4.显示排名成绩 5.添加学生信息6.删除学生信息 输入描述:若干数据 输出描述:若干数据 */
Main.cpp
#include "head.h"#include<iostream>using namespace std;int main(){struct stu *head;int a;menu();while(a){select();cin>>a;switch(a){case 1:head=creat();break; //创建函数case 2:print(head);break; //输出函数case 3:selectmh(head);break; // 学生数据查询函数case 4:sort(head);No(head);break; //分类显示函数、case 5:insert(head);break; //插入学生信息函数case 6:del(head);break; //删除学生信息函数}}return 0;}
sui.cpp
#include "head.h"#include<iostream>#include<malloc.h>#include<iomanip>#include<windows.h>#include<string.h>#define NULL 0#define LinkList sizeof(struct stu)using namespace std;int n=0;struct stu *creat(){system("cls");struct stu *head,*p1,*p2;n=0;p1=p2=(struct stu *)malloc(LinkList);int a=0,i;cout<<"请输入要创建的学生人数"<<endl;cin>>a;system("cls");head=p1;for(i=0;i<a;i++){cout<<"请输入第"<<i+1<<"名学生学号"<<endl;cin>>p1->num;cout<<"请输入第"<<i+1<<"名学生姓名"<<endl;cin>>p1->name;cout<<"请输入第"<<i+1<<"名学生数学成绩"<<endl;cin>>p1->Ma;cout<<"请输入第"<<i+1<<"名学生英语成绩"<<endl;cin>>p1->En;cout<<"请输入第"<<i+1<<"名学生语文成绩"<<endl;cin>>p1->Ch;p1->all=p1->Ma+p1->En+p1->Ch; //总成绩p2->next=p1;p2=p1;p1=(struct stu*)malloc(LinkList);system("cls");n++;}p2->next=NULL;return head;}void print(struct stu *head) //打印函数{system("cls");cout<<"学号 "<<"姓名 "<<"数学 "<<"英语 "<<"语文 "<<"总分"<<endl;struct stu *p;p=head;if(head!=NULL){do{cout<<" "<<setiosflags(ios_base::left)<<setw(5)<<p->num<<setw(5)<<p->name<<setw(5)<<p->Ma<<setw(5)<<p->En<<setw(5)<<p->Ch<<setw(5)<<p->all<<resetiosflags(ios_base::left)<<endl;p=p->next;}while(p!=NULL);cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl;//回车}else exit(0);}void del(struct stu *head)//删除函数{system("cls");if(n==0){cout<<"成绩表已经为空"<<endl;exit(0);//在正常退出次程序的运行.. 原形void exit(int);作用是无条件退出程序////exit()的实参是返回给操作系统的,//这个实参是随意设置的。但通常的约定,是0代表成功运行,1代表运行过程中产生了错误。//但操作系统并不会因为0而做些什么、因为1又做些什么,这个0和1对于用户才有意义,用户可以在代码的不同地方设置exit(x),//这样通过返回值就能知道程序成功还是失败,失败的话又是在哪里产生了错误。 }int num;cout<<"请输入要删除信息的学号:";cin>>num;while(num!=0){struct stu *p1,*p2;p1=head;while(num!=p1->num&&p1->next!=NULL)//检索单链表中所有数据并找匹配项{p2=p1;p1=p1->next;}if(num==p1->num){if(p1==head){head=p1->next;//删除head}else{p2->next=p1->next;//删除中间结点}cout<<num<<"号已被删除"<<endl;Sleep(700); system("cls");n--;}//else{cout<<"未找到此数据!"<<endl;Sleep(700);system("cls");}break;select();//}if(n==0){cout<<"此时链表已为空!"<<endl;exit(0);}}void insert(struct stu *head)//插入函数{system("cls");struct stu *stu;stu=(struct stu*)malloc(LinkList);cout<<"请输入该学生学号"<<endl;cin>>stu->num;cout<<"请输入该学生姓名"<<endl;cin>>stu->name;cout<<"请输入该学生数学成绩"<<endl;cin>>stu->Ma;cout<<"请输入该学生英语成绩"<<endl;cin>>stu->En;cout<<"请输入该学生语文成绩"<<endl;cin>>stu->Ch;stu->all=stu->Ma+stu->En+stu->Ch;n++;struct stu *p0,*p1,*p2;p1=head;p0=stu;if(head==NULL){head=p0;p0->next=NULL;}else{while(p0->num>p1->num&&p1->next!=NULL){p2=p1;p1=p1->next; }if(p0->num<p1->num){if(head==p1){head=p0;}else p2->next=p0;p0->next=p1; }else{p1->next=p0;p0->next=NULL;}}}void sort(struct stu *head) //分类显示函数{struct stu *p1,*p2,*p0;float b;char temp[20];int NO=0;p0=head;p2=head;p1=p2->next;b=(p2->all);while(p0->next!=NULL){while(p1!=NULL){if((p1->all)>b){b=(p1->all);p2=p1;}p1=p1->next;};p2->order=++NO;b=p2->order;//p2->order=p0->order;//数据的置换p0->order=b;//b=p2->num; //学号p2->num=p0->num;p0->num=b;b=p2->Ma; //数学成绩p2->Ma=p0->Ma;p0->Ma=b;b=p2->En; //英语成绩p2->En=p0->En;p0->En=b;b=p2->Ch; //语文成绩p2->Ch=p0->Ch;p0->Ch=b;b=p2->all; //总成绩p2->all=p0->all;p0->all=b;strcpy(temp,p2->name); //姓名置换strcpy(p2->name,p0->name);strcpy(p0->name,temp);p0=p0->next;p2=p0;p1=p2->next;b=(p2->all);}if(p0->next==NULL)p2->order=++NO;}void menu(){cout<<"***************欢迎进入学生成绩管理系统***************"<<endl;}void select(){cout<<"┏━★━━★━━★━━★━━★━━★━━★━━★━━★━┓"<<endl;cout<<"┃ ┃"<<endl;cout<<"★ 输入学生成绩<1> 显示排名成绩<4> ★"<<endl;cout<<"┃ ┃"<<endl;cout<<"┃ ┃"<<endl;cout<<"★ 输出学生成绩<2> 添加学生信息<5> ★"<<endl;cout<<"┃ ┃"<<endl;cout<<"┃ ┃"<<endl;cout<<"★ 学生数据查询<3> 删除学生信息<6> ★"<<endl;cout<<"┃ ┃"<<endl;cout<<"┗━★━━★━━★━━★━━★━━★━━★━━★━━★━┛"<<endl;cout<<"请输入您的选择"<<endl;}void selectmh(struct stu *head) //学生数据查询函数{system("cls");int a;cout<<"┏━★━━★━━★━━★━━★━━★━━★━━★━━★━┓"<<endl;cout<<"┃ ┃"<<endl;cout<<"★ 按名查找<1> 按号查找<2> ★"<<endl;cout<<"┃ ┃"<<endl;cout<<"┗━★━━★━━★━━★━━★━━★━━★━━★━━★━┛"<<endl;cout<<"请输入您的选择"<<endl;cin>>a;if(a>2||a<1) cout<<"无该选项,请从1~2中选择"<<endl;elseswitch(a){case 1:SearchName(head);break; //跳转按名查找函数case 2:SearchNum(head);break; //跳转按号查找函数}}void SearchNum(struct stu *head) //按号查找函数{system("cls");int num;struct stu *p;p=head;cout<<"请输入要查找的学生的学号:";cin>>num;while(p->num!=num&&p->next!=NULL){p=p->next;}if(p->num==num){cout<<"该生的成绩为:"<<endl;cout<<"学号 "<<"姓名 "<<"数学 "<<"英语 "<<"语文 "<<"总分"<<endl;cout<<" "<<setiosflags(ios_base::left)<<setw(5)<<p->num<<setw(5)<<p->name<<setw(5)<<p->Ma<<setw(5)<<p->En<<setw(5)<<p->Ch<<setw(5)<<p->all<<resetiosflags(ios_base::left)<<endl;cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;//回车}else cout<<"该学生并未录入成绩!"<<endl<<endl<<endl;}void SearchName(struct stu *head)//按名查找函数{system("cls");struct stu *p;p=head;char name[20];cout<<"请输入要查找的学生的“姓名”:";cin>>name;while(strcmp(p->name,name)!=0&&p->next!=NULL){p=p->next;}if(strcmp(p->name,name)==0){cout<<"该生的成绩为:"<<endl;cout<<"学号 "<<"姓名 "<<"数学 "<<"英语 "<<"语文 "<<"总分"<<endl; cout<<" "<<setiosflags(ios_base::left)<<setw(5)<<p->num<<setw(5)<<p->name<<setw(5)<<p->Ma<<setw(5)<<p->En<<setw(5)<<p->Ch<<setw(5)<<p->all<<resetiosflags(ios_base::left)<<endl;cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;}else cout<<"该学生并未录入成绩"<<endl<<endl<<endl;}void No(struct stu *head) {system("cls");int i,j;struct stu *p;p=head;for(j=1;j<=20;j++){if(p->order==1&&p->next!=NULL){cout<<"名次 "<<"学号 "<<"姓名 "<<"数学 "<<"英语 "<<"语文 "<<"总分"<<endl; for(i=0;i<10;i++){cout<<" "<<setiosflags(ios_base::left)<<setw(5)<<p->order<<setw(5)<<p->num<<setw(5)<<p->name<<setw(5)<<p->Ma<<setw(5)<<p->En<<setw(5)<<p->Ch<<setw(5)<<p->all<<resetiosflags(ios_base::left)<<endl;if(p->next!=NULL)p=p->next;else {cout<<"已经输出全部成绩"<<endl;break;}}cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;}}}
void menu();//主界面void select();void SearchNum(struct stu *head);void SearchName(struct stu *head);void print(struct stu *head);void No(struct stu *head);void selectmh(struct stu *head);void sort(struct stu *head);void insert(struct stu *head);void del(struct stu *head);struct stu *creat();struct stu //结构体stu 下属成员{int num;char name[20];float Ma; float En; float Ch; float all; int order; struct stu *next;};
0 0
- 课程设计之学生成绩管理系统开发
- 课程设计之学生成绩管理系统
- 课程设计之学生成绩管理系统
- 课程设计之学生成绩管理系统
- <数据结构课程设计> 学生成绩管理系统开发
- 期末课程设计--学生成绩管理系统及开发
- C语言课程设计 之 学生成绩管理系统
- 课程设计之学生成绩管理系统改良版
- 数据结构 课程设计 学生成绩管理系统
- C++课程设计:学生成绩管理系统
- C++课程设计:学生成绩管理系统
- C++课程设计:学生成绩管理系统
- 数据结构课程设计-学生成绩管理系统
- 课程设计-学生成绩管理系统
- 数据结构课程设计---学生成绩管理系统
- 课程设计--学生成绩管理系统
- 课程设计---学生成绩管理系统
- 数据结构课程设计--学生成绩管理系统
- Android Private Libraries 和 Dependencies的区别
- 搭建scapy流程
- Android Multimedia框架总结(二十五)MediaProjection实现手机截屏(无须root)
- bzoj2648 SJY摆棋子
- 嵌入式面试资料
- 课程设计之学生成绩管理系统开发
- 3.《深入理解Java虚拟机》内存溢出实例分析
- 关联函数的位置
- java 工具类
- Android AndroidManifest 清单文件以及权限详解
- 一个字总结我的2016
- java 上机实践四 类与对象
- [POJ2318]TOYS(计算几何+二分)
- ZXing 源码分析(简阅)