这是在大一上学期写的课设,到大二才开始写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. NativeXml (1):下载、安装、测试
  2. js date 加一天_你不一定了解的js数据类型
  3. C#编程(四十四)----------string和stringbuilder
  4. python写界面c这算法_插入算法分别从C,java,python三种语言进行书写
  5. LOJ洛谷P3225:矿场搭建(割点、点双)
  6. 图解python pdf_Python合并同一个文件夹下所有PDF文件的方法
  7. string contains不区分大小写_String基础复习
  8. labview随机数序列_labview产生随机数
  9. jQuery基础 - 改变CSS样式
  10. 朝九晚五的工作值得留恋吗?
  11. Istio 1.0 部署
  12. 用Python写游戏脚本原来这么简单
  13. 帕丽斯·希尔顿,缺少
  14. Centos6.5安装后,网络连接显示红叉
  15. 2020年终总结——走在代码公益的路上
  16. 中国通史—春秋战国的学术思想
  17. android 设置画布颜色,如何在颜色变化的画布上在Android上绘制渐变颜色?
  18. 【稳定性day9】有赞混沌工程的实践 - 不能消灭Bug还不如与之做朋友
  19. 中国人民公安大学信息技术与网络安全学院 《网络攻击与防御》
  20. python网络编程——UDP通信附实例参考

热门文章

  1. 145.如何评价个性化推荐系统的效果-2
  2. CocoaPods制作第三方库,管理自己的私有库以及发布官方库(模块化与组件化)
  3. trace系列0 - 概述
  4. java常见面试题(一)
  5. Prim 算法的实现
  6. sizeof结构体指针
  7. 2023哈尔滨工程大学计算机考研信息汇总
  8. “国民记忆”品牌的年轻化战略,从换掉王力宏开始?
  9. 吐血之作 | 流系统Spark/Flink/Kafka/DataFlow端到端一致性实现对比
  10. ArcGIS快速加载在线地图