这是在大一上学期写的课设,到大二才开始写csdn博客,花了四天时间从零到一,废话不多说,请欣赏下面的代码


c语言版 学生管理系统


#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<stdbool.h>
#include<algorithm>
#include<iostream>
#include<iomanip>
using namespace std;char deletename[10];
char searchname[10];
char majormain[20];
char sexmain[3];
struct Linknode
{char name[10];char sex[5];char major[20];char birthday[10];char address[20];int score;struct Linknode *next;
};
bool cmp(Linknode a,Linknode b)
{ return a.score >b.score ;
}
struct Linknode *Linklist()//新增学生信息;
{struct Linknode *header=(struct Linknode *)malloc(sizeof(struct Linknode));struct Linknode *prear=header;strcpy(header->name,"sssssssss");int val=-1;while(true){printf("是否继续输入学生信息:");scanf("%d",&val);if(val==-1){break;} struct Linknode *newnode=(struct Linknode *)malloc(sizeof(struct Linknode));printf("请输入姓名:");scanf("%s",&newnode->name );printf("请输入性别:");scanf("%s",&newnode->sex );printf("请输入专业:");scanf("%s",&newnode->major );printf("请输入出生日期:");scanf("%s",&newnode->birthday );printf("请输入家庭住址:");scanf("%s",&newnode->address );printf("请输入英语入学成绩:");scanf("%d",&newnode->score );prear->next =newnode;newnode->next =NULL;prear=newnode;}return header;
}
void deletepeople(struct Linknode *header,char deletename[10])//删除学生信息;
{struct Linknode *prear1=header;struct Linknode *prear2=header->next ;while(prear2!=NULL){if( strcmp( prear2->name,deletename)==0){break;}prear1=prear1->next ; prear2=prear2->next ;}if(prear2==NULL) return;//删去节点;prear1->next =prear2->next ;prear2->next =NULL; free(prear2);
}
void print(struct Linknode *header)//导出学生信息;
{printf("\t\t姓名\t性别\t专业        出生日期    家庭住址    英语分数\n");struct Linknode *prear=header->next ;while(prear!=NULL){printf("\t\t%-8s%-8s%-12s%-12s%-12s%-5d\n",prear->name,prear->sex,prear->major,prear->birthday,prear->address,prear->score);prear=prear->next ;}
}
void search(struct Linknode *header,char searchname[10] )//学生信息搜索;
{struct Linknode *prear=header;while(prear!=NULL){if(strcmp(prear->name,searchname)==0 ){break;}prear=prear->next ;}if(prear==NULL) return;printf("姓名:%s\n",prear->name );printf("性别:%s\n",prear->sex );printf("专业:%s\n",prear->major );printf("出生日期:%s\n",prear->birthday );printf("家庭住址:%s\n",prear->address );printf("入学英语分数:%d\n",prear->score );}
void statistics(struct Linknode *header)//统计人数;
{int age,majorcount=0,sexcount=0,agecount=0;printf("专业,性别,年龄有:");scanf("%s%s%d",&majormain,&sexmain,&age);struct Linknode *prear=header->next ;while(prear!=NULL){if(strcmp(prear->major,majormain)==0 ) majorcount++;if(strcmp(prear->sex ,sexmain)==0) sexcount++;if(age==(2021-((prear->birthday[0]-'0')*1000+(prear->birthday[1]-'0')*100+(prear->birthday[2]-'0')*100+(prear->birthday[3]-'0'))))agecount++;prear=prear->next ;}printf("专业有:%d\n性别有:%d\n年龄有:%d",majorcount,sexcount,agecount);
}
void Englishranking(struct Linknode *header)//英语排名;
{struct Linknode q[100];int n=0,i=1;struct Linknode *prear=header->next ;while(prear!=NULL){strcpy(q[i].name ,prear->name);q[i].score =prear->score ;i++;n++;prear=prear->next ;}sort(q+1,q+n+1,cmp);for(int j=1;j<=n;j++){printf("%s\n",q[j].name );}
}
void Increase(struct Linknode *header)//新增人数;
{struct Linknode *prear1=header;struct Linknode *prear2=header->next ;while(prear2!=NULL){prear1=prear1->next ;prear2=prear2->next ;}struct Linknode *newnode=(struct Linknode *)malloc(sizeof(struct Linknode));printf("请输入姓名:");scanf("%s",&newnode->name );printf("请输入性别:");scanf("%s",&newnode->sex );printf("请输入专业:");scanf("%s",&newnode->major );printf("请输入出生日期:");scanf("%s",&newnode->birthday );printf("请输入家庭住址:");scanf("%s",&newnode->address );printf("请输入英语入学成绩:");scanf("%d",&newnode->score );newnode->next =NULL;prear1->next =newnode;
}
void function(struct Linknode *p,int n)
{switch(n){case 1:printf("新增人数:");Increase(p);break;case 2:printf("请输入删除人的名字:"); scanf("%s",&deletename);deletepeople(p,deletename);break;case 3:print(p);break;case 4:printf("请输入搜索人的名字:");scanf("%s",&searchname);search(p,searchname);break;case 5:statistics(p);break;case 6:Englishranking(p);break;case 7:exit(0);break;}printf("\n\n");
}
int main()
{system("color 70");struct Linknode *p=Linklist();int n;while(1){printf("\t\t\t\t\t\t欢迎来到学生管理系统!\n");printf("\t\t\t\t\t******操作1是新增学生信息******\n\t\t\t\t\t******操作2是删除学生信息******\n\t\t\t\t\t******操作3是得到学生的信息****\n\t\t\t\t\t******操作4是学生信息搜索******\n\t\t\t\t\t******操作5是统计人数**********\n\t\t\t\t\t******操作6是英语排名**********\n\t\t\t");printf("\t\t******操作7是退出学生信息******\n\t\t\t\n");scanf("%d",&n);function(p,n);system("pause");system("cls");}return 0;
}

