1、 I 重庆科技学院 C 语言程序设计 课程设计报告 学 院 :_电气与信息工程学院 _ 专业 班级 : 自动化 2013-03 学生姓名 : 高跃跃 学 号 : 2013443321 设计地点(单位) _ 计算机基础自主学习中心 _ _ 设计题目 : 学 生成 绩 管理系 统 的 设计 与 实现 完成日期: 2014 年 09 月 25 日 指导 教师评语 : _ _ _ 成绩(五级记分制) :_ _ 指导教师(签字) :_ _ 重庆科技学院 C 语言课程设计课程设计报告 I 课程设计任务书 设计题目: 学 生成 绩 管理系 统 的 设计 与 实现 学生姓名 高跃跃 课程名称 C 语言课程设计
2、 专业班级 自动化 2013 地 点 计算机 基础 自主学习中心 起止时间 2014.9.9-2014.9.26 设计内容及要求 内 容 强化 C 语言中有关结构体数组及外部文件的内容,独立设计 学 生成 绩 管理系 统 ,并编程实现以下功能: 1、整 个 系 统 均用 C语 言 实现 ; 2、利用 结 构 体 数组来实现学 生成 绩 的 数 据 结 构 设计 ; 3、系 统 具有 输 入、 显 示、查 询 、 删 除、排序、插入 、 保存、 读 取等基本功能 ; 4、系 统 的各 个 功能模 块 都用函 数 的形式 来实现 ; 5、要求能 将学 生成 绩 信息保存在文件中; 6、要求能 从
3、文件中 读 取 学 生信息并 进 行相 关处 理。 设计参数 1、每一 条记录 包括一 个学 生的 学号 、姓名、 3门 成 绩 、平均成 绩 。 2、 输 入功能 : 进 入后可以 进 行多 条记录 的 输 入并保存。 3、 显 示功能 : 完成全部 学 生或 满 足指定 条 件 记录 的 显 示。 4、查找功能 : 完成按 学号 或姓名查找 学 生 记录 , 并 显 示。 5、排序功能 : 按 学 生 学号 或平均成 绩 进 行排序。 6、插入功能 : 按 学 生 学号 或平均成 绩 高低插入一 条学 生 记录 。 7、保存功能 : 将学 生 记录 保存在自定 义 名 称 的 文件 中。
4、8、 读 取功能 : 将 保存在文件中的 学 生 记录读 取出 来 。 9、有一个文本菜单来调用各个功能。 进度要求 1.布置设计题目,讲解要求和说明 2014.9.9 2.确定设计任务,确定具体的功能,熟悉相关知识 2014.9.9 3.按功能需求确定程序的主要模块 2014.9.10 4.编程实现程序的功能 2014.9.11 2014.9.15 5.调试并完善程序 2014.9.16 2014.9.22 6.撰写课程设计报告 2014.9.23 - 2014.9.24 7.提交课程设计报告并答辩 2014.9.25 其它 谭浩强, C 语言程序设计 (第三版 ),清华大学出版社, 200
5、5.2 说明 .本表应在每次实施前一周由负责教师填写二 份,院系审批后交院系办备案,一份由负责教师留用。 .若填写内容较多可另纸附后。 3.一题多名学生共享的,在设计内容、参数、要求等方面应有所区别。 重庆科技学院 C 语言课程设计课程设计报告 II 摘要 学生成绩管理系统是为了实现学校对学生成绩管理的系统化、规范化和自动化,从而提高学校管理效率而设计的。它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成学生成绩管理提供了强有力的工具和管理手段。学生成绩管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性
6、高,基 本满足了学生成绩管理的要求。 本系统是在以 Microsoft Visual C+ 6.0 作为后台来开发的。学生成绩管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了学生成绩管理计算机化。 关键词 : 成绩 管理系统 C语言 重庆科技学院 C 语言课程设计课程设计报告 目录 1.软件需求说明 . 1 1.1 程序的界面要求 . 1 1.2 程序的 功能 . 1 2.程序的分析与设计 . 1 2.1 程序的数据 结构分析 . 4 2.2 程序的算法设计 . 6 3.程序的实现 . 7 3.1 主函数 . 7 3.2 定义数据结构 . 8 4.程序 试用说明 . 10
7、 4.1 主页面 . 11 4.2 录入信息页面 . 18 5.总结 . 19 5.1 致谢 . 19 5.2 参考文献 . 19 重庆科技学院 C 语言课程设计课程设计报告 1 1. 软件需求说明 1.1 程序的界面 要求 整 个 系 统 均用 C语 言 实现 ; 利用 结 构体 数组来实现学 生成 绩 的 数 据 结 构 设计 ; 系 统 具有 输 入、 显 示、查 询 、 删 除、排序、插入 、 保存、 读 取等 基本功能 ; 系 统 的各 个 功能模 块 都用函 数 的形式 来实现 ; 要求能 将学 生成 绩 信息保存在文件中; 要求能 从 文件中 读 取 学 生信息并 进 行相 关处
8、 理。 1.2 程序的功能 每一 条记录 包括一 个学 生的 学号 、姓名、 3门 成 绩 、平均成 绩 。 输 入功能 : 进 入后可以 进 行多 条记录 的 输 入并保存。 显 示功能 : 完成全部 学 生或 满 足指定 条 件 记录 的 显 示。 查找功能 : 完成按 学号 或姓名查找 学 生 记录 , 并 显 示。 排序功能 : 按 学 生 学号 或平均成 绩进 行排序。 插入功能 : 按 学 生 学号 或平均成 绩 高低插入一 条学 生 记录 。 保存功能 : 将学 生 记录 保存在自定 义 名 称 的文件 中。 读 取功能 : 将 保存在文件中的 学 生 记录读 取出 来 。 有一
9、个文本菜单来调用各个功能。 2. 系统分析与设计 2.1 程序的数据(结构)分析 2.1.1 定义结构体 本程序需要定义多个结构体,用于存放学生的相关信息 重庆科技学院 C 语言课程设计课程设计报告 2 typedef struct CStudent char Name32; /* 学生姓名 */ int Sno; /* 学号 */ double dDataStruct; /* 数据结构成绩 */ double dMath; /* 数学成绩 */ double dEnglish; /* 英语成绩 */ double aver; /* 平均成绩 */ CStudent; 2.1.2 main()
10、 主函数 主函数功能比较简单,用 while 循环语句和 switch 多重选择语句来显示主界面和调用函数。在主函 数的前面要写必须的头文件,预定义语句以及全局变量的结构体。 2.1.3 del( )删除函数 在 C语言中无法做到删除和移动数据,所以删除记录要先将所有记录从文件中读出,删除后再将记录写回文件中。每读出一条记录,按其在文件中的顺序做好指针链接关系,然后查处要删除的学生信息,将其在链表中删除,最后再将变动的记录重新写回文件中。用指针, else/if 结构来实现查找出要删除的学生。 2.1.4 insert( )插入函数 在插入函数中利用指针 , while循环和 else/if
11、语句来实现输入的数据按照插入相 应的位置。 2.1.5 读取函数 利用指针、链表打开已经储存的信息。 void Read() /* 从文档读取 */ 重庆科技学院 C 语言课程设计课程设计报告 3 char p128 = “file.txt“; FILE *fp; if (fp=fopen(“file.txt“,“r“)=NULL) printf(“Open file %s error! Strike any key to exit!“,p); system(“pause“); exit(0); SavePos = 0; while(!feof(fp) fscanf(fp,“Name:%sn“
12、,exampleSavePos.Name); fscanf(fp,“Sno:%dn“, fscanf(fp,“Score(DS)%lfn“, fscanf(fp,“Score(M)%lfn“, fscanf(fp,“Score(E)%lfn“, fscanf(fp,“Score(Average)%lfn“, fscanf(fp,“*n“); SavePos+; fclose(fp); Display(); 2.1.6 save( )保存函数 主要利用指针来把信息保存在文件中 。 重庆科技学院 C 语言课程设计课程设计报告 4 void Save() /* 保存到文档 */ int j=0; c
13、onst char fname128 = “file.txt“; FILE* fp; /open file fp = fopen(fname, “w“); /write in file for(j=0;jSavePos;j+) /fprintf(fp,“This is the file.n“) fprintf(fp,“Name:%sn“,examplej.Name) ; fprintf(fp,“Sno:%dn“,examplej.Sno); fprintf(fp,“Score(DS)%fn“,examplej.dDataStruct) ; fprintf(fp,“Score(M)%fn“,ex
14、amplej.dMath) ; fprintf(fp,“Score(E)%fn“,examplej.dEnglish) ; fprintf(fp,“Score(Average)%fn“,examplej.dEnglish) ; fprintf(fp,“*n“); /close file fclose(fp); printf(“保存成功 n“); 重庆科技学院 C 语言课程设计课程设计报告 5 2.2 程序的算法设计 图 2.2 学生成绩管理系统功能模块图 2 1 按 9 按 0 图 2.2 输入模块 图 2.2 查询模块 学生成绩管理系统 输入信息 查询信息 修改信息 整理信息 输出信息 从 文件读入 从键盘输入 按姓名查询 按学号查询 插入学生信息 学生信息排序 删除学生信息 输出至屏幕 输出至文件 开始 输入数据 结束 开始 输入 i=j 按学号 输入 num 输出 数据 输入 name 重庆科技学院 C 语言课程设计课程设计报告 6 Y N 图 2.2 插入模块 开始 该学号已存在 输入学号 输入信息 保存并结束