java计算文件里的总分,从文件中读取各学生的成绩,并计算所有学生成绩平均值、最大值、最小值,总分...

package cn.edu.njitt4;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

public class Test_mark {

/*从文件中读取各学生的成绩,并计算所有学生成绩平均值、最大值、最小值,总分

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

double avg=0;//平均值

double sum=0;//总分

double tmp=0;//中间变量

double max=0;//最大值

double min=100;//最小值

int linenumber=0;

try {

BufferedReader bReader=new BufferedReader(new FileReader("mark.txt"));

String line;

while((line=bReader.readLine())!=null){

linenumber++;

tmp=Double.parseDouble(bReader.readLine());

//System.out.println(tmp);

//System.out.println(line);

sum=sum+tmp;

if(tmp

min=tmp;

}

if(tmp>max){

max=tmp;

}

}

avg=sum/(linenumber/2);

System.out.print("学生的平均成绩是:"+avg+"\n最大值为:"+max+"\n最小值为:"+min+"\n总分为:"+sum);

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

37f02554599e7c2db22d265ea6c09ef9.png

您可以使用标准C库文件操作函数来读取文件内容,并使用数据库API将读取的内容写入数据库。具体实现取决于您使用的数据库和文件格式。以下是一个基本的示例: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sqlite3.h> // SQLite3 数据库API #define MAX_LINE_LENGTH 256 // 文件每行最大长度 int main(int argc, char* argv[]) { // 打开文件 FILE* fp = fopen("data.txt", "r"); if (!fp) { printf("Failed to open file!\n"); exit(1); } // 打开数据库(使用 SQLite3) sqlite3* db; int rc = sqlite3_open("database.db", &db); if (rc != SQLITE_OK) { printf("Failed to open database: %s\n", sqlite3_errmsg(db)); exit(1); } // 创建数据表 char* sql = "CREATE TABLE IF NOT EXISTS data (id INTEGER PRIMARY KEY, content TEXT);"; rc = sqlite3_exec(db, sql, NULL, NULL, NULL); if (rc != SQLITE_OK) { printf("Failed to create table: %s\n", sqlite3_errmsg(db)); exit(1); } // 逐行读取文件并插入数据库 char line[MAX_LINE_LENGTH]; int id = 0; while (fgets(line, MAX_LINE_LENGTH, fp)) { // 去掉行末的换行符 int len = strlen(line); if (line[len - 1] == '\n') { line[len - 1] = '\0'; } // 构造插入语句并执行 char* stmt = sqlite3_mprintf("INSERT INTO data (id, content) VALUES (%d, '%q')", id++, line); rc = sqlite3_exec(db, stmt, NULL, NULL, NULL); if (rc != SQLITE_OK) { printf("Failed to insert data: %s\n", sqlite3_errmsg(db)); exit(1); } sqlite3_free(stmt); } // 关闭文件和数据库 fclose(fp); sqlite3_close(db); return 0; } ``` 上述代码使用标准C库的 `fopen` 函数打开文件,然后逐行读取文件内容,使用 SQLite3 数据库API将每行内容插入到名为 `data` 的数据表。您可以根据需要修改表名和列名等参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值