代码演示

比起上个c语言版本多了一个在开始之前的密码输入


c++语言版  学生管理系统

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<stdbool.h>
#include<algorithm>
#include<iostream>
#include<iomanip>
#include<fstream>
#include<sstream>   // 用于stringstream sin(sline);
#include<conio.h>//用于登录密码;
using namespace std;
char deletename[10];
char searchname[10];
char majormain[20];
char sexmain[3];
struct Linknode
{char name[20];int score;
};
class S
{public:S *Linklist();//新增学生信息;void deletepeople(S *header,char deletename[10]);//删除学生信息; void print(S *header);//导出学生信息;void search(S *header,char searchname[10] );//学生信息搜索;void statistics(S *header);//统计人数;void Englishranking(S *header);//英语排名; void Increase(S *header);//新增人数;void listtofile(S *header);void filetolist(S *header);private:char name[10];char sex[5];char major[20];char birthday[10];char address[20];int score;S *next;
};
bool cmp(Linknode a,Linknode b)
{ return a.score >b.score ;
}
S *S::Linklist()//新增学生信息;
{S *header=new(S);strcpy(header->name,"sssssssss");header ->next=NULL;return header;
}
void S::deletepeople(S *header,char deletename[10])//删除学生信息;
{S *prear1=header;S *prear2=header->next;while(prear2!=NULL){if( strcmp( prear2->name,deletename)==0){break;}prear1=prear1->next ; prear2=prear2->next ;}if(prear2==NULL) return;//删去节点;prear1->next =prear2->next;prear2->next =NULL; delete(prear2);
}
void S::print(S *header)//导出学生信息;
{printf("\t\t姓名\t性别\t专业        出生日期    家庭住址    英语分数\n");S *prear=header->next ;while(prear!=NULL){printf("\t\t%-8s%-8s%-12s%-12s%-12s%-5d\n",prear->name,prear->sex,prear->major,prear->birthday,prear->address,prear->score);prear=prear->next ;}
}
void S::search(S *header,char searchname[10] )//学生信息搜索;
{S *prear=header;while(prear!=NULL){if(strcmp(prear->name,searchname)==0 ){break;}prear=prear->next ;}if(prear==NULL) return;printf("姓名:%s\n",prear->name );printf("性别:%s\n",prear->sex );printf("专业:%s\n",prear->major );printf("出生日期:%s\n",prear->birthday );printf("家庭住址:%s\n",prear->address );printf("入学英语分数:%d\n",prear->score );}
void S::statistics(S *header)//统计人数;
{int age,majorcount=0,sexcount=0,agecount=0;printf("专业,性别,年龄有:");scanf("%s%s%d",majormain,sexmain,&age);S *prear=header->next ;while(prear!=NULL){if(strcmp(prear->major,majormain)==0 ) majorcount++;if(strcmp(prear->sex ,sexmain)==0) sexcount++;if(age==(2021-((prear->birthday[0]-'0')*1000+(prear->birthday[1]-'0')*100+(prear->birthday[2]-'0')*100+(prear->birthday[3]-'0'))))agecount++;prear=prear->next ;}printf("专业有:%d\n性别有:%d\n年龄有:%d",majorcount,sexcount,agecount);
}
void S::Englishranking(S *header)//英语排名;
{struct Linknode q[100];int n=0,i=1;S *prear=header->next;while(prear!=NULL){strcpy(q[i].name ,prear->name);q[i].score =prear->score ;i++;n++;prear=prear->next ;}sort(q+1,q+n+1,cmp);for(int j=1;j<=n;j++){printf("%s\n",q[j].name );}
}
void S::Increase(S *header)//新增人数;
{S *prear1=header;S *prear2=header->next ;while(prear2!=NULL){prear1=prear1->next ;prear2=prear2->next ;}S *newnode=new(S);printf("请输入姓名:");scanf("%s",newnode->name );printf("请输入性别:");scanf("%s",newnode->sex );printf("请输入专业:");scanf("%s",newnode->major );printf("请输入出生日期:");scanf("%s",newnode->birthday );printf("请输入家庭住址:");scanf("%s",newnode->address );printf("请输入英语入学成绩:");scanf("%d",&newnode->score );newnode->next =NULL;prear1->next =newnode;
}
void S::listtofile(S *header)
{ofstream outfile("c++学生管理系统");S *prear=header-> next;while(prear!=NULL){outfile<<prear->name<<" "<<prear->sex<<" "<<prear->major<<" "<<prear->birthday<<" "<<prear->address<<" "<<prear->score<<endl;prear=prear->next;}outfile.close();
}
void S::filetolist(S *header)
{ifstream infile("c++学生管理系统");string sline; S *prear=header;while(getline(infile,sline)){S *newnode=new(S);istringstream sin(sline);sin>>newnode->name>>newnode->sex>>newnode->major>>newnode->birthday>>newnode->address>>newnode->score;prear->next=newnode;newnode->next=NULL;prear=newnode;}infile.close();
}
int main()
{while(true){cout<<endl;cout<<"================================请输入登录密码:==================="<<endl<<endl;char ch;char mima[100]="tgx520";char mimaa[100];int i=0;while((ch=getch())!='\r'){if(ch==8) {putchar('\b');putchar(' ');putchar('\b');if(i>0){i--;   }}if(('a'<=ch&&ch<='z')||('0'<=ch&&ch<='9')){putchar('*');mimaa[i]=ch;i++;}if(i==45) break;}mimaa[i]='\0';if(strcmp(mima,mimaa)==0)  break;system("cls");}system("cls");system("color 70");S aa; S *p=aa.Linklist();aa.filetolist(p);int n;while(1){printf("\t\t\t\t\t\t欢迎来到学生管理系统!\n");printf("\t\t\t\t\t******操作1是新增学生信息******\n\t\t\t\t\t******操作2是删除学生信息******\n\t\t\t\t\t******操作3是得到学生的信息****\n\t\t\t\t\t******操作4是学生信息搜索******\n\t\t\t\t\t******操作5是统计人数**********\n\t\t\t\t\t******操作6是英语排名**********\n\t\t\t");printf("\t\t******操作7是退出学生信息******\n\t\t\t\n");scanf("%d",&n);switch(n){case 1:printf("新增人数:");aa.Increase(p);break;case 2:printf("请输入删除人的名字:"); scanf("%s",deletename);aa.deletepeople(p,deletename);break;case 3:aa.print(p);break;case 4:printf("请输入搜索人的名字:");scanf("%s",searchname);aa.search(p,searchname);break;case 5:aa.statistics(p);break;case 6:aa.Englishranking(p);break;case 7:exit(0);break;}printf("\n\n");system("pause");system("cls");aa.listtofile(p);}return 0;
}

