学生成绩管理系统61325_第1页
学生成绩管理系统61325_第2页
学生成绩管理系统61325_第3页
学生成绩管理系统61325_第4页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河北科技大学课程设计报告学生姓名:孟江曼 学号: 080705110专业班级:软件 081 班课程名称:数据结构课程设计设计题目:学生成绩管理系统学年学期: 2010-2011 学年第二学期指导教师:郑广2011 年 6 月 目录 TOC o 1-5 h z HYPERLINK l bookmark2 o Current Document 一需求分析说明 2 HYPERLINK l bookmark4 o Current Document 1主函数模块功能描述 2 HYPERLINK l bookmark6 o Current Document 2文件合并模块功能描述 2 HYPERLINK

2、l bookmark8 o Current Document 3补考学生查找模块功能描述 2 HYPERLINK l bookmark10 o Current Document 4排序模块功能描述 2 HYPERLINK l bookmark12 o Current Document 5查找模块功能描述 3 HYPERLINK l bookmark14 o Current Document 推出模块功能描述 3 HYPERLINK l bookmark16 o Current Document 二.概要设计说明 3 HYPERLINK l bookmark18 o Current Docume

3、nt 模块调用图: 3 HYPERLINK l bookmark20 o Current Document 三详细设计说明 4 HYPERLINK l bookmark22 o Current Document 主函数模块 4 HYPERLINK l bookmark24 o Current Document 文件合并模块 4 HYPERLINK l bookmark26 o Current Document 学生信息查找模块 5 HYPERLINK l bookmark28 o Current Document 补考学生查找模块 8 HYPERLINK l bookmark30 o Curr

4、ent Document 排序模块 9 HYPERLINK l bookmark32 o Current Document 退出模块 9 HYPERLINK l bookmark34 o Current Document 四调试分析 10 HYPERLINK l bookmark38 o Current Document 五用户使用说明 10 HYPERLINK l bookmark40 o Current Document 六课程设计总结 11 HYPERLINK l bookmark42 o Current Document 七测试结果 12 HYPERLINK l bookmark44

5、o Current Document 八参考书目 12一需求分析说明本系统实现了学生成绩管理系统所需的相关功能,其中的功能主要分为五项:试编写一管理系统,要求如下 :1)实现对两个文件数据进行合并,生成新文件3.txt2)抽取出三科成绩中有补考的学生并保存在一个新文件4.txt3)对合并后的文件3.txt 中的数据按总分降序排序(至少采用两种排序方法实现 )4)输入一个学生姓名后,能查找到此学生的信息并输出结果5)要求使用结构体,链或数组等实现上述要求.以下是各功能模块的功能描述:主函数模块功能描述本模块的主要功能是初始化图形界面, 进入主菜单, 调用各模块, 实现软件 功能。文件合并模块功能

6、描述本模块的主要功能是实现对两个文件数据1.txt 、 2.txt 进行合并 , 生成新文件 3.txt补考学生查找模块功能描述本模块的主要功能是通过对于查找数据中的各科成绩来判断该学生是否需要补考,如果需要补考则将其信息写入另外一个文件。排序模块功能描述本模块的主要功能是实现对合并后的数据3.txt 的内容按总分进行降序排序, 系统采用的排序方式有快速排序和选择排序。 根据用户的选择, 进行不同排序方式的选择。.查找模块功能描述该模块的功能是当用户输入学生信息以后, 可以根据用户需要按姓名进行不 同方式的查找。第一种是在文件 3.txt中查找;第二种是在结构体中查找。.推由模块功能描述调用e

7、xit函数,退出系统。二.概要设计说明模块调用图:void Unitedfile() 合并 1.txt 和 2.txt 为 3.txtvoid findout()/抽取出三科成绩中有补考的学生并保存在一个新文件4.txt3.void sortfile()/提供两种排序方法4.void xuanze() /对合并后的文件3.txt中的数据按总分降序排序void QSort(int low,int high)/ 快速排序void kuaisu()/ 读取文件,快速排序,将结果写入 3.txtvoid findoutstudent()/ 提供两种查找方法void derectfindoutstude

8、nt()/ 输入一个学生姓名 , 查找到此学生的信 息并输出结果void autofindoutstudent()/ 从结构体数组中查找exit()/ 退出三详细设计说明主函数模块调用各功能模块,实现文件合并、查找学生信息、排序等功能。文件合并模块实现对两个文件数据进行合并, 生成新文件3.txt 。调用函数Unitedfile()来实现, 函数以读的方式打开1.txt 文件, 以写的方式打开3.txt 文件, 从 1.txt读入一个数据并写入 3.txt 文件,直到遇到 1.txt 文件结束。关闭 1.txt 文件, 再以读的方式打开2.txt 文件,用上述方式直到遇到 2.txt 文件结束

9、。关闭2.txt,3.txt 文件。实现对于文件的合并。void Unitedfile()/ 合并 1.txt 和 2.txt 为 3.txtFILE *fp,*p;Student studd;fp=fopen(1.txt,r);/ 以读的方式打开1.txtp=fopen(3.txt,w);/ 以写的方式打开3.txtwhile(fscanf(fp,%s%s%d%d%d,,studd.id,&studd.chines e,&studd.math,&studd.english )!=EOF)fprintf(p,%-6s %-6s %-6d %-6d %-6dn,studd.n

10、ame,studd.id,studd.chinese,studd.math,studd.english );/ 读取 1.txt 的数据进入结构体中,写入3.txt ,继续读取直结束fclose(fp);/ 关闭文件 1.txtfp=fopen(2.txt,r);/ 以写的方式打开2.txtwhile(fscanf(fp,%s%s%d%d%d,,studd.id,&studd.chines e,&studd.math,&studd.english )!=EOF)fprintf(p,%-6s %-6s %-6d %-6d %-6dn,,studd.id,s

11、t udd.chinese,studd.math,studd.english );fclose(fp);fclose(p);3 学生信息查找模块输入一个学生姓名后, 能查找到此学生的信息并输出结果。调用函数findoutstudent() 来实现。函数也提供了两种查找方法,通过调用函数derectfindoutstudent()实现从文件从3.txt 中逐个读入数据,再进行查找判断,如果找到所需要的数据,则查找结束,否则继续查找直至文件结束。autofindoutstudent() 在进行第三步的过程中, 已经把 3.txt 中的学生数据读入了结构体数组当中, 调用函数 autofindout

