`
百合不是茶
  • 浏览: 354080 次
社区版块
存档分类
最新评论

Oracle显示根据高考分数模拟录取

阅读更多

题目要求:

1,创建student表和result表
2,pl/sql对学生的成绩数据进行处理
3,处理的逻辑是根据每门专业课的最低分线和总分的最低分数线自动的将录取和落选

 

 

1,创建student表,和result表

学生信息表;

create table student(
   student_id number primary key,--学生id
   math  number,--数学分数
   chinaese number,--语文分数
   en number,--英语分数
   wenke number,--文科学分
  likenumber number,--理科分数
  zhuanyeke number,--专业分数
  student_sum number --总分
);

 

学生录取状态表;

create table result(
  student_id number,
  enrollresult number 
);

 

2.插入一些考生的数据

student表插入数据;

理科
insert into student(student_id,math,chinaese,en,likenumber,STUDNET_SUM) values(4307211993,120,130,140,260,650);
insert into student(student_id,math,chinaese,en,likenumber,STUDNET_SUM) values(4307211997,20,30,40,260,350);
insert into student(student_id,math,chinaese,en,likenumber,STUDNET_SUM) values(4307211998,120,30,240,130,520);

理科专业
insert into student(student_id,math,chinaese,en,likenumber,zhuanyeke,STUDNET_SUM) values(4307211994,128,128,138,260,200,844);
insert into student(student_id,math,chinaese,en,likenumber,zhuanyeke,STUDNET_SUM) values(4307211999,120,30,40,130,180,500);
insert into student(student_id,math,chinaese,en,likenumber,zhuanyeke,STUDNET_SUM) values(4307211100,20,30,13,157,180,400);

文科
insert into student(student_id,math,chinaese,en,wenke,STUDNET_SUM) values(4307211995,110,140,50,270,550);
insert into student(student_id,math,chinaese,en,wenke,STUDNET_SUM) values(4307211101,90,80,50,180,400);
insert into student(student_id,math,chinaese,en,wenke,STUDNET_SUM) values(4307211102,110,120,80,230,540);

文科专业
insert into student(student_id,math,chinaese,en,wenke,zhuanyeke,STUDNET_SUM) values(4307211996,120,30,40,160,180,530);

 

result表插入数据;

insert into result values(4307211993);
insert into rasult values(4307211997);
insert into rasult values(4307211998);
insert into rasult values(4307211994);
insert into rasult values(4307211999);
insert into rasult values(4307211100);

 

3,编写带参数的存储过程,记录考生的分数以及保存考生的录取状态 0表示落选,1表示录取

create or replace procedure pro_score(v_id number) is
v_student_id student.student_id%type;
v_math student.math%type;
v_chinaese student.chinaese%type;
v_en student.en%type;
v_wenke student.wenke%type;
v_like student.likenumber%type;
v_zhuanye student.zhuanyeke%type;
  v_score number(7);
begin
  select STUDENT_ID, MATH ,CHINAESE,EN ,WENKE ,LIKENUMBER ,ZHUANYEKE  into v_student_id , v_math,v_chinaese,v_en ,v_wenke,v_like,v_zhuanye from student where student_id=v_id; 
   v_score := v_math + v_chinaese + v_en + v_wenke + v_like + v_zhuanye;
    dbms_output.put_line('总分'||v_score);
  if v_score>500 then
  update result set ENROLLRESULT=1 where STUDENT_ID=v_id;
   dbms_output.put_line(v_student_id||'被录取了');
  else
  update result set ENROLLRESULT=0 where STUDENT_ID=v_id;
  dbms_output.put_line(v_student_id||'落榜了');
  
  end if;
end;
 

 

 

4,创建游标,用于从student表中查询数据,并加入一个异常机制  0表示落选,1表示录取

set serveroutput on;
create or replace procedure pro_score is
  myrow student%rowtype;
  v_score number(7);
  type type_cursor is ref cursor;
  rowcursor type_cursor ;
begin
  open  rowcursor for select * from student;

  loop
      fetch rowcursor into myrow ;
   v_score := myrow.math + myrow.chinaese + myrow.en + nvl(myrow.wenke,0) + nvl(myrow.likenumber,0) +nvl( myrow.zhuanyeke,0);
   dbms_output.put_line('总分'||v_score);
   
   exit when rowcursor%notfound;
  
  if v_score>500 then
  update result set ENROLLRESULT=1 where STUDENT_ID=myrow.student_id;
   dbms_output.put_line(myrow.student_id||'被录取了');
  else
  update result set ENROLLRESULT=0 where STUDENT_ID=myrow.student_id;
  dbms_output.put_line(myrow.student_id||'落榜了'); 
  end if;
end loop;
end;
/

 exec pro_score;

总分650
4307211993被录取了
总分350
4307211997落榜了
总分520
4307211998被录取了
总分854
4307211994被录取了
总分500
4307211999落榜了
总分400
4307211100落榜了
总分570
4307211995被录取了
总分400
4307211101落榜了
总分540
4307211102被录取了
总分530
4307211996被录取了
总分530

 

 

 

在游标中添加异常机制,实在是不知道怎么添加了,所以把代码和思路贴出来让大家帮我看一下;怎么解决这个问题

 

0
1
分享到:
评论

相关推荐

    Oracle模拟高考录取系统护设计完整版.docx

    【Oracle模拟高考录取系统设计】是一个综合性的数据库应用项目,旨在帮助学习者理解和掌握Oracle数据库在实际场景中的应用。此系统模拟了高等院校招生录取过程,包括数据录入、投档算法和查询统计等功能,以帮助学生...

    基于JAVA的高考预录取系统项目

    这个项目模拟了高考预录取的过程,让学生在实践中掌握JAVA编程的基础和高级特性。 在JAVA GUI界面设计中,开发者通常会使用JavaFX或Swing库来创建图形用户界面。Swing是JAVA的一个标准库,提供了一套丰富的组件,如...

    Java高考志愿填报参考系统源码.zip

    3. **数据库交互**:为了存储和查询考生信息、历年分数线等数据,系统可能会使用MySQL、Oracle或PostgreSQL等关系型数据库,并通过JDBC(Java Database Connectivity)或者ORM(Object-Relational Mapping)框架如...

    高考志愿选择辅助系统-适合毕设,大作业、实训项目包含完整源码以及数据库文件.rar

    2. 数据查询:考生可以查询历年各高校录取分数线、专业介绍、就业情况等信息,以便做出更全面的决策。 3. 个性化设置:允许用户根据个人需求设置优先级,如地域偏好、学校排名、专业类别等,以优化推荐结果。 4. ...

    Java课程设计案例精编源代码

    - 高考信息系统通常涵盖考生报名、成绩录入、分数线设定、录取情况查询等功能。涉及的技术点有: - 数据库设计:MySQL或Oracle等数据库用于存储考生信息、考试成绩等。 - SQL查询:用于检索、更新和管理数据库中...

Global site tag (gtag.js) - Google Analytics