QQ录屏20220525210737

C语言 学生管理系统 c++ 学生管理系统相关推荐

  1. C语言程序设计——设计一个学生管理系统(完美运行的程序(●‘◡‘●))

    目录 一.设计目的 二.原理及相关功能 (一)基本框架 (二)功能实现 三.完整代码 四.运行结果 一.设计目的 通过c语言设计一个学生管理系统,要求有直观的主菜单,可以录入学生的信息,实现添加学生信 ...

  2. C语言编写工资管理系统类似学生管理系统

    C语言编写工资管理系统类似学生管理系统 开始界面和菜单界面B void start() //开始界面 {system("cls");//清屏 system("color ...

  3. c语言声明第一个学生的成绩,C语言课程设计报告--学生成绩管理系统

    <C语言课程设计报告--学生成绩管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计报告--学生成绩管理系统(30页珍藏版)>请在人人文库网上搜索. 1.学生成绩管理系统 ...

  4. c语言编写简单的成绩管理系统,用c语言编写学生成绩管理系统

    <用c语言编写学生成绩管理系统>由会员分享,可在线阅读,更多相关<用c语言编写学生成绩管理系统(9页珍藏版)>请在人人文库网上搜索. 1.include#include#inc ...

  5. c语言学生学籍管理修改,C语言课设之学生学籍管理系统.doc

    C语言课设之学生学籍管理系统.doc 题目学生学籍管理系统 目录一.个人简介.二.报告摘要.三.报告目录.四.报告正文. 1.系统需求分析 2.系统总体设计 3.系统详细设计六.总结. 二.报告摘要 ...

  6. 第一篇博客——C语言实现简单的学生成绩管理系统

    C语言简单实现学生成绩管理系统 一.前言 首先,要写一个管理系统必须要先搭出一个框架来,即明确自己要实现哪些功能,将每个功能都写陈一个函数,然后再去编写实现各个功能的函数,最后再思考各个函数之间的相互 ...

  7. c语言实现的简单学生管理系统

    简单学生管理系统–c语言 花了一个月的时间,学习了链表,文件,多文件编程,然后就开始写学生管理系统,比较简单的那种,实现了增,添,改,查,多种排序,输入的时候的限定,成绩分析的功能.遇到的问题很多,也 ...

  8. C语言课程设计(1)-学生成绩管理系统

    源码.经验交流QQ群:613879714,有问题QQ群提问,这里不能及时回复 1. 主要功能 输入学生数据 显示学生数据 计算成绩 成绩排序 成绩查找 成绩修改 添加学生数据 删除学生成绩 2.演示 ...

  9. 课设 c语言编译学籍管理系统,C语言课设之学生学籍管理系统

    <C语言课设之学生学籍管理系统>由会员分享,可在线阅读,更多相关<C语言课设之学生学籍管理系统(10页珍藏版)>请在人人文库网上搜索. 1.题目:学生学籍管理系统 目录:一.个 ...

  10. c语言学生管理系统结点,学生管理系统(数据结构课程设计之完整代码)

    <学生管理系统(数据结构课程设计之完整代码)>由会员分享,可在线阅读,更多相关<学生管理系统(数据结构课程设计之完整代码)(14页珍藏版)>请在人人文库网上搜索. 1.数据结构 ...

