程序设计基础课程设计实验报告书学生信息管理系统设计2目录1.设计题目...................................................................................................................................32.正文...........................................................................................................................................32.1系统简介.......................................................................................................................................32.2选题背景........................................................................................................................................32.3设计内容........................................................................................................................................32.4设计思路........................................................................................................................................32.5算法(条列式或流程图)............................................................................................................42.6程序清单与运行结果....................................................................................................................92.7总结..............................................................................................................................................17学生信息管理系统设计31.设计题目学生信息管理系统设计2.正文2.1系统简介学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:1、系统以菜单方式工作2、学生信息录入功能(学生信息用文件保存)--输入3、学生信息浏览功能--输出4、学生信息查询功能--按学号查询、按姓名查询、5、学生信息的删除与修改(可选项)要求:使用文件方式存储数据。2.2选题背景经典计算机问题,设计学生信息管理系统,可以进行多项系统信息管理功能。2.3设计内容设计学生信息管理的各个功能。系统以菜单方式工作。学生信息录入功能(学生信息用文件保存)--输入。学生信息浏览功能--输出。学生信息查询功能--按学号查询、按姓名查询。学生信息的删除与修改(可选项)2.4设计思路将程序的各个功能分开独立的执行,问题有大而小,细化。学生信息管理系统设计42.5算法(条列式或流程图)主程序模块:按退格键准备输入选择:判断:运行不同功能:结束学生信息管理系统设计5创建文件模块(独立函数):NOYES输入要创建的文件夹得文件名,并创建文件输入学生数目:是否人数足够输入一个学生信息并存放到文件夹:返回主程序学生信息管理系统设计6删除信息模块(独立函数):不相同相同输入要删除得姓名按读取方式打开用于存放文件的文件夹创建100个结构体,并将文件中的信息全部存放到结构体中将指针指向下一个结构体,判断该结构体的姓名与要删除的姓名是否相同通过链表把要删除得同学的信息在结构体链表中删除按写入方式打开文件,结构体全部写入文件学生信息管理系统设计7显示浏览信息模块(独立函数)返回主程序输入存放信息的文件夹的文件名,并打开文件夹创建一百个结构体数组将一个结构体大小从文件中读取到内存,并显示文件是否到达最后从文件中读入一个结构体大小,并显示到内存返回主程序学生信息管理系统设计8查找学生信息模块(独立函数):返回主程序输入存放信息的文件夹的文件名,并打开文件夹创建一百个结构体数组将一个结构体大小从文件中读取到内存,并显示输入要查找信息的学生名,判断学生信息与是否为要查找的人的信息指针指向下一个结构体输出学生信息学生信息管理系统设计92.6程序清单与运行结果#includestdio.h#includestdlib.h#includestring.h#includeio.hstructbirth{intyear,month,day;};structstudent{intnumber,age,tel[10];charname[10],sex,address[20],E_mail[20];structbirthbirthday;structstudent*link;};voidshow(){printf(请输入数字加回车键进行选择:\n);printf(1、学生信息录入功能(学生信息用文件保存)--输入\n);printf(2、学生信息浏览功能--输出\n);printf(3、学生信息查询功能--按学号查询、按姓名查询\n);printf(4、学生信息的删除与修改(可选项)\n);printf(按其他任意键加回车退出程序\n);}学生信息管理系统设计10\*创建文件夹并存入信息模块:*\voidcredit(intn){FILE*fp;charfpname[20];structstudent*head,*next,*end;inti;printf(请输入用于存放文件的文件路劲及文件名:);scanf(%s,fpname);getchar();fp=fopen(fpname,w+);head=(structstudent*)malloc(sizeof(structstudent));printf(请输入学生学号姓名性别出生年月日地址电话e_mail:);scanf(%d%s%c%d%d%d%s%s%s,&head-number,head-name,&head-sex,&(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head-address,head-tel,head-E_mail);getchar();fprintf(fp,%d%s%c%d%d%d%s%s%s,head-number,head-name,head-sex,(*head).birthday.year,(*head).birthday.month,(*head).birthday.day,head-address,head-tel,head-E_mail);end=head;for(i=1;in;i++){next=(structstudent*)malloc(sizeof(structstudent));printf(请输入学生学号姓名性别出生年月日地址电话e_mail:);scanf(%d%s%c%d%d%d%s%s%s,&next-number,next-name,&next-sex,&(*next).birthday.year,&(*next).birthday.month,&(*next).birthday.day,next-address,next-tel,next-E_mail);getchar();fprintf(fp,%d%s%c%d%d%d%s%s%s,next-number,next-name,next-sex,(*next).birthday.year,(*next).birthday.month,(*next).birthday.day,next-address,next-tel,next-E_mail);end-link=next;end=next;end-link=NULL;}fclose(fp);}学生信息管理系统设计11\*浏览信息模块:*\voidshow2(intn){FILE*fp;inti;charfpname[20];structstudent*head;head=(structstudent*)malloc(sizeof(structstudent));printf(请输入存放信息的文件路径以及文件名:);gets(fpname);fp=fopen(fpname,r+);for(i=0;in;i++){fscanf(fp,%d%s%c%d%d%d%s%s%s,&head-number,head-name,&head-sex,&(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head-address,head-tel,head-E_mail);printf(%d%s%d%d%d%d%s%s%s,&head-number,head-name,head-sex,(*head).birthday.year,(*head).birthday.month,(*head).birthday.day,head-address,head-tel,head-E_mail);}fclose(fp);}学生信息管理系统设计12\*按学号查找学生信息模块:*\intsearch1(intn){inti,checkname;FILE*fp;charfpname[20];structstudent*head;head=(structstudent*)malloc(sizeof(structstudent));printf(请输入存放信息的文件路径以及文件名:);gets(fpname);fp=fopen(fpname,r+);printf(请输入要查询信息的学生学号:);scanf(%d,&checkname);getchar();for(i=0;in;i++){fscanf(fp,%d%s%c%d%d%d%s%s%s,&head-number,head-name,&head-sex,&(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head-address,head-tel,head-E_mail);if(checkname==head-number){printf(%d%s%c%d%d%d%s%s%s\n,head-number,head-name,head-sex,(*head).birthday.year,(*head).birthday.month,(*head).birthday.day,head-address,head-tel,head-E_mail);fclose(fp);return(1);}}printf(未找到);}