南邮学生基本信息管理系统程序设计报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序设计报告

( 2014/2015学年第二学期)

题目:学生基本信息管理系统

专业信息管理与信息系统

组长学号姓名

组员学号姓名

指导教师

指导单位计算机软件中心

日期 2015 年 6 月 25 日

学生基本信息管理系统

一、课题内容和要求

此系统是可实现最基本功能的学生管理系统。具体的管理信息应包括:两个txt文件,其中a.txt为学生基本信息文件,应该包括学号、姓名、性别、宿舍号码、电话号码;b.txt 为学生成绩基本信息文件,应包括学号、课程编号、课程名称、学分、平实得分、实验成绩、卷面成绩、综合成绩、实得学分。

① a.txt文件不需要编程录入数据,可用文本编辑工具直接生成

②数据录入功能: 对b.txt进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据. 综合成绩、学分由程序根据条件自动运算。

③学生基本情况查询

1)输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。

2)输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。

④成绩查询:输入一个学号时,查询出此生的所有课程情况,

⑤删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有信息。

⑥排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。

二、需求分析

学生基本信息管理系统的功能框架图如图2.1所示。

图2.1 功能框架图

本次课程设计主要利用了结构体数组、结构体指针以及与文件有关的基本操作,通过采用模块化设计的思想,首先创建好各个模块的函数,然后被主函数调用。主函数通过多次调用不同的函数实现创建文件、查询、删除学生信息模块和排序得基本功能,其总体框图如图2.1。各个模块的程序编写比较容易,各个函数的接口是否处能理好,是本次课程设计能否成功的关键。通过合理处理各函数得接口,使之能结合为一个完整的具有多功能

的程序,从而顺利完成本次课程设计。

三、概要设计

3.1主函数模块

在主函数中需要输出主菜单选择界面,简单菜单的制作可利用myprint()函数实现。获取用户的输入选择,存放在choose 中,接着判断用户是否继续选择,若选择,则重新获得用户输入;否则,推出程序,其流程图见图3.1。

图 3.1 主函数模块的流程图

3.2显示菜单模块

myprint()函数不需要传递参数,也不需要再定义任何变量,主要是实现输出主菜单。其函数的流程图见图

3.2.

图3.2 myprint()函数的流程图

3.3创建文件模块

3.3创建文件模块

mycreat()函数主要实现打开 b.txt文件,并通过fscanf()函数从磁盘上读取文件b.txt的学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩信息然后依据学分、平时成绩、实验成绩、卷面成绩计算得到综合成绩和实得学分并借助临时文件c.txt将综合成绩和实得学分也加到b.txt文件中。

其中第一个for循环语句主要实现计算综合成绩和实得学分的功能,通过fsanf()语句将文件 b.txt得数据一一读入,同时计算综合成绩和实得学分,并将这些数据通过fprintf语句写入临时文件c.txt。

rewind(fp)函数是将fp指示的文件位置指针置于文件开头位置,并清除文件结束标志和错误标志,以便将临时文件c.txt中的数据写入b.txt文件中。

getc与putc函数与文件指针将临时文件c.txt的信息写入b.txt文件中。其流程图见图3.3。

其流程图见图3.3。

图3.3 mycreat()函数流程图

3.4显示信息模块设计

本模块主要设计mydisplay(……)函数。将文件b.txt的数据通过fscanf()语句写入内存,然后通过printf()语句将读到的信息显示到屏幕上。若文件中无记录,则显示文件中没有记录。其流程图见图3.4。

图3.4 显示信息模块流程图

3.5查询模块的设计

本模块主要设计mysearch(……)函数、mysearchbase(……)函数、mysearchscore(……)函数、print()函数。mysearchbase(……)函数的流程图见图3.5,sch_num ()函数的流程图见图3.6, sch_name()函数的流程图见图3.7, sch_dom()函数的流程图见图3.8。

mysearch (……)函数主要是查询菜单的显示、输出你要查询的信息。查询菜单主要包括查询基本情况和查询成绩。它首先在屏幕上显示查询显示菜单,然后利用getch()与if

语句判断查询方式以确定需要调用的函数。

数据结构说明:学生结构体数组同3.3.

c 选择的不同方式

tempnum[10] 要查询的学号

tempname[10] 要查询的姓名

tempdom[10] 要查询的宿舍号码

图3.6 sch_num ()函数的流程图

图3.7 sch_name()函数的流程图

图3.8 sch_dom()函数的流程图3.5.2查询成绩信息模块设计

本模块主要设计mysearchscore(……)函数。 mysearchscore(……)

用绩信息。其流程图见图3.9

schscore_num ()询学生成绩。其流程图见图3.10

图3.9 mysearchscore()

图3.10 schscore_num()函数的流程图

3.6删除信息模块设计

本模块主要设计mydelete(……)函数。

mydelete (……)函数按学号删除信息。先以只读方式打开文件,进行读取。如找到相应的信息,结束本次循环,并将a.txt 文件删除后的数据写入临时文件c.txt 中,同时释放文件a.txt 的空间。再创建一个文件a.txt ,并将临时文件c.txt

中的数据一次通过

相关文档
最新文档