最新文章

  1. nginx在linux下安装,Nginx在linux下安装及简单命令
  2. 大用户规模互联网架构发展
  3. 弄了个调试呼叫中心用的小机器
  4. fp5139应用电路图_四款l6599d经典应用电路图详解
  5. 准备篇--串口通信概述
  6. CNCF 官方大使张磊:什么是云原生?
  7. maven中scope属性的
  8. java教程传智播客,面试真题解析
  9. Qt界面UI之QML初见(学习笔记四)
  10. 《编译原理》学习笔记 ·002【第二章:文法和语言(形式语言理论)-1】
  11. 移动通信原理学习笔记之一
  12. JavaScript获取浏览器高度和宽度值
  13. 使用Matlab绘制LFP锂离子扩散动态示意图
  14. Micrium DEMO9S12NE64 uCOS-II 官方包 调试记录!
  15. 易基因|Genome Biol:DNA甲基化在玉米籽粒发育表观调控作用的研究新进展
  16. 应用特征值矩阵对角方法
  17. 架构漫谈(一):什么是架构? -王概凯 - 转
  18. Mysql 快速生成日期时间维度表
  19. Android 隐藏虚拟按键
  20. Android studio 设置豆绿色

热门文章

  1. xss payload大全
  2. PHP 阿里云视频点播HLS加密(简单流程)
  3. Christian band介绍
  4. 你的“电动爹”,国庆又又又趴窝了吗
  5. 函数——IIFE、作用域、函数调用、函数应用、闭包
  6. dydx开发的坑。。。
  7. Android辅助功能【Accessibility】入门简介及使用
  8. c++11之特性之std::function(书:深入应用c++11)
  9. Vue3:自定义指令directive
  10. SpringBoot集成Quartz+数据库存储