精华内容
下载资源
问答
  • 主要为大家详细介绍了Python实现学生成绩管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • python编写的学生信息管理系统+MySQL,适合刚学python的新手
  • 5.管理员可查看所有学生的排名成绩和对指定学生查看排名成绩信息 6.管理员可查看所有学生某学科的平均分 7.管理员可查看多有学生某学科的及格人数和不及格人数 8.管理员可对某学科成绩信息进行数据备份 关于模块:...
  • JavaSwing实现的艺考服务学生管理系统,其中包括面板、表格、Excel导入导出、按钮事件、菜单组等功能。导出jar包后可以打包成exe可执行文件,实在是居家旅行、杀人越货必备之良品。
  • 学生信息管理系统 一、源码描述 本程序为学生信息管理系统。是一个简易的ASP.NET系统,主要实现登录功能和两个模块信息的增删改查。 二、功能介绍 1、管理员信息管理:添加、修改、删除、查找用户信息,添加...
  • 学生管理系统(JAVA+GUI+IO);JAVA-学生管理系统(最简单的SWING+IO读写文件持久化数据)详细代码及步骤
  • 管理员用户可以登陆系统学生和老师的信息进行增加、删除、修改、查询等基本功能,而且可以对学生的成绩以.xls的文件格式进行导入导出。同时,管理员有权对授课老师的课程、班级进行调整,并且可以总览所有学生的...
  • 简单版本学生信息管理系统,用python基础语法实现,基于python 3.6 容错率很高的代码,做了很多异常处理功能,出错也不会丢失信息 启动时自动从文件中读取已有学生信息,退出时自动保存 程序分3个模块: Menu:进行...
  • printf(" 学生成绩管理系统 \n"); printf(" 【1】 输入学生信息\n"); printf(" 【2】 修改学生信息\n"); printf(" 【3】 删除学生信息\n"); printf(" 【4】 按姓名查询学生信息\n"); printf(" 【5】 ...

    总体功能:
    大体框架与功能都有,其他功能自行删改嘻嘻。
    void input(struct student stu[]); //输入
    void amend(struct student stu[]); //修改
    void remove(struct student stu[]); //删除
    void namefind(struct student stu[]);//按名字查询
    void numfind(struct student stu[]);//按学号查询
    void classfind(struct student stu[]);//按班级查询
    void printfsort1(struct student stu[]); //总分排名
    void printfsort2(struct student stu[]);//单科排名
    void printfsort3(struct student stu[]);//优秀率
    void savefile(struct student stu[]);//保存成文件
    void readfile(struct student stu[]);//导入文件

    功能图
    导入文件的格式为txt 内容排版例子:

    17001018 廖 10 高数 91 英语 89
    17001019 凌 10 高数 61 英语 59
    17001020 刘 10 高数 98 英语 81
    17001021 陆 10 高数 99 英语 99
    17001022 达 11 高数 81 英语 89
    17001118 蒙 11 高数 91 英语 69
    17001119 梁 11 高数 71 英语 59
    17001120 杜 11 高数 88 英语 93
    17001121 黄 11 高数 69 英语 80
    17001122 李 11 高数 91 英语 99
    17001016 萧 10 高数 71 英语 69
    17001027 冰 10 高数 98 英语 89
    17001028 炎 10 高数 89 英语 90
    17001037 杨 10 高数 28 英语 49
    17001038 韩 10 高数 59 英语 60
    17001021 飞 10 高数 89 英语 99
    

    代码如下:

    #include "stdafx.h"
    #include<stdio.h>
    #include<stdlib.h> //清屏 system("cls");
    #include<string.h>
    #define N 30
    
    void input(struct student stu[]);     //输入
    void amend(struct student stu[]);  //修改
    void remove(struct student stu[]); //删除
    void namefind(struct student stu[]);//按名字查询
    void numfind(struct student stu[]);//按学号查询
    void classfind(struct student stu[]);//按班级查询
    void printfsort1(struct student stu[]); //总分排名
    void printfsort2(struct student stu[]);//单科排名
    void printfsort3(struct student stu[]);//优秀率
    void savefile(struct student stu[]);//保存成文件
    void readfile(struct student stu[]);//导入文件
    
    int n = 1;
    struct student
    {	
    	int num;
    	char name[20];
    	int Class;
    	char classname1[20]; 
    	int score1;
    	char classname2[20]; 
    	int score2;
    	int score;
    	
    };
    
    int main()
    {
    	while(1)
    	{
    		system("cls");
    		int a;
    		struct student stu[N],*p=stu;
    		printf("----------------------------------------------------\n");
    		
    		printf("               学生成绩管理系统                     \n");
    		
    		printf(" 【1】 输入学生信息\n");
    		printf(" 【2】 修改学生信息\n");
    		printf(" 【3】 删除学生信息\n");
    		printf(" 【4】 按姓名查询学生信息\n");
    		printf(" 【5】 按学号查询学生信息\n");
    		printf(" 【6】 按班级查询学生信息\n");
    		printf(" 【7】 查看学生总分排名信息\n");
    		printf(" 【8】 查看学生单科排名信息\n");
    		printf(" 【9】 查看学生优秀率信息\n");
    		printf(" 【10】 导入学生信息文件\n");
    		printf(" 【11】 保存学生信息文件\n");
    		printf(" 【0】 退出系统\n");
    		
    		printf("----------------------------------------------------\n");
    		
    		printf(" 输入0到11选择系统功能\n");
    		scanf("%d",&a);
    		
    		switch(a)
    		{
    		case 0: printf("		退出系统成功!\n");system("pause");return 0;
    		case 1: input(p);
    			break;
    		case 2: amend(p);
    			break;
    		case 3: remove(p);
    			break;
    		case 4: namefind(p);
    			break;
    		case 5: numfind(p);
    			break;
    		case 6: classfind(p);
    			break;
    		case 7: printfsort1(p);
    			break;
    		case 8: printfsort2(p);
    			break;
    		case 9: printfsort3(p);
    			break;
    		case 10: readfile(p);
    			break;
    		case 11: savefile(p);
    			break;
    			
    		default: 		printf(" 输入错误,请重新输入\n");system("pause");break;
    			
    		}
    	
    	}
    	return 0;
    	
    }
    
    void input(struct student stu[])//OK
    {
    	printf(" 输入添加学生信息的人数\n");
    	int b,c=0;
    	scanf("%d",&c);
    	for(int i=1;i<=c;i++)
    	{
    		
    		printf("  第%d个学生 输入:学号 名字 班级 课程名字1 成绩1 课程名字2 成绩2 \n",i);
    		scanf("%d%s%d%s%d%s%d",&stu[n].num,&stu[n].name,&stu[n].Class,&stu[n].classname1,&stu[n].score1,&stu[n].classname2,&stu[n].score2);
    		
    		stu[n].score=stu[n].score1+stu[n].score2;
    		n++;
    		
    	}
    	if(c!=0&&c>0)printf("\n添加成功!\n\n");  
    	system("pause");  
    	system("cls");
    	
    	printf(" 输入0结束添加,输入1继续添加。\n");
    	scanf("%d",&b);
    	switch(b)
    	{
    	case 0: printf("		结束添加成功!\n");
    		system("pause");
    		break;
    	case 1: input(stu); 
    		break;
    	default: 		printf(" 输入错误,请重新输入\n");system("pause");
    		break;
    	}
    	
    }
    void amend(struct student stu[])  //修改
    {
    	int i,j,o,l,b;  
        char a[20]; 
    	printf(" 选择修改方式1.学号 2.姓名\n");
    		scanf("%d",&l);
    	switch(l)
    	{
    	case 1:
    	printf("输入修改学生的学号:\n");
    	scanf("%d",&b); 
    	for(i=0;i<n;i++)  
        {  
            if(b==stu[i].num)  
            {  
                printf("学号:%d\n",stu[i].num);  
                printf("姓名:%s\n",stu[i].name);  
                printf("班级:%d\n",stu[i].Class);  
                printf("%s的成绩%d\n",stu[i].classname1,stu[i].score1);  
                printf("%s的成绩%d\n",stu[i].classname1,stu[i].score2);  
                printf("总成绩:%d\n\n",stu[i].score); 
    			o=i;
    			break;
    			
    		}
    	}
    	if(i==n) {printf("输入错误或查询学生不存在\n");system("pause"); return;}
    		break;
    	case 2:
        printf("输入修改学生的名字:\n");  
        scanf("%s",&a);                           //通过输入需要修改信息的学号找到   
        for(i=0;i<=n;i++)  
        {    
            if(strcmp(a,stu[i].name)==0)  
            {  
                printf("学号:%d\n",stu[i].num);  
                printf("姓名:%s\n",stu[i].name);  
                printf("班级:%d\n",stu[i].Class);  
                printf("%s的成绩%d\n",stu[i].classname1,stu[i].score1);  
                printf("%s的成绩%d\n",stu[i].classname1,stu[i].score2);  
                printf("总成绩:%d\n\n",stu[i].score);  
                o=i;
    			break;
            }
    	}
    		if(i==n) {printf("输入错误或查询学生不存在\n");system("pause"); return;}
          
    	break;
    	}
    	printf(" 输入0到9选择修改的内容\n");
        printf("1.修改学号\n2.修改姓名\n3.修改班级\n4.修改成绩1\n5.修改成绩2\n6.修改总分\n请选择:");  
        scanf("%d",&j);                                                  //选择修改的信息  
        switch(j)                                                       
        {  
    	case 1:  
    		printf("学号修改为:");  
    		scanf("%d",&stu[o].num);  
    		break;  
    		
    	case 2:  
    		printf("姓名修改为:");  
    		scanf("%s",&stu[o].name);  
    		break;  
    	case 3:  
    		printf("班级修改为:");  
    		scanf("%d",&stu[o].Class);  
    		break;  
    	case 4:  
    		printf("成绩1修改为:");  
    		scanf("%d",&stu[o].score1);  
    		break;  
    	case 5:  
    		printf("成绩修改为:");  
    		scanf("%d",&stu[o].score2);  
    		break;  
    	case 6:  
    		printf("总分修改为:");  
    		scanf("%d",&stu[o].score);  
    		break;  
        }  
        printf("\n修改成功!\n\n");  
        system("pause");  
        system("cls");  
    }
    void remove(struct student stu[]) //删除OK
    {
    	
        char a[20];  
        printf("请输入要删除学生的姓名\n");  
        scanf("%s",&a);  
        for(int i=0;i<n;i++)  
            if(strcmp(a,stu[i].name)==0)  
            {  
                while(i<n)  
                {  
                    stu[i]=stu[i+1];  
                    i++;  
                }  
                n--;  
    		}
    		printf("\n删除成功!\n\n");
    		system("pause");  
    		system("cls"); 
    }
    void namefind(struct student stu[]) // ok
    {	
        char a[20];  
        printf("输入需要查询的姓名:\n");  
        scanf("%s",&a);  
        for(int i=0;i<=n;i++)  
        {  
            if(strcmp(a,stu[i].name)==0)  
            {  
                printf("学号:%d\n",stu[i].num);  
                printf("姓名:%s\n",stu[i].name);  
                printf("班级:%d\n",stu[i].Class);  
                printf("%s的成绩%d\n",stu[i].classname1,stu[i].score1);  
                printf("%s的成绩%d\n",stu[i].classname1,stu[i].score2);  
                printf("总成绩:%d\n\n",stu[i].score);  
                break;
    		}
    		if(i==n) printf("输入错误或查询学生不存在\n");
    	}
    	system("pause");  
        system("cls");  
    	
    }
    void numfind(struct student stu[])
    {
    	int a;  
        printf("输入需要查询的学号:\n");  
        scanf("%d",&a);  
        for(int i=0;i<n;i++)  
        {  
            if(a==stu[i].num)  
            {  
                printf("学号:%d\n",stu[i].num);  
                printf("姓名:%s\n",stu[i].name);  
                printf("班级:%d\n",stu[i].Class);  
                printf("%s的成绩%d\n",stu[i].classname1,stu[i].score1);  
                printf("%s的成绩%d\n",stu[i].classname1,stu[i].score2);  
                printf("总成绩:%d\n\n",stu[i].score);  
    			break;
    		}
    		if(i==n) printf("输入错误或查询学生不存在\n");
    	}
    	system("pause");  
        system("cls");  
    }
    void classfind(struct student stu[]) //OK
    {
    	int a,b; 
        printf("输入需要查询的班级:\n");  
        scanf("%d",&a);  
        for(int i=0;i<n;i++)  
        {  
            if(a==stu[i].Class)  
            {  
                printf("%d.姓名:%s 学号:%d\n",i,stu[i].name,stu[i].num);  
    			
    		}
    	}
    	printf("输入要查看学生前的序号\n");
    	scanf("%d",&b);  
    	if(stu[b].num>0)
    	{
    		printf("学号:%d\n",stu[b].num);  
    		printf("姓名:%s\n",stu[b].name);  
    		printf("班级:%d\n",stu[b].Class);  
    		printf("%s的成绩%d\n",stu[b].classname1,stu[b].score1);  
    		printf("%s的成绩%d\n",stu[b].classname1,stu[b].score2);  
    		printf("总成绩:%d\n\n",stu[b].score); 
    	}
    	else printf("输入错误或查询学生不存在\n");
    	
    	system("pause");  
        system("cls"); 
    }
    void printfsort1(struct student stu[]) //总分排名OK
    {
    	struct student t;  
        int i,j;  
        printf("	%d 个学生总分排名:\n",n-1);  
        for(i=1;i<n;i++)  
        {  
            for(j=i+1;j<n;j++)                 
            {  
    			
                if(stu[i].score<=stu[j].score)    
                {  
                    t=stu[i];                 
                    stu[i]=stu[j];                 
                    stu[j]=t;                  
                }  
            }  
        }  
    	printf("排名\t学号\t\t名字\t班级\t总分\n");  
    	for(i=1;i<n;i++)  
    	{ 		    
    		printf(" %d\t%d\t%s\t%d\t%d\n",i,stu[i].num,stu[i].name,stu[i].Class,stu[i].score);
    		
    	}
        system("pause");  
        system("cls");  
    }
    void printfsort2(struct student stu[])//单科排名
    {
    	struct student t;  
        int i,j,a;  
    	printf("选择要查看的科目排名:1.%s 2.%s\n",stu[n-1].classname1,stu[n-1].classname2);
    	scanf("%d",&a); 
    	switch(a)                                                       
        {  
    	case 1: 
    		printf("	%d 个学生排名:\n",n-1);  
    		for(i=1;i<n;i++)  
    		{  
    			for(j=i+1;j<n;j++)                 
    			{  
    				
    				if(stu[i].score1<=stu[j].score1)    
    				{  
    					t=stu[i];                 
    					stu[i]=stu[j];                 
    					stu[j]=t;                  
    				}  
    			}  
    		}  
    		printf("排名\t学号\t\t名字\t班级\t%s分数\n",stu[n-1].classname1);  
    		for(i=1;i<n;i++)  
    		{ 		    
    			printf(" %d\t%d\t%s\t%d\t%d\n",i,stu[i].num,stu[i].name,stu[i].Class,stu[i].score1);
    			
    		} break;
    	case 2: 
    		printf("	%d 个学生排名:\n",n);  
    		for(i=1;i<n;i++)  
    		{  
    			for(j=i+1;j<n;j++)                 
    			{  
    				
    				if(stu[i].score2<=stu[j].score2)    
    				{  
    					t=stu[i];                 
    					stu[i]=stu[j];                 
    					stu[j]=t;                  
    				}  
    			}  
    		}  
    		printf("排名\t学号\t名字\t班级\t%s分数\n",stu[n-1].classname2);  
    		for(i=1;i<n;i++)  
    		{ 		    
    			printf(" %d\t%d\t%s\t%d\t%d\n",i,stu[i].num,stu[i].name,stu[i].Class,stu[i].score2);
    			
    		} break;
    	}
    	system("pause");  
        system("cls");  
    }
    void printfsort3(struct student stu[])//优秀率OK
    {
    	int count1=0,count2=0; 
    	float s;
    	int i,j,a;  
    	printf("选择要查看的优秀率:1.班级 2.年级\n");
    	scanf("%d",&a);
    	switch(a)
    	{
    	case 1:
    		printf("输入需要查看的班级:\n");
    		scanf("%d",&j);
    		printf("\t%d班优秀学生名单:\n",j);
    		printf("\t学号\t\t名字\t班级\t总分\n"); 
    		for(i=1;i<n;i++)  
    		{  
    			if(stu[i].Class==j) count2++;
    		
    			if(stu[i].score>=180&&stu[i].Class==j)    
    			{  
    				printf("\t%d\t%s\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].Class,stu[i].score); 
    				count1++;
    			}  
    			
    		} 
    		if(count2==0) printf("没有达到优秀的学生\n");
    		else
    		{
    		s=(float)count1/count2;
    		printf("%d班优秀率为:%f\n\n",j,s);
    		}
    		count1=count2=0;
    		printf("\t%d班不及格学生名单:\n",j);
    		printf("\t学号\t\t名字\t班级\t总分\n"); 
    		for(i=1;i<n;i++)  
    		{  
    			if(stu[i].Class==j) count2++;
    		
    			if(stu[i].score<120&&stu[i].Class==j)    
    			{  
    				printf("\t%d\t%s\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].Class,stu[i].score); 
    				count1++;
    			}  
    			
    		} 
    		if(count2==0) printf("没有不及格的学生\n");
    		else
    		{
    		s=(float)count1/count2;
    		printf("%d班不及格率为:%f\n",j,s);
    		}
    
    
    
    		break;
    	case 2:
    		printf("\t年级优秀学生名单:\n");
    		printf("\t学号\t\t名字\t班级\t总分\n"); 
    		for(i=1;i<n;i++)  
    		{  
    			
    			if(stu[i].score>=180)    
    			{  
    				printf("\t%d\t%s\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].Class,stu[i].score); 
    				count1++;
    			}  
    			
    		}  
    		if(count1==0) printf("没有达到优秀的学生\n");
    		s=(float)count1/(n-1);
    		printf("年级优秀率为:%f\n\n",s);
    		count1=count2=0;
    		printf("\t年级不及格学生名单:\n");
    		printf("\t学号\t\t名字\t班级\t总分\n"); 
    		for(i=1;i<n;i++)  
    		{  
    			if(stu[i].score<120)    
    			{  
    				printf("\t%d\t%s\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].Class,stu[i].score); 
    				count1++;
    			}  
    			
    		} 
    		if(count1==0) printf("没有不及格的学生\n");
    		else
    		{
    		s=(float)count1/(n-1);
    		printf("年级不及格率为:%f\n",s);
    		}
    
    		break;
    	}
    	
    	
    	
        system("pause");  
        system("cls");
    }
    
    void readfile(struct student stu[])
    {
    	int i =1,j=n;
    	char file[200];
    	
    	FILE *fp;
    	printf("输入需要导入的文件位置和文件名:\n");
    	scanf("%s",&file);
    	
    	//char file[200]="C:\\Users\\23607\\Desktop\\c.txt";
    	
    	if((fp=fopen(file,"r"))==NULL) {printf("输入错误或者文件无法打开\n");	system("pause"); return;}
    	
    	while(!feof(fp))                     //读取一组数据后指针指向下一组数据,并且判断是否指向最后一行   
        {   
            fscanf(fp,"%d%s%d%s%d%s%d",&stu[n].num,&stu[n].name,&stu[n].Class,&stu[n].classname1,&stu[n].score1,&stu[n].classname2,&stu[n].score2);
    		
    		
    		n++;
        } 
    	n--;
    
    	printf("以下学生已导入!\n");
    	for(i=j;i<n;i++)
    	{
    		
    		printf("学号:%d\t",stu[i].num);  
    		printf("姓名:%s\t",stu[i].name);  
    		printf("班级:%d\t",stu[i].Class);  
    		printf("%s的",stu[i].classname1);
    		printf("成绩:%d\t",stu[i].score1);  
    		printf("%s的",stu[i].classname2);
    		printf("成绩:%d\t",stu[i].score2);
    		stu[i].score=stu[i].score1+stu[i].score2;
    		printf("总成绩:%d\t",stu[i].score);
    		printf("\n");
    	}
    	
    	
    	fclose(fp);
    	system("pause");  
    	system("cls");
    }
    void savefile(struct student stu[])
    {
    	int i =1;
    	char file[200];
    	
    	FILE *fp;
    	printf("输入需要保存的文件位置和文件名:\n");
    	scanf("%s",&file);
    	
    	//char file[200]="C:\Users\23607\Desktop\c.txt";
    	
    	if((fp=fopen(file,"w"))==NULL) {printf("输入错误或者文件无法打开\n");	system("pause"); return;}
    	
    	//	for (i=1;i<n;i++) fwrite(&stu[i],sizeof(struct student),sizeof(struct student),fp);    
    	
    	for (i=1;i<n;i++)                     
        {   
            fprintf(fp,"%d %s %d %s %d %s %d\n",stu[i].num,stu[i].name,stu[i].Class,stu[i].classname1,stu[i].score1,stu[i].classname2,stu[i].score2);
    		
    		
    		
        } 
    	
    	printf("以下学生已保存到位置为%s的文件!\n",file);
    	for(i=1;i<n;i++)
    	{
    		
    		printf("学号:%d\t",stu[i].num);  
    		printf("姓名:%s\t",stu[i].name);  
    		printf("班级:%d\t",stu[i].Class);  
    		printf("%s的",stu[i].classname1);
    		printf("成绩:%d\t",stu[i].score1);  
    		printf("%s的",stu[i].classname2);
    		printf("成绩:%d\t",stu[i].score2);
    		stu[i].score=stu[i].score1+stu[i].score2;
    		printf("总成绩:%d\t",stu[i].score);
    		printf("\n");
    	}
    	
    	
    	fclose(fp);
    	system("pause");  
    	system("cls");
    }
    
    

    蟹蟹~

    展开全文
  • 学生信息管理系统

    2018-11-26 10:58:52
    学生信息管理系统,里面包含读取XML文件,JSON解析,QCustomPlot的使用,以及导入导出Excel,对数据库的操作,以及界面美化使用QSS等等
  • 通过Python3.7读取TXT文档数据,进行学生管理系统的增删改查操作
  • python简单的学生信息管理系统-文件

    千次阅读 多人点赞 2020-04-06 18:04:30
    python简单的学生信息管理系统-文件版)功能如下主函数部分增加学生信息修改学生信息删除学生信息查询学生显示所有学生的信息将数据录入文件读取文件数据 学了一段时间的python后,自己动手做了一个函数版-简单的...

    学习文件模块后,将之前做的学生信息管理系统添加文件模块。

    功能如下

    1. 新增学生信息;
    2. 修改学生信息;
    3. 删除学生信息;
    4. 查询学生信息;
    5. 显示学生信息;
    6. 将数据录入文件;
    7. 读取文件数据;
    8. 退出系统。
      在这里插入图片描述

    主函数部分

    这里定义一个列表L,用来存储学生信息。
    在这里插入图片描述

    增加学生信息

    将学生信息保存为字典添加到列表里。

    def add():
        dict1 = {}
        sName = input("请输入学生姓名:")
        sAge = eval(input("请输入学生年龄:"))
        sNumber = eval(input("请输入学生学号:"))
        tele_num = eval(input("请输入手机号码:"))
        dict1["name"] = sName
        dict1["age"] = sAge
        dict1["sNumber"] = sNumber
        dict1["tele_num"] = tele_num
        L.append(dict1)
        print("增加成功")
        input("按任意键返回菜单")
    

    在这里插入图片描述

    修改学生信息

    这里以学号为索引值,如果学号不在学生库里则提示无此学生。

    def modify():
        num = eval(input("请输入学生学号:"))
        index1 = -1
        for i,dict in enumerate(L):
            if dict.get("sNumber") == num:
                index1 = i
                break
        if index1 != -1:
            L[index1]['name'] = input("请输入新的姓名:")
            L[index1]['age'] = eval(input("请输入新的年龄:"))
            L[index1]['sNumber'] = eval(input("请输入新的学号:"))
            L[index1]['tele_num'] = eval(input("请输入新的手机号:"))
            print("修改成功")
        else:
            print("无此学生")
        input("按任意键返回菜单")
    

    删除学生信息

    删除学生也是以学号为索引值,如果学号不在学生库里则提示无此学生。

    def delete():
        num = eval(input("请输入要删除学生的学号:"))
        index1 = -1
        for i, dict in enumerate(L):
            if dict.get("sNumber") == num:
                index1 = i
                break
        if index1 != -1:
            del L[index1]
            print("删除成功")
        else:
            print("无此学生")
        input("按任意键返回菜单")
    

    查询学生

    查询成功此显示学生信息,否则提示无此学生。

    def search():
        num = eval(input("请输入要查询学生的学号:"))
        index1 = -1
        for i, dict in enumerate(L):
            if dict.get("sNumber") == num:
                index1 = i
                break
        if index1 != -1:
            print("姓名:%s 年龄:%d 学号:%d 手机号码:%d" % (L[index1]["name"], L[index1]["age"], \
                                           L[index1]["sNumber"], L[index1]["tele_num"]))
        else:
            print("无此学生")
        input("按任意键返回菜单")
    

    显示所有学生的信息

    def prin():
        if len(L) == 0:
            print("无成员")
        else:
            for dict1 in L:
                print("姓名:%s 年龄:%d 学号:%d 手机号码:%d"%(dict1["name"], dict1["age"],\
                                           dict1["sNumber"], dict1["tele_num"]))
        input("按任意键返回菜单")
    

    将数据录入文件

    因为每个学生的信息是字典类型,所以录入之前先转化为字符串。

    def write_file():
        file = open("student_list.data", 'w', encoding='utf-8')
        for i in L:
            file.write(str(i) + '\n')
        file.close()
        input("录入成功,按任意键返回菜单!")
    

    读取文件数据

    读取到的信息是字符串,可以使用eval()函数将信息变为原来的字典类型,再添加到列表里。

    def read_file():
        try:
            file = open("student_list.data", 'r', encoding='utf-8')
            content = file.readlines()
            for i in content:
                L.append(eval(i))
            file.close()
            input("读取完成,按任意键返回菜单!")
        except:
            print("文件不存在")
    
    展开全文
  • (1)某大学院校拟开发一套学生成绩管理系统。 (2)项目使用三层架构开发 (3)使用LinqToSql访问数据库 (4)开发环境 windows +visualstudio 2010+sqlserver2008 实现效果: 可以通过本系统添加学生信息 可以...
  • python实现学生管理系统(包含文件操作) 前言:这个程序是在B站看相关教程学会的 好歹是敲完了 但是其中也有一些小bug或许没有被发现,并且有的地方还可以精简,发此博客为了记录自己一步步的成长之路~ 1.需求...

    python实现学生管理系统(包含文件操作)

    • 前言:这个程序是在B站看相关教程学会的 好歹是敲完了 但是其中也有一些小bug或许没有被发现,并且有的地方还可以精简,发此博客为了记录自己一步步的成长之路~

    1.需求分析

    首先是学生管理系统的功能,分为7个部分,分别是:
    1>录入学生信息、
    2>查找学生信息、
    3>删除学生信息、
    4>修改学生信息、
    5>学生排名、
    6>统计学生总人数、
    7>显示全部学生信息。

    2.功能细化

    • 录入的学生信息包括含学号,姓名,成绩(英语、数学、C语言、python、Java)
    • 查找学生信息可以通过学号查找、也可以通过姓名查找
    • 删除、修改学生信息只能通过学号删改
    • 排名可以根据成绩(各科成绩、总成绩)排名,或者根据学号排名。排序可以是从大到小,也可以是从小到大。

    3.具体实现

    import os 	#引入内置模块
    filename='student.txt'	#将被创建的储存学生信息的文本文件取名为student.txt
    
    def main():
        while True:
            menu()	#调用菜单函数
            choice=int(input('请选择:'))
            if choice in [0,1,2,3,4,5,6,7]:	#每个数字的功能在下面菜单当中
                if choice==0:
                    answer=input('您确定要退出系统吗?y/n:')
                    if answer=='y'or answer=='Y':
                        print('退出成功,感谢您的使用!')
                        break
                    else:
                        continue
                elif choice==1:
                    insert()	#插入学生信息
                elif choice==2:
                    search()	#查询学生信息
                elif choice==3:
                    delete()	#删除学生信息
                elif choice==4:
                    modify()	#修改学生信息
                elif choice==5:
                    sort()	#对学生信息进行排序
                elif choice==6:
                    total()	#统计学生信息总人数
                elif choice==7:
                    show()	#显示全部学生信息
            else:
                continue
    
    #菜单界面
    def menu():
        print('''
    ----------------------------------------------------------------------
    --------------------------欢迎来到学生信息管理系统--------------------
    ----------------------------------------------------------------------
                            1.录入学生信息
                            2.查找学生信息
                            3.删除学生信息
                            4.修改学生信息
                            5.学生成绩排名
                            6.统计学生总人数
                            7.显示全部学生信息
                            0.退出系统
    ----------------------------------------------------------------------
    ----------------------------------------------------------------------
    ----------------------------------------------------------------------''')
        return
    
    #用来将学生信息储存在文本文件中
    def save(lst):
        try:
            stu_txt=open(filename,'a',encoding='utf-8')	#以追加方式打开文本文件
        except:
            stu_txt=open(filename,'w',encoding='utf-8')	#如果刚开始没有文本文件,则创建一个文本文件
        for item in lst:
            stu_txt.write(str(item)+'\n')
        stu_txt.close()
    
        
    #录入学生信息
    def insert():
        stu_list=[]  	#创建一个学生信息列表
        while True:
            id=input('请输入学生ID:')
            if not id:
                break
            name=input('请输入姓名:')
            if not name:
                break
            try:
                english=int(input('请输入英语成绩:'))
                math=int(input('请输入数学成绩:'))
                cguage=int(input('请输C语言成绩:'))
                python=int(input('请输入Python成绩:'))
                java=int(input('请输入Java成绩:'))
            except:
                print('输入无效,不是整数类型,请重新输入')
                continue
            #将录入的学生保存到字典当中
            student={'id':id,'name':name,'english':english,'math':math,'cguage':cguage,'python':python,'java':java}
            #将学生信息放到列表中
            stu_list.append(student)
            answer=input('是否继续添加?y/n:')
            if answer=='y'or answer=='Y':
                continue
            else:
                break
        save(stu_list) 	#将创建的学生列表传进此函数中保存在文件里
        print('学生信息录入完毕!')
        return
    
    
    #查找学生信息
    def search():
        stu_dply=[]		#创建学生列表并且初始化,这个列表就是要被查询的学生列表
        				#为什么要创建列表?当通过姓名进行查询时,可能会存在同名现象,因此需要列表存储多个学生信息
        stu_id=''
        stu_name=''
        if os.path.exists(filename):
            order=int(input('按ID查找请输入1,按姓名查找请输入2:'))
            if order==1:
                stu_id=input('请输入学生ID:')
            elif order==2:
                stu_name=input('请输入学生姓名:')
            else:
                print('What fucking problem with you ???')
                search()		#调用自己重新输入(有两种方式 循环和递归 这里选择了递归)
                
            with open(filename,'r',encoding='utf-8') as file:	#以只读形式打开文本文件
                stu_old=file.readlines()		#将文件内所有的学生信息储存在stu_old列表里
                for item in stu_old:		#遍历每个学生的信息
                    d=dict(eval(item))	#将每个学生信息转换为字典
                    if stu_id!='':		#当输入的要查询的学生信息合法
                        if d['id']==stu_id:	#当字典里的学生信息id跟输入的学生id相同
                            stu_dply.append(d)	#将此学生字典追加到将要展示的学生列表中
                    elif stu_name!='':
                        if d['name']==stu_name:
                            stu_dply.append(d)
            #显示查询结果
            show_student(stu_dply)
            #请空列表
            stu_dply.clear()
            answer=input('是否继续查询?y/n:')
            if answer=='y'or answer=='Y':
                search()
            else:
                print('ojbk!')
        return
    
    
    #删除学生信息
    def delete():
        while True:	#这里用了循环的方式执行可能出现的重复操作,而不是递归
            stu_id=input('请输入要删除的学生ID:')
            if stu_id!='':
                if os.path.exists(filename):	#判断学生信息文件是否存在
                    with open(filename,'r',encoding='utf-8') as file:
                        stu_old=file.readlines()    #readline返回的是字符串                   #print(stu_old)
            else:
                stu_old=[]
            flag=False   #标记是否删除
            if stu_old:     #原文件不为空
                with open(filename,'w',encoding='utf-8') as wfile:
                    d={}
                    for item in stu_old:    #item是字符串
                        d=dict(eval(item))  #将字符串转成字典
                        if d['id']!=stu_id:
                            wfile.write(str(d)+'\n')
                        else:
                            flag=True   #表示不需要删除
                    if flag:
                        print(f'id为{stu_id}的学生信息已被删除')
                    else:
                        print(f'没有找到id为{stu_id}的学生信息')
            else:
                print('无该学生信息!')
                break
            show()  #删除之后重新显示所有学生信息
            answer=input('是否继续删除学生信息?y/n:')
            if answer=='y' or answer=='Y':
                continue
            else:
                break
        return
    
    #修改学生信息
    def modify():
        while True:
            stu_id=input('请输入要修改的学生ID:')
            if stu_id!='':
                if os.path.exists(filename):
                    with open(filename,'r',encoding='utf-8') as file:
                        stu_old=file.readlines()
            else:
                stu_old=[]
            flag=False
            if stu_old:
                with open(filename,'w',encoding='utf-8') as wfile:
                    for item in stu_old:
                        d=dict(eval(item)) 
                        if d['id']!=stu_id:
                            wfile.write(str(d)+'\n')
                        else:
                            flag=True
                    if flag:
                        print('找到这名学生,可以修改他的相关信息了!')
                        while True:
                            d['name']=input('请输入姓名:')
                            try:
                                d['english']=int(input('请输入英语成绩:'))
                                d['math']=int(input('请输入数学成绩:'))
                                d['cguage']=int(input('请输C语言成绩:'))
                                d['python']=int(input('请输入Python成绩:'))
                                d['java']=int(input('请输入Java成绩:'))
                                print('修改成功!')
                                break
                            except:
                                print('输入无效,不是整数类型,请重新输入')
                                continue
                        d['id']=stu_id
                        wfile.write(str(d)+'\n')
                    else:
                        print(f'没有找到id为{stu_id}的学生信息')
                    show()  #修改之后显示所有学生信息
                    answer=input('是否继续修改其他学生信息?y/n:')
                    if answer=='y' or answer=='Y':
                        continue
                    else:
                        break
        return
    
    
    #对学生信息排序
    def sort():
        show()
        if os.path.exists(filename):
            with open(filename,'r',encoding='utf-8') as file:
                stu_lst=file.readlines()
            stu_new=[]
            for item in stu_lst:
                d=dict(eval(item))
                stu_new.append(d)
        else:
            print('暂未保存学生信息!')
            return
        order=int(input('请选择(0升序,1降序):')) #False升序,True降序
        mode=int(input('请选择排序方式(1.英语成绩,2.数学成绩,3.Python成绩,4.C语言成绩,5.Java成绩,6.总成绩,0.ID):'))
        if mode==1:
            stu_new.sort(key=lambda i:int(i['english']),reverse=order)    #reverse是排序方式 x这个参数是字典
        elif mode==2:
            stu_new.sort(key=lambda i:int(i['math']),reverse=order)
        elif mode==3:
            stu_new.sort(key=lambda i:int(i['python']),reverse=order)
        elif mode==4:
            stu_new.sort(key=lambda i:int(i['cguage']),reverse=order)
        elif mode==5:
            stu_new.sort(key=lambda i:int(i['java']),reverse=order)
        elif mode==6:
            stu_new.sort(key=lambda i:int(i['english'])+int(i['math'])+int(i['python'])+int(i['cguage'])+int(i['java']),reverse=order)
        elif mode==0:
            stu_new.sort(key=lambda i:int(i['id']),reverse=order)
        else:
            print('输入有误,请重新输入。')
            sort()
        show_student(stu_new)
        return
    
    
    #统计学生总人数
    def total():
        if os.path.exists(filename):
            with open(filename,'r',encoding='utf-8') as file:
                students=file.readlines()
                if students:
                    print('一共有%d名学生'%len(students))
                else:
                    print('还没有录入学生信息')
        else:
            print('暂未保存学生信息')
        return
    
    
    #显示全部学生信息
    def show():
        stu_dply=[]
        if os.path.exists(filename):
            with open(filename,'r',encoding='utf-8') as file:
                students=file.readlines()
                if students:
                    for item in students:
                        d=dict(eval(item))
                        stu_dply.append(d)
                    show_student(stu_dply)
                else:
                    print('还没有录入学生信息')
        else:
            print('暂未保存学生信息')
        return
    
    #显示学生信息
    def show_student(lst):
        if len(lst)==0:
            print('没有查询到学生信息,无数据显示!')
            return
        #定义标题显示格式
        print('ID\t\t姓名\t\t英语成绩\t数学成绩\tC语言成绩\tPython成绩\tJava成绩\t总成绩\t')
        for item in lst:
            for index in item:
                print(item[index],end='\t\t')
            print(item['english']+item['math']+item['cguage']+item['python']+item['java'])
        print('按任意键继续')
        os.system('pause')
        
    if __name__=='__main__':            #以主函数运行
        main()
    
    展开全文
  • python 学生成绩管理系统(文件)

    千次阅读 2021-04-24 12:07:11
    #!/usr/bin/env python #-*- coding:utf-8 -*- # file:p6.py # author:ytytyt # datetime:2021/4/22 21:04 # software: PyCharm ''' this is function...# 用面向对象, 实现一个学生Python成绩管理系统; # 学.
    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    
    # file:p6.py
    # author:ytytyt
    # datetime:2021/4/22 21:04
    # software: PyCharm
    '''
    this is functiondescription
    '''
    # import module your need
    #使用pickle模块实现对象的写入文件
    import pickle
    
    # 六
    # 用面向对象, 实现一个学生Python成绩管理系统;
    # 学生的信息存储在文件中;
    # 学生信息的字段有(班级, 学号, 姓名, Python成绩)
    # 实现对学生信息及成绩的增, 删, 改, 查方法;
    class Student:
        def __init__(self,cla,no,name,score):
            self.cla=cla
            self.no=no
            self.name=name
            self.score=score
    # 测试用代码(将此代码运行可以快速创建一个studentinfo)
    # s1=Student("软件1902","123","张三",89)
    # s2=Student("计算机1901","421","李四",90)
    # with open("studentinfo.txt","wb") as file1:
    #     pickle.dump(s1,file1)
    #     pickle.dump(s2,file1)
    class frame:
        # 读取文件内容并存入列表,用序列化读取文件中的Student对象
        def __init__(self):
            self.stu_list=[]
            with open("studentinfo.txt","rb") as file1:
                while True:
                    try:
                        stu_obj=pickle.load(file1)
                        self.stu_list.append(stu_obj)
                    except EOFError:
                        break
        def displayallinfo(self):
            print("班级".ljust(10),"学号".ljust(10),"姓名".ljust(10),"python_score")
            for obj in self.stu_list:
                print(obj.cla.ljust(10),obj.no.ljust(10),obj.name.ljust(10),obj.score)
        def add(self):
            stu_info=input("请按格式输入班级,学号,姓名,python分数(物联1902 743 王五 92)").split()
            new_student=Student(stu_info[0],stu_info[1],stu_info[2],int(stu_info[3]))
            #更新列表
            self.stu_list.append(new_student)
            with open("studentinfo.txt","ab") as file1:
                pickle.dump(new_student,file1)
                print("添加成功")
        #按名字查找
        def search(self,name):
            # 记录索引值
            i=0
            for key in self.stu_list:
                if key.name == name:
                    print("查询成功:\n",key.cla.ljust(10), key.no.ljust(10), key.name.ljust(10), key.score)
                    return i
                else:
                    i+=1
            print("不存在该名字的学生")
            return -1
        #按名字删除
        def delstu(self,name):
            index=self.search(name)
            if index == -1:
                print("无法删除,原因如上")
                return
            else:
                self.stu_list.pop(index)
                print("已删除")
            #以可写的方式重置文件内容
            with open("studentinfo.txt", "wb") as file1:
                #把列表中的对象写到文件中去
                for key in self.stu_list:
                    pickle.dump(key,file1)
        #以名字为索引进行修改
        def update(self,name):
            index=self.search(name)
            if index == -1:
                return
            else:
                #要更新的学生信息
                update_stu = input("请按格式输入新的学生信息(物联1902 743 王五 92)").split()
                #创建学生对象
                new_stu = Student(update_stu[0], update_stu[1], update_stu[2], str(update_stu[3]))
                with open("studentinfo.txt","wb") as file1:
                    self.stu_list[index]=new_stu
                    for key in self.stu_list:
                        pickle.dump(key, file1)
                print("修改成功!")
    
    
    if __name__ == '__main__':
        MAIN=frame()
        while True:
            print("*"*10,"学生成绩管理系统","*"*10)
            print("1.增加学生信息")
            print("2.查询学生信息")
            print("3.修改学生信息")
            print("4.删除学生信息")
            print("5.显示所有学生信息")
            print("6.退出系统")
            k=int(input("请输入(1-6)"))
            if k==1:
                MAIN.add()
            elif k==2:
                stu_name=input("请输入要查询的学生姓名:")
                MAIN.search(stu_name)
            elif k==3:
                #先前的名字
                proname=input("请输入要修改的学生名")
                MAIN.update(proname)
                pass
            elif k==4:
                del_stu=input("请输入要删除的学生姓名")
                MAIN.delstu(del_stu)
            elif k==5:
                MAIN.displayallinfo()
            elif k==6:
                exit(0)
            else:
                print("输入有误请重新输入")
    
    
    
    
    
    
    
    
    

    基本实现的框架就这样了,可以自行拓展,记录一下小作业。

    展开全文
  • 学C++时做的学生管理系统,有导入数据和导出数据的功能。内附学生数据的txt文本
  • 期末考试作业,连接MySQL,不太好,请大神们帮忙指正错误。
  • 学生管理系统成教版

    2016-06-20 13:21:01
    本学员管理系统是专门为学习中心与函授站专门开发的一套学生管理软件。方便学生的新增与修改信息,与云盘搭配使用即可网络存储学生照片、报名表、以及各种文件,一个办公室同用一个账户还可以同步修改,如员工A新增...
  • 运用链表实现需求,学生通讯录基本信息主要包括:学号、姓名、性别、所属院系、专业、通讯地址、电话、QQ号、Email等,系统应能对这些基本信息进行管理。要求具有但不限于以下功能: 添加新学生信息、删除和修改...
  • 学生成绩管理系统能够实现对学生个人信息、成绩进行管理,能够上传学生照片,对学生成绩以柱状图的方式进行统计,而且能够将学生成绩导出为excel文件
  • 学生就业系统管理后台模板,前后端分离,前端vant 后端spring 配好了swagger,带数据库导出文件,可直接部署使用
  • Java 学生管理系统(txt导入导出

    千次阅读 2018-05-20 22:38:05
     System.out.println("*欢迎来到学生管理系统 *\n");  while(true) {  System.out.println("1.信息添加");  System.out.println("2.信息查看");  System.out.println("3.信息修改");  System.out....
  • 学生管理包含了学生信息的增删改查,这里我只讲最重要的根据模板导入和导出。 前端代码 <div> <div class="search-div"> <div class=""> <div class="layui-inlin...
  • 基于mysql 的 python学生信息管理系统(附带访问控制、数据导入导出、统计和可视化) 使用 python 自带的 tkinter 库实现基于 mysql 的简单图形化学生信息管理系统。在本地安装好 mysql 即可打开使用。功能有: 简单...
  • 翻了翻我的代码库,发现大一的时候编的还不错的程序,那时候刚学数据结构,实验题目是学生管理系统。现在看看这种纯朴的命令提示符程序感觉经典!主要是用单链表方式实现的学生管理系统,能添加、删除、显示、查找学生...
  • 结和网上资源自己整合的一个基于MFC和MySql数据库的学生管理系统;能够实现对数据库表单添加、删除和查询数据的功能;同时还能够实现学生信息表单的导出功能。
  • JavaWeb学生管理系统

    万次阅读 多人点赞 2019-07-09 15:50:32
    学生成绩管理功能 添加学生功能:姓名、学号、性别、出生年月日。(学号自动生成且唯一) 添加学生成绩功能:每个人都有数学、Java、英语、体育四门课,可分课程输入成绩。 根据学生学号查...
  • 学生成绩管理系统

    2018-12-10 22:22:25
    实现输入,显示,排序,删除,...主要通过利用c语言对文件的操作,将数据写入.txt的二进制文件中储存,在需要时进行相应操作。同时利用结构体将一名学生的数据定义为一种数据类型,达到一次对一个学生的数据进行操作。
  • ⑷ 将通讯录存入文件。能够打开并显示其中所存的同学信息,并可以进行后续的操作。 2.基本功能描述 ⑴ 添加,删除,修改,保存同学通讯录的信息; ⑵ 分类显示联系人信息; ⑶ 以文本形式导出同学通讯录信息。
  • 灵感来源于大一的c语言链表实现学生成绩管理系统,python版本相对而言简单太多,主要是拿来练练手,巩固下python基础语法。 上代码 目录结构 这个目录结构比较简单,就三个python文件和一个files文件夹,main.py 是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,089
精华内容 4,435
关键字:

学生管理系统如何导出文件