1、C 语言课程设计 第 1 页 1 C 语言课程设计语言课程设计 题目: 学生信息管理系统 学号: * 姓名: * 班级: 信计 1102 成绩: C 语言课程设计 第 2 页 2 正文正文 1 系统功能系统功能 本程序利用结构体数组及函数的调用完成对学生基本信息的动态管理。 可以对学生基本 信息进行录入、查询、删除、修改、浏览、成绩汇总的功能。 2 设计思想设计思想 利用宏定义,函数的调用及结构体数组,通过菜单选择的方式,在不同函数功能间进行 切换,从而达到实验设计的目的、使之具有学生信息管理的功能。 3 概要设计概要设计 1. 模块介绍:采用模块化设计,功能放在各模块中实现。主函数是程序的
2、入口,在其中声明一些必要的变量,设计以无限循环程序,循环体为一个 switch 语句,该语句的条件是通过调用主菜单函数得到返回值,根据该返回 值调用相应的各功能函数,同时要设置一个循环结束条件,以免造成死循环。 2. 系统流程: 主程序 输 入 录 入 浏 览 查 询 删 除 修 改 汇 总 退 出 C 语言课程设计 第 3 页 3 4 详细设计详细设计 1. 代码介绍: 本程序中,用 num、name、banji、age、sex、birthday 、 addr、phone、course、grade,来分别代表学生的学号、姓名、班级、年龄、 性别、出生日期、住址、电话、所选课程、分数。然后再利
3、用结构体数组, 将其归为学生的属性。再用 enter、print、save 、search、del、modify、 rank、return,来分别表示学生信息的输入、浏览、录入、查找、删除、 修改,学生成绩的汇总,程序的返回的功能。在程序中,通过对各个代码 的使用及各功能函数的调用,可实现本程序设计目的。 2. 函数介绍: 1. main( )主函数 主函数是程序的入口,在其中定义一些必要的变量,设计以无限循环 程序,循环体为一个 switch 语句,该语句的函数是通过调用主菜单函数 得到返回值,根据返回值调用相应的各功能函数,同时要设置一个循环 结束条件,以免造成死循环。 2. menu(
4、)函数-制作菜单 通过 printf( )函数在屏幕上绘制一个菜单, 将菜单进行编号, 并显示一 个提示输入选项,输入 18 之间的数字。输入选项就是输入菜单编号,该输 入项将作为函数的返回值带到主函数, 主函数根据这个数字调用相应的功能 函数。 3. enter( )函数-输入记录 当在主菜单中输入了 1, 表明选择了输入记录功能选项, 即为结构体赋 值。由于所定义的数组的大小往往大于实际的纪录数,所以要确定输入的记 录数 n,然后用 for 循环语句循环 n 次,按照提示逐个输入学生信息。每输入 一个就按一下 Enter 键,输入 n 个记录后,则循环结束,返回记录数到主函 数。 4. s
5、ave( )函数-保存记录到文件 将学生信息保存到指定文件中。按照文件读写要求,先定义一个指向 文件的指针,输入要保存的磁盘文件名。然后确定文件的打开方式,打开文 件。如果文件打不开,则退出程序,否则选择一种写文件方式,利用循环从 数组的第一个元素开始,依次将记录写入文件,直到所有记录写完为止。 5. search( )函数-查找记录 C 语言课程设计 第 4 页 4 查找可以按照多种信息进行查找,以按姓名查找记录为例,从第一条 记录开始顺序查找,如果找到记录,则显示记录信息;若找不到记录,显示 “无该学生”的提示信息。由于姓名为字符串,所以可利用字符串比较函数 strcmp( ). 6. d
6、el( )函数-删除记录 删除指定学号的学生记录。首先输入要删除记录的学号,然后利用for 循环查找记录。如果没找到,则输出没找到信息;否则,删除记录。 要删除数组中某一条记录, 实际所做的操作是将其后继记录依次前移一 条,所以,删除第 i 条记录,用 for 语句,从第 i+1 条记录开始,依次将每 个字段复制到前一条记录的相应字段,即覆盖了前一条记录,从而达到前移 的目的,直到最后一条记录为止,最后使记录数减 1。 7. modify( )函数-修改记录数据 记录数据完成后,若要对数据进行修改,则修改时,输入有错误记录 的学号,通过循环比较找到该记录,然后逐个判断。 8. print( )函数-浏览记录 学生信息表建好后,更频繁的操作是显示和查找记录,本函数实现显 示所有记录的功能。 用 for 循环将主函数传递过来的数组输出,循环次数由参数(记录个数)决 定。 9 rank( )函数-成绩汇总 学生信息录入完成后,若要对学生中不及格学生成绩进行