精华内容
下载资源
问答
  • 学生信息管理系统

    千次阅读 2017-01-09 21:21:23
    1、学生信息管理系统C语言版:# include # include # include <string.h>struct Student { int age; float score; char name[100];}; void inputdata(Student * arr,int len)//无论是赋值还是输出数

    核心内容:
    1、学生信息管理系统


    C语言版:

    # include <stdio.h>
    # include <malloc.h>
    # include <string.h>
    
    struct Student
    {
        int age;
        float score;
        char name[100];
    
    };
    void inputdata(Student * arr,int len)//无论是赋值还是输出数值
    {
        arr[0].age = 20;
        arr[0].score = 88.8f;
        strcpy(arr[0].name,"zhangsan");
    
        arr[1].age = 21;
        arr[1].score = 98.8f;
        strcpy(arr[1].name,"lisi");
    
        arr[2].age = 18;
        arr[2].score = 66.6f;
        strcpy(arr[2].name,"lidong");
    }
    
    void sort(Student * arr,int len)
    {
        for (int j=1; j<len;j++)
        {
           for (int k=0; k<len-j;k++)
           {
               Student tmp;
               if (arr[k].score > arr[k+1].score)
               {
                   tmp = arr[k];
                   arr[k] = arr[k+1];
                   arr[k+1] = tmp;
               }
           }
        }
    
    }
    void outputdata(Student * arr,int len)
    {
        //接下来我们将结果进行输出
        for (int i=0; i<3; i++)
        {
            printf("%d\t",arr[i].age);
            printf("%f\t",arr[i].score);
            printf("%s\t",arr[i].name);
            printf("\n");
        }
    
    }
    int main(void)
    {
        Student * arr = (Student *)malloc(sizeof(Student)*3);
    
        inputdata(arr,3);
        sort(arr,3);
        outputdata(arr,3);
    
        return 0;
    }

    运行结果:
    这里写图片描述
    Java语言版:

    import java.util.ArrayList;
    import java.util.Collections;
    
    
    
    
    class Student  implements Comparable<Student>
    {
        public int age;
        public float score;
        public String name;
        public Student(int age,float score,String name)
        {
            this.age = age;
            this.score = score;
            this.name = name;
        }
        @Override
        public int compareTo(Student obj)
        {
            if (this.score > obj.score)
                return 1;
            else 
                return -1;
        }
        public String toString()
        {
            return this.age+"\t"+this.score+"\t"+this.name;
        }
    }
    public class App1 
    {
        public static void main(String[] args)
        {
           ArrayList<Student> arr = new ArrayList<Student>();//动态分配一块内存空间,用指针变量指向这块内存空间
           arr.add(new Student(20,88.8f,"zhangsan"));
           arr.add(new Student(21,98.8f,"lisi"));
           arr.add(new Student(18,66.6f,"lidong"));
    
           for (int i=0; i<arr.size();i++)
           {
               System.out.println(arr.get(i));
           }
    
           Collections.sort(arr);
    
           for (int i=0; i<arr.size();i++)
           {
               System.out.println(arr.get(i));
           } 
        }
    }

    运行结果:

    20  88.8    zhangsan
    21  98.8    lisi
    18  66.6    lidong
    18  66.6    lidong
    20  88.8    zhangsan
    21  98.8    lisi
    展开全文
  • Python实现学生信息管理系统

    万次阅读 多人点赞 2019-07-08 12:28:50
    试设计一个学生信息管理系统,使之能提供一下基本功能: 系统以菜单方式工作 学生信息录入功能(学生信息用文件保存)--- 输入 学生信息浏览功能 --- 输出 查询、排序功能 --- 算法 按学号查询 按姓名查询 学生...

    要求描述:

    学生的信息包括:学号,姓名,年龄,性别,出生日期,地址,电话,E-mail等等。试设计一个学生信息管理系统,使之能提供一下基本功能:

    • 系统以菜单方式工作
    • 学生信息录入功能(学生信息用文件保存)--- 输入
    • 学生信息浏览功能 --- 输出
    • 查询、排序功能 --- 算法
    1. 按学号查询
    2. 按姓名查询 
    • 学生信息的删除与修改(可选项) 

    基本思路同之前写的那篇图书借阅系统,在此就不多赘述。

    直接上代码,代码如下:

    import os
    
    class Student(object):
        def __init__(self, sid, name, age=None, gender=None,
                     birth=None, address=None, tel=None, mail=None):
            self.sid = sid
            self.name = name
            self.age = age
            self.gender = gender
            self.birth = birth
            self.address = address
            self.tel = tel
            self.mail = mail
    
        def __str__(self):
            return "%s:%s:%s:%s:%s:%s:%s:%s" %(self.sid, self.name, self.age, self.gender,
                                        self.birth, self.address, self.tel, self.mail)
    
    class StudentManage(object):
        students = []
        def __init__(self):
            filename = 'students.csv'
            if os.path.exists(filename):
                with open(filename) as f:
                    for line in f:
                        info = line.split(':')
                        studentObj = Student(*info)
                        self.students.append(studentObj)
                print("加载缓存的学生信息成功")
            else:
                print("无缓存的学生信息!")
    
        def add(self):
            sid = input("学号: ")
            name = input("姓名: ")
            age = input("年龄: ")
            gender = input("性别(1-男 2-女): ")
            birth = input("出生日期(年-月-日): ")
            address = input("地址: ")
            tel = input("联系电话: ")
            mail = input("电子邮箱: ")
            stu = Student(sid, name, age, gender, birth, address, tel, mail)
            self.students.append(stu)
            print("录入学生[%s]信息成功" %(name))
    
        def show(self):
            print("学生信息展示".center(50, '*'))
            for student in self.students:
                print('-' * 50)
                print(str(student))
    
        def search(self, key, value):
            if key in ['sid', 'name']:
                for student in self.students:
                    if getattr(student, key) == value:
                        print(str(student))
                else:
                    print("未找到符合条件的学生信息!")
            else:
                print("系统只支持根据[学号]和[姓名]查询!")
    
        def sort(self, key):
            # 根据指定的key值进行排序
            sorted_students = sorted(self.students, key=lambda x: int(getattr(x, key)) if x else None)
            for student in sorted_students:
                print(student)
    
        def delete(self, key, value):
            if key in ['sid', 'name']:
                for student in self.students:
                    if getattr(student, key) == value:
                        self.students.remove(student)
                        print("删除属性值[%s]为[%s]的学生信息" % (key, value))
                else:
                    print("未找到符合条件的学生信息!")
            else:
                print("当前系统只支持根据 [学号] 和 [姓名] 删除!")
    
        def modify(self, key, oldvalue, newvalue):
            if key in ['sid', 'name']:
                for student in self.students:
                    if getattr(student, key) == oldvalue:
                        setattr(student, key, newvalue)
                        print("修改属性值[%s]为[%s]的学生信息为[%s]成功" % (key, oldvalue, newvalue))
                else:
                    print("未找到符合条件的学生信息!")
            else:
                print("当前系统只支持根据 [学号] 和 [姓名] 修改!")
    
        def save(self):
            filename = 'students.csv'
            f = open(filename, 'w')
            for student in self.students:
                f.write(str(student) + '\n')
            print("写入学生信息成功!")
    
            f.close()
    
    def main():
        manager = StudentManage()
        while True:
            menu = """
    
                            学生信息管理系统
                1. 学生信息录入
                2. 学生信息浏览
                3. 学生信息查询
                4. 学生信息排序
                5. 学生信息的删除
                6. 学生信息的修改
                7. 退出
    
    
            请输入正确的选择:    """
    
            choice = input(menu)
            if choice == '1':
                manager.add()
                manager.save()
            elif choice == '2':
                manager.show()
            elif choice == '3':
                key = input("查询(sid-根据学号, name-根据姓名): ")
                value = input("查询值: ")
                manager.search(key, value)
            elif choice == '4':
                key = input("排序(sid-根据学号, age-根据年龄): ")
                manager.sort(key)
            elif choice == '5':
                key = input("删除(sid-根据学号, name-根据姓名): ")
                value = input("删除的属性值: ")
                manager.delete(key, value)
            elif choice == '6':
                key = input("修改(sid-根据学号, name-根据姓名): ")
                value1 = input("旧的属性值: ")
                value2 = input("新的属性值: ")
                manager.modify(key, value1, value2)
            elif choice == '7':
                exit(0)
            else:
                print("请输入正确的选择!")
    
    main()

     运行之后,就会输出可供选择的功能菜单键,如下:

    下面就是基本的功能实现了:

    1.录入学生信息

    2.浏览学生信息

    3.查询指定学生信息

    4.对学生信息进行排序(可以根据学号或者年龄从小到大排序)

    5.删除指定学生的信息

    6.修改指定学生信息(修改学号或姓名)

    操作后可以看到学生信息会发生变化:

    然后输入7之后就会退出该系统。

    以上就是一个通过Python实现的简易的学生信息管理系统。

    展开全文
  • java实现简单学生信息管理系统

    万次阅读 多人点赞 2018-11-10 14:53:08
    ** ## java实现简单学生信息管理系统(6步) ** 1、首先定义一个学生信息主体类 package project; public class Stu_class { String name; String stu_id; String sex; String phone_num; int age; public ...

    ** ## java实现简单学生信息管理系统(6步) **

    1、首先定义一个学生信息主体类

    package project;
    
    public class Stu_class {
    	String name;
    	String stu_id;
    	String sex;
    	String phone_num;
    	int age;
    		
    	public Stu_class(String name,String stu_id, int age, String phone_num, String sex) {
    		this.name = name;
    	
    		this.stu_id = stu_id;
    		this.phone_num = phone_num;
    		this.sex = sex;
    		this.age = age;
    	}
    	public String getName() {
    		return name;
    	}
    
    	public String getStu_id() {
    		return stu_id;
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public void setSex(String sex) {
    		this.sex = sex;
    	}
    	public void setId_num(String stu_id) {
    		this.stu_id = stu_id;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	public void setPhone_num(String phone_num) {
    		this.phone_num = phone_num;
    	}
    	public void display() {
    		System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"性别:"+sex+"\n"+"学号:"+stu_id+"\n"+"手机号:"+phone_num);
    	}
    }
    
    

    2、再定义一个工具类,在此类中有主页面的欢迎页面,各种功能的实现函数

    package project;
    import java.util.*;
    
    public class Tool {
    	Check_stu_info stu_choose;
    	Chaneg_stu_info change_stu;
    	Add_stu_info stu_info;
    	LinkedList<Stu_class>stu;
    	Scanner con ;
    	public Tool(LinkedList<Stu_class>stu,Check_stu_info stu_choose,Chaneg_stu_info change_stu,Add_stu_info stu_info,Scanner con) {
    		this.stu_choose = stu_choose;
    		this.change_stu = change_stu;
    		this.stu_info =stu_info;
    		this.con = con;
    		this.stu = stu;
    	}
    	public void welcome_custome() {
    		String s = "***********************************";
    		System.out.println(s);
    		System.out.println("欢迎进入学生管理系统!"+"\n"+"您可以进行以下操作:\n1、查看学生信息\n2、修改个人信息\n3、注册新账号\n4、退出系统");
    		System.out.println(s);
    		System.out.print("请选择你需要进行的操作>>>");
    	}
    	public void check_choose(Tool tool) {
    		int choose = con.nextInt();
    		switch(choose) {
    		case 1:
    			stu_choose.welcome_check_choose();
    			stu_choose.check_choose(stu,tool);
    			//查看个人信息函数
    			//con.close();
    			break;
    		case 2:
    			change_stu.change_stu_info(stu,tool);
    			//修改个人信息函数
    			//con.close();
    			break;
    		case 3:
    			stu_info.add_stu_info(stu,tool);
    			//注册新账号
    			//con.close();
    			break;
    		case 4:
    			//退出系统
    			System.out.println("退出系统成功!!!");
    			con.close();
    			System.exit(-1);
    			break;
    		default:
    			System.out.print("输入有误,请重新输入>>>");
    			check_choose(tool);
    	}
    	}
    	public void return_last(Tool tool) {
    		welcome_custome();
    		check_choose(tool);
    	}
    
    }
    
    

    3、 在上一个类中我们定义了查看个人信息函数,修改个人信息函数,注册新账号函数,退出系统.
    接下来我们来写第一个查看个人信息函数.

    package project;
    import java.util.*;
    /**查看信息
     * 1、提示用户所需
     * 2、查看所有学生信息
     * 3、查看个别学生信息
     * 4、当信息查询不到时,提醒并跳入注册学生信息函数界面.
     */
    public class Check_stu_info {
    	Scanner con;
    	Add_stu_info stu_info;
    	public Check_stu_info(Scanner con,Add_stu_info stu_info) {
    		this.con = con;
    		this.stu_info = stu_info;
    	}
    	public void welcome_check_choose() {	
    			String s = "***********************************";
    			System.out.println(s);
    			System.out.println("欢迎进入校园卡查询信息界面,您可以进行以下操作:\n1、查看全部信息\n2、查看个人信息\n3、返回上一级目录\n4、退出");
    			System.out.println(s);
    			System.out.print("请选择你需要进行的操作>>>");
    	}
    	public  void check_choose(LinkedList<Stu_class>stu,Tool tool) {
    		int choose = con.nextInt();
    		switch(choose) {	
    			case 1:
    				//查看全部学生信息
    				show_all_stu_info(stu,tool);
    				//con.close();
    				break;
    			case 2:
    				//查看个人信息
    				one_stu_info(stu,tool,stu_info);
    				//con.close();
    				break;
    			case 3:
    				tool.return_last(tool);
    				//返回上一级目录
    				//con.close();
    				break;
    			case 4:
    				System.out.println("退出系统成功!!!");
    				System.exit(-1);
    				//con.close();
    				//退出系统
    			default:
    				System.out.println("输入有误,请重新输入>>>");
    				check_choose(stu,tool);
    		}
    	}
    	//检查一个人的信息
    	public void one_stu_info(LinkedList<Stu_class>stu,Tool tool,Add_stu_info stu_info) {
    		//Scanner con = new Scanner(System.in);
    		System.out.println("请输人你需要查找学生的姓名>>>");
    		String name = con.next();
    		//con.close();
    		boolean flag = false;
    		if(stu.size() == 0) {
    			System.out.println("未添加学生信息,请先添加学生信息!!!\n1、添加学生信息\t2、退出系统\n请输入>>>");
    			int choose = con.nextInt();
    			if(choose == 1)
    				stu_info.add_stu_info(stu,tool);
    			if(choose == 2)
    				System.exit(-1);
    				
    		}
    		if(stu.size() > 0)
    			{
    			for(int i = 0;i < stu.size();i++) {
    				System.out.println("2");
    				if(stu.get(i).getName()==name) {
    					stu.get(i).display();
    					flag = true;
    					break;
    			}
    		}
    		if(flag==true) {
    			System.out.println("查找成功!!!\n1、继续查找学生信息\t2、返回上一级菜单\t3、退出系统");
    			int choose = con.nextInt();
    			switch(choose) {
    				case 1:
    					one_stu_info(stu, tool,stu_info);
    					break;
    				case 2:
    					tool.return_last(tool);
    					break;
    				case 3:
    					System.exit(-1);
    			}
    		}
    			
    			
    		if(flag == false)
    			{
    			System.out.println("未查到学生信息,1、重新输入\t2、返回上一级菜单\n请输入>>>");
    			int choose = con.nextInt();
    			if(choose == 1)
    				one_stu_info(stu, tool, stu_info);
    			if(choose == 2)
    				tool.return_last(tool);
    			}
    			}
    	}
    	//查询所有人的信息 
    	public void show_all_stu_info(LinkedList<Stu_class>stu,Tool tool) {
    		if(stu.size() == 0) {
    			System.out.println("未添加学生信息,请先添加学生信息!!!\n1、添加学生信息\t2、退出系统\n请输入>>>");
    			int choose = con.nextInt();
    			if(choose == 1)
    				stu_info.add_stu_info(stu,tool);
    			if(choose == 2)
    				System.exit(-1);
    				
    		}
    		else {
    		for(int i = 0;i<stu.size();i++)
    			stu.get(i).display();
    		System.out.println("请输入:\n1、返回上一级目录\t2、退出系统");
    		int choose = con.nextInt();
    		if(choose == 1) {
    			tool.return_last(tool);
    		}
    		if(choose == 2) {
    			System.out.println("退出系统成功!!!");
    			System.exit(-1);
    		}
    		}
    	}
    }
    
    

    4、 接下来写修改个人信息类

    package project;
    import java.util.*;
    /**
     * 1、输入想要修改学生信息的名字
     * 2、将输入的名字在列表中查询
     * 3、查询不成功,提醒用户重新输入,查找成功后进行修改
     *
     */
    public class Chaneg_stu_info {
    	Scanner con;
    	public Chaneg_stu_info(Scanner con) {
    		this.con = con;
    	}
    	public void change_stu_info(LinkedList<Stu_class>stu,Tool tool) {
    		System.out.print("请输入你想要修改学生信息的姓名>>>");
    		String name = con.next();
    		boolean flag = false;
    		for(int i = 0;i<stu.size();i++) {
    			if(name.equals(stu.get(i).getName())) {
    			//	Scanner cox = new Scanner(System.in);
    				flag = true;
    				System.out.print("请输入修改后的姓名>>>");
    				String change_name = con.next();
    				System.out.println();
    				System.out.print("请输入修改后的年龄>>>");
    				int change_age = con.nextInt();
    				System.out.println();
    				System.out.print("请输入修改后的学号>>>");
    				String change_id = con.next();
    				System.out.println();
    				System.out.print("请输入修改后的性别>>>");
    				String change_sex = con.next();
    				System.out.println();
    				System.out.print("请输入修改后的手机号>>>");
    				String change_phone = con.next();
    				System.out.println();
    				stu.get(i).setName(change_name);
    				stu.get(i).setId_num(change_id);
    				stu.get(i).setPhone_num(change_phone);
    				stu.get(i).setAge(change_age);
    				stu.get(i).setSex(change_sex);
    				
    			}
    		}
    		if(flag == true) {
    			System.out.println("修改完成!!!\n1、返回上一级菜单\t2、退出系统");
    			int choose = con.nextInt();
    			if(choose == 1)
    				tool.return_last(tool);
    			if(choose == 2)
    				System.exit(-1);
    		}
    		if(flag == false) {
    			System.out.println("未找到该学生信息\n1、重新输入\t2、退出");
    			int choose = con.nextInt();
    			if(choose == 1)
    				change_stu_info(stu, tool);
    			if(choose == 2)
    				System.exit(-1);
    		}
    	}
    }
    
    

    5、添加学生信息类

    package project;
    import java.util.*;
    
    public class Add_stu_info {
    	Scanner con;
    	public Add_stu_info(Scanner con) {
    		this.con = con;
    	}
    	public void add_stu_info(LinkedList<Stu_class>stu,Tool tool) {
    		//Scanner con = new Scanner(System.in);
    		String s = "***********************************";
    		System.out.print(s+"\n请输入添加学生的姓名>>>");
    		String name = con.next();
    		System.out.print("请输入添加学生的性别>>>");
    		String sex = con.next();
    		System.out.print("请输入添加学生的年龄>>>");
    		int age = con.nextInt();
    		System.out.print("请输入添加学生的学号>>>");
    		String id = con.next();
    		System.out.print("请输入添加学生的手机号>>>");
    		String phone_num = con.next();
    		Stu_class student = new Stu_class(name, id, age, phone_num, sex);
    		stu.add(student);
    		System.out.println("添加完成!!!\n"+s);
    		
    		//返回上一级目录
    		System.out.println("请输入:\n1、返回上一级目录\t2、退出系统");
    		tool.welcome_custome();
    		tool.check_choose(tool);
    	
    	}
    }
    
    

    6、最后定义主体类,对上面所有代码进行整合,创建所需要的对象,再将对象作为参数进行传递,就可实现简单的学生信息管理系统

    package project;
    
    import java.util.LinkedList;
    import java.util.Scanner;
    
    public class Stu_main {
    		static LinkedList<Stu_class>stu;
    	public static void main(String[] args) {
    		//欢迎界面
    		//创建存放学生信息的列表
    		stu = new LinkedList<Stu_class>();
    		//创建输入入口
    		Scanner con = new Scanner(System.in);
    		//创建添加学生信息的对象
    		Add_stu_info stu_info = new Add_stu_info(con);
    		//创建修改学生信息的对象
    		Chaneg_stu_info change_stu = new Chaneg_stu_info(con);
    		//创建查询学生信息的对象
    		Check_stu_info stu_choose = new Check_stu_info(con,stu_info);
    		//创建工具类对象
    		Tool tool = new Tool(stu,stu_choose,change_stu,stu_info,con);
    		tool.welcome_custome();
    		tool.check_choose(tool);
    		con.close();
    	}
    
    }
    
    

    7、代码运行界面代码运行界面

    展开全文
  • C语言:学生信息管理系统(详解+源码)

    万次阅读 多人点赞 2020-05-30 21:56:40
    /* 主要方式 :结构体、链表和文件读取结合 功能模块 : 1、用户界面,给予用户更好的视觉体验 2、录入信息,通过链表开辟内存空间进行录入学生的基本信息 ... 7、查询信息,按照学号查询指定学生信息

    当你搜到这篇文章的时候,相信你可能正在为期末大作业而愁眉不展,下面的代码只需要三步就能实现: 复制、粘贴、编译运行。
    不过在实现的同时还是希望正在学习的你好好理解一下,真正体会到编程的乐趣,加油!
    如果对您有帮助,别忘了点个赞点个关注哦!奥利给!

    /*  
    	主要方式 :结构体、链表和文件读取结合
    	功能模块 :
    	         1、用户界面,给予用户更好的视觉体验
    			 2、录入信息,通过链表开辟内存空间进行录入学生的基本信息
    			 3、存入文件,采用二进制的方式对学生的信息存储到文件中(读取的时候也应该采取二进制的方式,不然会出现乱码的现象)
    			 4、增加信息,可以添加任意一个学生的信息
    			 5、修改信息,按照学号修改指定学生信息
    			 6、删除信息,按照学号删除指定学生信息
    			 7、查询信息,按照学号查询指定学生信息
    			 8、遍历信息,显示所有学生的信息
    			 9、退出系统,将学生信息保存在文件中退出系统
        系统特色:
    	        1、主函数简洁大方,一目了然
    			2、采用控制台的方式,便捷清晰
    			3、可以实现系统中学生数据的保存
    			4、采用链表的方式,对内存的使用物尽其用
    			5、分模块实现的方式,效率更高,维护性强 
    	测试数据:
    	       1001 潘小蓝 90 78 67
               1002 罗大个 78 67 12
               1003 阿囧囧 12 12 15
               0 0 0 0 0 
               (测试者可以复制上方测试数据进行实现系统的功能,也可自行输入信息) 
    */ 
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #define LEN sizeof(struct Student)
    #define maxn 3
    struct Student {                                                      //通过结构体输入学生信息
    	long num;
    	char name[20];
    	float score[3];
    	float aver;
    	struct Student *next;
    };
    int main(void) {                                                     //主函数
    	void Window();
    	void Choose();
    	Window();                                                        //进入首页面 
    	Choose();                                                        //程序控制台 
    }
    void Window() {                                                      //菜单界面
    	printf("-学生成绩管理系统-\n");
    	printf(" ---1、录入信息---\n");
    	printf(" ---2、存入文件---\n");
    	printf(" ---3、增加信息---\n");
    	printf(" ---4、改动信息---\n");
    	printf(" ---5、删除信息---\n");
    	printf(" ---6、查询信息---\n");
    	printf(" ---7、显示信息---\n");
    	printf(" ---0、退出系统---\n");
    	printf("-非常感谢您的使用-\n");
    	return ;
    }
    void Choose() {
    	struct Student *creat();                                     
    	void reserve(struct Student *head);
    	void print(struct Student *head);
    	void Add(struct Student *head);
    	void Change(struct Student *head);
    	void Find(struct Student *head);
    	struct Student *Del(struct Student *head);
    	struct Student *head,*head1;
    	int button;
    	printf("请选择您需要的服务,我们乐意为您效劳!\n");
    	scanf("%d",&button);
    	while(button) {
    		if (button == 1) {
    			head=creat();                                         //录入学生信息 
    		} else if (button == 2) {
    			reserve(head);                                        //将学生成绩以二进制的形式存放到文件中 
    		} else if (button == 3) {
    			Add(head);                                            //增加新的学生信息 
    		} else if (button ==4) {
    			Change(head);                                         //改动某个学生的信息 
    		} else if (button == 5) {
    			head=(Del(head));                                     //删除某个学生的信息 
    			reserve(head);
    		} else if (button == 6) {
    			Find(head);                                           //查找某个学生的信息 
    		} else if (button == 7) {
    			print(head);                                          //显示文件中的学生信息 
    		} else if(button == 0) {
    			break;                                                //退出系统 
    		}
    		printf("请选择您需要的服务,我们乐意为您效劳!\n");
    		scanf("%d",&button);
    	}
    	printf("未来可期,不负新时代!");
    }
    struct Student *creat() {                                                 //录入学生信息
    	struct Student *head,*p1,*p2;
    	int n=1;
    	printf("请输入学生的信息(输入所有信息为0时信息结束):\n");
    	p1=p2=(struct Student *)(malloc(LEN));
    	scanf("%ld%s%f%f%f",&p1->num,p1->name,&p1->score[0],&p1->score[1],&p1->score[2]);
    	while(p1 -> num != NULL ) {
    		p1->aver=(p1->score[0]+p1->score[1]+p1->score[2])/maxn;           //求取学生成绩的平均成绩
    		if(n==1) {
    			head = p1;
    			n=0;
    		} else {
    			p2->next = p1;
    		}
    		p2 = p1;
    		p1 = (struct Student *)(malloc(LEN));
    		scanf("%ld%s%f%f%f",&p1->num,p1->name,&p1->score[0],&p1->score[1],&p1->score[2]);
    	}
    	p1->aver=(p1->score[0]+p1->score[1]+p1->score[2])/maxn;
    	p2->next=NULL;
    	printf("录入信息已完成!\n");
    	return head;
    }
    void reserve(struct Student *head) {                                    //将学生信息以二进制的方式写到文件中
    	FILE *fp;
    	struct Student *p,*p1,stu[maxn];
    	if((fp=fopen("stud.txt","wb"))==NULL) {
    		printf("文件读写错误!");
    		exit(0);
    	}
    	p=head;
    	while(p != NULL) {
    		if(fwrite(p,sizeof(LEN),1,fp)!=1) {			                  //往文件中写内容和读取内容都必须要写这一步
    		}
    		p=p->next;
    	}
    	fclose(fp);
    	printf("学生信息已读入文件!\n");
    	return ;
    }
    void Add(struct Student *head) {                                     
    	void reserve(struct Student *head);   ;
    	struct Student *p1,*p2=NULL,*pNew;
    	long num;
    	printf("请输入要插入的位置(前一个学生的学号):");
    	scanf("%ld",&num);
    	p1 = head;
    	while (p1 != NULL) {
    		if(p1->num == num) {
    			p2 = p1->next;
    			pNew = (struct Student *)(malloc(LEN));
    			printf("学号:");
    			scanf("%ld",&pNew->num);
    			printf("姓名:");
    			scanf("%s",pNew->name);
    			printf("成绩:");
    			scanf("%f%f%f",&pNew->score[0],&pNew->score[1],&pNew->score[2]);
    			printf("平均成绩:%.2f\n",pNew->aver=(pNew->score[0]+pNew->score[1]+pNew->score[2])/maxn);
    			p1->next = pNew;
    			pNew->next = p2;
    			break;
    		}
    		p1 = p1->next;
    	}
    	reserve(head);
    	printf("增加学生信息成功!\n");
    	return ;
    }
    struct Student *Del(struct Student *head) {
    	struct Student *p,*p1;
    	long num;
    	printf("请输入要删除学生的学号:");
    	scanf("%ld",&num);
    	p=head;
    	while(p != NULL) {
    		if(head->num==num) {
    			head = head->next;                                   //先看第一个是否是要删除的成绩
    			free(p);
    			break;
    		}  else {
    			p1 = p;
    			p1 = p->next;
    			if(p1->num==num) {
    				p->next = p1->next;
    				p = p1;
    				free(p1);
    				break;
    			}
    			p = p->next;
    		}
    	}
    	printf("删除学生信息成功!\n");
    	return head;
    }
    void Change(struct Student *head) {                               //改动学生的成绩
    	void reserve(struct Student *head);
    	struct Student *p,newMessage;
    	long Name;
    	long num;
    	char nam[20];
    	printf("请输入要修改的学生学号:");
    	scanf("%ld",&Name);
    	p = head;
    	while(p!=NULL) {
    		if(p->num==Name) {
    			break;                                              //为什么会提示无效的数组,字符串之间能用==进行赋值吗??大傻瓜
    		}
    		p=p->next;
    	}
    	if(p==NULL) {
    		printf("未找到该学生信息!\n");
    		return ;
    	}
    	printf("\n请输入新的信息:");
    	printf("学号:");
    	scanf("%ld",&num);
    	printf("姓名:");
    	scanf("%s",nam);
    	p=head;
    	while(p!=NULL) {
    		if(p->num==Name) {
    			p->num=num;
    			strcpy(p->name,nam);                                  //为什么会提示无效的数组,字符串之间能用==进行赋值吗??大傻瓜
    		}
    		p=p->next;
    	}
    	reserve(head);
    	printf("修改学生信息成功!\n");
    	return ;                                                      //重新保存到文件中
    }
    void Find(struct Student *head) {                                    //查找学生信息
    	struct Student *p;
    	float num;
    	p=head;
    	printf("请输入你要查找的学生的学号信息:");
    	scanf("%f",&num);
    	while(p!=NULL) {
    		if(p->num==num) {
    			printf("学号:%ld  姓名:%s  成绩:%.2f %.2f %.2f 平均成绩:%.2f\n",p->num,p->name,p->score[0],p->score[1],p->score[2],p->aver);
    			break;
    		}
    		p=p->next;
    	}
    	if(p==NULL) {
    		printf("未找到该学生信息!\n");
    	}
    	printf("查找学生信息结束!\n");
    	return ;
    }
    void print(struct Student *head) {                                   //从文件输出各个学生的信息
    	printf("-------------------学生信息-------------------\n");
    	printf(" 学号     姓名    语文    数学   英语   平均\n");
    	struct Student *p1;
    	FILE *fp;
    	fp=fopen("stud.txt","rb");
    	p1=head;
    	while(p1 != NULL) {
    		if(fread(p1,sizeof(LEN),1,fp)!=0) {                        //将文件中的内容以二进制的方式读取并且显示到屏幕上
    			printf(" %3ld%10s %6.2f   %5.2f   %5.2f  %5.2f\n",p1->num,p1->name,p1->score[0],p1->score[1],p1->score[2],p1->aver);
    		}
    		p1=p1->next;
    	}
    	fclose(fp);
    	return ;
    }
    
    展开全文
  • C++ 学生信息管理系统课程设计报告

    千次阅读 2020-06-13 11:22:27
    《面向对象课程设计》报告学生信息管理系统设计一、问题描述二、需求分析和概要设计三、功能模块描述和设计思路四、具体实现过程五、收获与展望 一、问题描述 学生信息管理系统设计 学生信息包括:学号,姓名,年龄...
  • JAVA实现学生信息管理系统

    千次阅读 多人点赞 2019-04-06 12:36:06
    学生信息管理系统,要求完成以下基本任务: 1.有良好程序风格(文档注释,函数注释,语句注释)。 2.将功能补充完全(基于文件处理,完成刷新和保存功能)。 3.将学生信息改为更好的数据组织,而非离散形式...
  • c++实现学生信息管理系统

    千次阅读 2020-06-01 19:10:36
    学生信息管理系统,要求完成以下基本任务: 1.改写程序为良好程序风格(文档注释,函数注释,语句注释)。 2.将功能补充完全(基于文件处理,完成刷新和保存功能)。 3.将学生信息改为更好的数据组织,而非离散...
  • C++模板类实现学生信息管理系统

    千次阅读 2019-10-05 16:06:33
    首先介绍功能:对学生信息的添加,删除,修改,搜索。 搜索分为用学号进行精确搜索,并且搜索到之后可以对其进行修改,删除。另一个是用学号外的任一项信息或者几项信息进行搜索,显示为关联度高的在前,关联度低的...
  • python实现学生信息管理系统

    千次阅读 多人点赞 2020-12-04 22:48:33
    学生信息管理系统用python实现。 是跟着娟姐学python里面的,视频链接请点击:代码视频讲解 需求分析 系统设计 python代码实现 import os fileName = 'student.txt' def main(): while True: menu() ...
  • C语言小项目(学生信息管理系统

    万次阅读 多人点赞 2016-04-06 09:07:44
    试设计一学生信息管理系统,使之能提供以下功能:  1.系统以菜单方式工作  2.学生信息录入功能(学生信息用文件保存)---输入  3.学生信息浏览功能——输出  4.查询、排序功能——算法 1、按学号查询 2、...
  • C++课设-学生信息管理系统

    千次阅读 多人点赞 2020-04-03 10:28:14
    建立学生信息数据,包括学号、姓名、性别、三科成绩、出生时间、年龄(必须计算得到)。 使用继承的方法构造至少3个类,(即学生类——虚基类,一年级学生和二年级学生类——派生类)使用相应的对象放置10个学生...
  • 单链表实现学生信息管理系统,包含了单链表的各种基本操作———(稳定,BUG少)
  • 利用c++实现简单的学生信息管理系统

    万次阅读 多人点赞 2019-04-06 17:48:01
    对给定例子的学生信息管理系统代码进行修改,要求完成以下基本任务: 1.改写程序为良好程序风格(文档注释,函数注释,语句注释)。 2.将功能补充完全(基于文件处理,完成刷新和保存功能)。 3.将学生信息改为更好...
  • 试设计一学生信息管理系统,使之能提供以下功能: 学生信息录入功能(学生信息用文件保存)---输入 学生信息浏览功能——输出 查询、排序功能——算法 按学号查询 按姓名查询 学生信息的删除与修改(可选项) (2...
  • 利用python字典写一个简单的学生信息管理系统

    万次阅读 多人点赞 2019-04-29 00:33:22
    最近在学习python,写了一个超简单的学生信息管理系统,在博客做一个记录吧,大神勿喷。。。
  • 学生管理系统

    千次阅读 2019-04-05 17:48:27
    改写已有的学生信息管理系统为良好程序风格,要求有必要的文档注释,函数注释,语句注释。补充程序的功能:基于文件处理,刷新和保存功能。将学生信息改为更好的数据组织,而非离散形式(结构体)。其他不足等可根据...
  • 数据结构实训之学生信息管理系统

    千次阅读 2017-01-01 15:00:19
    [cpp] view plain copy /* ... * 文件名称:项目1.cpp * 作 者:泮春宇* 完成日期:2016年1月1日 * 版 本 号:v1.0 *问题描述学生信息管理系统 *输入描述:无 *程序输出:测试数据 */  我的
  • 数据结构实验报告(一)学生信息管理系统

    千次阅读 多人点赞 2020-01-12 10:58:03
    大二计算机学生报告的汇总 进入计算机专业以来每天的必要工作就是写报告,按照老师的话来说,我们计算机专业的...学生信息管理系统 代码区 代码说明:此代码所运用的软件是ios系统的x-code #include <stdio.h...
  • ASP.NET学生信息管理系统

    千次阅读 2014-07-23 10:50:22
    文章介绍了学生管理信息系统系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法, 本系统界面友好,操作简单,...
  • 数据结构课程设计论文--学生信息管理系统 1.学生成绩分析问题 (1)问题描述。录入并保存一个班级学生多门课程的成绩,并对成绩进行分析。 (2)基本要求。a)通过键盘输入各学生的多门课程的成绩,建立...
  • 学生信息管理系统要实现的目标是为该校提供全面的学生信息管理的解决方案,以解决传统人工管理方式效率低、保密性差,不利于查找、更新和维护的问题,极大地提高学生信息管理的效率,节约教育经费,以适应学校信息...
  • 学生信息管理系统(一)添加信息

    千次阅读 热门讨论 2013-08-16 11:19:30
    信息添加的流程: 1.定义 Dim mrc As ADODB.Recordset ‘定义一个记录集,用来保存 Dim txtSQL As String ‘用来执行的SQL语句 Dim MsgText As String ‘执行完SQL语句后的弹出框 2.添加
  • 使用c语言建立一个学生管理系统(使用结构体)

    万次阅读 多人点赞 2019-04-03 22:47:44
    题目分析(学生信息管理系统) 做一个学生信息管理系统,首先定义一个结构体。结构体成员分别有:学号,姓名,年龄,性别等。然后分别实现帮助、查询学生信息、增加学生信息、显示当前学生信息等若干功能。整个程序中...
  • 学生信息管理系统(读取文件) 1. 设计目的 1.1巩固和加深对C语言课程基本知识的理解和掌握 1.2利用C语言进行基本的软件设计与开发 1.3了解部分管理信息系统的开发流程 1.4加强自己的团队协作和分析问题的能力 1.5...
  • 学生成绩管理系统设计》 二、实训目的 (1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。 (2)掌握C++的基本概念和基础知识。 (3)通过训练能够读懂较为复杂的C++语言源程序...
  • JAVA 实现简单的学生成绩管理系统

    万次阅读 多人点赞 2018-04-15 10:27:23
    2.掌握简单的信息管理系统的设计与实现。二、实验环境实验建议在安装了以下软件的计算机上完成:1.Windows xp/win7/win8/win10操作系统2.JDK 1.6以上版本3.Eclipse或NetBeans IDE或EditPlus或其它开发工具三、实验...
  • 学生信息管理系统(二)——数据库分析与实现

    千次阅读 热门讨论 2014-06-29 16:31:38
    下面以创建学籍信息表为例! ;">CREATE TABLE [dbo].[student_Info] ( [student_ID] [int] NOT NULL , [student_Name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL , [student_Sex] [char] (2) COLLATE ...
  • c++信息管理系统

    千次阅读 2019-06-18 08:53:34
    信息管理系统 因为学校布置了写一个信息管理系统的作业,所以写下了这个信息管理系统,这是用cpp写的一个简单程序。 基本思路是通过控制台程序,然后通过数字命令来进行操作。 该程序编译了多文件; 因为是学校...
  • "学生信息管理程序", //传参而入的窗口标题文字 WS_OVERLAPPEDWINDOW^WS_THICKFRAME^WS_MAXIMIZEBOX, //窗口外观样式:按位异或符'^'后接要排除的样式(6种窗口类型的组合^具有可调边框^具有最大化按钮) 550, //...
  • 抛出MySQLSyntaxErrorException,如下图所示: 要学会看错误提示信息,这对于我们开发程序相当重要,提示在telephone = '13845456780’附近存在MySQL句法错误,因此,我们要去看源码进行调试,解决这个错误。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,942
精华内容 7,976
关键字:

学生信息管理系统的算法描述