12、student() 直接从结构体中进行查找。void derectfindoutstudent()/ 输入一个学生姓名 , 查找到此学生的信息并输出结果char NAME30;int flag=0;FILE *fp;fp=fopen(3.txt,r);cinNAME;while(fscanf(fp,%s%s%d%d%d%d,,stud1.id,&stud1.chinese,&stud1.math,&stud1.english,&stud1.sum )!=EOF)if(strcmp(,NAME)=0)flag=1;cout 姓名 学号 语文 数学 英语 总

13、分 endl;cout stud1.id;coutstud1.chinese stud1.mathstud1.english stud1.sumendl;break;if(flag=0)cout 无此学生相关信息 Name;for(k=1;k=n;k+)if(strcmp(,Name)=0)flag=1;cout 姓名 学号 语文 数学endl; 英语 总分 cout studk.id;coutstudk.chinese studk.mathstudk.english studk.sumendl;break;if(flag=0)co

14、ut 无此学生相关信息 endl;void findoutstudent()/ 提供两种查找方法char c;cout 请选择查找方法endl;cout1. 从文件 3 中直接查找endl;cout2. 在运行第三步的基础上查找c;cout 请输入学生姓名 :;if(sign1=0&c=2)cout 请执行操作3 后再执行此项操作!endl;return;switch(c)case1:derectfindoutstudent();/ 从文件 3 中直接查找break;case2: autofindoutstudent();/ 从结构体数据中直接查找 break; 4 补考学生查找模块抽取出三科

15、成绩中有补考的学生并保存在一个新文件 4.txt 。调用函数findout() 来实现。函数以读的方式打开3.txt 文件,以写的方式打开4.txt 文件。 读入 3.txt 文件的一个数据到结构体studd 中, 判断学生信息中语、 数和英语中是否具有不及格的, 如果有, 则将数据写入 4.txt 中, 直至遇到 3.txt 文件 结束。 void findout()/ 抽取出三科成绩中有补考的学生并保存在一个新文件4.txtFILE *fp,*p;Student studd;fp=fopen(3.txt,r);p=fopen(4.txt,w);/ 从 3.txt 中读入学生数据进结构体,判

16、断是否有不及格的课程,如果有,则写入文件4.txt 中while(fscanf(fp,%s%s%d%d%d,,studd.id,&studd.chinese,&studd.math,&studd.english )!=EOF)if(studd.chinese60|studd.english60|studd.math60) fprintf(p,%-6s %-6s %-6d %-6d %-6dn,,studd.id,st udd.chinese,studd.math,studd.english );fclose(fp);fclose(p);排序模块对合并后的

17、文件3.txt 中的数据按总分降序排序。调用函数sortfile() 来实现。函数提供了两种排序方法,通过调用函数kuaisu() 来实现快速排序,通过调用函数xuanze() 来实现选择排序。void sortfile()/ 提供两种排序方法char c;cout 请选择排序方法: endl;cout1. 选择排序endl;cout2. 快速排序c;switch(c)case1:xuanze();/ 选择排序break;case2:kuaisu();/ 快速排序break;退出模块通过调用函数exit() 退出。四.调试分析我遇到的问题:.在实现文件合并功能时,出现错误信息:出现以上情况的原

18、因1.txt和2.txt建立位置不正确,应和程序在同一根目录下。c *D:pebug2.eKe并罢口入出合抽退XC中3.名 一 /绩或 一舱成文生 tx三后个 L出并一为有txxt查ITL 班 管 主儿存胃. REJIL 分唁 F1文J-序并寺 士口 4-Microsoft Visual! C+ Debug LibraryDebug Assertion Fated!Program: D:iDebjgUiexeFie i fscanf .cLines 54Expression: stream != NULLFor informaticn or how your program can cause

19、 an assenion failure, see the Vfcual C+ documentation on asserts.(Press Retry to debug the application)匚鳖止!重试 虎嘴M I搜狗拼音.在文件合并功能的实现过程中,我还遇到了不熟悉文本文件读取、写入的困难。主要原因是函数使用不熟悉。fprintf ()传送格式化输入到一个流中;fscanf ()从一个流中执行格式化输入。.还有就是因为没有养成良好的变成习惯, 在编译的过程中因为马虎等原因出现 了许多小错误,像丢括号、函数名不统一等问题经常使程序编译不能通过。五.用户使用说明本系统是一个学生成绩管理系统,实现了文件的合并,补考学生的提取,学 生信息的排序,信息的查找的功能。其中学生的信息包含有姓名、学号、中文、 数学、英语和部分。本系统菜单如下:实现对两个文件数据进行合并, 生成新文件 3.txt抽取出三科成绩中有补考的学生并保存在一个新文件4.txt对合并后的文件3.txt 中的数据按总分降序排序输入一个学生姓名后, 能查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论