-
学生成绩排序系统
2020-06-10 08:19:49System.out.println("排序后:"); for(Student student : list){ System.out.println(student); } Collections.sort(list, new Comparator(){ @Override public int compare(Student o1, Student ...package newstudent; public class Student implements Comparable<Student>{ private String code; private String name; private String subject; private int grade; public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public int getGrade() { return grade; } public void setGrade(int grade) { this.grade = grade; } public Student() { } public Student(String code, String name, String subject, int grade) { super(); this.code = code; this.name = name; this.subject = subject; this.grade = grade; } @Override public String toString() { return "Student [code=" + code + ", name=" + name + ", subject=" + subject + ", grade=" + grade + "]"; } @Override public int compareTo(Student o) { int grade1 = this.grade; int grade2 = o.getGrade(); int grade = 0; if(grade1 > grade2){ grade = -1; }else if(grade1 < grade2){ grade = 1; } return grade; } }
package newstudent; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; public class FileOpreate { public FileOpreate() { Student s1 = new Student("1","x0","y",23); Student s2 = new Student("2","x1","y",25); Student s3 = new Student("3","x2","y",21); Student s4 = new Student("4","x3","y",20); Student s5 = new Student("5","x4","y",29); List<Student> list = new ArrayList<Student>(); list.add(s1); list.add(s2); list.add(s3); list.add(s4); list.add(s5); try { FileOutputStream fos = new FileOutputStream("123.txt"); ObjectOutputStream oos = new ObjectOutputStream(fos); FileInputStream fis = new FileInputStream("123.txt"); ObjectInputStream ois = new ObjectInputStream(fis); oos.writeObject(list); oos.writeBoolean(true); oos.flush(); // 读对象信息 try { List list1 = (List) ois.readObject(); System.out.println(list1); } catch (ClassNotFoundException e) { e.printStackTrace(); } System.out.println(ois.readBoolean());//读取的顺序要和写入的顺序一致 fos.close(); oos.close(); fis.close(); ois.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
package newstudent; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Test { public static void main(String[] args) { Student s1 = new Student("1","x0","y",23); Student s2 = new Student("2","x1","y",25); Student s3 = new Student("3","x2","y",21); Student s4 = new Student("4","x3","y",20); Student s5 = new Student("5","x4","y",29); List<Student> list = new ArrayList<Student>(); list.add(s1); list.add(s2); list.add(s3); list.add(s4); list.add(s5); Collections.sort(list); System.out.println("排序后:"); for(Student student : list){ System.out.println(student); } Collections.sort(list, new Comparator<Student>(){ @Override public int compare(Student o1, Student o2) { int s1 = o1.getGrade(); int s2 = o2.getGrade(); return s2-s1; } }); for(Student s : list) { System.out.println(s); } } }
-
C语言程序 学生成绩排序系统
2016-05-31 15:55:391. 学生成绩排序系统简介 学生成绩排序系统可实现学生信息输入、学生信息输出、学生信息查询、学生成绩排序等功能。程序要求提供简单友好易于操作的界面。程序以C语言开发。 2.学生成绩管理系统基本要求: 假设有5名... -
80*86汇编语言学生成绩排序系统
2018-12-10 10:55:11将SI和DI各减小10,指向名字的第一个位置,循环20次,将整个存储学生名字和成绩的单位全部依次交换。 SUB SI,10 SUB DI,10 MOV CX,20 LOOP_SORT_CHANGE: MOV AL,NAME_GRADE_SAVE[BX][SI] ...五、实验结果及分析
1、实验运行过程及分析
(1)菜单:
主要代码:
在输出菜单之前首先使用清屏效果,以下为清屏效果的源代码:
MOV AH,15
INT 10H
MOV AH,0
INT 10H
之后调用宏指令输出菜单,并调用选择输入子程序:
OUTPUT_AH_9 CATALOG_1
:
:
OUTPUT_AH_9 CATALOG_6
CALL INPUT_CHOICE ; 调用选择输入子程序
用BUTTON判断是否需要再次循环,比较BUTTON是否为1,如果输入ESC,则退出菜单循环结束程序,如果BUTTON为0,则循环输出菜单。
CMP BUTTON,1
JNE OUTPUT_CATALOG
(2)输入功能:
主要代码:
通过循环判断NAME_BUF[SI+2]中的值是否为回车,若不是,则将该名字传送到用来存储数据的空间NAME_GRADE_SAVE中。
LOOP_INPUT_NAME:
MOV AL, NAME_BUF[SI+2]
CMP AL,13
JE INPUT_GRADE
MOV NAME_GRADE_SAVE [DI][BX],AL
INC SI
INC BX
LOOP LOOP_INPUT_NAME
通过循环判断NAME_BUF[SI+2]中的值是否为回车,若不是,则将该成绩传送到用来存储数据的空间NAME_GRADE_SAVE中。
LOOP_INPUT_GRADE:
MOV AL,GRADE_BUF[SI+2]
CMP AL,13
JE AGAIN
MOV NAME_GRADE_SAVE[DI][BX],AL
INC SI
INC BX
LOOP LOOP_INPUT_GRADE
最后输出一个值进行判断,若值为”y”,则循环到输入名字之前再次输入名字,若值为”n”,则退出该输入子程序。
OUTPUT_AH_9 TIP_5
MOV AH,1
INT 21H
CMP AL,"y"
JE INPUT
CMP AL,"n"
JE INPUT_OUT
OUTPUT_AH_9 TIP_2
JMP AGAIN
(3)输出功能:
主要代码:
用2号功能依次循环输出名字,当判断下一个地址的值为’$’时停止输出;并在循环的同时使变量NAME _LONG的值自加1,以便之后输出空格。
LOOP_OUTPUT_NAME:
MOV AL,NAME_GRADE_SAVE[DI][BX]
CMP AL,'$'
JE LOOP_OUTPUT_NAME_END
MOV DL,AL
MOV AH,2
INT 21H
INC BX
INC NAME_LONG
JMP LOOP_OUTPUT_NAME
根据名字的长度确定应该输出多少个空格,并循环输出空格。
MOV AL,14
SUB AL,NAME_LONG
PUSH CX
MOV CX,0
MOV CL,AL
LOOP_KONGGE_1:
KONGGE
LOOP LOOP_KONGGE_1
用2号功能依次循环输出成绩的值,当判断下一个地址的值为’$’时停止输出;并在循环的同时使变量GRADE_LONG的值自加1,以便之后输出空格。
LOOP_OUTPUT_GRADE:
MOV AL,NAME_GRADE_SAVE[DI][BX]
INC GRADE_LONG
CMP AL,'$'
JE LOOP_OUTPUT_GRADE_END
MOV DL,AL
MOV AH,2
INT 21H
INC BX
JMP LOOP_OUTPUT_GRADE
根据成绩的长度确定应该输出多少个空格,并循环输出空格。
MOV AL,14
SUB AL,GRADE_LONG
PUSH CX
MOV CX,0
MOV CL,AL
LOOP_KONGGE_2:
KONGGE
LOOP LOOP_KONGGE_2
将变量MINGCI每次循环时自加1,并在输出完名字和成绩之后输出该变量作为名次。
MOV DL, MINGCI
MOV AH,2
INT 21H
INC MINGCI
(4)排序功能:
主要代码:
用循环求出每个成绩的长度,当执行到’$’时,停止循环。
LOOP_SIZE:
INC GRADE_LONG
INC SI
CMP NAME_GRADE_SAVE[BX][SI],'$'
JNE LOOP_SIZE
比较前一个成绩和后一个成绩,若前一个大于后一个,则跳转到交换结束(即不交换),若前一个小于后一个,则跳转到交换的程序。
MOV AL,GRADE_LONG
CMP GRADE_MAX_LONG,AL
JA COMPARE_END
JB SORT_SHORT_CHANGE
若输入的两个数相等,则依次从高位到低位一个一个进行比较,若前者比后者小,则交换,若后者比前者小,则不交换,若相等,则继续循环。
LOOP_COMPARE:
MOV AL,NAME_GRADE_SAVE[BX][SI]
CMP NAME_GRADE_SAVE[BX][DI],AL
JA COMPARE_END
JB SORT_CHANGE ;前者比后者小,交换
INC SI
INC DI
CMP NAME_GRADE_SAVE[BX][DI],'$'
JNE LOOP_COMPARE
JMP COMPARE_END
将SI和DI各减小10,指向名字的第一个位置,循环20次,将整个存储学生名字和成绩的单位全部依次交换。
SUB SI,10
SUB DI,10
MOV CX,20
LOOP_SORT_CHANGE:
MOV AL,NAME_GRADE_SAVE[BX][SI]
XCHG AL,NAME_GRADE_SAVE[BX][DI]
XCHG AL,NAME_GRADE_SAVE[BX][SI]
INC SI
INC DI
LOOP LOOP_SORT_CHANGE
2、运行结果
图1:(菜单和输入效果)
图2:(直接输出效果)
图:3:(排序程序运行后结果)
图4:(排序后输出结果)
图5:(求最大值输出结果)
-
学生成绩排序代码及报告_学生成绩统计系统代码c语言
2021-01-09 19:13:31输入学生姓名、学号、成绩,会按学生成绩高低排序并输出排名,使用结构体存储,可通过学生学号查找学生成绩并修改(也可以选择不修改), -
简单学生成绩查询系统 按成绩排序 按姓名排序
2018-08-07 23:40:16把 按成绩排序,和按姓名排序,封装了两个函数。 (排序都是,冒泡算法) 运用了 结构体 和结构体数组的知识。 源代码: #include <stdio.h> #include <string.h> #define N 3 //N...今天学习了结构体,为了强化和理解,参考大神的带码,自己改了一个。
把 按成绩排序,和按姓名排序,封装了两个函数。
(排序都是,冒泡算法)
运用了 结构体 和结构体数组的知识。
源代码:
#include <stdio.h> #include <string.h> #define N 3 //N代表学生数 void Score_paixu(int Len); void Input_infomation(int Len); void Name_paixu(int Len); struct Student { char name[8]; //学生姓名 char sid[10]; //学生学号 char sex[4]; //性别 int score; //成绩 }tmp,stu[N]; int main( ) { int Len=sizeof(stu)/sizeof(struct Student); Input_infomation(Len); puts("按姓名排序为:"); Name_paixu(Len); puts("按成绩排序为:"); Score_paixu(Len); return 0; } void Name_paixu(int Len)//按姓名排序 { int i,j,len; len=Len; for(j=0; j<len-1; j++) for(i=0; i<len-j-1; i++) if (strcmp(stu[i].name,stu[i+1].name)>0) //调用strcmp函数,通过ASIC比较 { tmp=stu[i]; stu[i]=stu[i+1]; stu[i+1]=tmp; } for(i=0; i<len; i++) { printf(" %5s%5s%5s%4d\n",stu[i].name, stu[i].sid,stu[i].sex,stu[i].score); } return ; } void Score_paixu(int Len)//按成绩排序 { int i,j,len; len=Len; for(j=0; j<len-1; j++) for(i=0; i<len-j-1; i++) if (stu[i].score<stu[i+1].score) { tmp=stu[i]; stu[i]=stu[i+1]; stu[i+1]=tmp; } for(i=0; i<len; i++) { printf(" %5s%5s%5s%4d\n",stu[i].name, stu[i].sid,stu[i].sex,stu[i].score); } return ; } void Input_infomation(int Len)//输入学生信息 { int i=0; int num=Len; for(i=0; i<num; i++) { printf("请输入姓名: \n "); scanf("%s",stu[i].name); printf("请输入学号: \n "); scanf("%s", stu[i].sid); printf("请输入性别: \n "); scanf("%s",stu[i].sex); printf("请输入成绩: \n"); scanf("%d",&stu[i].score); } }
效果:
-
java 怎么实现 成绩相同 则按学号排序_学生成绩管理系统设计
2020-12-04 09:21:261.题目与要求1.1问题提出 设计学生成绩管理系统,有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统1.2本系统涉及的知识点 结构体数组、结构体指针、数组、...1.题目与要求
1.1问题提出
设计学生成绩管理系统,有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统
1.2本系统涉及的知识点
结构体数组、结构体指针、数组、循环、函数、分支、指针
1.3 功能要求
1、成绩录入:输入学生的学号、姓名及三门课的成绩;
2、成绩查询:(至少一种查询方式)。按学号查询学生记录,或查询不及格学生的记录;
3、成绩统计:计算学生的平均分;根据学生的平均分高低,对学生的数据进行排序后输出;对学生单科成绩排序,输出学生姓名与该科成绩;
4、退出系统:退出整个系统(即主菜单);
1.4 根据所选菜单编写相应代码:
1)输入学生的信息,利用循环赋值的方式,给结构体数组赋值。
2)输出平均分函数ave:首先定义double型数组,利用循环赋值的方式,计算出三门课的成绩的平均值放入数组中,利用循环的方式,输出相关值及平均值。
3)按学号查询成绩函数search:首先输入要查询的学号,与结构体中的学号进行比较,如果相等输出这个学生的信息,另外输出没有查到相关结果。
4)按平均分排序后输出函数average:首先另外一个定义结构体数组、结构体指针变量,计算三门课程的平均值存到结构体成员aver中,利用循环的方式,进行平均分排序,输出相应的学生信息。
5)对学生单科成绩排序后输出函数grade:首先另外一个定义结构体数组、结构体指针变量,通过选择k的值来选择按分数几排序,利用循环的方式,进行单科成绩排序(从大到小),输出学生姓名及该课的成绩。
6)退出程序。
2、附录:程序清单
#include <stdio.h>
#include<stdlib.h>
typedef struct student
{
int num;
char name[13];
int score[3];
double aver;
}STU;
void ave(STU s[],int n)
{ double a[1000];
int i;
for(i=0;i<n;i++)
a[i]=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3.0;
printf("学号t姓名tt分数1t分数2t分数3t平均分n");
for(i=0;i<n;i++)
printf("%dt%stt%dt%dt%dt%.1fn",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],a[i]);
}
void search(STU s[],int n, int a)
{
int i,k=0;
for(i=0;i<n;i++)
{
if(s[i].num==a)
{ printf("学号t姓名t分数1t分数2t分数3tn");
printf("%dt%st%dt%dt%dn",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2]);
k=k+1;
break;
}
}
if(k==0)
printf("t没有查询到相关信息");
}
void average(STU s[],int n)
{ int i,j;
STU ss[10000];
STU *p=ss;
for(i=0;i<n;i++)
s[i].aver=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3.0;
for(i=0;i<n;i++)
ss[i]=s[i];
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(ss[i].aver<ss[j].aver)
{
STU temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
}
}
}
printf("学号t姓名t平均分n");
for(i=0;i<n;i++)
printf("%dt%st%.1fn",(p+i)->num,(p+i)->name,(p+i)->aver);
}
void grade(STU s[],int n)
{int i,j,k;
STU ss[10000];
STU *p=ss;
for(i=0;i<n;i++)
ss[i]=s[i];
printf("请输入k的值查询,k=0时按分数1,k=1时按分数2,k=2时按分数3:");
scanf("%d",&k);
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(ss[i].score[k]<ss[j].score[k])
{
STU temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
}
}
}
printf("姓名t分数n");
for(i=0;i<n;i++)
printf("%st%dn",(p+i)->name,(p+i)->score[k]);
}
main()
{ int N,i;
STU s[10000];
int num1;
int menu;
printf("请输入学生个数:");
scanf("%d",&N);
for(i=0;i<N;i++)
{
printf("请输入学号 姓名 分数1 分数2 分数3n");
scanf("%d%s%d%d%d",&s[i].num,s[i].name,&s[i].score[0],&s[i].score[1],&s[i].score[2]);
}
printf("nn");
printf("*************学生成绩管理系统*************nn");
printf("1--------输出平均分n");
printf("2--------按学号查询成绩n");
printf("3--------按平均分排序后输出n");
printf("4--------对学生单科成绩排序后输出n");
printf("5--------退出程序n");
printf("nn");
while(1)
{
printf("n请输入菜单号:");
scanf("%d",&menu);
switch(menu)
{
case 1: ave(s,N);break;
case 2: printf("请输入要查询的学号:");
scanf("%d",&num1);
search(s,N,num1);
break;
case 3: average(s,N);break;
case 4: grade(s,N);break;
case 5: exit(0);
default:
printf("菜单号输入错误n");
break;
}
}
}
3、运行过程
-
学生成绩管理系统
2017-06-23 19:40:55本系统采用Eclipse开发的学生成绩管理系统,采用Mysql数据库,建表脚本在压缩文件中。主要功能有对学生成绩的增删查改,和成绩的批量导入和导出,成绩排序功能。 -
C语言编写一套学生成绩管理系统,可以计算学生平均分,各科平均分,按学生平均成绩排序,统计不合格学生...
2018-11-27 23:17:50直接上代码 #include <stdio.h> #include<stdlib.h&...//定义一个二维数组,行表示学生号,列用来放三个科目第四列用来存放学生平均分 char choice='1'; void input(int a[][M],i... -
c简单学生成绩管理系统.docx
2020-11-23 19:15:54PAGE PAGE # / 16 PAGE PAGE # I 16 C++学生成绩管理系统 要求用C++语言编写学生成绩管理系统...绩查找学生成绩修改学生成绩删除学生成绩学生成绩排序保存数据 到文件和读取文件中学生成绩的模块 学生成绩管理系统结 -
C++学生成绩管理系统,包含增删改查,冒泡排序
2020-02-26 18:57:11第一次博客,就写人生第一个系统吧–C++学生成绩管理系统.该系统是楼主(菜鸟)大一上学期简单学习C++两...学生成绩排名(冒泡排序) 各科情况分析(最高分、最低分以及平均分) 输出首页代码 void shouye() /*输出首页*/... -
学生成绩管理系统(源代码)
2020-04-21 11:34:18学生成绩管理系统包括:增加学生信息 、显示学生信息、学生成绩排序 、删除学生信息、学生信息查找 、修改学生信息、学生成绩保存、学生成绩统计、系统安全退出 -
学生成绩管理系统.cpp
2020-02-26 18:50:33简单的C++学生成绩管理系统,包含学生成绩录入、学生增加以及成绩删改查,所有学生成绩用冒泡排序,各科情况简单分析 -
学生成绩管理系统.rar
2020-07-27 21:15:23简单的学生成绩管理系统实验源码,C语言实现(源码+报告)。vc++写的,功能包括1.输入学生信息2.修改学生信息3.删除学生信息4.增加学生信息5.按姓名查询6.按学号查询7.按总分排序8.按实验成绩排序9.按考试成绩排序10... -
JAVAweb学生成绩管理系统
2020-06-05 17:56:28运用JSP,Servlet等Web开发技术开发的一个学生成绩管理系统。1. 充分利用实验1的成果,利用JSP显示实验1的运行结果。即原来输出在控制台的结果改成用JSP显示。 2. 要求结合JSP和Servlet的特性实现相关功能。设计主页... -
学生成绩管理系统(C++)
2020-08-25 16:03:15学生成绩管理系统(C++),含有成绩录入、成绩浏览、成绩修改、成绩查询、成绩排序、成绩删除等功能 -
java学生成绩管理系统x_java学生成绩管理系统数据库
2020-02-09 00:07:51组长张林 组员鲁雪彭著... 处理 判断用户名是否与密码匹配 需要对于成绩录入判断是否符合业务规则 对于符合规则的成绩计算总分并分出成 绩档次后按照总评进行排序;类图;关键问题及解决方案;导出数据;心得体会;谢谢观赏 -
学生成绩管理系统4.0.zip
2020-07-31 09:12:05学生成绩管理系统(C语言)现已实现一次性录入多条学生信息 更改学生信息 按单科成绩排序 按总成绩排序 通过某一项来查询学生信息 通过密码登陆 以及删除学生信息和按照顺序插入学生信息 -
C语言详细学生成绩管理系统
2019-03-28 16:15:13本学生管理系统是为教师人员提供管理班级成绩的工具,该系统可以实现的对学生的成绩进行增、删、改、查、信息保存和信息导入等基本功能,以及对学生成绩排序和分段的扩展功能,有利于对学生成绩管理。 1.2功能性需求... -
java学生成绩查询系统
2017-11-29 15:43:34java学生成绩查询系统,链接mysql,对学生数据进行排序,增删改查,以及关键字查找等功能 -
【菜鸟求助】学生成绩管理系统排序问题
2017-06-03 22:53:23期末作业要做一个学生成绩管理系统,就差一个成绩排序功能了,没有思路,请各位大佬指点一下 部分代码如下: package CPMS; public class student{ String name; double score ; //获得学生姓名 ... -
C#成绩排序系统代码
2011-06-21 19:54:17用于把学生成绩从小排大,这个只是一个小小的C#里面的程序,只是用于分享,没有其他的意思!!! -
java课程设计—成绩排序系统
2019-01-10 11:08:33设计一个学生成绩排名系统 实现以下功能: 1) 具备对成绩的管理功能(添加、删除、排序); 2) 具备对成绩的统计功能(最高分,最低分,平均分,及格率等); 3) 具备按学号、姓名、或课程名查询成绩的功能; ...
-
docker 20.10.3 配置国内源
-
快读函数
-
2019年上半年 网络工程师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
ASP.NET学习——用户增删改查(三层,数据库+源码)
-
2017年下半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
RootCluster.github.io:组织网站-源码
-
kafka中kafkaConsumer的poll拉取方法
-
2012年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
用nodejs抓取-源码
-
Linux基础入门系列课程
-
深究字符编码的奥秘,与乱码说再见
-
java数独题库高效生成算法代码
-
元素周期表-three.js实战详解
-
ApacheBeam实战指南|玩转KafkaIO与Flink
-
一天学完MySQL数据库
-
阿里集团八年容器化演进之路
-
易意-源码
-
Springboot进行前后端数据传递格式json字符串的简单理解
-
产品需求分析神器:KANO模型分析法
-
做了一套模拟卷2021年2月25日02:36:43