精华内容
下载资源
问答
  • package Demo; //能基本实现学生信息的增删改查,并含有以下功能: 1、将数组存储改为文本文件存取方式。 2、数据查询功能可以按照记录的...提示输入学生学号,再输入相关的修改内容。 import java.io.Buffer...
    package Demo;
    //能基本实现学生信息的增删改查,并含有以下功能:

    1、将数组存储改为文本文件存取方式。

    
    

    2、数据查询功能可以按照记录的顺序号查询。

    
    

    3、修改学生信息可以增加指定学生记录的某项内容。

    
    

              1、修改姓名;2、修改年龄;3、修改性别;4、修改成绩;提示输入学生学号,再输入相关的修改内容。

    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Scanner;
    import java.util.StringTokenizer;
    
    public class StudentMangager1 {
        static int n=0;
        static Student[] a1=null;
        public static void main(String[]args) throws IOException
        {    
            n=4;
            a1=new Student[n];
            a1[0]=new  Student("20153307","wzw",18,true,100);
            a1[1]=new  Student("20153306","wz",18,true,99);
            a1[2]=new  Student("20153304","w",19,true,95);
            a1[3]=new  Student("20153303","wzwh",19,true,50);
            
            try{
                PrintWriter out =new PrintWriter(new FileWriter("newFile.txt"));
                write(a1,out);
                out.close();
                BufferedReader in=new BufferedReader(new FileReader("newFile.txt"));
                Student[] a2=read(in);
                in.close();
                for(Student e:a2)
                    System.out.println(e);
            }
            catch(IOException exception)
            {
                exception.printStackTrace();
            }
            char ch='y';
            while(ch=='y')
            {
                
                System.out.println("***************************************************************");
                System.out.println("\t\t石家庄铁道大学软件工程系学生信息管理系统 ");
                System.out.println("***************************************************************");
                System.out.println("\t\t\t\t1、 遍历输出学生信息:");
                System.out.println("\t\t\t\t2、 新学生信息录入:");
                System.out.println("\t\t\t\t3、 删除学生信息:");
                System.out.println("\t\t\t\t4、 修改学生信息:");
                System.out.println("\t\t\t\t5、 查询学生信息:");
                System.out.println("\t\t\t\t6、 退出:");
                Scanner scan=new Scanner(System.in);
                int sc5=scan.nextInt();
                switch(sc5)
                {
                case 1:
                {
                    showStudent();
                    break;
                }
                case 2:
                {
                    System.out.println("请输入需要添加的学生信息");
                    String sc=scan.next();
                    String sc1=scan.next();
                    int sc2=scan.nextInt();
                    boolean sc3=scan.nextBoolean();
                    double sc4=scan.nextDouble();
                    
                    addStudent(sc,sc1,sc2,sc3,sc4);
                    break;
                }
                case 3:
                {
                    System.out.println("请输入需要删除的的学生的学号");
                    String sc=scan.next();
                    deleteStudent(sc);
                    break;
                }
                case 4:
                {
                    System.out.println("请输入需要修改的方式:1:全部修改,2修改指定内容");
                    int sc6=scan.nextInt();
                    if(sc6==1)
                    {
                        System.out.println("请输入要修改的学生信息");
                        String sc=scan.next();
                        String sc1=scan.next();
                        int sc2=scan.nextInt();
                        boolean sc3=scan.nextBoolean();
                        double sc4=scan.nextDouble();
                        updateStudent(sc,sc1,sc2,sc3,sc4);
                    }
                    else
                    {
                        updateStudent();
                    }
                    break;
                }
                case 5:
                {
                    System.out.println("请输入要查询的方式:1:按顺序号查询,2按学号查询");
                    int sc=scan.nextInt();
                    if(sc==1)
                    {
                        System.out.println("请输入要查询的顺序号");
                        int sc2=scan.nextInt();
                        selectStudent1(sc2);
                    }
                    else
                    {
                        System.out.println("请输入需要查询的学生的学号");
                        String sc1=scan.next();
                        selectStudent(sc1);
                    }
                    
                    break;
                }
                case 6:
                {
                    ch='x';
                    break;
                }
                }
            }
        }
        
        public static void write(Student[] a,PrintWriter out)
        {
             
                  // write number of employees
                  out.println(a.length);
    
                  for (Student e : a)
                     e.writeStudent(out);
               
        }
        public static Student[] read(BufferedReader in)throws IOException
        {
            int n=Integer.parseInt(in.readLine());
            for(int i=0;i<n;i++)
            {
                a1[i]=new Student();
                a1[i].readStudent(in);
            }
            return a1;
        }
        
        static void showStudent() throws IOException
        {
            BufferedReader in=new BufferedReader(new FileReader("newFile.txt"));
            Student[] a2=read(in);
            in.close();
            for(int i=0;i<n;i++)
            System.out.println(a1[i].getStunumber()+a1[i].getName()+a1[i].getAge()+a1[i].getSex()+a1[i].getScore());
            
        }
        static void addStudent(String nu,String n1,int s1,boolean b,double s) throws IOException
        {
            
            int m=0;
            for(int i=0;i<n;i++)
            {
                if(a1[i].getStunumber().equals(nu))
                {
                    System.out.println("已存在这个人");
                    m++;
                }
            }
            if(m==0)
            {
                Student[]a2=new Student[n+1];
                for(int i=0;i<n;i++)
                {
                    a2[i]=a1[i];
                }
                n++;
                a1=new Student[n];
                a2[n-1]=new Student(nu,n1,s1,b,s);
                PrintWriter out =new PrintWriter(new FileWriter("newFile.txt"));
                write(a2,out);
                out.close();
                System.out.println("添加成功");
            }
        }
        static void deleteStudent(String nu) throws IOException
        {
    
            int m=0,z=0;
            for(int i=0;i<n;i++)
            {
                if(a1[i].getStunumber().equals(nu))
                {
                    z=i;
                    m++;
                    System.out.println("删除成功");
                }
            }
            if(m==0)
            {
                System.out.println("不存在这个人");
            }
            else{
                Student[]a2=new Student[n-1];
                for(int j=z;j<n-1;j++)
                {
                    a1[j]=a1[j+1];
                }
                n--;
                for(int i1=0;i1<n;i1++)
                {
                    a2[i1]=a1[i1];
                }
                a1=new Student[n];
                PrintWriter out =new PrintWriter(new FileWriter("newFile.txt"));
                write(a2,out);
                out.close();
            }
        }
        static void updateStudent(String nu,String n1,int s1,boolean b,double s) throws IOException
        {
            int m=0,z = 0;
            for(int i=0;i<n;i++)
            {
                if(a1[i].getStunumber().equals(nu))
                {
                    z=i;
                    m++;
                    
                }
            }
            if(m==0)
            {
                System.out.println("不存在这个人");
            }
            else{
                a1[z]=new Student(nu,n1,s1,b,s);
                System.out.println("修改成功");
                Student[] a2=new Student[n];
                for(int i1=0;i1<n;i1++)
                {
                    a2[i1]=a1[i1];
                }
                a1=new Student[n];
                PrintWriter out =new PrintWriter(new FileWriter("newFile.txt"));
                write(a2,out);
                out.close();
            }
        }
        static void updateStudent() throws IOException{
            System.out.println("请选择修改的类型:1、修改姓名;2、修改年龄;3、修改性别;4、修改成绩;");
            Scanner scan=new Scanner(System.in);
            int m=0,z=0;
            int sc=scan.nextInt();
            if(sc==1)
            {
                System.out.println("请先输入需要修改人的学号");
                String sc1=scan.next();
                for(int i=0;i<n;i++)
                {
                    if(sc1.equals(a1[i].getStunumber()))
                    {
                        m++;
                        z=i;
                    }
                }
                if(m==0)
                {
                    System.out.println("修改失败,不存在这个人");
                }
                else
                {
                    System.out.println("请输入新的姓名");
                    String sc2=scan.next();
                    a1[z].setName(sc2);
                    System.out.println("修改成功");
                    Student []a2=new Student[n];
                    for(int i=0;i<n;i++)
                    {
                        a2[i]=a1[i];
                    }
                    a1=new Student[n];
                    PrintWriter out =new PrintWriter(new FileWriter("newFile.txt"));
                    write(a2,out);
                    out.close();
                }
            }
            else if(sc==2)
            {
                System.out.println("请先输入需要修改人的学号");
                String sc1=scan.next();
                for(int i=0;i<n;i++)
                {
                    if(sc1.equals(a1[i].getStunumber()))
                    {
                        m++;
                        z=i;
                    }
                }
                if(m==0)
                {
                    System.out.println("修改失败,不存在这个人");
                }
                else
                {
                    System.out.println("请输入新的年龄");
                    int sc2=scan.nextInt();
                    a1[z].setAge(sc2);
                    System.out.println("修改成功");
                    Student []a2=new Student[n];
                    for(int i=0;i<n;i++)
                    {
                        a2[i]=a1[i];
                    }
                    a1=new Student[n];
                    PrintWriter out =new PrintWriter(new FileWriter("newFile.txt"));
                    write(a2,out);
                    out.close();
                }
            }
            else if(sc==3)
            {
    
                System.out.println("请先输入需要修改人的学号");
                String sc1=scan.next();
                for(int i=0;i<n;i++)
                {
                    if(sc1.equals(a1[i].getStunumber()))
                    {
                        m++;
                        z=i;
                    }
                }
                if(m==0)
                {
                    System.out.println("修改失败,不存在这个人");
                }
                else
                {
                    System.out.println("请输入新的性别");
                    Boolean sc2=scan.nextBoolean();
                    a1[z].setSex(sc2);
                    System.out.println("修改成功");
                    Student []a2=new Student[n];
                    for(int i=0;i<n;i++)
                    {
                        a2[i]=a1[i];
                    }
                    a1=new Student[n];
                    PrintWriter out =new PrintWriter(new FileWriter("newFile.txt"));
                    write(a2,out);
                    out.close();
                }
            }
            else{
    
                System.out.println("请先输入需要修改人的学号");
                String sc1=scan.next();
                for(int i=0;i<n;i++)
                {
                    if(sc1.equals(a1[i].getStunumber()))
                    {
                        m++;
                        z=i;
                    }
                }
                if(m==0)
                {
                    System.out.println("修改失败,不存在这个人");
                }
                else
                {
                    System.out.println("请输入新的成绩");
                    double sc2=scan.nextDouble();
                    a1[z].setScore(sc2);
                    System.out.println("修改成功");
                    Student []a2=new Student[n];
                    for(int i=0;i<n;i++)
                    {
                        a2[i]=a1[i];
                    }
                    a1=new Student[n];
                    PrintWriter out =new PrintWriter(new FileWriter("newFile.txt"));
                    write(a2,out);
                    out.close();
                }
            }
        }
        static void selectStudent(String nu)
        {
            int m=0,z=0;
            for(int i=0;i<n;i++)
            {
                if(a1[i].getStunumber().equals(nu))
                {
                    z=i;
                    m++;
                }
            }
            if(m==0)
            {
                System.out.println("查询失败,不存在这个人");
            }
            else{
    
                System.out.println("查询成功");
                System.out.println(a1[z].getStunumber()+a1[z].getName()+a1[z].getAge()+a1[z].getSex()+a1[z].getScore());
            }
        }
        static void selectStudent1(int z){
            if(z>n-1)
            {
                System.out.println("查询失败,不存在这个人");
            }
            else{
                z=z-1;
                System.out.println(a1[z].getStunumber()+a1[z].getName()+a1[z].getAge()+a1[z].getSex()+a1[z].getScore());
            }
        }
    }
    class Student {
        public Student(){}
        public String toString()
        {
            return getClass().getName()
                    +"[stunumber="+stunumber
                    +",name="+name
                    +",age="+age
                    +",sex="+sex
                    +",score="+score
                    +"]";
        }
        private String stunumber;
        private String name;
        private int age;
        private boolean sex;
        private double score;
        void setStunumber(String t){
            stunumber = t;
        }
        public void writeStudent(PrintWriter out) {
            // TODO Auto-generated method stub
            out.println(stunumber+"|"+name+"|"+age+"|"+sex+"|"+score);
        }
        public void readStudent(BufferedReader in)throws IOException
        {
            String s=in.readLine();
            StringTokenizer t = new StringTokenizer(s, "|");
            stunumber=t.nextToken();
            name=t.nextToken();
            age=Integer.parseInt(t.nextToken());
            sex=Boolean.parseBoolean(t.nextToken());
            score=Double.parseDouble(t.nextToken());
        }
        String getStunumber(){
            return stunumber;
        }
        String getName(){
            return name;
        }
        int getAge(){
            return age;
        }
        double getScore(){
            return score;
        }
        boolean getSex(){
            return sex;
        }
        void setName(String t){
            name = t;
        }
        
        void setAge(int t){
            age = t;
        }
        
        void setSex(boolean t){
            sex = t;
        }
        
        void setScore(double t){
            score = t;
        }
        
        
        Student(String anumber,String aname,int aage,boolean asex,double ascore){
            stunumber = anumber;
            name = aname;
            age = aage;
            sex = asex;
            score = ascore;
        }
    }

     

    转载于:https://www.cnblogs.com/qingtianxt/p/6117767.html

    展开全文
  • 模拟学生成绩管理系统。 现有若干学生的学籍档案信息,要求编写一个应用软件对其进行日常管理,以实现学生档案信息的插入和删除,并能根据学生姓名查询。(使用文件作为数据的输入/输出,准备若干测试数据以文件形式...

    模拟学生成绩管理系统。

    现有若干学生的学籍档案信息,要求编写一个应用软件对其进行日常管理,以实现学生档案信息的插入和删除,并能根据学生姓名查询。(使用文件作为数据的输入/输出,准备若干测试数据以文件形式保存或读取。)
    源代码如下:
    (文件路径:D:\Student.txt)

    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    #include<string.h>
    typedef struct student
    {
    	char Name[20];
    	int Num;
    	char Sex;
    	int Chinese;
    	int Math;
    	int English;
    	int Add;
    	float Aver;
    }stu;        //学生信息与成绩数据
    
    typedef struct node
    {
    	stu data;
    	struct node *next;
    }linklist;    //单链表结构体
    
    void MainMenu()
    {
    	char choice;
    	void Input();
    	void Delete();
    	void Locate();
    	printf("请从下面的菜单中选择您要进行的操作:\n\n");
    	printf("**********************\n");
    	printf("*   a.插入学生信息   *\n");
    	printf("*   b.删除学生信息   *\n");
    	printf("*   c.查询学生信息   *\n");
    	printf("*   d.退出系统       *\n");
    	printf("**********************\n\n");
    	scanf("%c",&choice);
    	printf("\n");
    	switch(choice)
    	{
    	case'a':Input();break;
    	case'b':Delete();break;
    	case'c':Locate();break;
    	case'd':{
    		printf("**********学生信息管理系统**********\n");
    		printf("*                                  *\n");
    		printf("*  感谢您的使用,欢迎您的下次使用! *\n");
    		printf("*                                  *\n");
    		printf("**********程序设计综合实验**********\n\n");
    		break;
    			}
    	default:{
    		printf("抱歉!未开通此项服务。请您重新选择:\n\n");
    		MainMenu();
    			}
    	}
    }
    
    linklist *Read()
    {
    	linklist *head,*r,*s;
    	head=(linklist*)malloc(sizeof(linklist));
    	r=head;
    	FILE *fp;
    	if((fp=fopen("D:\\Student.txt","rb"))==NULL)
    	{
    		printf("文件打开失败!请检查文件所处路径是否正确。\n");
    		exit(0);
    	}
    	fseek(fp,59L,0);
    	while(!feof(fp))
    	{
    		s=(linklist*)malloc(sizeof(linklist));
    		fscanf(fp,"%s %d %c %d %d %d %d %f",s->data.Name,&s->data.Num,&s->data.Sex,&s->data.Chinese,&s->data.Math,&s->data.English,&s->data.Add,&s->data.Aver);
    		r->next=s;
    		r=s;	
    	}
    	r->next=NULL;
    	fclose(fp);
    	return head;
    }     //将学生信息从文件中读取,并存储在一个单链表中
    
    void Print(linklist *head)
    {
    	linklist *s;
    	int i,n;
    	char str[10][20],ch;
    	printf("请输入您想查询的学生个数:");
    	scanf("%d",&n);
    	printf("请输入您想查询的学生姓名(每行输入一个):\n");
    	for(i=0;i<n;i++)
    		scanf("%s",str[i]);
    	printf("\n");
    	printf("Name             Number     Sex  Chinese  Math  English  Add  Aver\n");
    	for(i=0;i<n;i++)
    	{
    		s=head->next;
    		while(s!=NULL)
    		{
    			if(strcmp(str[i],s->data.Name)==0)
    			{
    				printf("%-17s%-12d%c     ",s->data.Name,s->data.Num,s->data.Sex);
    				printf("%-8d%-7d%-7d%-5d%.1f\n",s->data.Chinese,s->data.Math,s->data.English,s->data.Add ,s->data.Aver);
    				break;     //将学生信息打印到屏幕上
    			}
    			else
    				s=s->next;
    		}
    		if(s==NULL)
    			printf("抱歉!表中没有%s同学的信息,请检查姓名是否输入正确。\n",str[i]);
    	}
    	printf("\n\n接下来你希望:\n\n");
    	printf("a.继续当前操作\n");
    	printf("b.返回主菜单\n\n");
    	getchar();    //用来消化最后输入的回车符
    	while(scanf("%c",&ch)!=('a'||'b'))
    		printf("抱歉!未开通此项服务。请您重新选择:\n\n");
    	printf("\n");
    	if(ch=='a')
    		Print(head);
    	else if(ch=='b')
    		getchar();
    		MainMenu();
    }    //在屏幕上打印出学生信息数据
    
    void save(linklist *head)
    {
    	char str[]={"Name        Number  Sex  Chinese  Math  English  Add  Aver\n"};
    	FILE *fp;
    	linklist *s;
    	s=head->next;
    	if((fp=fopen("D:\\Student.txt","wb"))==NULL)
    	{
    		printf("文件打开失败!请检查文件所处路径是否正确。\n");
    		return;
    	}
    	fputs(str,fp);
    	while(s->next!=NULL)
    	{
    		fprintf(fp,"%s %d %c %d %d %d %d %.1f\n",s->data.Name,s->data.Num,s->data.Sex,s->data.Chinese,s->data.Math,s->data.English,s->data.Add,s->data.Aver);
    		s=s->next;
    	}
    	fclose(fp);
    }    //将学生数据输入指定文件中
    
    void Input()
    {
    	linklist *head;
    	head=Read();    //从文件中读取学生数据,存储到一个单链表中
    	int i,n;
    	char ch;
    	linklist *p,*r,*s;
    	printf("请输入您要插入的学生个数:");
    	scanf("%d",&n);
    	printf("请按以下顺序每行输入一位插入学生信息(内容用空格分开):姓名 学号 性别 语文成绩 数学成绩 英语成绩\n");
    	for(i=0;i<n;i++)
    	{
    		s=(linklist*)malloc(sizeof(linklist));
    		scanf("%s %d %c %d %d %d",s->data.Name,&s->data.Num,&s->data.Sex,&s->data.Chinese,&s->data.Math,&s->data.English);
    		if(s->data.Num>99999999||(s->data.Sex!='F'&&s->data.Sex!='M')||s->data.Chinese<0||s->data.Chinese>150||s->data.Math<0||s->data.Math>150||s->data.English<0||s->data.English>150)
    		{
    			i--;
    			printf("请按正确格式输入!(学号为八位,性别为F或M,所有科目满分均为150):\n");
    			continue;
    		}     //输入格式错误时的提示
    		s->data.Add=s->data.Chinese+s->data.Math+s->data.English;
    		s->data.Aver=float(s->data.Add/3);
    		r=head->next;
    		p=head;
    		while(strcmp(r->data.Name,s->data.Name)<0)   //按字母表顺序排列
    		{
    			p=r;
    			r=r->next;
    		}
    		p->next=s;
    		s->next=r;
    	}
    	save(head);    //重新写入文件
    	printf("\n接下来你希望:\n");
    	printf("a.继续当前操作\n");
    	printf("b.返回主菜单\n\n");
    	getchar();   //用来消化最后输入的回车符
    	while(scanf("%c",&ch)!=('a'||'b'))
    		printf("抱歉!未开通此项服务。请您重新选择:\n\n");
    	printf("\n");
    	if(ch=='a')
    		Input();
    	else if(ch=='b')
    		getchar();
    		MainMenu();
    }     //按字母表顺序插入学生信息
    
    void Delete()
    {
    	linklist *head;
    	head=Read();    //从文件中读取学生数据,存储到一个单链表中
    	int i,n;
    	char str[10][20],ch;
    	printf("请输入您要删除的学生个数:");
    	scanf("%d",&n);
    	printf("请输入您要删除的学生姓名(每行输入一个):\n");
    	for(i=0;i<n;i++)
    		scanf("%s",str[i]);
    	linklist *r,*q;
    	for(i=0;i<n;i++)
    	{
    		r=head->next;
    		q=head;
    		while(r!=NULL&&strcmp(str[i],r->data.Name)!=0)   //在已读取的链表中查找相同的姓名
    		{
    			q=r;
    			r=r->next;
    		}
    		if(r==NULL)
    			printf("\n抱歉!表中没有%s同学的信息,请检查姓名是否输入正确。\n",str[i]);
    		else
    		{
    			q->next=r->next;
    			free(r);
    		}
    	}
    	save(head);   //重新写入文件
    	printf("\n接下来你希望:\n");
    	printf("a.继续当前操作\n");
    	printf("b.返回主菜单\n\n");
    	getchar();   //用来消化最后输入的回车符
    	while(scanf("%c",&ch)!=('a'||'b'))
    		printf("抱歉!未开通此项服务。请您重新选择:\n\n");
    	printf("\n");
    	if(ch=='a')
    		Delete();
    	else if(ch=='b')
    		getchar();
    		MainMenu();
    }     //删除学生信息
    
    void Locate()
    {
    	linklist *L;
    	L=Read();
    	Print(L);
    }    //查询学生信息
    
    int main()
    {
    	printf("**********学生信息管理系统**********\n");
    	printf("*                                  *\n");
    	printf("*             欢迎使用             *\n");
    	printf("*                                  *\n");
    	printf("**********程序设计综合实验**********\n\n");
    	MainMenu();
    	return 0;
    }   //主函数
    

    文件基本内容:
    Name Number Sex Chinese Math English Add Aver
    Caiyun 19180319 F 115 120 103 338 112.7
    Hanmeimei 19180512 F 112 107 141 360 120.0
    Lilei 19180511 M 102 113 136 351 117.0
    Tengzijin 19180523 M 98 77 100 275 91.7
    Wangruohan 19180101 F 125 134 135 394 131.3

    由于需要,最开始文件内容全部输入后需使光标到下一行开头(实话实说算是我偷个懒哈哈)。此后的操作中皆会将末尾光标移至下一行开头,保证代码运行的正确。
    文件中基本信息是按照姓名字母表顺序排列,插入信息也是按照此顺序排列的。

    以下为测试样例及运行结果

    1.插入信息:
    Lilei 19180511 M 102 113 136

    文件原信息:

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

    在这里插入图片描述
    在这里插入图片描述
    输入格式错误会有提示。
    插入结果:

    在这里插入图片描述
    插入成功。

    2.删除信息:

    在这里插入图片描述
    删除后文件内容:

    在这里插入图片描述
    若查无此人也会有提示。

    3.查询信息

    在这里插入图片描述
    在这里插入图片描述
    这其实是本人大一程序设计综合实验的大作业…
    能力有限,还望多多包涵!

    展开全文
  • cout|---------------学生信息管理系统----------------|"; cout|-------------------1 查询----------------------|"; cout|-------------------2 添加----------------------|"; cout|------------------...
    #include<fstream>
    #include<iostream>
    #include<algorithm>
    #include<string>
    using namespace std;
    struct Stu{
    	char name[20];
    	int num;
    	int score;
    }stu[100];
    int n=0;//存放学生人数
    
    void input();
    void display();
    void read();
    void write();
    void sort();
    void search();
    void insert();
    void read_or_clear();
    void del();
    void menu();
    //主函数
    int main()
    {
    	menu();
    	return 0;
    }
    void menu()
    {
    	read_or_clear();
    	while(1){
    		cout<<endl;
    		cout<<"|---------------学生信息管理系统----------------|"<<endl;
    		cout<<"|-------------------1 查询----------------------|"<<endl;
    		cout<<"|-------------------2 添加----------------------|"<<endl;
    		cout<<"|-------------------3 排序----------------------|"<<endl;
    		cout<<"|-------------------4 删除----------------------|"<<endl;
    		cout<<"|-------------------5 显示----------------------|"<<endl;
    		cout<<"|-------------------6 退出----------------------|"<<endl;
    		cout<<"|-----------------------------------------------|"<<endl;
    		int number;
    		cout<<"输入你的选择:"<<endl;
    		cin>>number;
    		switch(number){
    		case 1:search();break;
    		case 2:insert();break;
    		case 3:sort();break;
    		case 4:del();break;
    		case 5:read();break;
    		case 6:exit(1);
    		default:cout<<"输入选项序号错误!"<<endl;
    		}
    	}
    }
    
    
    //删除学生信息
    void del()
    {
    	int number;
    	bool f=0;
    	cout<<"输入你要删除的学生学号:"<<endl;
    	cin>>number;
    	for(int i=0;i<n;i++){
    		if(stu[i].num==number)
    		{
    			cout<<"找到该学生!进行删除操作..."<<endl;
    			for(int j=i;j<n-1;j++)
    			{
    				stu[j].num=stu[j+1].num;
    				stu[j].score=stu[j+1].score;
    				strcpy(stu[j].name,stu[j+1].name);
    			}
    			cout<<"删除成功!"<<endl;
    			n--;//学生人数-1
    			f=1;
    			break;
    		}
    	}
    	if(f)
    		write();
    	else 
    		cout<<"不存在该学生!无法删除!"<<endl;
    	
    }
    
    
    //添加学生信息
    void insert()
    {
    	int num,score;
    	char name[20];
    	cout<<"输入所要添加学生的学号:"<<endl;
    	cin>>num;
    	bool f=1;
    	for(int i=0;i<n;i++)
    	{
    		if(num==stu[i].num){
    			cout<<"无法添加该学生 该学生信息已经存在!"<<endl;
    			f=0;
    			break;
    		}
    	}
    	if(f){
    		cout<<"输入姓名 成绩:"<<endl;
    		cin>>name>>score;
    		stu[n].num=num;
    		stu[n].score=score;
    		strcpy(stu[n].name,name);
    		cout<<"添加成功"<<endl;
    		n++;
    		write();//添加后要保存到文件中
    	}
    	
    }
    	
    
    		
    //清空
    void read_or_clear()
    {
    	cout<<"是否清空文件中的学生信息?(清空/第一次录入信息 需要输入学生信息,保存到文件中  yes--清空 no--不清空 )"<<endl;
    	string s;
    	cin>>s;
    	if(s=="yes")
    	{
    		n=0;
    		input();//清空后调用 输入学生信息函数
    		write();//并将信息保存到文件中
    		read();
    	}
    	if(s=="no")
    	{
    		read();
    		cout<<"读取信息完毕!"<<endl;
    	}
    }
    
    //查询
    void search()
    {
    	cout<<"选择查询方式:0--学号 1--姓名:"<<endl;
    	int s;
    	cin>>s;
    	while(1){
    	if(s==0)
    	{
    		cout<<"输入你要查询的学号:"<<endl;
    		int num;
    		cin>>num;
    		for(int i=0;i<n;i++)
    			if(num==stu[i].num)
    				cout<<"查询成功!"<<num<<"号学生信息 姓名 成绩:"<<stu[i].name<<" "<<stu[i].score<<endl;
    		break;
    	}
    	else if(s==1)
    	{
    		cout<<"输入你要查询的学生姓名:"<<endl;
    		char name[20];
    		cin>>name;
    		for(int i=0;i<n;i++)
    			if(strcmp(stu[i].name,name)==0)
    				cout<<"查询成功!"<<name<<"学生信息 学号 成绩:"<<stu[i].num<<" "<<stu[i].score<<endl;
    		break;
    	}
    	else
    	{
    		cout<<"输入的选项序号有误,请重新输入:"<<endl;
    		cin>>s;
    	}
    	}
    }
    	
    
    //排序
    bool cmp(Stu a,Stu b)
    {
    	return a.score<b.score;
    }
    bool cmp1(Stu a,Stu b) //成绩降序
    {
    	return a.score>b.score;
    }
    bool cmp2(Stu a,Stu b)  //姓名排序
    {
    	if(strcmp(a.name,b.name)<=0)
    		return true;
    	else
    		return false;
    }
    bool cmp3(Stu a,Stu b)  //学号排序
    {
    	return a.num<b.num;
    }
    
    void sort()
    {
    	void display();
    	cout<<"选择排序方式:0--按照姓名排序 1--按照学号排序 2--按照成绩升序 3--按照成绩降序"<<endl;
    	int m;
    	cin>>m;
    	switch(m){
    	case 0: sort(stu,stu+n,cmp2);display();break;
    	case 1: sort(stu,stu+n,cmp3);display();break;
    	case 2: sort(stu,stu+n,cmp);display();break;
    	case 3: sort(stu,stu+n,cmp1);display();break;
    	default:cout<<"输入号码选项序号错误!"<<endl;
    	}
    }
    
    
    void write()
    {
    	sort(stu,stu+n,cmp3);//先按照学号排序 再存入
    	ofstream outfile("data.dat",ios::binary);
    	if(!outfile)
    	{
    		cerr<<"保存学生信息时打开文件失败!"<<endl;
    		exit(1);
    	}
    	cout<<"将学生信息读入文件当中....."<<endl;
    	for(int i=0;i<n;i++)
    	{
    		outfile.write((char*)&stu[i],sizeof(Stu));
    	}
    	outfile.close();
    }
    void read()
    {
    	ifstream infile("data.dat",ios::binary);
    	if(!infile)
    	{
    		cerr<<"读取学生信息时打开文件失败!"<<endl;
    		exit(1);
    	}
    	cout<<"从文件中读取学生信息....."<<endl;
    	int j=0;
    	while(infile.read((char*)&stu[j],sizeof(Stu)))
    	{
    		cout<<j+1<<" :num:"<<stu[j].num<<" name:"<<stu[j].name<<" score:"<<stu[j].score<<endl;
    		j++;
    	}
    	n=j; //保存学生人数
    	cout<<"学生人数为:"<<n<<endl;
    	infile.close();
    }
    void input()
    {
    	cout<<"输入学生人数:"<<endl;
    	cin>>n;
    	cout<<"输入学生信息 学号 姓名 成绩:"<<endl;
    	for(int i=0;i<n;i++)
    		cin>>stu[i].num>>stu[i].name>>stu[i].score;
    	cout<<"完成学生信息的输入!"<<endl;
    }
    void display()
    {
    	cout<<"输出学生信息:学号 姓名 成绩"<<endl;
    	for(int i=0;i<n;i++)
    		cout<<i+1<<" :num:"<<stu[i].num<<" name:"<<stu[i].name<<" score:"<<stu[i].score<<endl;
    }
    
    

    运行结果

    显示所有学生信息:
    在这里插入图片描述
    查询 (按照学号查询)
    在这里插入图片描述
    查询(按照姓名查询)
    在这里插入图片描述
    排序 按照成绩降序
    在这里插入图片描述
    排序按照成绩升序
    在这里插入图片描述
    排序 按照姓名字母升序
    在这里插入图片描述
    添加学生信息
    在这里插入图片描述
    删除学生信息
    在这里插入图片描述
    退出
    在这里插入图片描述

    输入一个字符串 将字符串中小写字母存入磁盘 再从磁盘读取字符串

    #include<iostream>
    #include<string>
    #include<iomanip>
    #include<algorithm>
    #include<fstream>
    using namespace std;
    
    int main()
    {
    	ofstream outfile("data.dat", ios::out);
    	if (!outfile)
    	{
    		cerr << "存入磁盘时打开文件错误!" << endl;
    		exit(1);
    	}
    	char a[100];
    	cout << "输入一个字符串:" << endl;
    	gets_s(a);
    	int len = strlen(a);
    	for (int i = 0; i < len; i++)
    	{
    		if (a[i] >= 'a'&&a[i] <= 'z')  //如果是小写字母就存入磁盘
    			outfile << a[i];
    	}
    	outfile.close();
    	ifstream infile("data.dat", ios::in);
    	if (!infile)
    	{
    		cerr << "读入时打开文件错误!" << endl;
    		exit(1);
    	}
    	char ch;
    	cout << "存入磁盘中的字符串:" << endl;
    	while (infile.get(ch)) {
    		cout << ch ;
    	}
    	cout << endl;
    	infile.close();
    	return 0;
    }
    

    在这里插入图片描述
    输入数组 排序后存入磁盘再 从磁盘中读取

    #include<iostream>
    #include<string>
    #include<iomanip>
    #include<algorithm>
    #include<fstream>
    using namespace std;
    
    int main()
    {
    	int a[10];
    	cout << "输入10个数:" << endl;
    	for (int i = 0; i < 10; i++)
    		cin >> a[i];
    	cout << "排序后存入磁盘 然后从磁盘读取" << endl;
    	sort(a, a + 10);
    	ofstream outfile("a.txt", ios::out);
    	if (!outfile)
    	{
    		cerr << "存入数据时打开文件错误!" << endl;
    		exit(1);
    	}
    	for (int i = 0; i < 10; i++)
    		outfile << a[i] << ' ';
    	outfile.close();
    	ifstream infile("a.txt", ios::in);
    	if (!infile)
    	{
    		cerr << "读取文件时打开磁盘文件错误!" << endl;
    		exit(1);
    	}
    	int b[100],t, i = 0;
    	for (int i = 0; i < 10; i++)
    	{
    		infile >> t;
    		cout << t << ' ';
    	}
    	infile.close();
    	return 0;
    }
    
    

    在这里插入图片描述

    展开全文
  • 本篇博文结合学过的数据结构单链表的知识,来实现一个学生管理系统的创建,仍有不完善的地方,望大家指出,对于文件输入输出流,会在后续添加。 详细代码如下: Garde.h #pragma once #pragma warning...

    本篇博文结合学过的数据结构单链表的知识,来实现一个学生管理系统的创建,仍有不完善的地方,望大家指出,对于文件输入输出流,会在后续添加。

    详细代码如下:


    Garde.h

    <strong><span style="font-size:18px;">#pragma once
    #pragma warning(disable:4996)
    
    #include <iostream>
    #include <string.h>
    #include <stdio.h>
    #include <assert.h>
    #include <stdlib.h>
    using namespace std;
    
    class Student;
    typedef enum{FALSE,TRUE} Status;
    
    typedef struct Data
    {
    	char num[20];
    	char name[20];
    	int Cgrade;
    	int Mgrade;
    	int Egrade;
    	int Total;
    	char CRank;
    	char ERank;
    	char MRank;
    }Data;
    
    class Node
    {
    	friend class Student;
    public:
    	Node():next(NULL)
    	{}
    	Node(Data d) :data (d),next(NULL)
    	{}
    	~Node()
    	{}
    private:
    	Data data;
    	Node *next;
    };
    
    class Student
    {
    public:
    	Student()
    	{
    		Node *s = new Node();
    		strcpy(s->data.name, "\0");
    		strcpy(s->data.num, "\0");
    		s->data.Cgrade = 0;
    		s->data.Mgrade = 0;
    		s->data.Egrade = 0;
    		s->data.CRank = '0';
    		s->data.MRank = '0';
    		s->data.ERank = '0';
    		s->data.Total = 0;
    		first = last = s;
    		last->next = NULL;
    		size = 0;
    	}
    
    	~Student()
    	{
    		Clear();
    		delete first;
    		delete last;
    	}
    
    	Status CreateStudent(Data d[], int n)
    	{
    		if (n < 0)
    		{
    			return FALSE;
    		}
    		for (int i = 0; i < n; ++i)
    		{
    			Node *s = new Node();
    			strcpy(s->data.name, d[i].name);
    			strcpy(s->data.num, d[i].num);
    			s->data.Cgrade = d[i].Cgrade;
    			s->data.Mgrade = d[i].Mgrade;
    			s->data.Egrade = d[i].Egrade;
    			s->data.Total  = d[i].Cgrade + d[i].Egrade + d[i].Mgrade;
    			s->data.CRank  = d[i].CRank;
    			s->data.MRank  = d[i].MRank;
    			s->data.ERank  = d[i].ERank;
    			last ->next = s;
    			last = s;
    			size++;
    		}
    		return TRUE;
    	}
    
    	void T_Sort()//截断法
    	{
    		if (size == 0 || size == 1)
    		{
    			return;
    		}
    		Node * p = first->next;
    		Node * q = p->next;
    		last = p;
    		last->next = NULL;
    		while (q != NULL)
    		{
    			p = q;
    			q = q->next;
    
    			Node * s = first;
    			while (p->data.Total < s->next->data.Total
    				&&s->next != NULL)
    			{
    				s = s->next;
    			}
    			if (s->next == NULL)
    			{
    				p->next = NULL;
    				last->next = NULL;
    				last = p;
    			}
    			else
    			{
    				p->next = s->next;
    				s->next = p;
    			}
    		}
    	}
    
    	void C_Sort()
    	{
    		if (size == 0 || size == 1)
    		{
    			return;
    		}
    		Node * p = first->next;
    		Node * q = p->next;
    		last = p;
    		last->next = NULL;
    		while (q != NULL)
    		{
    			p = q;
    			q = q->next;
    
    			Node * s = first;
    			while (p->data.Total < s->next->data.Total
    				&&s->next != NULL)
    			{
    				s = s->next;
    			}
    			if (s->next == NULL)
    			{
    				p->next = NULL;
    				last->next = NULL;
    				last = p;
    			}
    			else
    			{
    				p->next = s->next;
    				s->next = p;
    			}
    		}
    	}
    
    	void E_Sort()
    	{
    		if (size == 0 || size == 1)
    		{
    			return;
    		}
    		Node * p = first->next;
    		Node * q = p->next;
    		last = p;
    		last->next = NULL;
    		while (q != NULL)
    		{
    			p = q;
    			q = q->next;
    
    			Node * s = first;
    			while (p->data.Total < s->next->data.Total
    				&&s->next != NULL)
    			{
    				s = s->next;
    			}
    			if (s->next == NULL)
    			{
    				p->next = NULL;
    				last->next = NULL;
    				last = p;
    			}
    			else
    			{
    				p->next = s->next;
    				s->next = p;
    			}
    		}
    	}
    
    	void M_Sort()
    	{
    		if (size == 0 || size == 1)
    		{
    			return;
    		}
    		Node * p = first->next;
    		Node * q = p->next;
    		last = p;
    		last->next = NULL;
    		while (q != NULL)
    		{
    			p = q;
    			q = q->next;
    
    			Node * s = first;
    			while (p->data.Mgrade < s->next->data.Mgrade
    				&&s->next != NULL)
    			{
    				s = s->next;
    			}
    			if (s->next == NULL)
    			{
    				p->next = NULL;
    				last->next = NULL;
    				last = p;
    			}
    			else
    			{
    				p->next = s->next;
    				s->next = p;
    			}
    		}
    	}
    
    	Status T_InsertStudent(Data d)
    	{
    		Node * p = first;
    		Node * q = p->next;
    		if (q->data.Total > d.Total && q != NULL)
    		{
    			q = q->next;
    			p = p->next;
    		}
    		Node *s = new Node();
    		strcpy(s->data.num, d.num);
    		strcpy(s->data.name, d.name);
    		s->data.Cgrade = d.Cgrade;
    		s->data.CRank = d.CRank;
    		s->data.Mgrade = d.Mgrade;
    		s->data.MRank = d.MRank;
    		s->data.Egrade = d.Egrade;
    		s->data.ERank = d.ERank;
    		s->data.Total = d.Total;
    		if (q == NULL)
    		{
    			last->next = s;
    			last = s;
    			last->next = NULL;
    		}
    		else
    		{
    			s->next = p->next;
    			p->next = s;
    		}
    		size++;
    		return TRUE;
    	}
    
    	Status E_InsertStudent(Data d)
    	{
    		Node * p = first;
    		Node * q = p->next;
    		if (q->data.Egrade > d.Egrade && q != NULL)
    		{
    			q = q->next;
    			p = p->next;
    		}
    		Node *s = new Node();
    		strcpy(s->data.num, d.num);
    		strcpy(s->data.name, d.name);
    		s->data.Cgrade = d.Cgrade;
    		s->data.CRank = d.CRank;
    		s->data.Mgrade = d.Mgrade;
    		s->data.MRank = d.MRank;
    		s->data.Egrade = d.Egrade;
    		s->data.ERank = d.ERank;
    		s->data.Total = d.Total;
    		if (q == NULL)
    		{
    			last->next = s;
    			last = s;
    			last->next = NULL;
    		}
    		else
    		{
    			s->next = p->next;
    			p->next = s;
    		}
    		size++;
    		return TRUE;
    	}
    
    	Status M_InsertStudent(Data d)
    	{
    		Node * p = first;
    		Node * q = p->next;
    		if (q->data.Mgrade > d.Mgrade && q != NULL)
    		{
    			q = q->next;
    			p = p->next;
    		}
    		Node *s = new Node();
    		strcpy(s->data.num, d.num);
    		strcpy(s->data.name, d.name);
    		s->data.Cgrade = d.Cgrade;
    		s->data.CRank = d.CRank;
    		s->data.Mgrade = d.Mgrade;
    		s->data.MRank = d.MRank;
    		s->data.Egrade = d.Egrade;
    		s->data.ERank = d.ERank;
    		s->data.Total = d.Total;
    		if (q == NULL)
    		{
    			last->next = s;
    			last = s;
    			last->next = NULL;
    		}
    		else
    		{
    			s->next = p->next;
    			p->next = s;
    		}
    		size++;
    		return TRUE;
    	}
    
    	Status C_InsertStudent(Data d)
    	{
    		Node * p = first;
    		Node * q = p->next;
    		if (q->data.Cgrade > d.Cgrade && q != NULL)
    		{
    			q = q->next;
    			p = p->next;
    		}
    		Node *s = new Node();
    		strcpy(s->data.num, d.num);
    		strcpy(s->data.name, d.name);
    		s->data.Cgrade = d.Cgrade;
    		s->data.CRank = d.CRank;
    		s->data.Mgrade = d.Mgrade;
    		s->data.MRank = d.MRank;
    		s->data.Egrade = d.Egrade;
    		s->data.ERank = d.ERank;
    		s->data.Total = d.Total;
    		if (q == NULL)
    		{
    			last->next = s;
    			last = s;
    			last->next = NULL;
    		}
    		else
    		{
    			s->next = p->next;
    			p->next = s;
    		}
    		size++;
    		return TRUE;
    	}
    
    	Node * Find(char num[])
    	{
    		assert(num != NULL);
    		Node * p = first;
    		while ( p->next->data.num != num && p->next != NULL )
    		{
    			p = p->next;
    		}
    		if(strcmp(p->data.num ,num) == 0)
    		{
    			return p;
    		}
    		return NULL;
    	}
    
    	Node *Pre(char num[])
    	{
    		assert(num != NULL);
    		Node * p = first;
    		Node * s = Find(num);
    		if (s == NULL)
    		{
    			return NULL;
    		}
    		while (p->next != s)
    		{
    			p = p->next;
    		}
    		return p;
    	}
    
    	Status Delete(char num[])
    	{
    		assert(num != NULL);
    		Node * p = Find(num);
    		Node * pre = Pre(num);
    		if (pre == NULL || p == NULL)
    		{
    			return FALSE;
    		}
    		pre->next = p->next;
    		if (p->next == NULL)
    		{
    			last = pre;
    		}
    		size--;
    		return TRUE;
    	}
    
    	Status Modify(char num[])
    	{
    		int number;
    		assert(num != NULL);
    		Node * s = Find(num);
    		if (s == NULL)
    		{
    			return FALSE;
    		}
    		cout << "请选取需修改的内容:" << endl;
    		cout << "*********************************" << endl;
    		cout << "**1.Chinese        2.Math      **" << endl;
    		cout << "**3.English        4.Name      **" << endl;
    		cout << "*********************************" << endl;
    		cin >> number;
    		switch (number)
    		{
    		case 1:
    			int score;
    		    cout << "请输入修改后的值:";
    		    cin >> score;
    		    s->data.Cgrade = score;
    		    if (s->data.Cgrade < 60)
    		    {
    				s->data.CRank = 'E';
    			}
    		    if (s->data.Cgrade < 70 && s->data.Cgrade >= 60)
    		    {
    				s->data.CRank = 'D';
    		    }
    			if (s->data.Cgrade < 80 && s->data.Cgrade >= 70)
    			{
    				s->data.CRank = 'C';
    		    }
    		    if (s->data.Cgrade < 90 && s->data.Cgrade >= 80)
    		    {
    				s->data.CRank = 'B';
    		    }
    		    if (s->data.Cgrade >= 90)
    		    {
    				s->data.CRank = 'A';
    		    }
    			s->data.Total = s->data.Cgrade + s->data.Egrade + s->data.Mgrade;
    		    break;
    		case 2:
    			cout << "请输入修改后的值:";
    			cin >> score;
    			s->data.Mgrade = score;
    			if (s->data.Mgrade < 60)
    			{
    				s->data.MRank = 'E';
    			}
    			if (s->data.Mgrade < 70 && s->data.Mgrade >= 60)
    			{
    				s->data.MRank = 'D';
    			}
    			if (s->data.Mgrade < 80 && s->data.Mgrade >= 70)
    			{
    				s->data.MRank = 'C';
    			}
    			if (s->data.Mgrade < 90 && s->data.Mgrade >= 80)
    			{
    				s->data.MRank = 'B';
    			}
    			if (s->data.Mgrade >= 90)
    			{
    				s->data.MRank = 'A';
    			}
    			s->data.Total = s->data.Cgrade + s->data.Egrade + s->data.Mgrade;
    			break;
    		case 3:
    			cout << "请输入修改后的值:";
    			cin >> score;
    			s->data.Egrade = score;
    			if (s->data.Egrade < 60)
    			{
    				s->data.ERank = 'E';
    			}
    			if (s->data.Egrade < 70 && s->data.Egrade >= 60)
    			{
    				s->data.ERank = 'D';
    			}
    			if (s->data.Egrade < 80 && s->data.Egrade >= 70)
    			{
    				s->data.ERank = 'C';
    			}
    			if (s->data.Egrade < 90 && s->data.Egrade >= 80)
    			{
    				s->data.ERank = 'B';
    			}
    			if (s->data.Egrade >= 90)
    			{
    				s->data.ERank = 'A';
    			}
    			s->data.Total = s->data.Cgrade + s->data.Egrade + s->data.Mgrade;
    			break;
    		case 4:
    			char str[20];
    			cout << "请输入修改后的值:";
    		    cin >> str;
    		    strcpy(s->data.name, str);
    			break;
    		default:
    			break;
    		}
    		return TRUE;
    	}
    
    	void Show()
    	{
    		Node * p = first->next;
    		while (p != NULL)
    		{
    			cout << p->data.num    << " "
    				 << p->data.name   << " "
    				 << p->data.Cgrade << " "
    				 << p->data.CRank  << " "
    				 << p->data.Mgrade << " "
    				 << p->data.MRank  << " "
    				 << p->data.Egrade << " "
    				 << p->data.ERank  << " "
    				 << p->data.Total  << endl;
    			p = p->next;
    		}
    	}
    
    	int length()
    	{
    		return size;
    	}
    
    	void Clear()
    	{
    		Node *p = first->next;
    		while (p != NULL)
    		{
    			first->next = p->next;
    			delete p;
    			p = p->next;
    		}
    		last = first;
    		size = 0;
    	}
    
    	Status Delete()
    	{
    		return TRUE;
    	}
    private:
    	Node * first;
    	Node * last;
    	size_t size;
    };
    </span></strong>


    main.cpp

    <strong><span style="font-size:18px;">#include "Grade.h"
    
    int main()
    {
    	int select = 1;
    	int num = -1;
    	Student stu;
    	Data data;
    	while (select)
    	{
    		cout << "           *********************学生成绩管理系统********************\n";
    		cout << "           ** 1.CreateStudent                   2.InsertStudent   **\n";
    		cout << "           ** 3.SortStudent                     4.ShowStudent     **\n";
    		cout << "           ** 5.ModifyStudent                   6.DeleteStudent   **\n";
    		cout << "           ** 7.Clear                           8.Number          **\n";
    		cout << "           ** 0.Quit                                              **\n";
    		cout << "           *********************************************************\n";
    		cout << "请输入所选操作:";
    		cin >> select;
    		switch (select)
    		{
    		case 1:
    			cout << "请输入学生个数:";
    			int N;
    			cin >> N;
    			Data d[100];
    			cout << "请输入每个学生学号、姓名、语数英三科成绩:\n";
    			for (int i = 0; i < N; ++i)
    			{
    				cin >> d[i].num >> d[i].name >> d[i].Cgrade
    					>> d[i].Mgrade >> d[i].Egrade;
    				d[i].Total = d[i].Cgrade + d[i].Egrade + d[i].Mgrade;
    				if (d[i].Cgrade < 60)
    				{
    					d[i].CRank = 'E';
    				}
    				if (d[i].Cgrade < 70 && d[i].Cgrade >= 60)
    				{
    					d[i].CRank = 'D';
    				}
    				if (d[i].Cgrade < 80 && d[i].Cgrade >= 70)
    				{
    					d[i].CRank = 'C';
    				}
    				if (d[i].Cgrade < 90 && d[i].Cgrade >= 80)
    				{
    					d[i].CRank = 'B';
    				}
    				if (d[i].Cgrade >= 90)
    				{
    					d[i].CRank = 'A';
    				}
    				if (d[i].Egrade < 60)
    				{
    					d[i].ERank = 'E';
    				}
    				if (d[i].Egrade < 70 && d[i].Egrade >= 60)
    				{
    					d[i].ERank = 'D';
    				}
    				if (d[i].Egrade < 80 && d[i].Egrade >= 70)
    				{
    					d[i].ERank = 'C';
    				}
    				if (d[i].Egrade < 90 && d[i].Egrade >= 80)
    				{
    					d[i].ERank = 'B';
    				}
    				if (d[i].Egrade >= 90)
    				{
    					d[i].ERank = 'A';
    				}
    				if (d[i].Mgrade < 60)
    				{
    					d[i].MRank = 'E';
    				}
    				if (d[i].Mgrade < 70 && d[i].Mgrade >= 60)
    				{
    					d[i].MRank = 'D';
    				}
    				if (d[i].Mgrade < 80 && d[i].Mgrade >= 70)
    				{
    					d[i].MRank = 'C';
    				}
    				if (d[i].Mgrade < 90 && d[i].Mgrade >= 80)
    				{
    					d[i].MRank = 'B';
    				}
    				if (d[i].Mgrade >= 90)
    				{
    					d[i].MRank = 'A';
    				}
    			}
    			stu.CreateStudent(d, N);
    			break;
    		case 2:
    			cout << "请输入所插入学生信息:" << endl;
    			cin >> data.num >> data.name >> data.Cgrade >> data.Mgrade
    				>> data.Egrade;
    			data.Total = data.Cgrade + data.Egrade + data.Mgrade;
    			if (data.Cgrade < 60)
    			{
    				data.CRank = 'E';
    			}
    			if (data.Cgrade < 70 && data.Cgrade >= 60)
    			{
    				data.CRank = 'D';
    			}
    			if (data.Cgrade < 80 && data.Cgrade >= 70)
    			{
    				data.CRank = 'C';
    			}
    			if (data.Cgrade < 90 && data.Cgrade >= 80)
    			{
    				data.CRank = 'B';
    			}
    			if (data.Cgrade >= 90)
    			{
    				data.CRank = 'A';
    			}
    			if (data.Egrade < 60)
    			{
    				data.ERank = 'E';
    			}
    			if (data.Egrade < 70 && data.Egrade >= 60)
    			{
    				data.ERank = 'D';
    			}
    			if (data.Egrade < 80 && data.Egrade >= 70)
    			{
    				data.ERank = 'C';
    			}
    			if (data.Egrade < 90 && data.Egrade >= 80)
    			{
    				data.ERank = 'B';
    			}
    			if (data.Egrade >= 90)
    			{
    				data.ERank = 'A';
    			}
    			if (data.Mgrade < 60)
    			{
    				data.MRank = 'E';
    			}
    			if (data.Mgrade < 70 && data.Mgrade >= 60)
    			{
    				data.MRank = 'D';
    			}
    			if (data.Mgrade < 80 && data.Mgrade >= 70)
    			{
    				data.MRank = 'C';
    			}
    			if (data.Mgrade < 90 && data.Mgrade >= 80)
    			{
    				data.MRank = 'B';
    			}
    			if (data.Mgrade >= 90)
    			{
    				data.MRank = 'A';
    			}
    			cout << endl;
    			cout << "*************************************" << endl;
    			cout << "**1.Total_Insert   2.Chinese_Insert**" << endl;
    			cout << "**3.Math_Insert    4.English_Insert**" << endl;
    			cout << "*************************************" << endl;
    			cout << "请选取插入方式:";
    			cin >> num;
    			switch (num)
    			{
    			case 1:
    				stu.T_InsertStudent(data);
    				break;
    			case 2:
    				stu.C_InsertStudent(data);
    				break;
    			case 3:
    				stu.M_InsertStudent(data);
    				break;
    			case 4:
    				stu.E_InsertStudent(data);
    				break;
    			default:
    				break;
    			}
    			break;
    		case 3:
    			cout << endl;
    			cout << "*********************************" << endl;
    			cout << "**1.Total_Sort   2.Chinese_Sort**" << endl;
    			cout << "**3.Math_Sort    4.English_Sort**" << endl;
    			cout << "*********************************" << endl;
    			cout << "请选取排序方式:";
    			cin >> num;
    			switch (num)
    			{
    			case 1:
    				stu.T_Sort();
    				break;
    			case 2:
    				stu.C_Sort();
    				break;
    			case 3:
    				stu.M_Sort();
    				break;
    			case 4:
    				stu.E_Sort();
    				break;
    			default:
    				break;
    			}
    			break;
    		case 4:
    			stu.Show();
    			break;
    		case 5:
    			cout << "请输入要修改的学生的学号:";
    			cin >> data.num;
    			stu.Modify(data.num);
    			break;
    		case 6:
    			cout << "请输入删除学生学号:";
    			cin >> data.num;
    			stu.Delete(data.num);
    			break;
    		case 7:
    			stu.Clear(); 
    			break;
    		case 8:
    			cout << "记录学生数目:"<< stu.length() << endl;
    			break;
    		case 0:
    			break;
    		default:
    			break;
    		}
    	}
    	return 0;
    }</span></strong>



    展开全文
  • 大一C语言这门课程的大作业,数据输入输出查找删除都含括,所选IDE是vs2010,不是空项目!!是用预编译头,用空项目的小伙伴记得加上头文件哟! 头文件: #include <stdio.h> #include <tchar.h> #...
  • 为了初学者理解单项链表更加快,今天就用链表和文件操作写了一控制台的学生管理系统,希望可以帮助大家更好的理解链表。 程序实现的功能: 源代码如下 #define _CRT_SECURE_NO_WARNINGS #include #include #incl
  • 基于文件学生管理系统c语言实现的:我们从文件中读取学生的信息,然后将学生的信息显示到屏幕上。我们通过控制台输入不同的内容,将对学生信息不同的输出
  • printf("学生成绩管理系统:\n"); printf(" 输入学生成绩-----------------0\n"); printf(" 下载纪录-----------------1\n"); printf(" 显示所有成绩-------------2\n"); printf(" 存盘-----------...
  • 实验要求:输入30个学生的学号、姓名和5门课程的成绩,计算总分并按照总分排出名次,最后按照学号顺序打印成绩单, 并把成绩单输出为excel文件。 txt数据: 2015020981 甲 90 89 99 88 79 2015020986 戌 97 87 97 ...
  • 实现学生信息的输入输出,修改,删除等功能
  • 学生管理系统

    2018-10-31 19:07:41
    学生管理系统 登录 文件的保存 录入信息 修改 查询 删除 注册登录 用户名+密码 2.2 控制台黑窗口界面 学生信息如何存放 顺序表 链表 个数不确定 排除静态数组 内存大小根据存放的个数确定 首先在...
  • 学生成绩管理系统文件结构分析

    千次阅读 2016-06-18 15:29:18
    第二节课、文件的使用和结构化程序的编写 课程目的:   1.学习C语言操作文件永久保存数据 ...C语言将计算机的输入输出设备都看作是文件。例如,键盘文件、屏幕文件等. 你应该还记得,向屏幕输出一个信息,例如
  • 利用数据结构Hashtable或HashMap以及对象输入输出流编写一个学籍管理系统。功能有: 1. 启动程序时,从文件中加载旧数据。 2. 离开程序时,保存数据到文件中。 3. 添加一位学生信息。 4. 查找,删除,修改学生信息。...
  • 创建学生成绩管理系统。 要求: 1、使用格式输入输出函数 2、学生信息包括:姓名、学号、3门课成绩(语数英) 3、学生信息存入cj.txt文件 4、能使用cat命令显示cj.txt文件内容。 一、源码 1 #include<stdio.h>...
  • PAGE PAGE # / 16 PAGE PAGE # I 16 C++学生成绩管理系统 要求用C++语言编写学生成绩管理系统要求能进行添加删除修改输入输出 等的操作并能使用面相对像原理对此系统进行实现 学生成绩管理系统分析 学生成绩管理系统...
  • C语言学生管理系统

    2014-11-08 11:24:32
    设有学生宿舍的数据,要求输入计算机并存放在内存中,然后增加3个宿舍的记录并可以输出材料清单,实现文件存盘和对所选择的记录进行删除,修改。并统计宿舍的总人数,宿舍的基本信息包括楼号、房间号、所住学生班级...
  • C++学生管理系统

    2012-11-06 12:14:57
    编制一个简单的“学生成绩管理系统”,要求其主要功能有:数据输入,成绩排序,成绩查询,成绩统计,奖学金评定,打印等基本功能。 问题的解决方案: 1.用静态数组或动态数组 2.排序模块,应针对各门课程的成绩或...
  • C语言实现学生成绩管理系统,可选择键盘及文件输入两种方式并根据输入学生单科成绩排序输出学生信息列表,同时,可输出学生信息至.txt文件中。
  • 学生成绩管理系统 纯 C 语言做 完成的功能如下 1 显示全部的记录读取文件 2 删除记录输入一个学生的学号删除该学生的信息 3 插入记录按约定的格式输入一个学生的信息将它插入 4 查找记录输入一个学生学号输出其各科...
  • C++学生管理系统.rar

    2020-11-30 11:16:21
    学生信息包括:学号、姓名、性别、年龄、班级等信息。 小学生除了包括学生所有信息外,还包括英语、数学和...设计一程序能够对学生成绩进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件输入/输出等内容。
  • Linux下C学生管理系统

    2014-09-21 23:53:54
    输出其各科成绩) 5 计算总分和平均分 6 排序(根据平均分排名 总分相同者名次一样) 7 保存文件(插入或删除某个记录后 将文件保存)">学生成绩管理系统 纯C语言做 完成的功能如下: 1 显示全部的记录(读取文件) ...
  • 学生信息管理系统

    2012-01-09 13:13:41
    题目2 学生信息管理系统设计 学生信息包括:学号,姓名...学生信息录入功能(学生信息用文件保存)——输入 学生信息浏览功能——输出 查询、排序功能——算法 按学号查询 按姓名查询 学生信息的删除与修改(可选项)
  • 学生成绩管理系统

    2020-07-15 00:43:00
    设计一个学生成绩管理系统学生信息包括:学号、姓名、性别、年龄、班级等信息。小学生除了包括学生所有信息外,还包括英语、数学和语文成绩。中学生除了包括小学生所有信息外,还包括地理、历史成绩。大学生除了...
  • C 语言课程设计一---学生管理系统 使使用 C 语言实现学生管理系统。系统实现对学生的基本信息和考试成绩的 管理。采用终端命令界面,作为系统的输入输出界面。采用文件作为信息存储介质。 功能描述: 学生...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 417
精华内容 166
关键字:

学生管理系统文件输入输出