栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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


c语言版 学生管理系统

#include
#include
#include
#include
#include
#include
#include
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("tt姓名t性别t专业        出生日期    家庭住址    英语分数n");
	struct Linknode *prear=header->next ;
	while(prear!=NULL)
	{
	    printf("tt%-8s%-8s%-12s%-12s%-12s%-5dn",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("姓名:%sn",prear->name );
		printf("性别:%sn",prear->sex );
		printf("专业:%sn",prear->major );
		printf("出生日期:%sn",prear->birthday );
		printf("家庭住址:%sn",prear->address );
		printf("入学英语分数:%dn",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("专业有:%dn性别有:%dn年龄有:%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("%sn",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("nn");
}
int main()
{
		system("color 70");

	struct Linknode *p=Linklist();

	int n;
	while(1)
	{
		    	printf("tttttt欢迎来到学生管理系统!n");
			printf("ttttt******操作1是新增学生信息******nttttt******操作2是删除学生信息******nttttt******操作3是得到学生的信息****nttttt******操作4是学生信息搜索******nttttt******操作5是统计人数**********nttttt******操作6是英语排名**********nttt");
			printf("tt******操作7是退出学生信息******ntttn");
			scanf("%d",&n);
			function(p,n);
			system("pause");
			system("cls");
	}
    
    
	return 0;
}

代码演示 

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


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

#include
#include
#include
#include
#include
#include
#include                                                                                                                                                                                                     
#include
#include   // 用于stringstream sin(sline);
#include//用于登录密码; 
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("tt姓名t性别t专业        出生日期    家庭住址    英语分数n");
	S *prear=header->next ;
	while(prear!=NULL)
	{
	    printf("tt%-8s%-8s%-12s%-12s%-12s%-5dn",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("姓名:%sn",prear->name );
		printf("性别:%sn",prear->sex );
		printf("专业:%sn",prear->major );
		printf("出生日期:%sn",prear->birthday );
		printf("家庭住址:%sn",prear->address );
		printf("入学英语分数:%dn",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("专业有:%dn性别有:%dn年龄有:%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("%sn",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<
name<<" "<
sex<<" "<
major<<" "<
birthday<<" "<
address<<" "<
score<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<0)
				   {
				   	 i--;	
				   }
				}
				if(('a'<=ch&&ch<='z')||('0'<=ch&&ch<='9'))
				{
					putchar('*');
					mimaa[i]=ch;
					i++;
				}
				if(i==45) break;
			}
			mimaa[i]='';
			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("tttttt欢迎来到学生管理系统!n");
			printf("ttttt******操作1是新增学生信息******nttttt******操作2是删除学生信息******nttttt******操作3是得到学生的信息****nttttt******操作4是学生信息搜索******nttttt******操作5是统计人数**********nttttt******操作6是英语排名**********nttt");
			printf("tt******操作7是退出学生信息******ntttn");
			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("nn");
		
			system("pause");
			system("cls");
		    aa.listtofile(p);
	}
	return 0;
}

QQ录屏20220525210737

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928572.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号