1、 本科生课程论文封面本科生课程论文封面 课 程 名 称 计算机高级语言课程设计(C) 教 师 姓 名 本科生姓名 本科生学号 本科生专业 所 在 院 系 类 别 日 期 第 1 页 目目 录录 目 录 . 1 1. 题目要求 . 2 2. 需求分析 . 2 3.总体设计 2 3.1 功能模块划分及流程图 . 2 3.2 数据结构设计. 2 4.详细设计 3 4.1 主函数 3 4.2 各功能模块设计. 7 5.上机操作 . 15 5.1 数据源说明 . 15 5.2 编译、链接和运行 15 5.3 运行结果 . 16 6.总结 . 19 7.致谢 . 20 参考文献 . 20 第 2 页 1.
2、题目要求题目要求 某学期某班级学生成绩见文件“lecture_grade.txt” ,该学期课程的相关信息 见“lecture.txt” ,请根据上述两个文件编写代码实现如下功能: (1)统计该班级学生的学习科目数、总分、所修学分数、不及格科目数、不 及格学分; (2)计算各个学生的成绩绩点; 课程绩点计算方式课程绩点计算方式 (成绩/10.0 - 5) 学分绩点计算方式学分绩点计算方式 (课程绩点*该课程学分*该课程权重) / (课程学分) 2.2.需求分析需求分析 根据题目要求,由于学生成绩信息与学期课程相关信息存放于文件中,所以应 提供文件的读取,输出等操作;在程序中需要根据相应数据进行
3、计算,所以应提供 显示、查找、排序等操作;另外,还应提供键盘式的选择菜单来实现功能选择。 3.3.总体设计总体设计 3.13.1 功能模块划分及流程图功能模块划分及流程图 根据上面的需求分析,可以将该系统的设计分为大模块,即查询模块、浏览模 块、统计模块、排序模块、输出模块、退出模块。 3.23.2 数据结构设计数据结构设计 本系统的实现,全部采用链表这种数据结构,用链表实现课程的查询、浏览、 统计、学生成绩信息、挂科情况、以及绩点排序输出,读入的课程信息、读入的学 生成绩信息、学生信息统计采用的是结构体这种数据结构。 学生课程成绩查询系统 查询 浏览 统计 排序 输出 退出 第 3 页 st
4、ruct student /读入学生成绩信息结构体 char sno11; /学号 char name10; /姓名 int gLEC_SIZE; /所选课程 stuSTU_SIZE; struct lecture /读入课程信息结构体 char lname30; /课程名称 float credit; /学分 char type5; /课程类型 lecLEC_SIZE; struct stu_grade /学生信息统计结构体 char sno11; /学号 char name10; /姓名 int number; /课程数目 int sum; /总分 float credit; /学分 in
5、t fail; /挂科科目 float failc; /挂科学分 float gpa; /绩点 stugSTU_SIZE; 4.4.详细设计详细设计 4 4. .1 1 主函数主函数 【主函数流程图主函数流程图】 开始开始 读取学生课程文件读取学生课程文件 读取文件读取文件 读取课程信息文件读取课程信息文件 信息统计信息统计 结束结束 第 4 页 【程序程序】 void main() int i = 0,j = 0; FILE *fp1,*fp2; char file50; int flag = 1; for(i = 0;i =60 输出相应数据到程序界面 返回主菜单 结束 Y N 第 13 页 【程序】【程序】 void count() int i = 0; int j = 0; printf(“统计学生成绩信息完毕,请进行相关查询n“); for(i = 0;i =60) gpasum += (stui.gj/10.0 - 5) * creditj * quanzhongj;/学分 绩点计算 if(stui.gj60) gpasum = 0; stugi.number=d;/科目数 stugi.fail = f; /挂科数 st