问题 | 内容 |
---|---|
这个作业属于哪个课程 | 班级的链接 |
这个作业要求在哪里 | 作业要求的链接 |
这个作业的目标 | 实现一个自动生成小学四则运算题目的命令行程序 |
姓名 | 朱江 |
---|---|
学号 | 3123004770 |
GitHub仓库文件夹链接 | 第一次编程作业链接 |
姓名 | 杨思程 |
---|---|
学号 | 3123004761 |
GitHub仓库文件夹链接 | 第一次编程作业链接 |
PSP表格
PSP阶段 | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|
· 计划 (Planning) | 10 | 10 |
· 估计任务时间 (Estimate) | 10 | 10 |
· 开发 (Development) | ||
· 需求分析 (Analysis) | 20 | 20 |
· 生成设计文档 (Design Spec) | 30 | 20 |
· 设计复审 (Design Review) | 10 | 10 |
· 代码规范 (Coding Standard) | 10 | 10 |
· 具体设计 (Design) | 60 | 60 |
· 具体编码 (Coding) | 200 | 80 |
· 代码复审 (Code Review) | 30 | 50 |
· 测试(包括修改) (Test) | 30 | 50 |
· 报告 (Reporting) | ||
· 测试报告 (Test Report) | 20 | 30 |
· 计算工作量 (Size Measurement) | 10 | 10 |
· 事后总结与改进 (Postmortem) | 10 | 30 |
· 总计 (Total) | 450 | 390 |
效能分析
设计实现过程
- 核心模块:题目生成,表达式计算,文件读写,评分系统
项目接口函数
std::string generateExpression(int range);// 生成表达式
std::string calculateExpression(const std::string& expression);// 计算表达式的值
void generateQuestions(int numQuestions, int range, const std::string& questionFile, const std::string& answerFile);// 生成题目
void gradeAnswers(const std::string& questionFile, const std::string& answerFile, const std::string& gradeFile);// 生成答案
int getRandomNumber(int min, int max);// 生成随机数
char getRandomOperator();// 生成随机运算符
std::string getRandomNumberOrFraction(int range); // 生成随机自然数或真分数
测试运行
项目小结
在本次编程项目中,我们两人合作完成了一个简单的四则运算出题系统。通过这次合作,我们不仅巩固了C语言的基础知识,如结构体、指针、文件操作等,还提升了团队协作和问题解决的能力。
在项目初期,我们进行了详细的需求分析和任务分配,确保每个人都能明确自己的职责。开发过程中,我们通过定期沟通和代码审查,及时解决了遇到的问题,如内存管理错误和文件读写异常等。最终,项目按时完成,功能运行稳定,达到了预期目标。
通过这次项目,我们深刻体会到编程中细节的重要性,同时也认识到团队合作和沟通在项目开发中的关键作用。未来我们会继续优化代码结构,提升程序的健壮性和可扩展性。