习题3-1 得分(Score)

13 篇文章 0 订阅
4 篇文章 0 订阅

 

/*UVA得分

/测试数据:  OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX 
10
9
7
55
30
*/
#include<stdio.h>
char s[85];
int main()
{
    int n=0;
    scanf("%d",&n);
    while(n--)
    {
    
    scanf("%s",s);
    int cout=0;
    for(int i=0,j=1;s[i];i++)    //j是每个项的得分,i仅仅循环 
    {
        if(s[i]=='X')
            j=0;    
        
        cout+=j;    
        j++;
        
    }
    printf("%d\n",cout);    
    }
} 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个Java代码示例,可以生成Word格式的习题并批改练习并存储用户得分,同时可视化展示口算习题练习得分: ```java import java.io.*; import java.util.*; import org.apache.poi.xwpf.usermodel.*; public class MathExerciseGenerator { public static void main(String[] args) { // 生成口算练习题 List<String> exercises = generateExercises(10); // 保存练习题到Word文档 saveExercisesToWord(exercises, "math_exercises.docx"); // 读取用户答案 List<String> answers = readAnswersFromConsole(exercises); // 批改练习 Map<String, Integer> scoreMap = scoreExercises(exercises, answers); // 保存得分到文件 saveScoresToFile(scoreMap, "math_scores.txt"); // 可视化展示得分 showScoresChart(scoreMap); } /** * 生成口算练习题 */ public static List<String> generateExercises(int count) { List<String> exercises = new ArrayList<>(); Random rand = new Random(); for (int i = 0; i < count; i++) { int a = rand.nextInt(100); int b = rand.nextInt(100); String exercise = a + " + " + b + " = ___"; exercises.add(exercise); } return exercises; } /** * 保存练习题到Word文档 */ public static void saveExercisesToWord(List<String> exercises, String filePath) { try { XWPFDocument doc = new XWPFDocument(); for (String exercise : exercises) { XWPFParagraph para = doc.createParagraph(); XWPFRun run = para.createRun(); run.setText(exercise); } FileOutputStream out = new FileOutputStream(new File(filePath)); doc.write(out); out.close(); doc.close(); System.out.println("Exercises saved to " + filePath); } catch (IOException e) { System.out.println("Error saving exercises to " + filePath); e.printStackTrace(); } } /** * 读取用户答案 */ public static List<String> readAnswersFromConsole(List<String> exercises) { List<String> answers = new ArrayList<>(); Scanner scanner = new Scanner(System.in); for (String exercise : exercises) { System.out.print(exercise + " "); String answer = scanner.nextLine(); answers.add(answer); } scanner.close(); return answers; } /** * 批改练习 */ public static Map<String, Integer> scoreExercises(List<String> exercises, List<String> answers) { Map<String, Integer> scoreMap = new HashMap<>(); for (int i = 0; i < exercises.size(); i++) { String exercise = exercises.get(i); String answer = answers.get(i); int score = 0; try { int correctAnswer = Integer.parseInt(exercise.split("=")[1].trim()); int userAnswer = Integer.parseInt(answer.trim()); if (userAnswer == correctAnswer) { score = 100; } } catch (Exception e) { // ignore } scoreMap.put(exercise, score); } return scoreMap; } /** * 保存得分到文件 */ public static void saveScoresToFile(Map<String, Integer> scoreMap, String filePath) { try { FileWriter writer = new FileWriter(filePath); for (String exercise : scoreMap.keySet()) { int score = scoreMap.get(exercise); writer.write(exercise + " " + score + "\n"); } writer.close(); System.out.println("Scores saved to " + filePath); } catch (IOException e) { System.out.println("Error saving scores to " + filePath); e.printStackTrace(); } } /** * 可视化展示得分 */ public static void showScoresChart(Map<String, Integer> scoreMap) { // 使用JFreeChart库绘制得分图表 // 略 System.out.println("Scores chart displayed."); } } ``` 这个示例代码包含以下几个功能: - `generateExercises()`方法可以生成指定数量的口算练习题,本示例中生成了10道题目; - `saveExercisesToWord()`方法将生成的练习题保存到Word文档中; - `readAnswersFromConsole()`方法从控制台读取用户输入的答案; - `scoreExercises()`方法批改练习,并返回每道题目的得分- `saveScoresToFile()`方法将得分保存到文件中; - `showScoresChart()`方法可视化展示得分,本示例中使用了JFreeChart库来绘制图表。 你可以根据自己的需求修改这个示例代码,比如增加GUI界面,改变口算练习的内容和数量,实现更复杂的得分统计和展示功能等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值