精华内容
下载资源
问答
  • 2021-12-13 10:58:25

    1. 学生管理系统功能介绍

    前面文章里介绍了结构体类型,知道结构体类型里可以存放不同的数据类型,属于一个有序的集合。

    这篇文章就使用结构体知识点完成一个小练习,使用结构体+数组设计一个简单的学生管理系统,作为结构体知识点的巩固练习。

    功能如下:

    (1). 欢迎界面提示

    (2). 输入密码登录

    (3). 功能: 录入学生信息、按照学号排序、按照成绩排序、输出所有学生信息、输出指定学生信息(学号、姓名、成绩)、计算成绩平均值值输出打印、删除指定学生信息、增加新的学生信息。

    (4). 功能模块采用菜单方式选择

    2. 框架设计

    #include <stdio.h>
    #include <stdlib.h>
    
    void  Display_info(void);
    
    char buff_user[50];
    char buff_password[50];
    int main()
    {
        int a,i;
        printf("------欢迎使用xxxx学生管理系统------\n");
    
        for(i=1;i<=3;i++)
        {
            printf("请输入用户名:");
            scanf("%s",buff_user);
            printf("请输入密码:");
            system("stty -echo"); //系统函数---调用系统的命令 关闭回显
            scanf("%s",buff_password);
            printf("\n");
            system("stty echo"); //系统函数---调用系统的命令 开回显
            //比较密码是否正确
            if(strcmp(buff_user,"wbyq")!=0 || strcmp(buff_password,"123456")!=0)
            {
                printf("密码或者用户错误.请重新输入,剩余次数:%d\n",3-i);
            }
            else break;
        }
        
        //比较密码是否正确
        if(strcmp(buff_user,"wbyq")!=0 || strcmp(buff_password,"123456")!=0)
        {
            printf("系统安全退出.\n");
            return 0;  //exit();  //终止进程
        }
    
    /*
    #include <stdlib.h>
    void exit(int status);   比如: exit(0);
    */
        while(1)
        {
            Display_info();
            scanf("%d",&a);
            switch (a)
            {
            case 1:
                printf("选择录取学生信息\n");
                break;
            case 2:
                printf("输出学生信息\n");
                break;
             //............
            default:
                break;
            }
        }
        return 0;
    }
    
    //显示提示信息
    void  Display_info(void)
    {
        printf("------欢迎使用xxxx学生管理系统------\n");
        printf("1. 录取学生信息\n");
        printf("2. 输出学生信息\n");
        printf("3. 打印成绩平均值\n");
        printf("4. 增加学生信息\n");
        printf("5. 按照成绩排序输出学生信息.\n");
        printf("6. 删除指定学生信息\n");
        printf("请选择功能:\n");
    }
    

    3. 完整代码

    #include <stdio.h>
    #include <stdlib.h>
    
    struct STU
    {
        char name[100]; //姓名
        int age; //年龄
        char number[100]; //学号
        float grade;//成绩
    };
    
    //全局变量定义区域
    char buff_user[50];
    char buff_password[50];
    struct STU stu_info[100];
    int stu_cnt=0;  //存放学生总人数
    
    //函数声明区域
    void  Display_info(void);
    int SystemLogin(void);
    void add_info(struct STU *stu,int flag);
    void grade_sort(struct STU *stu);
    void del_info(struct STU *stu);
    void print_info(struct STU *stu);
    
    int main()
    {
        int number;
        //1. 登录系统
        if(SystemLogin())
        {
            printf("系统安全退出.\n");
            exit(0);
        }
    
        //2.执行功能模块 
        while(1)
        {
            Display_info();
            scanf("%d",&number);
            switch (number)
            {
            case 1: //录入学生信息
                add_info(stu_info,1);
                break;
            case 2: //输出学生信息
                print_info(stu_info);
                break;
            case 3: //打印成绩平均值
                break;
            case 4: //增加学生信息
                add_info(stu_info,0);
                break;
            case 5: //按照成绩排序输出学生信息
                grade_sort(stu_info);
                break;
            case 6: //删除指定学生信息
                del_info(stu_info);
                break;
            case 7: //退出系统
                printf("-----系统安全退出------\n");
                exit(0); //退出当前进程
            default:
                break;
            }
        }
        return 0;
    }
    
    //显示提示信息
    void  Display_info(void)
    {
        printf("\n\n");
        printf("------欢迎使用xxxx学生管理系统------\n");
        printf("1. 录入学生信息(按照要求录入信息)\n");
        printf("2. 输出学生信息\n");
        printf("3. 打印成绩平均值\n");
        printf("4. 增加学生信息\n");
        printf("5. 按照成绩排序输出学生信息.\n");
        printf("6. 删除指定学生信息\n");
        printf("7. 退出系统\n");
        printf("请选择功能:");
    }
    
    /*
    函数功能: 系统登录
    返回值:  0表示成功 1表示失败 
    */
    int SystemLogin(void)
    {
        printf("------欢迎使用xxxx学生管理系统------\n");
        int i;
        for(i=1;i<=3;i++)
        {
            printf("请输入用户名:");
            scanf("%s",buff_user);
            printf("请输入密码:");
            system("stty -echo"); //系统函数---调用系统的命令 关闭回显
            scanf("%s",buff_password);
            printf("\n");
            system("stty echo"); //系统函数---调用系统的命令 开回显
            //比较密码是否正确
            if(strcmp(buff_user,"wbyq")!=0 || strcmp(buff_password,"123456")!=0)
            {
                printf("密码或者用户错误.请重新输入,剩余次数:%d\n",3-i);
            }
            else break;
        }
        //比较密码是否正确 
        if(strcmp(buff_user,"wbyq")!=0 || strcmp(buff_password,"123456")!=0)
        {
            return 1; 
        }
        return 0;
    }
    
    /*
    函数功能: 录入学生信息
    int flag :1表示连续增加学生信息  0表示增加单个学生信息
    */
    void add_info(struct STU *stu,int flag)
    {
        int i;
        int tmp;
        int addr=stu_cnt; //学生总人数
        if(flag)
        {
            for(i=addr;i<sizeof(stu_info)/sizeof(stu_info[0]);i++)
            {
                printf("请输入学生姓名:");
                scanf("%s",stu[i].name);
                printf("请输入学生年龄:");
                scanf("%d",&stu[i].age);
                printf("请输入学号:");
                scanf("%s",stu[i].number);
                printf("请输入成绩:");
                scanf("%f",&stu[i].grade);
                
                stu_cnt++;  //记录总人数
                printf("是否继续录入?  0表示继续  1表示退出");
                scanf("%d",&tmp);
                printf("\n\n");
                if(tmp)break;
            }
        }
        else
        {
            printf("请输入学生姓名:");
            scanf("%s",stu[addr].name);
            printf("请输入学生年龄:");
            scanf("%d",&stu[addr].age);
            printf("请输入学号:");
            scanf("%s",stu[addr].number);
            printf("请输入成绩:");
            scanf("%f",&stu[addr].grade);
            stu_cnt++;  //记录总人数
        }
    }
    
    //输出学生信息
    void print_info(struct STU *stu)
    {
        int i;
        printf("--------------------------------------------------\n");
        for(i=0;i<stu_cnt;i++)
        {
            printf("学生姓名:%s\n",stu[i].name);
            printf("学生年龄:%d\n",stu[i].age);
            printf("学号:%s\n",stu[i].number);
            printf("成绩:%f\n",stu[i].grade);
            printf("\n");
        }
        printf("--------------------------------------------------\n");
    }
    
    //按照成绩排序输出学生信息
    void grade_sort(struct STU *stu)
    {
        int i,j;
        struct STU tmp;
        for(i=0;i<stu_cnt-1;i++)
        {
            for(j=0;j<stu_cnt-1-i;j++)
            {
                if(stu[j].grade<stu[j+1].grade)
                {
                    tmp=stu[j];
                    stu[j]=stu[j+1];
                    stu[j+1]=tmp;
                }
            }
        }
    }
    
    //1234567890
    //删除指定学生信息
    void del_info(struct STU *stu)
    {
        char number[100];
        int i,j;
        printf("请输入要删除学生的学号:");
        scanf("%s",number);
        printf("--------------------------------------------------\n");
        for(i=0;i<stu_cnt;i++)
        {
            if(strcmp(stu[i].number,number)==0)
            {
                printf("成功删除以下学生信息:");
                printf("学生姓名:%s\n",stu[i].name);
                printf("学生年龄:%d\n",stu[i].age);
                printf("学号:%s\n",stu[i].number);
                printf("成绩:%f\n",stu[i].grade);
                for(j=i;j<stu_cnt-1;j++)
                {
                    stu[j]=stu[j+1];
                }
                stu_cnt--; //减去总数量
                break;
            }
        }
        if(i==stu_cnt+1)
        {
            printf("没有找到该学号.\n");
        }
        printf("--------------------------------------------------\n");
    }
    
    更多相关内容
  • 个人编写的学生信息管理系统,写于大一时期,简单易懂,但是比较繁琐,可以用于大一C语言结课,也可以用于平时自己简化代码做训练。纯手打,来之不易,也是人生第一个偏大点的编程,勿喷
  • C/C++实现,包括源代码,实验报告。源代码有详细注释。实现了文件存取,学生信息的查找,插入,修改,删除,排序等。
  • 学生信息管理系统(C语言数组版)

    千次阅读 2021-11-11 19:14:22
    **#**学生信息管理系统 这个我们是当作一个实践课作业独立完成的。老师就给了几个选题,作为小白,我就选了最简单的。我们没有上课,就老师拉了个群,发个文件,就没了。 要知道,当时我看到都懵了。想着啥都没讲,...

    ****#学生信息管理系统

    这个我们是当作一个实践课作业独立完成的。老师就给了几个选题,作为小白,我就选了最简单的。我们没有上课,就老师拉了个群,发个文件,就没了。
    要知道,当时我看到都懵了。想着啥都没讲,就让我做个系统,我哪里会。我当时就真以为是我们存款机那种的一个系统。后来,我就报着试一试的心理,去百度看看。毕竟都是个大学生了,什么东西都要自己解决,不会就百度。后来,真的就有,看了人家做出来的东西发现,是我想的深奥了,原来做出来的系统还是个黑框。然后我就自己写了一个。自己也不算厉害那种,然后就都是用很简单的语句。
    **

    ##

    **功能主要是对学生信息进行添加、删除、查找、显示信息、排序、存档。
    实现代码如下:

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    void creat();
    void info();
    void add();
    void shanchu();
    void search();
    void charge();
    void show();
    void sort();
    void save();
    int count=0;
    struct  Student{
    	int num;
    	char name[20];
    	int English;
    	int math;
    	int chinese;
    	int ave;
    	int total;
    }student[60],stemp;//结构体,学生信息
    int main(){
    	creat();
    	return 0;
    }
    void creat(){
    	int a=0;
    	info();
    		printf("当前文件中有%d条数据\n", count);
    	printf("\t\t\t欢迎使用学生成绩管理系统\n");
    	printf("1:添加一条学生数据\n");
    	printf("2:删除一条学生数据\n");
    	printf("3:查找一条学生数据\n");
    	printf("4:修改一条学生数据\n");
    	printf("5:显示所有学生数据\n");
    	printf("6:按照学生成绩排序\n");
    	printf("7:学生数据存档并退出\n");
    	while(1){
    	scanf("%d",&a);
    	switch(a){
    		case 1:add();break;
    		case 2:shanchu();break;
    		case 3:search();break;
    		case 4:charge();break;
    		case 5:show();break;
    		case 6:sort();break;
    	    case 7:save();
    	
    	}}
    }
    void info(){
    	FILE*fp=NULL;
    	fp=fopen("student.txt","r");
    	if(!fp){
    		printf("打开文件失败\n");
    		exit(0);
    	}
    	while(1){
    		fscanf(fp,"%d%s%f%f%f%f",&student[count].num,&student[count].name,&student[count].English,&student[count].math,
    		&student[count].chinese,&student[count].ave,&student[count].total);
    		if(feof(fp)){
    			break;
    		}
    		count++;
    	}
    }//打开文件
    void add(){
    	int num=0;
    	printf("请输入学号\n");
    	scanf("%d",&num);
        student[count].num=num;
    	printf("请输入姓名\n") ;
    	scanf("%s",student[count].name);
        printf("请输入英语成绩\n");
    	scanf("%d",&student[count].English);
    	student[count].total+=student[count].English;
    	printf("请输入数学成绩\n");
    	scanf("%d",&student[count].math);
    	student[count].total+=student[count].math;
    	printf("请输入语文成绩\n");
    	scanf("%d",&student[count].chinese);
    	student[count].total+=student[count].chinese;
    	student[count].ave=student[count].total/3.0;
    	printf("%s同学的成绩添加完成\n",student[count].name);
    	count++;
    	}//输入结构体数值进行添加学生的信息
    	void shanchu(){
         int num=0;int k=0;int j=0;
    	printf("请输入你想删除的学生的学号\n");
    	scanf("%d",&num);
    	
    	for(int i=0;i<count;i++){
    		if(student[i].num==num){
    			student[i]=student[i+1];
    			printf("删除成功\n");
    			k=i;j=1;
    			count--;
    		for(int i=k+1;i<count;i++)
    		student[i]=student[i+1];}}
    		if(j!=1)
    		printf("查无此人\n");
    	}//删除学生的信息
    	void search(){
    	int num=0;
        int k=0;
    	printf("请输入你想查找的学生的学号\n");
    	scanf("%d",&num);
    	for(int i=0;i<count;i++){
    		if(student[i].num==num){
    			printf("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
    		printf("学号:%d   姓名:%s 英语:%d 数学:%d 语文:%d 总分:%d 平均分:%d\n",student[i].num,student[i].name,
    		student[i].English,student[i].math,student[i].chinese,student[i].total,student[i].ave);
    		printf("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");k=1;}
    		if(k!=1)
    		printf("查无此学生\n") ;
    	}
    	
    }//查找学生的信息
    void charge(){
    	int num=0;
    	printf("请输入你想修改的学生的学号\n");
    	scanf("%d",&num);
    	for(int i=0;i<count;i++){
    	if(student[i].num==num){
         student[i].total=0;student[i].ave=0;
    	 printf("请输入该学生的学号\n");
    	 scanf("%d",&student[i].num);
    	 printf("请输入该学生的姓名\n");
    	 scanf("%s",student[i].name);
    	 printf("请输入该学生的英语成绩\n");
    	 scanf("%d",&student[i].English);
    	  student[i].total+=student[i].English;
    	 printf("请输入该学生的数学成绩\n");
    	 student[i].total+=student[i].math;
    	 scanf("%d",&student[i].math);
    	 printf("请输入该学生的语文成绩\n");
    	 scanf("%d",&student[i].chinese);
    	  student[i].total+=student[i].chinese;
    	  student[i].ave=student[i].total/3.0;
    printf("修改成功\n");
    	  	 printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
    	 printf("学号:%d   姓名:%s 英语:%d 数学:%d 语文:%d 总分:%d 平均分:%d\n",student[i].num,student[i].name,
    		student[i].English,student[i].math,student[i].chinese,student[i].total,student[i].ave);
         printf("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
    }
         else
         printf("查无此学生\n");
    	}
    }//找到该学生进行新的赋值达到修改学生的信息的目的
    void show(){
    		if(count==0)
    		printf("无信息\n");
    		else{
    			for(int i=0;i<count;i++){
    	 printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
    	 printf("学号:%d   姓名:%s 英语:%d 数学:%d 语文:%d 总分:%d 平均分:%d\n",student[i].num,student[i].name,
    		student[i].English,student[i].math,student[i].chinese,student[i].total,student[i].ave);
         printf("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");//显示所有学生的信息
    		}
    	}
    }
    void sort(){
    	if(count<1)
    	printf("无学生信息\n");
    	else{
    	for(int i=0;i<count-1;i++){
    		for(int j=0;j<count-1-i;j++){
    			if(student[j].total>student[j+1].total){
    				stemp=student[j];
    				student[j]=student[j+1];
    				student[j+1]=stemp;}}}
    	printf("排序完成\n");	
    }}//通过冒泡排序法把所有学生成绩按总分进行排序
    
    void save(){
    	FILE * fp = NULL;
    	fp = fopen("student.txt", "w");
    	for (int i = 0; i < count; i++){
    		fprintf(fp, "%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n", student[i].num, student[i].name, student[i].English, student[i].math,
    		 student[i].chinese, student[i].ave, student[i].total);
    	}
    	printf("数据保存成功,程序已退出\n");
    	exit(0);}//保存数据到student.txt中
    
    

    输出如下:在这里插入图片描述

    我觉得我的代码是最简单的了,就感觉简单的不能再简单了,根本没有任何复杂的语句,一看就能看懂吧。
    多看代码呀!!

    展开全文
  • 数组实现学生信息管理系统,有文件实现保存,但还不够完善
  • C语言初学者
  • 大一写的结课作业,代码用到了指针、文件数组、结构体、函数,包括增删改查、保存信息文件和成绩排名等功能,欢迎大家下载使用。
  • 基于数组学生信息管理系统 编写并调试程序,实现学校各专业班级学生信息的管理。10个学生的信息存储在文件studentInit.dat中。在头文件student.h中定义学生信息的结构体类型,包括:学号、姓名、专业、班级、3门...
  • 表单使用密码、单选、复选、列表、文件域等控件学生信息实现分页浏览。这是课上老师要求的课后作业 是没有完善的 因为个人能力有限 但还是可以运行,有积分多的可以下载 谢谢了 就是想下个资源 但是没积分了
  • 学习【数据结构课程】中线性表知识,自己动手做的【学生信息 管理 系统】。 目的:重在功能实现,思考探索。 编程语言:C IDE:VC++6.0 基础功能:增、删、查、改。 【扩展功能: 1.数据的保存、读取; 2.账号的...
  • 该系统使用了集合类ArrayList数组、swing组件,用文件操作FileinputStream、FileoutputStream来进行读写文件,完成一个相对来说比较简单易懂用户界面的学生信息管理系统。适合学生用来参考课程设计。
  • C语言入门,学生成绩管理系统,使用结构体数组储存数据,可以根据姓名,分数排序,统计不同科目的平均分等等。
  • 文件,添加,删除,排序等,课程设计题目,看不太不懂可以问我
  • printf("\t\t\t * 学生信息管理系统 * \n\n"); printf("\t\t\t ******************************************************\n\n"); printf("\t\t\t*********************系统功能菜单*************************\n"); ...

    1. 事先存入的数据:

     

    1. 菜单:

     

    1. 系统帮助及说明:

    1. 写入学生信息:

      

    该写入仅写入数组并不存入文件。

    1. 读出学生信息

      

    1. 将学生信息存入文件中

    此时文件中数据为:

    1. 输出每门课程最高分:

     

    1. 随机读取信息:

     

    1. 专业平均成绩升序(简单选择排序):

     

    1. 班级平均成绩降序(冒泡)::

    1. 班级单科成绩升序(插排):

    1. 综合查找:

    1. 输出所有信息:

    1. 删除学生信息:

     

     源码如下(原创,如用请点赞):

    1. #include<iostream>
      #include<string.h>
      #include<stdlib.h>
      #include<iomanip>
      #include<fstream>
      #include<time.h>
      #include<typeinfo>
      #include<conio.h>
      #define M 1000
      int length;
      int l=5;
      char a[10],b[10],c[10],d[10],e[10],f[10],g[10];//标题 
      struct student
      {
      	char num[10];//学号
      	char name[10];//姓名
      	char spec[10];//专业
      	char stu_class[10];//班级 
      	int score1; 
      	int score2;
      	int score3;
      }stu[30];
      
      int Init()//初始化 
      { 	
      
      	int i = 0;
      	FILE *p = fopen("1.txt", "r");      //打开文件       
      	if(p==NULL)
      		return 0;
      	fscanf(p,"%s%s%s%s%s%s%s",&a,&b,&c,&d,&e,&f,&g);//读取标题		
      	while (!feof(p)) //检测流上的文件结束符,如果文件结束,则返回非0值
      	{	//将文件中数据读取到结构体数组
      		fscanf(p,"%s%s%s%s%d%d%d",&stu[i].num,&stu[i].name,&stu[i].spec,&stu[i].stu_class,&stu[i].score1,&stu[i].score2,&stu[i].score3);
      		i++;
      	}
      	length = i;
      	fclose(p);
      	return 1;
      } 
      
      void Input()//从键盘输入一个学生信息存入文件和结构体数组。 
      {
      	loop1:;  
      	printf("请输入学生信息:\n");
      	printf(" 学号 姓名 专业 班级 成绩1 成绩2 成绩3\n");
      	int i = length; 
      	char num_stu[10];
      	scanf("%s%s%s%s%d%d%d",&stu[i].num,&stu[i].name,&stu[i].spec,&stu[i].stu_class,&stu[i].score1,&stu[i].score2,&stu[i].score3); 
      	int n;
      	for(n=0;n<99;n++)
      	{
      		if(stu[i].num==num_stu)
      		{
      			printf("学号冲突,请重新输入");
      			goto loop1; 	
      		}
      	}
      	FILE *p = fopen("1.txt", "c");      //打开文件                  
      	fclose(p);
      	l=l+1;
      	printf("写入信息成功!\n"); 
      	length++;
      } 
      
      			  			
      void Output1()//输入学号,将对应的学生信息格式化输出。
      {	
      	char *num;
      	printf("请输入查询的学号:");
      	scanf("%d",num);
      	printf("学号 姓名 专业 班级 成绩1 成绩2 成绩3\n");
      	for(int i=0;i<length;i++)
      		if(strcmp(stu[i].num,num)==0) 
      			printf("%s %s %s %s %d    %d   %d \n",stu[i].num,stu[i].name,stu[i].spec,stu[i].stu_class,stu[i].score1,stu[i].score2,stu[i].score3);
      }
      
      void Output(struct student stu[M])//查询函数
      {
      	int i=0;
      	char xh[25];
      	if(l==0)
      	{
      		printf("目前没有学生信息\n");
      		return;
      	}
      	else
      	{
      		printf("请输入查看学生的学号\n");
      		scanf("%s",&xh);
      		for(i=0;i<l;i++)
      		{
      			if(strcmp(stu[i].num,xh)==0)
         			{
         				printf("%s %s %s %s %d    %d   %d \n",stu[i].num,stu[i].name,stu[i].spec,stu[i].stu_class,stu[i].score1,stu[i].score2,stu[i].score3);
          		} 
          	}
          }
      }
      
      void all()//输出所有信息 
      {
      	printf("学号 姓名 专业 班级 成绩1 成绩2 成绩3 总成绩 平均成绩 \n");
      	for(int i=0;i<length;i++)
      	{
      		int sum=stu[i].score1+stu[i].score2+stu[i].score3;
      		int ave=sum/3;
      		printf("%s %s %s %s %d %d %d %d %d \n",stu[i].num,stu[i].name,stu[i].spec,stu[i].stu_class,stu[i].score1,stu[i].score2,stu[i].score3,sum,ave);
      	}
      }
      
      void help()/*帮助界面*/
      { 
      	 printf("\n\t\t\t0.欢迎使用系统帮助!\n");
      	 printf("\n\t\t\t1.初次进入系统后,请先选择增加学生信息;\n");
      	 printf("\n\t\t\t2.按照菜单提示键入数字代号;\n");
      	 printf("\n\t\t\t3.增加学生信息后,切记保存;\n");
      	 printf("\n\t\t\t4.谢谢您的使用!\n");
      }
      
      void Save()//将某个学生信息存入一个文件。 
      {
      	printf("请输入学生信息:\n");
      	printf(" 学号 姓名 专业 班级 成绩1 成绩2 成绩3\n");
      	int i = length; 
      	scanf("%s%s%s%s%d%d%d",&stu[i].num,&stu[i].name,&stu[i].spec,&stu[i].stu_class,&stu[i].score1,&stu[i].score2,&stu[i].score3); 
      	FILE *p = fopen("1.txt", "a");      //打开文件    
      	fprintf(p,"\n%s %s  %s  %s %d  %d  %d\n",stu[i].num,stu[i].name,stu[i].spec,stu[i].stu_class,stu[i].score1,stu[i].score2,stu[i].score3);
      	printf("%s %s  %s  %s %d  %d  %d",stu[i].num,stu[i].name,stu[i].spec,stu[i].stu_class,stu[i].score1,stu[i].score2,stu[i].score3);
      	l=l+1;
      	fclose(p);
      	printf("写入文件成功!\n"); 
      } 
      
      
      void del(struct student stu[M])//删除函数 
      {
       	int j,index=0,k=l;
       	char xh[25];
       	printf("所要删除的学生学号为:\n");
       	scanf("%s",xh); 
       	do{
      	 for(j=0;j<l;j++)
       	{
       		if(strcmp(stu[j].num,xh)==0)
      	{
       	for(j=index;j<l;j++)
       	stu[j]=stu[j+1];
       	l--;
       	if(l<k)
       	printf("删除成功\n");
          }
          index++;
          }
      	}
          while(j==l); 
          printf("没有你要删除的学生信息\n");
          FILE *p = fopen("1.txt", "w");      //打开文件    
          for(int i=0;i<length;i++)
      	{
      		fprintf(p,"%s %s %s %s %d %d %d \n",stu[i].num,stu[i].name,stu[i].spec,stu[i].stu_class,stu[i].score1,stu[i].score2,stu[i].score3);
      		printf("%s %s %s %s %d %d %d \n",stu[i].num,stu[i].name,stu[i].spec,stu[i].stu_class,stu[i].score1,stu[i].score2,stu[i].score3);
      	}
      	fclose(p);
      	printf("写入文件成功!\n"); 
      }
       
      
      void Max()//求所有学生某门课程的最高分及对应的学生的姓名。 
      {
      	int i;
      	int max[3]={0,0,0};
      	for(i=0;i<length;i++)
      		if(max[0]<stu[i].score1)
      		max[0]=stu[i].score1;
      		printf("课程1最高分:%d分----",max[0]);
      		for(i=0;i<length;i++)
      		if(stu[i].score1 == max[0])
      		printf("%s ",stu[i].name);
      		printf("\n");
      	for(i=0;i<length;i++)
      	if(max[1]<stu[i].score2) 
      	max[1]=stu[i].score2; 
      	printf("课程2最高分:%d分----",max[1]);		
      	for(i=0;i<length;i++)
      	if(stu[i].score2 == max[1])
      	printf("%s ",stu[i].name);
      	printf("\n");	
      	for(i=0;i<length;i++)
      	if(max[2]<stu[i].score3)
      	max[2]=stu[i].score3;
      	printf("课程3最高分:%d分----",max[2],stu[i].name);		
      	for(i=0;i<length;i++)
      	if(stu[i].score3 == max[2])
      	printf("%s ",stu[i].name);
      	printf("\n");
      }
      	
      
      void Fetch()//从文件中随机读取某个学生的信息。 
      {
      	int i = time(NULL) % length;
      	printf("第%d名学生\n",i+1);
      	printf(" 学号 姓名 专业 班级 成绩1 成绩2 成绩3\n");
      	printf("%s  %s  %s  %s  %d  %d  %d \n",stu[i].num,stu[i].name,stu[i].spec,stu[i].stu_class,stu[i].score1,stu[i].score2,stu[i].score3);
      }
      
      void Sort_select()//按专业总平均成绩由低到高进行简单选择排序。 
      {
      	struct student tmp;
      	char str[6];
      	int i,j,t,n,k;
      	float avg[length],avg_temp;
      	printf("请输入专业:\n");
      	scanf("%s",str);
      	for(i=0;i<length;i++)
      		avg[i] = float(stu[i].score1 + stu[i].score2 + stu[i].score3) / 3;
      	//简单选择排序
          for(i=0; i<length; i++)  //做n-1趟选取
          {
              k = i;
              for(j=i+1;j<=length;j++)
                  if(avg[j] < avg[k] && strcmp(stu[i].spec,str)==0 && strcmp(stu[j].spec,str)==0)
                      k = j;    //k为最小值
              if(i!=k)//交换
              {
              	tmp=stu[k];      
      			avg_temp = avg[k];
      			stu[k]=stu[i];   
      			avg[k] = avg[i];
      			stu[i]=tmp;	    
      			avg[i] = avg_temp;
              }
          }
      	printf(" 学号 姓名 专业 班级 成绩1 成绩2 成绩3 平均分\n");
          for(i=0;i<length;i++)
      		if(strcmp(stu[i].spec,str)==0) 
      			printf("%5s %-6s %3s %s %3d %3d %3d %-6.2f\n",stu[i].num,stu[i].name,stu[i].spec,stu[i].stu_class,stu[i].score1,stu[i].score2,stu[i].score3,avg[i]);
      }
      
      void Sort_buble()//按班级总平均成绩由高到低进行冒泡排序。 
      {
      	struct student tmp;
      	char str[6];
      	float avg[length],avg_temp;
      	int i,j;
      	printf("请输入班级:\n");
      	scanf("%s",str);
      	for(i=0;i<length;i++)
      		avg[i] = float(stu[i].score1 + stu[i].score2 + stu[i].score3) / 3;
      	//冒泡排序
      	for(i=0;i<length;i++)
      		for(j=0;j<length;j++)
      			if(avg[i]>avg[j] && strcmp(stu[i].stu_class,str)==0 && strcmp(stu[j].stu_class,str)==0) 
      			{
      				tmp = stu[i];     
      				avg_temp = avg[i];
      				stu[i] = stu[j];   
      				avg[i] = avg[j];
      				stu[j] = tmp;	     
      				avg[j] = avg_temp;
      			}
      	printf(" 学号 姓名 专业 班级 成绩1 成绩2 成绩3 平均分\n");
      	for(i=0;i<length;i++)
      		if(strcmp(stu[i].stu_class,str)==0) 
      			printf("%5s %-6s %3s %s %3d %3d %3d %-6.2f\n",stu[i].num,stu[i].name,stu[i].spec,stu[i].stu_class,stu[i].score1,stu[i].score2,stu[i].score3,avg[i]);
      }
      
      void Sort_insert()//按课程成绩由低到高进行直接插入排序。 
      {
      	int i,j,len=0;
      	char str[6];
      	int m;
      	struct student tmp;
      	struct student insert[100];
      	printf("请输入班级:\n");
      	scanf("%s",str);
      	printf("请输入科目 :\n");
      	scanf("%s",m);
      	if(m==1)
      	{
      		for(i=0;i<length;i++)
      	    if(strcmp(stu[i].stu_class,str)==0) //筛选出某个班上的学生进行插入排序 
      	    {
      	    	insert[len] = stu[i];
      	    	len++;
      		}
      	for(i=1;i<len;i++)//循环从第2个元素开始
          {
              if(insert[i].score1 < insert[i-1].score1)
              {
                  tmp = insert[i];
                  for(j = i-1; j >= 0 && insert[j].score1 > tmp.score1; j--)
                      insert[j+1] = insert[j];
                  insert[j+1] = tmp;
              }
          }
      	printf(" 学号 姓名 专业 班级 成绩1 成绩2 成绩3\n");
          for(i=0;i<len;i++)
      		printf("%5s  %-6s   %3s  %s  %3d  %3d  %3d\n",insert[i].num,insert[i].name,insert[i].spec,insert[i].stu_class,insert[i].score1,insert[i].score2,insert[i].score3);
      	}
          if(m==2)
          {for(i=0;i<length;i++)
      	    if(strcmp(stu[i].stu_class,str)==0) //筛选出某个班上的学生进行插入排序 
      	    {
      	    	insert[len] = stu[i];
      	    	len++;
      		}
      	for(i=1;i<len;i++)//循环从第2个元素开始
          {
              if(insert[i].score2 < insert[i-1].score2)
              {
                  tmp = insert[i];
                  for(j = i-1; j >= 0 && insert[j].score1 > tmp.score1; j--)
                      insert[j+1] = insert[j];
                  insert[j+1] = tmp;
              }
          }
      	printf(" 学号 姓名 专业 班级 成绩1 成绩2 成绩3\n");
          for(i=0;i<len;i++)
      		printf("%5s  %-6s   %3s  %s  %3d  %3d  %3d\n",insert[i].num,insert[i].name,insert[i].spec,insert[i].stu_class,insert[i].score1,insert[i].score2,insert[i].score3);
      	}
      	if(m=3) 
      	{
      		for(i=0;i<length;i++)
      	    if(strcmp(stu[i].stu_class,str)==0) //筛选出某个班上的学生进行插入排序 
      	    {
      	    	insert[len] = stu[i];
      	    	len++;
      		}
      	for(i=1;i<len;i++)//循环从第2个元素开始
          {
              if(insert[i].score3 < insert[i-1].score3)
              {
                  tmp = insert[i];
                  for(j = i-1; j >= 0 && insert[j].score1 > tmp.score1; j--)
                      insert[j+1] = insert[j];
                  insert[j+1] = tmp;
              }
          }
      	printf(" 学号 姓名 专业 班级 成绩1 成绩2 成绩3\n");
          for(i=0;i<len;i++)
      		printf("%5s  %-6s   %3s  %s  %3d  %3d  %3d\n",insert[i].num,insert[i].name,insert[i].spec,insert[i].stu_class,insert[i].score1,insert[i].score2,insert[i].score3);
      	}
      }
      
      void Search()//查找某班总分在某分数段以上的学生 
      {
      	int i,k=0,score;
      	int sum=stu[i].score1+stu[i].score2+stu[i].score3;
      	char str[6];
      	printf("请输入班级和分数:\n");
      	scanf("%s%d",str,&score);
      	printf(" 学号 姓名 专业 班级 成绩1 成绩2 成绩3 总分\n");
      	for(i=0;i<length;i++)
      		if(strcmp(stu[i].stu_class,str)==0 && stu[i].score1+stu[i].score2+stu[i].score3 > score)
      			{
      				printf("%5s  %-6s   %3s  %s  %3d  %3d  %3d  %3d\n",stu[i].num,stu[i].name,stu[i].spec,stu[i].stu_class,stu[i].score1,stu[i].score2,stu[i].score3,sum);
      				k++; 
      			}
      	printf("%s班总分%d以上的一共有%d人。\n",str,score,k);
      }
      
      void Deletedatd()//删除信息
      {
      	int i, j, flag = 0;
      	char m;
      	printf("请输入想删除的信息:\n");
      	scanf("%lld", m);
      	for (i = 0; i < l; i++)
      	{
      		if (stu[i].num==&m)
      		{
      			for (j = i; j < l + 1; j++)
      			{
      				stu[j] = stu[j + 1];
      			}
      
      		}
      	}
      	getch();
      }
      
      
      int main()
      {	
      	int i,j;
      	if(Init()==0)
      	{
      		printf("文件不存在!");
      		return 0;
      	}
      		system("color 0f");//变色
         		int choice;
      		int num;		//num为每次输入的人数
          	static int  k; // k为总人数 且会变化
      		int label_of_save=0;//存盘判据
      		while(1)//死循环 支持多次不同操作
      		{
      			printf("\t\t\t  ******************************************************\n\n");
      	 		printf("\t\t\t  *                学生信息管理系统                   * \n\n");
      	 		printf("\t\t\t  ******************************************************\n\n"); 
      	 		printf("\t\t\t*********************系统功能菜单*************************\n");
      	 		printf("\t\t\t     ----------------------   ----------------------  \n");
      	 		printf("\t\t\t     *********************************************  \n");
      			printf("\t\t\t     * 0.系统帮助及说明     * *  1.写入学生信息         *   \n");
      	 		printf("\t\t\t     *********************************************  \n"); 
      	 		printf("\t\t\t     * 2.查询学生信息       * *  3.保存学生信息         *   \n");
      	 		printf("\t\t\t     *********************************************  \n");
      	 		printf("\t\t\t     * 4.课程最高分         * *  5.随机读取信息         *   \n");
      	 		printf("\t\t\t     *********************************************  \n");
      	 		printf("\t\t\t     * 6.专业平均成绩升序   * *  7.班级平均成绩降序     *   \n");
      	 		printf("\t\t\t     *********************************************  \n");
      	 		printf("\t\t\t     * 8.班级单科成绩升序   * *  9.综合查找             *   \n");
      	 		printf("\t\t\t     *********************************************  \n");
      	 		printf("\t\t\t     * 10.输出所有信息      * *  11.删除学生信息        * \n");
      	 		printf("\t\t\t     *********************************************  \n");
      	 		printf("\t\t\t     * 12.退出系统          * \n");
      	 		printf("\t\t\t     **********************        \n");
      	 		printf("\t\t\t     ----------------------   ----------------------  \n");
      			scanf("%d",&choice);//功能选择	
      			int j;//支持增补的变量保障 
      			if(choice>=0&&choice<=13) {
      			switch(choice) {
      				case 0:
      					help();
      					break;
      				case 1: 
      					Input(); 
      					break;
      				case 2:	
      					Output(stu);
      					break;
      				case 3: 
      					Save(); 
      					break;
      				case 4: 
      					Max();
      					break;
      				case 5: 
      					Fetch();
      					break;
      				case 6: 
      					Sort_select();
      					break;
      				case 7: 
      					Sort_buble();
      					break;
      				case 8: 
      					Sort_insert();
      					//my_Sort_insert();
      					break;
      				case 9: 
      					Search();
      					break;
      				case 11:
      	  				del(stu);//删除
      	  				break;
      				case 10:
      					all();
      					break;
      				case 12:		 
      					printf("\n    ~~~~~~~~~~~~~~~~~~~~~~~~~~\n");     //退出提示
      					printf("             Goodbye!         \n");
      					printf("    ~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
      						exit(0);//将程序退出 
      			}
      		} else //没有按规范选择功能,要进行错误提示     //错误提示
      		{
      		printf("\n    ~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
      		printf("           error input!       \n");
      		printf("    ~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
      		}
      	}
      	return 0;
      }
      
      
      void write()
      {
      	int i = length; 
      	FILE *p = fopen("1.txt", "w");      //打开文件    
      	fprintf(p,"%s %s %s %s %s %s %s\n",a,b,c,d,e,f,g);
      	for(i=0;i<length;i++)
      		fprintf(p,"%s %s      %s   %s  %d      %d         %d",stu[i].num,stu[i].name,stu[i].spec,stu[i].stu_class,stu[i].score1,stu[i].score2,stu[i].score3);
      	fclose(p);
      } 

    展开全文
  • 1.基于数组的“学生信息管理系统” 实验内容: 编写并调试程序,实现学校各专业班级学生信息的管理。定义学生信息的结构体类型,包括:学号、姓名、专业、班级、3门成绩。N定义为符号常量,定义N名学生信息的结构体...
  • 学生管理系统数组

    2018-09-08 21:00:11
    纯c语言开发,包含三个文件,头文件,main.c studentMessage.c 。可以存在txt文件,快速排序,希尔排序,输出函数,寻找最高分学生信息,能够输出所有最高分学生信息
  • C语言学生管理系统(结构体数组

    千次阅读 2021-04-09 17:03:17
    简单的学生管理系统,使用C语言编写。 功能 拥有增、删、改、查、打印、文件读写、搜索以及排序功能。 环境 推荐使用VS2015或以上版本(支持C11或以上)的编译器运行代码。 结构 数据结构为结构体数组。 运行效果图...

    简介
    简单的学生管理系统,使用C语言编写。

    功能
    拥有增、删、改、查、打印、文件读写、搜索以及排序功能。

    环境
    推荐使用VS2015或以上版本(支持C11或以上)的编译器运行代码。

    结构
    数据结构为结构体数组。

    运行效果图:
    在这里插入图片描述

    整份源码:

    
    #define _CRT_SECURE_NO_WARNINGS
    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #include<stdlib.h>
    using namespace std;
    struct Struct
    {
    	char Name[10];
    	int Num;
    	double Chi, Mat, Eng;
    };
    Struct text[5000] = {
    	{ "张珊",1,98,99,90 },
    	{ "李思",2,88,99,95 },
    	{ "王武",3,89,100,91 },
    	{ "马柳",4,99,101,88 },
    	{ "王琦",5,96,91,89 } };
    void select(Struct *p, int n)
    {
    	int i = 0;
    	while (i < n - 1)
    	{
    		int j = i + 1;
    		while (j < n - 1)
    		{
    			if (p[i].Num > p[j].Num)
    			{
    				Struct a = p[i];
    				p[i] = p[j];
    				p[j] = a;
    			}
    			j++;
    		}
    		i++;
    	}
    	cout << "------------------------ 排序完成! ------------------------" << endl;
    }
    void save(Struct*p)
    {
    	FILE*fp;
    	fp = fopen("NOTE.s", "w");
    	int i = 0;
    	while (p[i].Num)
    	{
    		fwrite(&p[i], 1, sizeof(p[i]), fp);
    		i++;
    	}
    	fclose(fp);
    }
    void load()
    {
    	Struct A;
    	FILE*fp = fopen("NOTE.s", "r");
    	if (!fp)
    		return;
    	int i = 0;
    	while (fread(&A, 1, sizeof(A), fp) > 0) 
    	{
    		text[i++] = A;
    	}
    	fclose(fp);
    }
    void bubble(Struct*p,int N)//冒泡是正确的,但一被引用就错误了
    {
    	int i = 0, j;
    	while (i < N - 1)
    	{
    		j = 0;
    		while (j < N - 1)
    		{
    			if (p[j].Num < p[j + 1].Num)
    			{
    				Struct a = p[i];
    				p[i] = p[i + 1];
    				p[i + 1] = a;
    			}
    			j++;
    		}
    		i++;
    	}
    }
    void glance(Struct *p,int N)
    {
    	puts("表格如下:");
    	printf("姓名\t座号\t语文\t数学\t英语\t三总\t平均\n");
    	int n = 0;
    	int i = 0,j=0;
    	while(i<N)
    	{
    		if(p[i].Num<1)
    		{
    			i++;
    			continue;
    		}
    		printf("%s\t%d\t%0.2f\t%0.2f\t%0.2f\t%0.2f\t%0.2f\n", p[i].Name, p[i].Num, p[i].Chi, p[i].Mat, p[i].Eng,(p[i].Chi+ p[i].Mat+p[i].Eng),(p[i].Chi+p[i].Mat+p[i].Eng)/3);
    		j++;
    		if ((p[i].Chi + p[i].Mat + p[i].Eng) > (p[i + 1].Chi + p[i + 1].Mat + p[i + 1].Eng))
    			n = p[i].Num;
    		else
    			n = p[i - 1].Num;
    		i++;
    	}
    	i = 0;
    	puts("优秀学生:");
    	while (p[i].Num)
    	{
    		if (n == p[i].Num)
    		{
    			printf("姓名\t座号\t语文\t数学\t英语\t三总\t平均\n");
    			printf("%s\t%d\t%0.2f\t%0.2f\t%0.2f\t%0.2f\t%0.2f\n", p[i].Name, p[i].Num, p[i].Chi, p[i].Mat, p[i].Eng, (p[i].Chi + p[i].Mat + p[i].Eng), (p[i].Chi + p[i].Mat + p[i].Eng) / 3);
    			break;
    			//只能显示一个数据,GG..
    		}
    		i++;
    	}
    	printf("-----------------------共%d个学生信息-----------------------",j);
    	puts("");
    }
    void add(Struct *p)//添加一个结构体成员变量
    {
    	int i = 0;
    	while (p[i].Num )
    		i++;
    	printf("请按顺序输入”姓名、座号、语数英成绩:【用空格间隔】\n");
    	scanf("%s%d%lf%lf%lf", &p[i].Name, &p[i].Num, &p[i].Chi, &p[i].Mat, &p[i].Eng);
    	int n = 0;
    	while (p[n].Num)
    	{
    		if (p[n].Num == p[i].Num || 0 == p[i].Num)
    		{
    			int j = n+1;
    			while (p[j].Num)
    			{
    				if (p[n].Num == p[i].Num || 0 == p[i].Num)
    				{
    					puts("座号不能重复或等于零,请重新输入!");
    					text[i] = { "无无",-1,0,0,0 };
    					break;
    				}
    				j++;
    			}
    			if (p[n + 1].Num == p[i].Num || 0 == p[i].Num)
    				break;
    		}
    		n++;
    	}
    	if(p[i].Num>0)
    		puts("--------------------------输入成功!--------------------------");
    }
    void del(Struct*p)
    {
    	char n[10],i=0;
    	printf("请输入你要删除的数据的姓名或座号:");
    	scanf_s("%s", &n, sizeof(n));
    	while (p[i].Num)
    	{
    		if(strcmp(n, p[i].Name) == 0||atof(n) == p[i].Num)
    		{
    			text[i] = { "无",-1,0,0,0 };
    			printf("\n--------------------------清除成功!--------------------------\n");
    			break;
    		}
    		i++;
    	}
    }
    void rev(Struct *p)
    {
    	{
    		char n[10], i = 0;
    		printf("请输入你要修改数据的姓名或座号:");
    		scanf_s("%s", &n, sizeof(n));
    		while (p[i].Num)
    		{
    			if (strcmp(n, p[i].Name) == 0 || atof(n) == p[i].Num)
    			{
    				printf("数据已找到!请按顺序输入”姓名、座号、语数英成绩进行修改:【用空格间隔】\n\n");
    				printf("姓名\t座号\t语文\t数学\t英语\n");
    				printf("%s\t%d\t%0.2f\t%0.2f\t%0.2f\n", p[i].Name, p[i].Num, p[i].Chi, p[i].Mat, p[i].Eng);
    				Struct t = p[i];
    				scanf("%s%d%lf%lf%lf", &p[i].Name, &p[i].Num, &p[i].Chi, &p[i].Mat, &p[i].Eng);
    				int n = 0;
    				while (p[n].Num)
    				{
    					if (p[n].Num == p[i].Num || 0 == p[i].Num)
    					{
    						int j = n + 1;
    						while (p[j].Num)
    						{
    							if (p[j].Num == p[i].Num || 0 == p[i].Num)
    							{
    								puts("座号不能重复或等于零,请重新输入!");
    								text[i] = t;
    								break;
    							}
    							j++;
    						}
    						if (p[n + 1].Num == p[i].Num || 0 == p[i].Num)
    							break;
    					}
    					n++;
    				}
    				if (p[i].Num != t.Num/*&&p[i].Chi != t.Chi&&p[i].Eng != t.Eng&&p[i].Mat != t.Mat*/)
    				printf("\n--------------------------修改成功!--------------------------\n");
    				break;
    			}
    			i++;
    		}
    	}
    }
    void ser(Struct *p)
    {
    	{
    		char n[10], i = 0;
    		printf("请输入你要查找数据的姓名或座号:");
    		scanf_s("%s", &n, sizeof(n));
    		printf("%s   %f\n", n, atof(n));
    		while (p[i].Num)
    		{
    			if (strcmp(n, p[i].Name) == 0 || atof(n) == p[i].Num)
    			{
    				printf("\n--------------------------搜索成功!--------------------------\n");
    				printf("姓名\t座号\t语文\t数学\t英语\n");
    				printf("%s\t%d\t%0.2f\t%0.2f\t%0.2f\n", p[i].Name, p[i].Num, p[i].Chi, p[i].Mat, p[i].Eng);
    				break;
    			}
    			i++;
    		}
    		if(p[i].Num==0)
    				puts("你输入的姓名或座号不存在!");
    	}
    }
    int main()
    {
    	load();
    	int i = 1;
    	char n;
    	printf("1、浏览所有信息\n2、添加信息\n3、删除信息\n4、修改信息\n5、查找信息\n6、排序\n0、退出\n\n");
    	while (i)
    	{
    		printf("请选择:");
    		scanf_s("%d", &n);
    		switch (n)
    		{
    		case 1:
    		{
    			glance(text,_countof(text));
    			//cout << _countof(text);
    			break;
    		}
    		case 2:
    		{
    			add(text);
    			save(text);
    			break;
    		}
    		case 3:
    		{
    			del(text);
    			save(text);
    			break;
    		}
    		case 4:
    		{
    			rev(text);
    			save(text);
    			break;
    		}
    		case 5:
    		{
    			ser(text);
    			break;
    		}
    		case 6:
    		{
    			//bubble(text, _countof(text));//失败
    			select(text,_countof(text));
    			break;
    		}
    		case 0:
    		{
    			return 0;
    		}
    		default:
    		{
    			puts("你的输入无效,请重新输入!");
    		}
    		}
    		i++;
    		if (i == 4)
    		{
    			i = 1;
    			printf("1、浏览所有信息\n2、添加信息\n3、删除信息\n4、修改信息\n5、查找信息\n6、排序\n0、退出\n\n");
    		}
    	}
    	return 0;
    }
    
    
    展开全文
  • /* * 学生管理系统 * 学生信息:班级姓名数组:String [][]stuNames * 班级成绩数组:int [][]stuScores; * 功能如下菜单中有列出 */ public class StudentManageSys { static Scanner scanner = new Scanner...
  • printf("按任意键进入学生信息管理系统!\n"); system("pause"); //暂停指令 system("cls"); //清屏指令 menu(); } } //函数功能:显示学生信息 √ void watch() { int i; printf("\n--------【显示学生信息】------...
  • C语言数组实现学生信息管理系统

    万次阅读 多人点赞 2017-03-14 15:33:37
    单纯只用多个数组管理学生成绩信息,不使用结构体,该程序最主要的难点是依据学号或总成绩对学生信息进行排序,借助了临时数组来标记排好序的下标。
  • 147 }148 }149 if(flag==false)150 {151 System.out.println("该学生不存在!");152 }153 }154 public voidupdateStudent()155 {156 Scanner input=newScanner(System.in);157 String s;158 String a, b,f;159 intc;...
  • java实现学生信息管理系统(对象数组实现)

    万次阅读 多人点赞 2019-01-09 20:17:23
    学生管理类 StudentAdmin.java3.主程序 StudentTest.java四、运行结果1.添加学生功能2.查找学生功能3.根据编号更新学生基本信息功能4.根据学生编号删除学生功能5.根据学生编号录入学生各门成绩6.根据某门成绩进行...
  • JOUKKAL 0T NORTHWKSTZRN POLTTECHHICAL UHMRfiTTT ltDfG Dfe COUXGE《c语言应用》实验报告题目学生成绩管理系统(数组版)专业名称 班 级 学 号 学生姓名 指导教师 完成时间TOC \o "1-5" \h \z \o "Current Document...
  • #include <stdio.h> #include <stdlib.h> #include <string.h> /*定义学生结构体*/ struct Student { char ID[20]; char Name[20];.../*声明学生数组学生数量*/ struct Student stu
  • 数组实现c语言学生成绩管理系统

    千次阅读 多人点赞 2021-05-10 19:42:53
    c语言管理系统 牛~~ /*引用库函数*/ #include<stdio.h> #include<stdlib.h> #include<string.h> /*定义结构体数组*/ typedef struct { char num[12]; /*学号*/ char name[20]; /*姓名*/ ...
  • c++实现学生管理系统

    2022-02-27 21:58:19
    此学生学籍管理系统包括各个学生的学号,姓名,年龄,性别,C语言成绩,高数成绩,英语成绩,通过使用对象数组,与文件操作相结合,对学生信息进行修改与保存。 1.查询学生信息 对特定学号的学生信息进行查询,如果...
  • stu_list 学生信息文件(初始为空,从系统录入) 二、代码 /* *** 学生管理系统 *** */ #include <stdio.h> #include <windows.h> #include <time.h> #include <conio.h> #define N 100 ...
  • #include #include #include #include #include...//从文件中读取学生信息 switch(ch) { case '1': add();getchar();break;//添加 case '2': dele();getchar();break;//删除 case '3': query();getchar();break;//查询 ...
  • 基于数组学生信息管理系统 基于链表的学生信息管理系统 C语言实现 可运行 小学期作业 大连某211大学大二下学期小学期作业
  • 简单而实用的IO 文件操作的黑框框程序哦,其中字体有颜色的哦!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,991
精华内容 8,796
关键字:

学生信息管理系统文件数组