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