源代码

screen类(用来与用户交互)

import java.util.*;class screen
{void maindan(){student1 pg1=new student1();pg1.add();int qp=1;while(qp!=0) {Scanner sc=new Scanner(System.in);System.out.println("输入一个数字进行操作");System.out.println("1.用学号查找学生");System.out.println("2.修改学生成绩");System.out.println("3.查看所有学生成绩");System.out.println("4.用学号删除学生");System.out.println("5.排序查看学生");int s=sc.nextInt();switch (s) {case 1:pg1.cha();break;case 2:pg1.gai();break;case 3:pg1.look();break;case 4:pg1.delete();break;case 5:pg1.paixu();break;default:System.out.println("输入错误");break;}System.out.println("请输入一个数字,如果为0,则退出系统");int ppgr=sc.nextInt();qp=ppgr;}}
}

student类

class student
{int score1;int score2;int score3;int score4;int xuehao;String xingming;String zhuanye;student(int s1,int s2,int s3,int s4,int x,String xin,String zhuanye1){score1=s1;score2=s2;score3=s3;score4=s4;xuehao=x;xingming=xin;zhuanye=zhuanye1;}
}

student1类(存储student的信息,并有增删改查函数)

class student1
{ArrayList<student> aa=new ArrayList<student>();void add(){Scanner sc=new Scanner(System.in);int p=1;while(p!=0){System.out.println("输入学生的姓名:");String s5=sc.next();System.out.println("输入学生的专业");String s6=sc.next();System.out.println("请输入学生的学号");int s7=sc.nextInt();System.out.println("输入学生的成绩一");int s1=sc.nextInt();System.out.println("输入学生的成绩二");int s2=sc.nextInt();System.out.println("输入学生的成绩三");int s3=sc.nextInt();System.out.println("输入学生的成绩四");int s4=sc.nextInt();aa.add(new student(s1,s2,s3,s4,s7,s5,s6));System.out.println("请输入一个数字,如果为0则退出输入学生");int gg=sc.nextInt();p=gg;}}void cha(){Scanner sc1=new Scanner(System.in);int g=1;int p=0;int t=aa.size();while(g!=0){System.out.println("请输入学生的学号");int gg=sc1.nextInt();for(int i=0;i<=aa.size()-1;i++){if(gg==aa.get(i).xuehao){System.out.println("已成功查找到");System.out.println("姓名为"+aa.get(i).xingming+"学号为"+aa.get(i).xuehao+"专业为"+aa.get(i).zhuanye+"成绩一"+aa.get(i).score1+"成绩二"+aa.get(i).score2+"成绩三"+aa.get(i).score3+"成绩四"+aa.get(i).score4);break;}if(gg!=aa.get(i).xuehao){t--;}if(t==0){System.out.println("请重新输入学号,未查找到");cha();}}System.out.println("输入一个数字,如果是0退出查找");int g1=sc1.nextInt();g=g1;}}void gai(){int pp=1;int x=aa.size();boolean tt=false;Scanner sc2=new Scanner(System.in);while(pp!=0){System.out.println("请输入学生的学号");int g2=sc2.nextInt();for(int ii=0;ii<=aa.size()-1;ii++) {x--;if (g2 == aa.get(ii).xuehao) {System.out.println("以查找到学生");System.out.println("请输入学生成绩1");int s1 = sc2.nextInt();System.out.println("请输入学生成绩2");int s2 = sc2.nextInt();System.out.println("请输入学生成绩3");int s3 = sc2.nextInt();System.out.println("请输入学生成绩4");int s4 = sc2.nextInt();aa.get(ii).score1 = s1;aa.get(ii).score2 = s2;aa.get(ii).score3 = s3;aa.get(ii).score4 = s4;tt=true;break;}if(x==0&&tt==false){System.out.println("请重新输入学号,未查找到");cha();}}System.out.println("请输入一个数字,如果为0则退出修改学生成绩");int pp1=sc2.nextInt();pp=pp1;}}void look(){Scanner sc3=new Scanner(System.in);int gg=1;while(gg!=0) {for (int ii = 0; ii <= aa.size() - 1; ii++) {System.out.println("姓名为" + aa.get(ii).xingming + "学号为" + aa.get(ii).xuehao + "专业为" + aa.get(ii).zhuanye + "成绩一" + aa.get(ii).score1 + "成绩二" + aa.get(ii).score2 + "成绩三" + aa.get(ii).score3 + "成绩四" + aa.get(ii).score4);}System.out.println("输入一个数字,如果为0退出查看");int sgg=sc3.nextInt();gg=sgg;}}void delete(){int bianli=aa.size();boolean tp=false;int xx=aa.size();Scanner sc3=new Scanner(System.in);int t=aa.size(),pg=1;while(pg!=0){System.out.println("请输入要删除学生的学号");int xue=sc3.nextInt();for(int i=0;i<=aa.size()-1;i++){bianli--;if(xue==aa.get(i).xuehao&&t!=0){aa.remove(i);t--;System.out.println("已成功删除该学生");tp=true;}if(t==0){System.out.println("已全部删除");break;}if(bianli==0&&tp!=true){System.out.println("未查找到该学生,请重新输入");delete();}}System.out.println("请输入一个数字,如果为0退出删除");int gh=sc3.nextInt();pg=gh;}}void paixu() {Scanner sc=new Scanner(System.in);int t=sc.nextInt();System.out.println("1.进行希尔排序");System.out.println("2.进行冒泡排序");System.out.println("请输入数字");switch(t){case 1:System.out.println("进行希尔排序");xierpaixu1();break;case 2:maopao();break;default:paixu();}System.out.println("根据成绩1排序后的结果");for (int jjj = 0; jjj <= aa.size() - 1; jjj++) {System.out.println("姓名" + aa.get(jjj).xingming + " 学号" + aa.get(jjj).xuehao + " 专业" + aa.get(jjj).zhuanye + "  成绩1 " + aa.get(jjj).score1 + "  成绩2 " + aa.get(jjj).score2 + "  成绩3 " + aa.get(jjj).score3 + "  成绩4 " + aa.get(jjj).score4);}}void maopao(){for (int i = 0; i <= aa.size() - 2; i++) {for (int j = 1; j <= aa.size() - 1; j++) {if (aa.get(j - 1).score1 < aa.get(j).score1) {int pq = aa.get(j - 1).score1;aa.get(j - 1).score1 = aa.get(j).score1;aa.get(j).score1 = pq;int pg1 = aa.get(j - 1).score2;aa.get(j - 1).score2 = aa.get(j).score2;aa.get(j).score2 = pg1;int pg2 = aa.get(j - 1).score3;aa.get(j - 1).score3 = aa.get(j).score3;aa.get(j).score3 = pg2;int pg3 = aa.get(j - 1).score4;aa.get(j - 1).score4 = aa.get(j).score4;aa.get(j).score4 = pg3;String pg4 = aa.get(j - 1).xingming;aa.get(j - 1).xingming = aa.get(j).xingming;aa.get(j).xingming = pg4;String pg5 = aa.get(j - 1).zhuanye;aa.get(j - 1).zhuanye = aa.get(j).zhuanye;aa.get(j).zhuanye = pg5;int pg6 = aa.get(j - 1).xuehao;aa.get(j - 1).xuehao = aa.get(j).xuehao;aa.get(j).xuehao = pg6;}}}System.out.println("根据成绩1排序后的结果");for (int jjj = 0; jjj <= aa.size() - 1; jjj++) {System.out.println("姓名" + aa.get(jjj).xingming + " 学号" + aa.get(jjj).xuehao + " 专业" + aa.get(jjj).zhuanye + "  成绩1 " + aa.get(jjj).score1 + "  成绩2 " + aa.get(jjj).score2 + "  成绩3 " + aa.get(jjj).score3 + "  成绩4 " + aa.get(jjj).score4);}}void xierpaixu1()//希尔排序{student temp=new student(1,2,3,4,1,"ui","er");//这是变量int d,ii,jj;int n=aa.size()-1;for(d=n/2;d>=1;d=d/2)//d=5,3,1,进行分组{for(ii=d;ii<=n;ii++){temp=aa.get(ii);}for(jj=ii-d;jj>=0&&temp.score1>aa.get(jj).score1;jj-=d){aa.set(jj+d,aa.get(jj));}aa.set(jj+d,temp);}}public void heapSort(ArrayList<student> list){//建立初始根堆,父节点要大于两个子节点或小于int i = 0;int n=list.size()-1;//初始建堆,从最后一个分支结点至根结点for (i = n/2; i >= 1; i--) {Sift(list, i, n);}//重复执行移走堆顶及重建堆的操作for (i=0; i<n; i++) {//交换0和末尾(n-i)的位置student temp=list.get(0);list.set(0,list.get(n-i));list.set(n-i,temp);Sift(list, 0, n-i-1);}}void Sift(ArrayList<student> list, int k, int m){//i指向被筛选结点,j指向结点i的左孩子int i = k, j = 2 * i;if(i==0){//特殊情况j=1;}while (j <= m) {//j指向更小的结点,所以根结点和j比就行了//比较i的左右孩子,j指向两者中的较小者if (j < m &&list.get(j).score1< list.get(j+1).score1) {j++;}//若根结点已经小于左右孩子中的较小者if (list.get(i).score1 < list.get(j).score1) {break;} else {student temp=list.get(i);//如果不是这样就交换list.set(i,list.get(j));list.set(j,temp);//被筛结点位于原来结点j的位置i = j; j = 2 * i;}}}void quicksort(ArrayList<student> pp ,int left,int right){//快速排序if (left > right) {//要求从大到小   i        j//              小       大return;}int i = left;int j = right;student t = aa.get(left);while (i != j){while (aa.get(j).score1 <= t.score1&& (j > i)) {//j没找到一个比i大的,就往左一步j--;}while (aa.get(i).score1 >= t.score1&& (j > i)) {//i没找到一个比j小的,就往右一步i++;}//交换位置if (i < j) {student temp=aa.get(i);aa.set(i,aa.get(j));aa.set(j,temp);}}aa.set(left,aa.get(i));aa.set(i,t);//递归左子序列quicksort(aa,left, --i);//递归右子序列quicksort(aa,++j, right);return;}public void duplexSort(ArrayList<student> li){//双向冒泡int left=0,right = li.size()-1;while(left<right){//小的在前面,大的在后面s//左侧扫描for(int j = left+1; j <= right; j++) {//右边移if(li.get(left).score1<li.get(j).score1) {student temp=li.get(left);li.set(left,li.get(j));li.set(j,temp);}}left++;if(left>=right){break;}//右侧扫描for(int j = right-1; j >= left; j--) {//右边移if(li.get(right).score1>li.get(j).score1) {student temp=li.get(right);li.set(right,li.get(j));li.set(j,temp);}}right--;}}
}

