1. excel:如何根据条件生成学号高分急求!!!
第一行标题,A学校名称,B年级
,C班级,D姓名,E学号
为了自动生成编号,需要建立辅助的对照表:
在G:H列建立辅助列:G列学校名,H列编号(1-2位数字)
在J:K列建立辅助列:J列年级,K列编号(2位数字)
在M:N列建立辅助列:M列班级,N列编号(2位数字)
****这是为了说明问题,也可以在不同的工作表中分别建立三个索引表
E2公式如下
=VLOOKUP(B2,J:K,2,0)&"07"&TEXT(VLOOKUP(A2,G:H,2,0),"00")&"?"&VLOOKUP(C2,M:N,2,0)&TEXT(ROW(1:1),"00")
下拉填充
****题目中说“第一二位:由年级而定”“第七位:年级”是不是搞错了,我先用问号代替了。
这个表可以做的更规范,ABC列都可以用下拉条来选择。
图太大就不传了,如果需要给你EXCEL文件
2. 程序每次运行输出随机的学号和姓名 运用c语言
这种类数据多采用学号作为关键字,那么可以采用随机数函数rand();来产生一个随机信号。
rand()%M+N;(M为学生数目,N为最小学号数),即可产生一个随机学号,根据学号检索姓名就可以了。
rand的调用要初始化,调用之前先执行srand();这两个函数的头文件为#include<stdlib.h>
#include<stdio.h>
#include<stdlib.h>
voidmain()
{
intb;
srand(34);//34为种子数,可以为任意值
b=rand()%M+N;
}
3. java读取文件内容并计算后格式输出!
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class TestFile {
private static File file = new File("student");
/**
* 从文件student读入学生成绩,文件格式为
*
* 000 XXX 100 100 100
*
*/
public static void read() throws Exception {
List<Student> stus = new ArrayList<Student>();
// 读文件操作
BufferedReader fr = new BufferedReader(new FileReader(file));
String line = null;
// 读取每一行,如果结束了,line会为空
while ((line = fr.readLine()) != null && line.trim().length() > 0) {
// 每一行创建一个Student对象,并存入数组中
stus.add(new Student(line));
}
fr.close();
// 排序这个List
Collections.sort(stus);
// 依次打印每个学生
for (Student stu : stus) {
System.out.println(stu);
}
}
/**
*
* 赠送的方法
*
* 随机生成文件,length代表要生成几个学生
*
* lenth必须小于1000,未做判断
*
* @param length
*/
public static void randomFile(int length) throws IOException {
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file);
StringBuffer sb = new StringBuffer();
Random rd = new Random();
for (int i = 0; i < length; i++) {
// 清空StringBuffer
sb.delete(0, sb.length());
if (i < 10) {
sb.append("00");
} else if (i < 100) {
sb.append("0");
}
sb.append(i + " ");
sb.append("name" + i + " ");
sb.append(rd.nextInt(100) + " ");
sb.append(rd.nextInt(100) + " ");
sb.append(rd.nextInt(100) + "\r\n");
fw.write(sb.toString());
}
fw.close();
}
public static void main(String[] args) throws Exception {
read();
}
/**
* 定义一个学生类,简单定义一个成员为String数组,依次代表
*
* 学号 姓名 课程1 课程2 课程3
*
* 实现Comparable接口,是为了排序所用
*
*/
private static class Student implements Comparable<Student> {
private String[] str;
public Student(String line) {
// 这里应该进行错误判断
// 比如成绩是否是整型等
str = line.trim().split(" ");
}
// 获取学生平均成绩
public double getAve() {
double c1 = Double.parseDouble(str[2]);
double c2 = Double.parseDouble(str[3]);
double c3 = Double.parseDouble(str[4]);
return (c1 + c2 + c3) / 3;
}
// 实现该方法,如果小于返回-1,大于返回1,相等返回0
public int compareTo(Student o) {
if (this.getAve() > o.getAve()) {
return 1;
} else if (this.getAve() < o.getAve()) {
return -1;
} else {
return 0;
}
}
// 重写toString方法,用于打印
public String toString() {
return str[0] + "\t" + str[1] + "\t" + this.getAve();
}
}
}
4. C语言,使用rand()函数,编写程序,随机输出同学们的姓名和学号,在线等。。。。。
#include<stdio.h>
#include<stdlib.h>
intmain()
{
FILE*fp;
charname[15];
charnum[15];
charch;
intn=0,m;
unsignedintbb;
fp=fopen("student.txt","r");
while(!feof(fp))
{
ch=fgetc(fp);
if(ch==' ')n++;
}//统计人数
fclose(fp);
bb=time(0);
srand(bb);
m=rand()%n+1;
n=0;
fp=NULL;
fp=fopen("student.txt","r");
while(!feof(fp)&&n<m)
{
n++;
fscanf(fp,"%s%s",name,&num);
}
printf("随机抽取:%s%s ",name,num);
fclose(fp);
system("pause");
}