程序计算一个学生成绩分析怎么写上月成绩和当月成绩相差多少

已解决问题
编写应用程序,输入若干学生一门课程的成绩,统计平均成绩,及格和不及格的人数.
浏览次数:4653
用手机阿里扫一扫
最满意答案
用数组存放成绩。用while循环接收输入。IF条件句判断是否及格。
答案创立者
以企业身份回答&
正在进行的活动
生意经不允许发广告,违者直接删除
复制问题或回答,一经发现,拉黑7天
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题
扫一扫用手机阿里看生意经
问题排行榜
当前问题的答案已经被保护,只有知县(三级)以上的用户可以编辑!写下您的建议,管理员会及时与您联络!
server is ok& 相关文章 &
、总成绩,并在屏幕上显示; 5 统计指定学号课程的平均成绩,并在屏幕上显示;
6 成绩排序(按总成绩降序排列)
题目三:通信录管理 基本功能:
1 建立通信录文档,记录字段包含序号、姓名、电话、单位内容;
2 程序能够对记录进行增加、删除、修改操作。
3 能够通过姓名、或电话号码查询记录并显示查询结果。
4 显示通信录报表; l
5增加常用服务电话号码的功能查询例如119、120、114。
题目四:带显示
2013级C++第14周项目——一维数组、字符数组
)中的程序,编程求出这次考试的平均成绩,并统计输出优秀人数和不及格人数。   (4-实战)编程求出这次考试的最高成绩,以及得最高成绩的学生的学号(设学号即是相应数组元素的下标)。   (5-实战)据统计,这次考试成绩均分为71.49,标准偏差为10.33,请编程将成绩转换为标准分,并将转换后的成绩保存到文件english2.dat中。     标准分算法:Z=(X-A)/S,其中:X为原始分,A为全体考生的平均分,S为该次考试分数的标准偏差。标准分T=500+100Z。     求平均和求
完全不同的含义。 数组说明的方括号中给出的是某一维的长度,即可取下标的最大值; 而数组元素中的下标是该元素在数组中的位置标识。前者只能是常量, 后者可以是常量,变量或表达式。 一个学习小组有5个人,每个人有三门课的考试成绩。求全组分科的平均成绩和各科总平均成绩。 课程 成绩姓名 Math C DBASE 张      80  75 92 王      61  65 71 李      59  63 70 赵      85  87 90 周      76  77 85   可设一个二维数组a[5
用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作: (1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中; (2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差; (3)输出考得总分最高、最低同学的人数及对应的学号。 要求:学生人数num在main()函数中输入,score[][4]数组也是main()函数的局部变量,最好将其他功能也设计成
。)   参考解答见:链接地址 【项目4-多科成绩单】用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作: (1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中; (2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差; (3)输出考得总分最高、最低同学的人数及对应的学号。 参考解答见: 链接地址 【项目4扩展(选做)-带姓名的多科成绩单】增加用数组
C数组 奇偶分开,奇前偶后
排序后的结果:");
for(i=0;i&20;i++){
printf("%3d",score[i]);
getch(); } /* 编程实现:随机产生20个学生的计算机课程的成绩(30~100之间的整数), 1) 显示生成的数组元素,每个元素用3个列宽输出,每行5个,共4行; 2) 记录并输出最高分,最低分以及其对应的数组元素下标 3) 记录并显示20个同学的平均成绩; 4) 把成绩从高到低排序,可采用冒泡法 5) 输出排序后的数组元素; */
和第三位交换。
【程序49】
题目:计算字符串中子串出现的次数
【程序50】
题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件 "stud "中。
有些是C语言的题~但要用JAVA做
第16周项目4-多科成绩(完善)
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: array.cpp
* 完成日期:日
* 版 本 号: v1.0
* 输入描述:输入学生人数和成绩。
* 问题描述:利用二维数组编程序,
计算出三门课程总成绩、最高成绩、最低成绩、平均成绩、标准偏差
#include &iostream&
50道java编程小题,平常可以拿来练手
,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字 都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
做完【程序49】
题目:计算字符串中子串出现的次数
【程序50】
题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原 有的数据和计算出的平均分数存放在磁盘文件"stud"中。
和第四位交换,第二位和第三位交换。
【程序49】
题目:计算字符串中子串出现的次数
【程序50】
题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件 "stud "中。
经典C语言程序设计试题集
,char *d),函数的功能是将d所指向的字符串复制到s所指向的字符数组中(不能使用strcpy函数)。在主函数中输入一个字符串,调用函数复制到另一个字符串中且打印出来。(输入:This is c program) §5.2结构应用程序 【17.】有一个结构STUDENT,内含学生学号、姓名和3门课程成绩,编写程序输入10个学生的信息,并输出3门总分最高的学生的学号和姓名。 §6常用算法程序 【18.】编写程序求两个整数的最大公约数和最小公倍数。 【19.】编写一个函数IsP(int n),函数
第15周项目12-多科成绩
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: array.cpp
* 完成日期:日
* 版 本 号: v1.0
* 输入描述:输入学生人数和成绩。
* 问题描述:利用二维数组编程序,
计算出三门课程总成绩、最高成绩、最低成绩、平均成绩、标准偏差
#include &iostream
【多科成绩单】用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作: (1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中; (2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差; (3)输出考得总分最高、最低同学的人数及对应的学号。 要求:学生人数num在main()函数中输入,score[][4]数组也是main()函数的局部变量,最好将其他
C++程序设计实验报告(十六)----用循环控制语句编写程序,完成表达式的计算
* 完成日期:
23 日 * 版本号:
1.013 * 对任务及求解方法的描述部分 * 输入描述:学生人数和成绩 * 问题描述:(函数及数组的简单应用) 在数组score中将要存储某小组C++程序设计的成绩,请设计完成下面功能函数,并将它们组合成一个完整的应用: (1)输入小组人数及成绩; (2)输出该小组的最高成绩、最低成绩、平均成绩和成绩的标准偏差; (3)输出考得最高成绩和最低成绩的同学的人数及对应的学号(设
)      实验1:任务内容
任务详解:任务1-三角形类 任务2-分数类 任务3- 5个长方柱 任务4- 5个学生      实验2:任务内容
任务详解:任务1-使用常对象的一个典型错误
任务2-程序填空   任务3-设计平面坐标点类
                  任务4-用点类作成员的三角形类
 任务5-多文件组织三角形类       贺老师原创案例讲解:”玻璃罩const”系列的三篇文章:        1. 使用常对象——为共用数据加装一个名为const的玻璃罩
2013级C++第15周项目——二维数组
,两者的对应关系就被破坏了。) 【项目4-多科成绩单】用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作: (1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中; (2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差; (3)输出考得总分最高、最低同学的人数及对应的学号。 要求:学生人数num在main()函数中输入,score[][4]数组也是
(完本)成绩处理之大结局~
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
者: 李家豪
* 完成日期:2013 年12月2日
* 版 本 号:v1.0
* 问题描述:在数组score中将要存储某小组C++程序设计的成绩,请设计实现下面的各
功能函数,并在main函数中调用,组合成一个完整的应用:
* 样例输入:
* 样例输出:
* 问题分析:
#include&iostream&
就是基础,而且易学常用,用这些知识就可以完成培养学生基础能力的要求。
  在教学内容上,引入职业程序员的项目流程规范和方法去分析程序,淡化语法, 每学习新语句都是从模仿例题和画流程图开始,并且每个例题和作业题都要求学生按照规范的项目流程,把一个程序分为分析、设计、流程、编写调试、测试几个步骤来完成最终的程序。 (二)利用多媒体教学手段,把抽象的知识生动化、形象化
  利用现有的教学设备与技术,通过多媒体手段,把深奥的理论通过浅显的例子讲解得深入浅出,是每一位教师和教育工作者共同考虑的问题。比如
和不及格人数。   (4-实战)编程求出这次考试的最高成绩,以及得最高成绩的学生的学号(设学号即是相应数组元素的下标)。   (5-实战)据统计,这次考试成绩均分为71.49,标准偏差为10.33,请编程将成绩转换为标准分,并将转换后的成绩保存到文件english2.dat中。     标准分算法:Z=(X-A)/S,其中:X为原始分,A为全体考生的平均分,S为该次考试分数的标准偏差。标准分T=500+100Z。     求平均和求标准偏差的工作可以使用项目3中已经编制好的函数完成,为简单起见
C程序设计课程-2012电子信息 第九次实验任务
任务1: 某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组作函数参数编程实现如下学生成绩管理: (1) 录入每个学生的学号和考试成绩; (2) 计算课程的总分和平均分; (3) 按成绩由高到低排出名次表; (4) 按学号由小到大排出成绩表; (5) 按学号查询学生排名及其考试成绩; (6) 按优秀(90~100)、良好(70~89)、及格(60~69)、不及格(0~59)5个类别,统计每个类别的人数及其所占的百分比; (7) 输出每个学生的学号、考试成绩,课程总分和平均分。 ----------------------分割线---------------------- 任务2: 从键盘输入5个整数存入一维数组中,输出最大的数,再按反序输出(要求用指针访问数组元素)
& 2012 - 2016 & aiuxian.com &All Rights Reserved. &
/*爱悠闲图+*/
var cpro_id = "u1888441";请用C语言编一个程序计算3位学生3门课成绩总分和平均成绩?_百度知道
请用C语言编一个程序计算3位学生3门课成绩总分和平均成绩?
要在VC++6.0里编的可能你们会认为很简单,不过对我来说还是很难的,我刚学C希望高手们不吝赐教!要简单点的哦,太复杂我看不懂````...
要在VC++6.0里编的可能你们会认为很简单,不过对我来说还是很难的,我刚学C希望高手们不吝赐教!要简单点的哦,太复杂我看不懂````
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
来自电脑网络类芝麻团
采纳数:273
获赞数:2546
参与团队:
C语言实现如下:#include&&stdio.h&void&main(){ float&a[3][3],sum[3]; int&i; for(i=0;i&3;i++) {
printf(&请输入第%d位同学的三科成绩:&,i+1);
scanf(&%f%f%f&,&a[i][0],&a[i][1],&a[i][2]);
//输入该同学的三科成绩。
sum[i]=a[i][0]+a[i][1]+a[i][2];
printf(&该同学三科成绩的总分为%0.2f,平均成绩为%0.2f。\n&,sum[i],sum[i]/3);
//保留两位小数输出该同学三个成绩的总分和平均成绩。 }}
chenze0403
chenze0403
获赞数:36
#include &stdio.h&void main(){
int score[9];
//学生分数
int total[3];
int average[3];
//循环变量
for(i=0;i&9;i++)
scanf(&%d&,score+i);
//输入分数
for(i=0;i&3;i++){
total[i]=score[i*3]+score[i*3+1]+score[i*3+2];
//计算总分
average[i]=total[i]/3; //计算平均分
printf(&学生%d的总分:%d
平均分:%d\n&,i,total[i],average[i]);
//打印成绩
本回答被提问者和网友采纳
采纳数:292
获赞数:1212
擅长:暂未定制
#include&stdio.h& #define N 50 struct student {
char name[20]; int score[3];
}str[N]; int count=0; struct student input(); void display(); void sort(); void insert(); void del(); void main() {
printf(&\n\t\t欢迎光临学员成绩管理系统&); do { printf(&\n 0、退出\n 1、录入学员信息\n 2、插入学员信息\n 3、删除学员信息\n&); printf(&请选择功能: &); scanf(&%d&,&select); if(select==0)
switch(select) { case 1: input(); sort(); display();
case 2: printf(&\n插入前的学员信息: &); display(); insert(); printf(&\n插入后的学员信息: &); display();
case 3: printf(&\n删除前的学员信息: &); display(); del(); printf(&\n删除后的学员信息: &); display();
default: printf(&\n输入有误,请在0-3之间选择。\n\n&); } }while(0); } //录入学员信息函数 struct student input() { char ch='y';
int sum=0,j; while((ch=='y')||(ch=='Y')) { sum=0; //改这里 printf(&\n学号:&); scanf(&%d&,&str[count].num); printf(&\n姓名:&); scanf(&%s&,str[count].name); printf(&\n三门成绩:\n&); for(j=0;j&3;j++) { printf(&成绩%d: &,j+1); scanf(&%d&,&str[count].score[j]); sum+=str[count].score[j]; } str[count].avr=sum/3; printf(&\n是否继续?(y or n)&); fflush(stdin); scanf(&%c&,&ch); count++; }
} //成绩排序函数 void sort() {
int i,j; for (i=0;i&i++) { for(j=0;j&count-i-1;j++) { if(str[j].avr&str[j+1].avr) { temp=str[i]; str[i]=str[j]; str[j]= } } } } //显示学员信息函数 void display() {
printf(&\n学号\t姓名\t平均成绩\n&); for(i=0;i&i++) { printf(&%d&,str[i].num); printf(&\t%s&,str[i].name); printf(&\t%6.2f\n&,str[i].avr); } } //插入学员信息函数 void insert() { int i,j;
printf(&是否要插入新学员(y or n)&); fflush(stdin); scanf(&%c&,&ch); if(ch=='y'||ch=='Y') { printf(&\n请输入要插入的学员信息&); temp=input(); for(i=0;i&i++) { if(str[i].avr&temp.avr)
} for(j=j&=i;j--) { str[j+1]=str[j]; } str[i]= } count++; } //删除学员信息函数 void del() {
printf(&是否要删除学员信息(y or n)&); fflush(stdin); scanf(&%c&,&ch); if(ch=='y'||ch=='Y') { printf(&\n请输入要删除的学员:&); scanf(&%d&,&dnum); for(i=0;i&i++) { if(str[i].num==dnum)
} for(j=i;j&count-1;j++) { str[j]=str[j+1]; } } }
zcydiamond
zcydiamond
擅长:暂未定制
void main() {
float score[3];
for(int i=0,i&3,i++)
{ cin&&score[i]; }
//..........见最后*处
float total=0;
for(int i=0,i&3,i++)
{ total=total+score[i]; }
average=total/3;
cout&&&total is&&&total&&
cout&&&average is&&&average&&
}*输入语句有点忘了 可能格式不对,这点你自己看下书
获赞数:39
擅长:暂未定制
你的问题我们有分歧.所以我来个算所以科目的总成,算出所有科目的平均成绩.你根据需要选择吧.呵呵#include &stdio.h&void main(){ int i,j;//循环变量 int total=0;//总成绩初始 float average=0.0;//平均成绩初始 int score[3][3];//2维数组,用于存放成绩,即3人的3门成绩 printf(&输入3个学生的3门成绩:\n&); for(i=0;i&3;i++) {
for(j=0;j&3;j++)
scanf(&%d&,&score[i][j]);//输入3人3门的成绩,总共9门成绩
total+=score[i][j];//算出总成绩
} } average=total/9;//总成绩除以9门成绩 printf(&总成绩:%d 平均成绩:%f&,total,average);}
newghost_joe
newghost_joe
采纳数:347
获赞数:673
狼多肉少,我闪了....
其他3条回答
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。设计一个程序,统计一个班(多有35人)的学生成绩,要求能实现如下四个功能: (1)由键盘输入每_其它- 一起装修问答
短信快捷登录
请输入密码
您还可以使用合作账号登录网站:
还没有一起网帐号?10秒钟,
微信扫码&快速登录
验证即登录,未注册将自动创建一起网帐号
获取动态密码
微信账号登陆
微信扫一扫绑定/登录
设计一个程序统计一个班多有35人的学生成绩要求能实现如下四个功能: 1由键盘输入每
微信公众平台:搜索“一起装修网”或扫描下面的二维码:
该装修风格预算为
人工费:22298 元
设计费:22298 元
材料费:22298 元
质检费:22298 元
您家的装修预算约
人工费:22298万元
设计费:0 元4999元
材料费:5200 万元
质检费:0 元2690元
报价有疑问?稍后装修管家将致电为您解答
该报价为毛坯半包价,实际装修报价以量房实测为准
完善以下信息
让我们更了解您的需求优先为您服务
1. 您家的房屋现状是 :
2. 您家准备什么时候开始装修 :
3. 您家小区名称 :
设计一个程序统计一个班多有35人的学生成绩要求能实现如下四个功能: 1由键盘输入每
浏览45次 悬赏: 0
设计一个程序,统计一个班(最多有35人)的学生成绩,要求能实现如下四个功能:
(1)由键盘输入每个学生的学号和四课程的成绩。
(2)计算每个学生的平均分和总分。
(3)按总分从高到低排出名次,并按名次输出每个学生的情况,包括学号、各科成绩、平均分和总分。
(4)根据用户要求输出某门课程(由键盘输入课程号)成绩在90分以上(含90分)且总分在前五名的学生情况,包括:学号、各科成绩、平均分和总分。
具体要求如下:
(1)每个功能为一个独立的函数。
(2)所有的输入之前都要有提示。
回答该问题即可获得 2 经验值,问题被采纳即可获得 2 经验值!
我来回答&&
装修从哪入手?
从免费户型设计开始…
全部回答(0)
A:这个一般是驱动问题,你重新安装一下驱动,不行就找到客服,让他给你解决。我的电脑属性-硬件-设备管理器-找到人体输入学设备。或者是被热坏的可能性很大,笔记本太热了,不加强散热,键盘会被电路板加热。
A:现在的电视费越来越贵了,安装一个*微波*器就能看电视,又不用给电视费。*微波*器,是适合全国各地区微波信号加密使用,不用到电视办理任何手续。只要和微波天线配套既可。此*器分一型和二型。二型在型的基础上加装了信号自动放大电路,使接收到的信号更加清晰,豪华铁壳,泡沫盒包装。
A:1) 用for语句实现。2) 用while语句实现。3) 用do-while语句实现。&&
A:那么你可以这么设计摸到奇数甲胜,摸到偶数乙胜或者摸两个数,和若为5甲胜,和若为偶数乙胜
A:畅钉扳固殖改帮*爆鲸 /是这两个斜线吗,在英文状态下按问号,或右中大括号,还有就是右键输入法,选择符号
A:0.75升×24×30=540升…………一个月
0.75升×24×365=6570升…………一年
一个月漏水540升,一年漏水6570升。
免费获取靠谱装修设计
个免费名额
我们承诺:一起装修网提供该项免费服务,绝不产生任何费用。
抢免费设计名额
每天限50个
请放心填写您的隐私将被严格保密
7年服务700万用户,中国家装十大电商平台
重复报名!
亲,您已经报过名啦,给别人留点机会呗
我们还有更多精彩活动,
向帮助了您的知道网友说句感谢的话吧!
提问期内,追加悬赏一次,可延长问题的有效期3天。悬赏越高,会吸引到越多的关注。
追加悬赏:&
稍后装修管家将以
400开头的号码与您联系,请注意接听。&&&&&&&&&&&
学生成绩管理系统(六):项目总结
一、项目实现情况
初期项目计划:
简单的图形界面登录功能。
对数据库的的信息的查询功能。
对数据库的的信息的修改功能。
对数据库的的信息的删除功能。
对数据库的的信息的添加功能。
当以学生身份登录时只有查询的功能。
当教师登陆时既可以查询也可以进行修改、删除、添加的操作。
最终项目实现的功能:
软件功能架构图:
软件功能介绍:
输入用户名和密码进入系统主界面
记录学生的基本信息,如姓名、学号、性别、专业、班级等
记录各科成绩
根据用户需求添加、修改、删除学生信息
学生查找功能分为按年级查找、按班级查找、按专业查找、和显示总体信息
实现常用的统计功能,如:单科成绩排名、总分排名、统计成绩高于/低于某一临界值的学生、统计单科/总分平均值
理想与现实的差距
我们初期对学生成绩管理系统的规划是:有一个学生登录界面和一个老师登录界面。先进入首界面选择时学生登录还是老师登录,根据用户选择,进入相应的登录界面。在学生登录界面内,输入学生的学号和密码,进入主操作界面。当以学生身份登录时只能进行查询,当输入教师账号登录时可以查询,修改,删除,添加操作。整个程序系统是和Access数据库相连接,建立三张表:STUDENT(学生信息表)、Teacher(教师账号管理表)、zhanghao(学生账号管理表)。
最终版学生成绩管理系统我们最终的学生成绩管理系统设置了一个登陆入口,用户直接输入自己的用户名和密码之后进入系统主操作界面。在主操作界面中,分了三大块:学生管理、学生查找、成绩管理。在学生管理这一块中,又分为增加学生、修改学生、删除学生、单个查询(按照学号查询)这四个功能;在学生查找中分为:查看全体、按年级查找、按班级查找、按专业查找四个功能;在成绩管理中分为:单科排名、总分排名、挂科学生、合格学生四个功能。而且我们整个系统的数据库是使用MySQL来链接制作的。
二、项目测试分析
1.数据库名studentmanagement
2.典型测试数据的构建,并且给出测试数据的预计结果
测试数据:
2.1 添加学生
张晓华 女 2012 2 计算机科学与技术
2.2 删除学生
2.3 修改学生
冯佳 女 2014 3 管理
2.4 单个查找
2.5 查询全体
2.6 按年级查找 2012级
2.7 按班别查找 1班
2.8 按专业查找
2.9 单科排名并显示平均分
2.10 总分排名并显示平均分
2.11 单科及格学生
2.12 单科不及格学生
三、项目实现中的问题与解决
问题1:如何实现一个管理员登录界面
解决方法:
由于这一部分书上并没有具体指导的方法,所以我们选择百度”java界面编程”,在百度知道中我们找到了答案:
其中给出了整个具体的代码,这就很大程度上帮助了我们在后续界面的设计和编码。因此我们基本上后续所有界面的代码都是在这个代码的基础上所进行修改而得出的。牛顿说过要站在巨人的肩膀上,我们也是再利用了别人的代码的基础上再进行完善和修改,最终一步步做出了属于我们自己的操作界面。
代码如下:
import java.awt.BorderL
import java.awt.C
import java.awt.FlowL
import javax.swing.JB
import javax.swing.JF
import javax.swing.JL
import javax.swing.JP
import javax.swing.JPasswordF
import javax.swing.JTextF
public class Login {
private JFrame frame = new JFrame(&登录&);
private Container c = frame.getContentPane();
private JTextField username = new JTextField();
private JPasswordField password = new JPasswordField();
private JButton ok = new JButton(&确定&);
private JButton cancel = new JButton(&取消&);
public Login(){
frame.setSize(300,200);
c.setLayout(new BorderLayout());
initFrame();
frame.setVisible(true);
private void initFrame() {
JPanel titlePanel = new JPanel();
titlePanel.setLayout(new FlowLayout());
titlePanel.add(new JLabel(&系统管理员登录&));
c.add(titlePanel,&North&);
//中部表单
JPanel fieldPanel = new JPanel();
fieldPanel.setLayout(null);
JLabel l1 = new JLabel(&用户名:&);
l1.setBounds(50, 20, 50, 20);
JLabel l2 = new JLabel(&密
l2.setBounds(50, 60, 50, 20);
fieldPanel.add(l1);
fieldPanel.add(l2);
username.setBounds(110,20,120,20);
password.setBounds(110,60,120,20);
fieldPanel.add(username);
fieldPanel.add(password);
c.add(fieldPanel,&Center&);
//底部按钮
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout());
buttonPanel.add(ok);
buttonPanel.add(cancel);
c.add(buttonPanel,&South&);
public static void main(String[] args){
new Login();
程序运行结果如下:
问题2:Botton和Jbotton的区别
在程序界面的设计过程中,我们遇到了汉字无法显示的问题:
解决过程:
经过百度,我们知道了,因为Button是awt包中的控件,而JButton是swing包中的控件,AWT是依靠本地方法来实现其功能的,Swing是在AWT的基础上构建的一套新的 图形界面系统。于是我们将Button换成Jbotton,便可以显示中文了。
问题3:数据库的链接
我们的成绩管理系统一开始使用的是access数据库,但是百度了之后并没有发现与netbeans和access链接相关的代码,在qq上向老师寻求帮助之后,我们决定换为mysql这个数据库。
使用mysql的好处:
1.MySQL是一个关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
2.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
3.MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
解决过程:
我们查阅了相关资料以及参考了 最终我们成功将我们的程序与数据库成功连接上。
1.我们项目选择的是mysql的数据库,之前老师发在群里有一个集成各种软件的功能强大的XAMPP:
2.选择xampp的这两个功能:
3.我们现在可以进入到弹出的网页中,这里就是我们建立数据库的地方,选择选项中的new,我们就可以在此创建自己需要的数据库:
4.我们建立一个名为studentmanagement的数据库,在这个数据库中创建一个名为student的表:
5.由于我们选择的是Netbeans程序进行项目,所以我们需要这Netbeans中进行如下的操作:
·导入库文件:
·导入jar包:
·程序连接代码:
package 最终版学生成绩管理系统;
import java.sql.*;
//连接数据库类
public class DataBaseCreate {
//连接数据库静态方法,若产生错误,则抛出相应错误信息
public static Connection getConnection()throws SQLException,java.lang.ClassNotFoundException{
//建立本地数据库连接,编码规则转换为utf-8(正常录入中文)
String url=&jdbc:mysql://localhost:3306/studentmanagement?useUnicode=true&characterEncoding=utf8&;
Class.forName(&com.mysql.jdbc.Driver&);
String userName=&root&;
Connection con=DriverManager.getConnection(url, userName, &&);
如果有其他的小伙伴对于这方面的知识有兴趣的话,可以参考卢肖明关于书上数据库联机的帖子: 以及我们团队小组第五次的项目总结:
问题4:如何点击按钮弹出窗口
解决过程:
在监听器下
if(o=你的按钮){
new 你需要的新对话框
(该方法可以在实现actionPerformed方法中,也可以直接写匿名内部类)
或者不实现ActionListener而直接在代码中加入该监听
ActionListener listener=new ActionListener(){
public void actionPerformed(ActionEvent e){
if(o=你的按钮){
new 你需要的新对话框
import javax.swing.*;
import java.awt.event.ActionL
import java.awt.event.ActionE
public class popupWindows{
JFrame mainW
public popupWindows(){
mainWindow = new JFrame(&pop up window&);
//mainWindow.setBounds(10,10,10,10);
JButton JB = new JButton(&PopUp&);
JB.addActionListener(new creatNewWindow());
mainWindow.setVisible(true);
mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainWindow.add(JB);
mainWindow.pack();
class creatNewWindow implements ActionListener{
public void actionPerformed(ActionEvent e){
new popupWindows().mainWindow.setBounds(100,100,100,100);
public static void main(String[] args){
new popupWindows();
问题5:程序功能多导致的主程序代码过长
解决方法:
我们的项目里涉及到很多功能,考虑到分工合作问题以及程序代码编写容易发生混乱,我们将主程序里运用到的多个子程序单独作为一个class类,主程序main直接调用就可以。
类的设计过程:
本程序包括19个类文件,每个类文件只含有一个类,分别是包含main方法的主类 Main,实现登录功能的类 Login, 实现各种功能选择功能的类 Function, 实现数据库连接的类 DataBaseCreate, 实现学生信息编辑功能类 StudentEdit, 执行增加学生功能的类 AddStudent, 执行删除学生功能的类 DeleteStudent, 执行修改学生功能的类 UpdateStudent, 执行单个查询功能的类 IndexOfSingle, 实现条件查找和成绩管理功能的类 IndexOrManage, 执行查询全体功能的类 LookAllStudents, 执行按年级查询功能的类 IndexOfGrade, 执行按班别查询功能的类 IndexOfClass, 执行按专业查询的类 IndexOfMajor, 执行单科排名功能的类 SubjectScoreRanking, 执行总分排名功能的类 TotalScoreRanking, 执行查找单科及格学生功能的类 PassStudents, 执行查找单科不及格学生功能的类 NotPassStudents, 执行将文本域内容保存到TXT文件的类 TxtSave。以上19个类,除了Main类以外,均包含一个构造方法,有些还包含actionPerformed(e)方法。
问题6:关于下拉列表的实现,录入学生信息的时候,刚开始我们设计的是所有学生信息必须通过手动输入,后来我们想要设置为能有一个下拉列表,类似于性别、班级、年级、专业这类的输入使管理员能够不用再重新输入,而是通过下拉列表进行选择。包括在查询管理和学生查找中的单科排名和合格学生、挂科学生、按班级查找、按年级查找、按专业查找我们用同样的方法设置了下拉列表。
解决方法:
我们通过在需要下拉列表的类 IndexOrManage、类 IndexOfGrade、类 IndexOfClass、类 PassStudents、类 NotPassStudents中添加类import javax.swing.JComboB显示一个项列表,扩展的是ListModel接口的模型,它的显示绘制器通过实现ListCellBenderer接口来绘制列表下拉列表。JComboBox类是一个组件,它结合了一个按钮或可编辑字段与下拉列表。
代码如下:
String[] classes={&&,&1&,&2&,&3&};
JComboBox clas=new JComboBox(classes);//班级下拉列表
JLabel la=new JLabel(&选择查询班别&);
String[] grades={&&,&2012&,&2013&,&2014&,&2015&};
JComboBox grade=new JComboBox(grades);
JLabel la=new JLabel(&选择查询年级&);
String[] majors={&&,&电子信息工程&,&计算机科学与技术&,&通信工程&,&管理&,&信息安全&};
JComboBox major=new JComboBox(majors);
JLabel la=new JLabel(&选择查询专业&);
String[] subjects={&&,&语文&,&英语&,&数学&};
JComboBox subject=new JComboBox(subjects);
JLabel la=new JLabel(&选择查询科目&);
效果如下图:
问题7:在进行数据库连接之后查询的数据无法显示出来
解决方法:
在程序中加上类
import java.sql.C//与数据库连接的类
import java.sql.ResultS//ResultSet 对象具有指向其当前数据行的指针,默认的 ResultSet 对象不可更新,仅有一个向前移动的指针;
//ResultSet 对象的列的编号、类型和属性由 ResultSet.getMetaData 方法返回的 ResulSetMetaData 对象提供。
import java.sql.SQLE//无效的列索引
import java.sql.S//是 Java 执行数据库操作的一个重要方法,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句。
//Statement对象,用于执行不带参数的简单SQL语句。
并将程序中的主键和数据库相连接,这样当管理员点击主键的时候就能够直接对数据进行操作。相关代码如下:
Connection con=DataBaseCreate.getConnection();
Statement sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//按班别查找数据库数据
ResultSet rs=sql.executeQuery(&select * from student where Class like '%&+clas.getSelectedItem()+&%'&);
text.append(&全校&+clas.getSelectedItem()+&班学生信息:\r\n&);
text.append(&学号
总分\r\n&);
while(rs.next()){
text.append(rs.getString(&Num&)+&
&+rs.getString(&Name&)+&
&+rs.getString(&Sex&)+&
&+rs.getString(&Birth&)+&
&+rs.getString(&Major&)
&+rs.getString(&Grade&)+&
&+rs.getString(&Class&)+
&+rs.getFloat(&Chinese&)+&
&+rs.getFloat(&English&)
&+rs.getFloat(&Maths&)+&
&+rs.getFloat(&Total&)+&\r\n&);
}catch(java.lang.ClassNotFoundException err){
JOptionPane.showMessageDialog(null, err.getMessage(), &ClassNotFoundException:&,
JOptionPane.INFORMATION_MESSAGE);
}catch (SQLException ex){
JOptionPane.showMessageDialog(null, ex.getMessage(), &SQLException: &, JOptionPane.INFORMATION_MESSAGE);
问题8:当管理员输入的信息不符合系统设置的操作要求时,应该怎么办???也许你会说这很简单啊,设置个if语句不就OK了吗。然而操作起来并没有那么简单,我们刚开始设想了一下如果管理员输入错误的话应该如何弹出消息提示框提示管理员进行正确操作呢?后来终于找到了正确的解决办法
解决方法:
在程序中加入类import javax.swing.JOptionP构建使用消息提示框
相关代码如下:
if(number.equals(&&)){
JOptionPane.showMessageDialog(null, &不存在此学生&, &Messages&,
JOptionPane.INFORMATION_MESSAGE);
if(clas.getSelectedItem().equals(&&)){
JOptionPane.showMessageDialog(null, &找不到该班别&, &Message&,
JOptionPane.INFORMATION_MESSAGE);
if(grade.getSelectedItem().equals(&&)){
JOptionPane.showMessageDialog(null, &找不到该年级&, &Message&,
JOptionPane.INFORMATION_MESSAGE);
if(major.getSelectedItem().equals(&&)){
JOptionPane.showMessageDialog(null, &找不到该专业&, &Message&,
JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null, &用户名或密码错误&, &Error&, JOptionPane.INFORMATION_MESSAGE);
效果如下图:(PS:由于消息提示框类型都一样在此就不一一列举了)
问题9:程序中有很多操作功能的界面和操作功能基本相同,所以我们干脆让它们继承同一个类,这里就用到了我们Java课本上的子类继承父类的的知识。
解决办法:
AddStudent, DeleteStudent, UpdateStudent, IndexOfSingle 界面和操作基本相同,所以上4类均继承StudentEdit。LookAllStudents, IndexOfGrade, IndexOfClass, IndexOfMajor, SubjectScoreRanking, TotalScoreRanking, PassStudents, NotPassStudents, 界面和操作基本相同,所以上8类均继承IndexOrManage。所以这几个功能操作运行出来之后界面显示和相关的功能操作都是一样的。我们用super()来继承父类。
super();//this通常指代当前对象,super通常指代父类
p1.add(la);
p1.add(clas);
//注册监听
b1.addActionListener(this);//给b1实例加一个监听器,当鼠标点击了这个b1时就触发了这个监听器
b2.addActionListener(this);
b3.addActionListener(this);
setVisible(true);//数据模型已经构造好了,允许JVM可以根据数据模型执行paint方法开始画图并显示到屏幕上了
使用super关键字
子类可以继承父类的非私有成员变量和成员方法(不是以private关键字修饰的)作为自己的成员变量和成员方法。但是,如果子类中声明的成员变量与父类的成员变量同名,则子类不能继承父类的成员变量,此时称子类的成员变量隐藏了父类的成员变量。如果子类中声明的成员方法与父类的成员方法同名,并且方法的返回值及参数个数和类型也相同,则子类不能继承父类的成员方法,此时称子类的成员方法重写了父类的成员方法。这时,如果想在子类中访问父类中被子类隐藏的成员方法或变量,就可以使用super关键字。
调用父类的构造方法:
子类可以调用由父类声明的构造方法。但是必须在子类的构造方法中使用super关键字来调用。语法格式如下:
super([参数列表]);
如果父类的构造方法中包含参数,则参数列表为必选项,用于指定父类构造方法的入口参数。
super调用和this调用很像,区别在于super调用的是其父类的构造方法,而this调用的是同一个类中重载的构造方法。因此,使用super调用父类构造也必须出现在子类构造执行体的第一行,所以this调用和super调用不会同时出现。
问题10:当运行程序后发现对信息进行录入的时候,录入汉字之后程序就会出现错误提示。如下图:
解决方法:
通过不懈努力之后发现是在建立数据库的时候在需要录入汉字的功能的字符集编码设置错误。
在数据库中对已经建好的表里需要录入汉字的主键进行编辑。如果在建表的时候没有注意这一细节,数据表将会将字符集编码默认设置成latin1,而你只需要将latin1改为utf8_general_ci。具体操作见下图:
点击你需要修改字符集编码的主键。比如我们程序中的Name、Sex、Major需要录入中文,所以我们就依次修改这三个主键,点击修改。
然后点击排序规则中的下拉键,选择utf8_general_ci,最后点击保存。
四、项目展望与改进
我们的项目还有很大的发展空间,但是由于我们的时间精力和能力有限,所以更新学生成绩管理系统的的重任只能落在学弟学妹们身上啦!你们应该也已经看到了我们项目的最初计划了,所以你们完全可以按照我们刚开始计划的那样,完后我们未了的心愿。在我们的第二篇博客中有详细的介绍和说明,这个程序可以加上多人操作功能,可以设置管理员操作窗口、教师操作窗口、学生操作窗口。
●管理员端
管理员可以进行的操作如下:
1、对学生信息进行增、删、改、查
2、对教师信息进行增、删、改、查
3、对课程信息进行增、删、改、查
4、查看个人信息并进行性修改
5、查看学生的成绩以及排名情况,其中在查看学生排名时,可以根据学生的所学课程和所在专业进行排名查询
教师可以进行的操作如下:
1、查看个人信息并修改登录密码
2、查看学生信息,其中包括对学生成绩进行查询与修改,在本系统中,将教师的成绩录入功能与成绩修改功能合并
3、查看学生的排名情况,包括学生的课程排名与专业排名
学生可以进行的操作如下:
1、修改个人登录系统的密码
2、查询自己成绩以及成绩排名情况,同时拥有通过学号查询其他人成绩的权利
另外,你们也可以将界面设计的温馨一点儿,而不是像我们现在这么官方,将相关的操作再完善一下,加油吧!骚年!我们相信你们可以长江后浪推前浪,将我们拍在沙滩上!哈哈哈哈!祝你们好运!!!
五、团队成员贡献与成绩分配
编辑程序(学生管理这一部分),查找相关资源,进行数据库的连接和建数据表,程序的改进和完善,博客的更新,1-5题的解决
编辑程序(学生查找这一部分),在数据库中建数据表,及其数据表的完善,程序界面和功能的改进和完善,博客的更新,6-10题的解决
编辑程序(成绩管理这一部分),在数据库中建数据表
阅读(...) 评论()

我要回帖

更多关于 将学生成绩从大到小排序的程序 的文章

 

随机推荐