数据结构课程设计统计成绩.docx
《数据结构课程设计统计成绩.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计统计成绩.docx(10页珍藏版)》请在冰豆网上搜索。
![数据结构课程设计统计成绩.docx](https://file1.bdocx.com/fileroot1/2023-2/10/2fd42b62-3cfc-4180-82b9-ebfb41a50734/2fd42b62-3cfc-4180-82b9-ebfb41a507341.gif)
数据结构课程设计统计成绩
课程设计说明书规范
一、课程设计说明书规范课程设计说明书是课程设计主要成果之一,对于设计类,应包括图纸、程序、实物成果等。
1.说明书基本格式
说明书可以手写或打印,书写要用黑或蓝黑墨水,书写工整;打印时正文采用5号宋体,A4纸,页边距均为20mm,行间距采用18磅。
文中标题采用宋体加粗。
2.说明书结构及要求
(1)封面(见附录三)包括:
题目、系别、班级、完成日期、成绩及指导教师(签字)、学生姓名等项。
(2)课程设计任务书(格式见附录四)
(3)目录
要求层次清晰,给出标题及页次。
最后一项为“参考资料”。
打印时各章题序及标题用小4号黑体,其余用小4号宋体。
(4)正文正文应按照目录所确定的顺序依次撰写,要求计算准确,论述清楚、简练、通顺,插图清晰整洁。
文中图、标及公式应规范地绘制和书写。
(5)参考资料参考资料按下述顺序和格式书写:
[1]毛昶熙,周名德等.闸坝工程水力学与设计管理.北京:
水利电力出版社
如参考网上资料,请写明网址。
二、正文内容参考
详见末页
数据结构课程设计
设计说明书
统计成绩
起止日期:
2011年12月_12_日至2011年12月16日
指导教师(签字)
电子与信息工程系
2011年12月16日
天津城市建设学院
课程设计任务书
2011—2012学年第1学期
电子与信息工程系软件工程专业班级
课程设计名称:
数据结构课程设计
设计题目:
统计成绩
完成期限:
自2011年12月J2_日至2011年12月16日共1周设计依据、要求及主要内容(可另加附页):
一、设计目的
熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。
二、设计要求
(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;
(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。
凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩;
(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;
(4)认真编写课程设计报告。
三、设计内容
统计成绩
1)问题描述
给出n个学生的m门考试的成绩表,每个学生的信息由学号、姓名以及各科成绩组成。
对学生的考试成绩进行有关统计,并打印统计表。
2)基本要求
(1)按总数高低次序,打印出名次表,分数相同的为同一名次;
(2)按名次打印出每个学生的学号、姓名、总分以及各科成绩。
3)测试数据
由学生依据软件工程的测试技术自己确定。
注意测试边界数据。
4)选作内容
对各科成绩设置不同的权值。
四、参考文献
1•王红梅•数据结构•清华大学出版社
2•王红梅•数据结构学习辅导与实验指导•清华大学出版社
3•严蔚敏,吴伟民•数据结构(C语言版)•清华大学出版社
一、需求分析
(1)程序的功能:
需要通过输入学生的各科成绩,通过计算得出每个学生的总成绩,然后通过对总成绩进行排序,然后根据总成绩的排序进行学生名次的排列,但是相同成绩的学生的名次相同。
本设计用于实现各种学生管理系统。
(2)输入输出的要求:
1.在弹出的相应的对话框中输入相应的信息。
在学生姓名栏中输入学生的姓名,学号,以及学生的各科考试成绩。
嶽人
2.第一个窗口输出所有输入学生的各科成绩以及总成绩,并按照总成绩排序输出。
第二个窗口输出学生按成绩排序的名次,成绩相同的名次相同。
(3)测试数据:
输入4组学生的信息:
然后进行测试。
二、问题求解
进行排序的整体包括学生的姓名,学号,总成绩,名次。
相对应的学生的成绩必须有相对
应的总成绩,排序以后总成绩得出从大到小的结果,同时名字、学号等信息都要对应其总成绩。
可以通过结构体的思想将学生的信息构造在结构体中,这样对应的名字就对应其排序后的成绩。
问题模型:
三个人参加面试,张三手中的号码是110,李四手里的号码牌是132,王武手中的号
码牌是135.此时面试官要求他们由大倒小站位,具体情况如图:
张三
h-
110
李四
132
■
王武
135
姓名指向成
绩
王武
135
李四
卷132
张三
110
指定的人对应指疋的成绩
姓名,成绩看成是一个整体的数据,输入的数据有对应的数据存储位置,然后在数据排序得出以后,其他相关联的数据也不会改变就好像现实过程中应聘的人拿着号码牌进行排队,当面试者需要号码按大到小时,人们就会根据自己手中的号码牌进行排队,但是每个人手里面的号码还是自己的,位置变了,但是属性没有变,人和号码是一个整体人只是随着号码的的顺序进行站位,最终手里面拿着135的还是王武,拿着132的还是李四,拿着110的还是张三。
二、总体设计
六、关键源程序清单和执行结果
importjavax.swing.JOptionPane;
importcom.sun.xml.internal.bind.v2.runtime.Name;
importcom.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader.Array;publicclassTranscript{
publicstaticvoidmain(String[]args){
请输入学生的总人数
//提示用户输入学生总人数并接收该人数值
intStuNum=Integer.parseInt(JOptionPane.showInputDialog(null,"
"));
//定义数组接收学生姓名和成绩
String[]ArrayName=newString[StuNum];
//定义语文成绩
int[]ArrayGrade=newint[StuNum];
//定义数学成绩
int[]ArrayGrade1=newint[StuNum];
//定义英语成绩
int[]ArrayGrade2=newint[StuNum];
//定义总成绩
int[]SumGrade=newint[StuNum];
//定义名次
int[]Sort=newint[StuNum];
//定义学号
int[]ID=newint[StuNum];
//提示用户输入学生姓名并接收
for(inti=0;i请输入第"+(i+1)+"个学
StringstudentsName=JOptionPane.showInputDialog(null,"生的姓名");
ArrayName[i]=studentsName;
}for(inti=0;i请输入"+
请输入"+
请输入"+
请输入"+
intid=Integer.parseInt(JOptionPane.showInputDialog(null,"ArrayName[i]+"的学号"));
ID[i]=id;
}
//提示用户输入学生各科成绩for(intj=0;jArrayName[j]+"语文的成绩"));ArrayGrade[j]=grade;
intgrade1=Integer.parseInt(JOptionPane.showInputDialog(null,"ArrayName[j]+"数学的成绩"));
ArrayGrade1[j]=grade1;
intgrade2=Integer.parseInt(JOptionPane.showInputDialog(null,"ArrayName[j]+"英语的成绩"));
ArrayGrade2[j]=grade2;
//计算总成绩
SumGrade[j]=ArrayGrade[j]+ArrayGrade1[j]+ArrayGrade2[j];
}
//把学生总成绩从大到小排列(冒泡排序)inttemp=0;
for(inti=0;iSumGrade[j+1]){
temp=SumGrade[j];
SumGrade[j]=SumGrade[j+1];SumGrade[j+1]=temp;
}
}
}
//定义一个输出各科成绩的窗口
Stringoutput1="";
//定义一个输出名次的窗口
Stringoutput2="";for(inta=StuNum-1;a>=0;a--){
output1+="学号:
"+ID[a]+","+"姓名:
"+ArrayName[a]+","+"语文成绩:
"+ArrayGrade[a]+","+"数学成绩:
"+ArrayGrade1[a]
+","+"英语成绩:
"+ArrayGrade2[a]+","+"总成绩:
"+SumGrade[a]+"\n";
//output2+=ArrayName[a]+""+"数学成绩"+ArrayGrade1[a]+"\n";
//output2+=ArrayName[a]+""+"英语成绩"+ArrayGrade2[a]+"\n";
}
JOptionPane.showMessageDialog(null,""+output1);
//将第一名保存为1
Sort[0]=1;
//定义变量p来保存Sort[]
intp=1;
//定义变量sum来保存第一名成绩
intsum=SumGrade[0];
for(inti=0;i{
if(sum==SumGrade[i])
{
Sort[i]=p;
sum=SumGrade[i];
}
else{
p++;
Sort[i]=p;
sum=SumGrade[i];
}
}
//输出
for(intb=StuNum-1;b>=0;b--){
output2+="名次:
"+(Sort[0]++)+","+"学号:
"+ID[b]+","+"姓名:
"+ArrayName[b]+","+"总成绩:
"+SumGrade[b]+"\n";
}
JOptionPane.showMessageDialog(null,""+output2);
}
}
输入:
01小明语文成绩:
120;数学成绩:
125;
英语成绩:
130;
02
小华
语文成绩:
125;数学成绩:
100;
英语成绩:
142;
04
小刚
语文成绩:
128;数学成绩:
120;
英语成绩:
150;
07
小红
语文成绩:
125;数学成绩:
142;
英语成绩:
110;
容炭曲,学号:
了,姓名:
小红,总成缢:
39B名次:
2•学号:
时.姓名:
小冈]■总成耀,37?
名炎:
d,学是;2,姓名:
小华-总成禁:
375名次皿,学号J,姓名:
小朋,总成绩:
367
io