main函数

public class ww{public static void main(String[] args){screen s=new screen();s.maindan();}
}

数据结构课程实验——学生管理系统——源代码相关推荐

  1. python通讯录管理系统设计_数据结构课程设计-通讯录管理系统(C语言版)

    ##数据结构课程设计-通讯录管理系统 一,前言 自从上次C语言课设写完后,这次数据结构课设就写的游刃有余了,很快啊,不足三天就写完了它(年轻人不讲武德),如果你认真看过我之前写的C语言课程设计-球队管 ...

  2. 数据结构课程设计—同学录管理系统(c语言)

    数据结构课程设计-同学录管理系统(c语言) 文章目录 前言 一.需求分析 二.总体设计 三.代码实现 四.代码说明 前言 计算机相关专业在学习数据结构这门课程时会有课程设计,我被分配到的是同学录管理系 ...

  3. 【6】C++语法与数据结构之STL_list学生管理系统_链表外排序_函数指针

    本文通过STL类库的list数据结构来完成学生管理系统,采用链表外排序,通过函数指针实现. 注意:此时排序规则函数定义为类静态成员函数,等价于全局函数 函数指针定义为 BY_FUNC ps[] = { ...

  4. 【5】C++语法与数据结构之STL_list学生管理系统_链表内排序_函数指针

    本文通过STL类库的list数据结构来完成学生管理系统,采用链表内排序,通过list类库自带sort函数进行排序. 注意:此时排序规则函数定义为类静态成员函数,等价于全局函数 函数指针定义为 BY_F ...

  5. 汇编综合实验--学生管理系统

    文章目录 前言 一.程序完整的代码 二.各各子程序的功能讲解 1.登入功能 2.菜单功能 3.输入功能 4.输出功能 5.成绩排序功能 6.不及格人数统计功能 7.删除学习信息功能 8.插入学生信息功 ...

  6. java数据结构通讯录管理系统_数据结构课程设计—通讯录管理系统

    浊贤平鲁冠城美华道钉.内急顺美兴华品红缺点清屏!车组悬吊嗉囊沥胆情愿,城东兴荣规划管涌铺板?轻奏便装壳菜蓝坛卵石数据结构课程设计-通讯录管理系统.缪斯朝圣美金放下隆暑路权. 当年绸巾登封轮滑殴伤调理电 ...

  7. c语言实现学生管理系统,C语言学生管理系统源代码

    <C语言学生管理系统源代码>由会员分享,可在线阅读,更多相关<C语言学生管理系统源代码(12页珍藏版)>请在人人文库网上搜索. 1.C语言学生成绩管理系统源代码,保证能用#in ...

  8. java学生信息管理系统排序_JAVA学生管理系统源代码(最新整理)

    <JAVA学生管理系统源代码(最新整理)>由会员分享,可在线阅读,更多相关<JAVA学生管理系统源代码(最新整理)(10页珍藏版)>请在人人文库网上搜索. 1.JAVA 学生管 ...

  9. c语言数据结构课程设计停车场管理系统,数据结构课程设计报告停车场管理系统...

    <数据结构课程设计报告停车场管理系统>由会员分享,可在线阅读,更多相关<数据结构课程设计报告停车场管理系统(8页珍藏版)>请在人人文库网上搜索. 1.数据结构课程设计报告系 别 ...

最新文章

  1. 石嘴山考计算机在哪里报名,石嘴山中考报名系统
  2. oracle将213变成123,oracle 转换函数
  3. [java进阶]4.关键字throws和throw
  4. 正则表达式。部分实例及说明(摘)
  5. 使用 jQuery UI Widget Factory 编写有状态的插件(Stateful Plugins)
  6. 《四世同堂》金句摘抄(十四)
  7. OPENWRT传感器实验
  8. 面试不慌,看完保证让你写HashMap跟玩一样
  9. HDU2178 猜数字【数学计算+水题】
  10. jQuery实现点击复制文本效果
  11. 证券分析软件测试面试题,光大证券面试经验
  12. 安卓获取wifi列表_大家好,我是来给你家 WiFi 提速的
  13. 盗版 Win7 试用到期后黑屏咋办
  14. 腾讯帝国的下坡路 | 畅言
  15. 人工智能最全学习路线
  16. 磁盘分区命令fdisk、parted和gdisk
  17. SDK完整环境下载安装及ADB常用命令
  18. 移动硬盘制作随身系统
  19. Hadoop 运行wordcount任务卡在job running的一种解决办法
  20. 一键百度 一键翻译 云脉CC慧眼百度搜索版

热门文章

  1. hydra暴力破解ssh密码
  2. NSA组网--后台指标定义
  3. Github开源:Sheng.RabbitMQ.CommandExecuter (RabbitMQ 的命令模式实现)
  4. 麻省理工大学线性代数:三十三、单元检测3复习
  5. AutoCAD字库的用法?
  6. 啊!我的专业不只是修电脑,装系统
  7. 月光博客从当年的权重7衰落到现在的4说明了什么?[图]
  8. 嵌入式软件架构的六个步骤(二)软件基础设施
  9. docker 国内镜像加速
  10. 华为、OPPO、美的能逆势成长的本质和核心是什么?