学生信息管理系统 课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

学生信息管理系统学生姓名:学号:班级:指导老师:日期:2、课程设计正文格式:1题目及要求学生信息管理系统此题目要求,使用结构体静态数组存储数据,并要求使用户输入的数据或者修改后的数据能够永久保存。1.1问题提出详细叙述本人所要实现的题目中的问题我编写一个学生信息管理系统,主要用来管理学生基本信息。1.2本系统涉及的知识点如:结构体、数组、循环、函数、分支、文件、字符串、指针;1.3功能分析叙述本人所要实现的题目功能1、添加学生信息,每个学生的信息包括:学号、姓名、电话、生日、地址、班级;2、根据学号删除该学生信息或删除全部学生信息;3、根据学号、姓名查询学生信息;4、可以以表格形式输出所有学生信息;5、输入欲修改的那人的名字后,再次进行信息修改;6、保存此学生信息系统;2功能设计画出模块层次结构图2.1菜单设计2.2各功能模块的算法设计增加学生信息模块:1.1打开文件。1.2用scanf输入数据,保存再结构数组中。1.3用fwrite函数将结构体数组读入学生信息文件中,关闭文件。显示学生信息模块:1.1只读打开文件1.2将文件的信息读入结构体数组中;1.3将结构体的内容显示在窗口上。1.4关闭文件。查询学生信息模块:1.1打开文件,读出信息;增加删除查询显示修改退出学生信息管理系统1.2输入要查询的学号或姓名;1.3如有该学号或姓名,打印该学生的信息;1.4关闭文件。修改学生信息模块:1.1打开文件,读出信息;1.2输入要修改的学生信息的学号。1.3若有此学号,则重新输入此学生信息。1.4覆盖原先的信息,读入文件;关闭文件。输入要查询的学号或姓名用fread函数读信息到stu[i]中strcmp(number,stu[i].num)==0?strcmp(name,stu[i].num)==0?i++in?没有该同学结束显示学生信息i=0;n开始删除学生信息模块:1.1打开文件,读出信息,关闭文件。1.2选择要单个删除—1.3,选择全部删除—1.5;1.3打开文件,输入要删除的学号;1.4若有此学号,覆盖此条信息,已少一次数,读入文件,关闭文件;若无,返回1.3;1.5打开文件。将空字符读入文件中,覆盖原先的信息,关闭文件。3程序代码设计(-)增加模块1)函数原形:voidadd(void)2)功能:利用for循环语句和scanf、getchar函数完成对结构数组的输入,再用再用fwrite函数将结构数组读入学生信息表中。存放n个学生的信息(学号、姓名、电话、生日、地址、班级)。3)输入输出:无。(二)查询模块1)函数原形:voidsearch(void)2)功能:打开文件后,根据strcmp函数进行对比,可以进行学号与姓名查询,用fread函数将文件中信息读到结构体数组中,相同就打印到窗口上。3)输入输出:无。(三)修改模块1)函数原形:voidmodi(void)2)功能:输入要修改的姓名,用fread函数将文件中信息读到结构体数组中,根据strcmp函数进行对比,然后根据fwrite函数进行修改覆盖,得到新文件。3)输入输出:无。(四)删除模块1)函数原形:voiddel(void)2)功能:用fread函数将文件中信息读到结构体数组中,依次将输入的学号根据strcmp函数进行对比,然后再进行选择性删除。3)输入输出:无。(五)显示模块1)函数原形:voidprint(void)2)功能:用freed函数打开存储的文件使其显示在屏幕上。3)输入输出:无。(六)源程序代码#includestdio.h#includestdlib.h#includestring.hvoidprint(void);//显示函数voidadd(void);//增加函数voidsearch(void);//查找函数voidmodi(void);//修改函数voiddel(void);//删除函数//定义结构体typedefstructstudent{charname[20];charnum[20];charban[20];charbirthday[20];charphone[20];charaddress[200];}STU;STUstu[2000];FILE*fp;//主函数intmain(void){inti;do{printf(|---------------------------------|\n);printf(|学生信息管理系统|\n);printf(|---------------------------------|\n);printf(|1--增加学生信息|\n);printf(|2--删除学生信息|\n);printf(|3--查询学生信息|\n);printf(|4--显示学生信息|\n);printf(|5--修改学生信息|\n);printf(|6--退出|\n);printf(|---------------------------------|\n);printf(请选择你的操作:(1~6)\n);scanf(%d,&i);if(i==1)add();if(i==2)del();if(i==3)search();if(i==4)print();if(i==5)modi();if(i==6){printf(谢谢您的使用!\n);break;}}while(i0&&i7);if(i6||i1)printf(你的输入错误\n);return0;}/*增加函数*/voidadd(void){intm,i;if((fp=fopen(学生信息表.txt,a+))==NULL)//为读写打开学生信息表文本文件{printf(Cannotopenfilestrikeanykeyexit!);getchar();exit(1);}printf(请输入要添加学生的人数:);scanf(%d,&m);for(i=1;i=m;i++){printf(请输入姓名:\n);scanf(%s,stu[i].name);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(&stu[i],sizeof(STU),1,fp);//把结构体的数据写入学生信息表中printf(\n);}fclose(fp);//关闭学生信息表文本文件}/*显示函数*/voidprint(void){inti,n;if((fp=fopen(学生信息表.txt,r))==NULL)//为输入打开学生信息表文本文件{printf(Cannotopenfilestrikeanykeyexit!);exit(0);}for(i=0;fread(&stu[i],sizeof(STU),1,fp)!=0;i++);//读出学生信息n=i;printf(姓名学号班级电话生日地址\n);printf(-------------------------------------------------------\n);for(i=0;in;i++){printf(%s\t%s\t%s\t%s\t%s\t%s\n,stu[i].name,stu[i].num,stu[i].ban,stu[i].phone,stu[i].birthday,stu[i].address);printf(--------------------------------------------------------\n);}fclose(fp);//关闭学生信息表文本文件}/*查询函数*/voidsearch(void){inti,n;charnumber[20],name[20];if((fp=fopen(学生信息表.txt,r))==NULL)//为输入打开学生信息表文本文件{printf(Cannotopenfilestrikeanykeyexit!);exit(0);}for(i=0;fread(&stu[i],sizeof(STU),1,fp)!=0;i++);//读取学生信息表文本文件n=i;intxz;printf(------------------------------------------------\n);printf(1.学号查询\n);printf(2.姓名查询\n);printf(------------------------------------------------\n);printf(请选择:\n);scanf(%d,&xz);if(xz==1){printf(\n请输入要查找学生的学号:);scanf(%s,number);for(i=0;in;i++){if(strcmp(number,stu[i].num)==0){printf(\n该学生已找到\n);printf(----------------------------------------\n);printf(姓名:%s\n,stu[i].name);printf(学号:%s\n,stu[i].num);printf(班级:%s\n,stu[i].ban);printf(电话:%s\n,stu[i].phone);printf(出生日期:%s\n,stu[i].birthday);printf(地址:%s\n,stu[i].address);break;}elseprintf(\n没有你要找的学生!!!\n\n);}}elseif(xz=2){printf(请输入要查询者的姓名:);scanf(%s,name);for(i=0;in;i++){if(strcmp(name,stu[i].name)==0){printf(该学生已找到\n);printf(----------------------------------------\n);printf(姓名:%s\n,stu[i].name);printf(学号:%s\n,stu[i].num);printf(班级:%s\n,stu[i].ban);printf(电话:%s\n,stu[i].phone);printf(出生日期:%s\n,stu[i].birthday);printf(地址:%s\n,stu[i].address);break;}elseprintf(\n没有你要找的学生!!!\n\n);}}fclose(fp);//关闭学生信息表文本文件}/*修改函数*/voidmodi(void){inti,n;charname[20];if((fp=fopen(学生信息表.txt,r+))==NULL)//为读写打开学生信息表文本文件{printf(Cannotopenfilestrikeanykeyexit!);exit(0);}printf(请输入你要修改的学生的姓名:);scanf(%s,name);for(i=0;fread(&stu[i],sizeof(STU),1,fp)!=0;i++);n=i;for(i=0;in;i++)if(strcmp(name,stu[i].num)==0){printf(----------------------------------------\n);printf(请重新输入姓名:\n);scanf(%s,stu[i].name);printf(请重新输入学号:\n);scanf(%s,stu[i].num);printf(请重新输入班级:\n);scanf(%s,stu[i].ban);printf(请重新输入电话:\n);scanf(%s,stu[i].phone);printf(请重新输

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功