学生信息管理系统课程设计
学生信息管理系统 学生姓名 学 号 班 级 指导老师 日 期 2、课程设计正文格式 1 题目及要求 学生信息管理系统 此题目要求,使用结构体静态数组存储数据,并要求使用户输入的数据或者修改后的数据能够永久保存。 问题提出 详细叙述本人所要实现的题目中的问题 我编写一个学生信息管理系统,主要用来管理学生基本信息。 本系统涉及的知识点 如结构体、数组、循环、函数、分支、文件、字符串、指针; 功能分析 叙述本人所要实现的题目功能 1、添加学生信息,每个学生的信息包括学号、姓名、电话、生日、地址、班级; 2、根据学号删除该学生信息或删除全部学生信息; 3、根据学号、姓名查询学生信息; 4、可以以表格形式输出所有学生信息; 5、输入欲修改的那人的名字后,再次进行信息修改; 6、保存此学生信息系统; 2 功能设计 画出模块层次结构图 学生信息管理系统 增加 删除 查询 显示 修改 退出 菜单设计 各功能模块的算法设计 增加学生信息模块 打开文件 。 用scanf输入数据,保存再结构数组中。 用fwrite函数将结构体数组读入学生信息文件中,关闭文件。 显示学生信息模块 只读打开文件 将文件的信息读入结构体数组中; 将结构体的内容显示在窗口上。 关闭文件。 查询学生信息模块 打开文件,读出信息; 输入要查询的学号或姓名; 如有该学号或姓名,打印该学生的信息; 关闭文件。 输入要查询的学号或姓名 用fread函数读信息到stu[i]中 strcmpnumber,stu[i].num0 strcmpname,stu[i].num0 i in 没有该同学 结束 显示学生信息 i0; n 开始 修改学生信息模块 打开文件,读出信息; 输入要修改的学生信息的学号。 若有此学号,则重新输入此学生信息。 覆盖原先的信息,读入文件;关闭文件。 删除学生信息模块 打开文件,读出信息,关闭文件。 选择要单个删除,选择全部删除; 打开文件,输入要删除的学号; 若有此学号,覆盖此条信息,已少一次数,读入文件,关闭文件;若无,返回; 打开文件。将空字符读入文件中,覆盖原先的信息,关闭文件。 3 程序代码设计 (-)增加模块 1)函数原形void addvoid 2)功 能利用for循环语句和scanf、getchar函数完成对结构数组的输入,再用再用fwrite函数将结构数组读入学生信息表中。存放n个学生的信息(学号、姓名、电话、生日、地址、班级)。 3)输入输出无。 二查询模块 1)函数原形void searchvoid 2)功 能打开文件后,根据strcmp函数进行对比,可以进行学号与姓名查询,用fread函数将文件中信息读到结构体数组中,相同就打印到窗口上。 3)输入输出无。 (三)修改模块 1)函数原形void modivoid 2)功 能输入要修改的姓名,用fread函数将文件中信息读到结构体数组中,根据strcmp函数进行对比,然后根据fwrite函数进行修改覆盖,得到新文件。 3)输入输出无。 (四)删除模块 1)函数原形void del void 2)功 能用fread函数将文件中信息读到结构体数组中,依次将输入的学号根据strcmp函数进行对比,然后再进行选择性删除。 3)输入输出无。 (五)显示模块 1)函数原形void printvoid 2)功 能用freed函数打开存储的文件使其显示在屏幕上。 3)输入输出无。 (六)源程序代码 include include include void printvoid; delxt,aNULL ame; printf请输入学号\n; scanfs,stu[i].num; printf请输入班级\n; scanfs,stu[i].ban; printf请输入生日\n; scanfs,stu[i].birthday; printf请输入电话号码\n; scanfs,stu[i].phone; printf请输入地址\n; scanfs,stu[i].address; fwritestu[i],sizeofSTU,1,fp; xt,rNULL ame,stu[i].num,stu[i].ban,stu[i].phone,stu[i].birthday,stu[i].address; printf--------------------------------------------------------\n; } fclosefp; xt,rNULL 号查询\n; printf 2.姓名查询\n; printf------------------------------------------------\n; printf请选择 \n; scanfd,xz; if xz1{ printf\n请输入要查找学生的学号 ; scanfs,number; fori0;in;i { ifstrcmpnumber,stu[i].num0 {