学生信息管理系统 课程设计_第1页
学生信息管理系统 课程设计_第2页
学生信息管理系统 课程设计_第3页
学生信息管理系统 课程设计_第4页
学生信息管理系统 课程设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

. 学生信息管理系统 学生姓名:学 号:班 级:指导老师:日 期: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 关闭文件。输入要查询的学号或姓名用fread函数读信息到stui中 strcmp(number,stui.num)=0?strcmp(name,stui.num)=0?i+in?没有该同学结束显示学生信息i=0; n开始修改学生信息模块: 1.1 打开文件,读出信息; 1.2 输入要修改的学生信息的学号。 1.3 若有此学号,则重新输入此学生信息。 1.4 覆盖原先的信息,读入文件;关闭文件。删除学生信息模块: 1.1 打开文件,读出信息,关闭文件。 1.2 选择要单个删除1.3,选择全部删除1.5; 1.3 打开文件,输入要删除的学号; 1.4 若有此学号,覆盖此条信息,已少一次数,读入文件,关闭文件;若无,返回1.3; 1.5 打开文件。将空字符读入文件中,覆盖原先的信息,关闭文件。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#includevoid print(void); /显示函数void add(void); /增加函数void search(void); /查找函数void modi(void); /修改函数void del(void); /删除函数/定义结构体typedef struct student char name20; char num20; char ban20; char birthday20; char phone20; char address200;STU;STU stu2000;FILE *fp;/主函数int main(void) int i; 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(请选择你的操作:(16)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&i6|i1) printf(你的输入错误n); return 0;/*增加函数*/void add(void) int m,i; if(fp=fopen(学生信息表.txt,a+)=NULL) /为读写打开学生信息表文本文件 printf(Cannot open file strike any key exit!); getchar(); exit(1); printf(请输入要添加学生的人数:); scanf(%d,&m); for(i=1;i=m;i+) printf(请输入姓名:n); scanf(%s,); printf(请输入学号:n); scanf(%s,stui.num); printf(请输入班级:n); scanf(%s,stui.ban); printf(请输入生日:n); scanf(%s,stui.birthday); printf(请输入电话号码:n); scanf(%s,stui.phone); printf(请输入地址:n); scanf(%s,stui.address); fwrite(&stui,sizeof(STU),1,fp); /把结构体的数据写入学生信息表中 printf(n); fclose(fp); /关闭学生信息表文本文件/*显示函数*/void print(void) int i,n; if(fp=fopen(学生信息表.txt,r)=NULL) /为输入打开学生信息表文本文件 printf(Cannot open file strike any key exit!); exit(0); for(i=0;fread(&stui,sizeof(STU),1,fp)!=0;i+); /读出学生信息 n=i; printf(姓名 学号 班级 电话 生日 地址n); printf(-n); for(i=0;in;i+) printf(%st %st %st %st %st %sn,,stui.num,stui.ban,stui.phone,stui.birthday,stui.address);printf(-n); fclose(fp); /关闭学生信息表文本文件/*查询函数*/void search(void) int i,n; char number20,name20; if(fp=fopen(学生信息表.txt,r)=NULL) /为输入打开学生信息表文本文件 printf(Cannot open file strike any key exit!); exit(0); for(i=0;fread(&stui,sizeof(STU),1,fp)!=0;i+); /读取学生信息表文本文件 n=i; int xz; 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,stui.num)=0) printf(n该学生已找到n); printf(-n); printf(姓名:%sn,); printf(学号:%sn,stui.num); printf(班级:%sn,stui.ban); printf(电话:%sn,stui.phone); printf(出生日期:%sn,stui.birthday); printf(地址:%sn,stui.address); break; else printf(n没有你要找的学生!nn); else if(xz=2) printf(请输入要查询者的姓名: ); scanf(%s,name); for(i=0;in;i+) if(strcmp(name,)=0) printf(该学生已找到n); printf(-n); printf(姓名:%sn,); printf(学号:%sn,stui.num); printf(班级:%sn,stui.ban); printf(电话:%sn,stui.phone); printf(出生日期:%sn,stui.birthday); printf(地址:%sn,stui.address); break; else printf(n没有你要找的学生!nn); fclose(fp); /关闭学生信息表文本文件/*修改函数*/void modi(void) int i,n; char name20; if(fp=fopen(学生信息表.txt,r+)=NULL) /为读写打开学生信息表文本文件 printf(Cannot open file strike any key exit!); exit(0); printf(请输入你要修改的学生的姓名:); scanf(%s,name); for(i=0;fread(&stui,sizeof(STU),1,fp)!=0;i+); n=i; for(i=0;in;i+) if(strcmp(name,stui.num)=0) printf(-n); printf(请重新输入姓名:n); scanf(%s,); printf(请重新输入学号:n); scanf(%s,stui.num); printf(请重新输入班级:n); scanf(%s,stui.ban); printf(请重新输入电话:n); scanf(%s,stui.phone); printf(请重新输入生日:n); scanf(%s,stui.birthday); printf(请重新输入地址:n); scanf(%s,stui.address); fclose(fp); if(fp=fopen(学生信息表.txt,w)=NULL) /为输出打开学生信息表文本文件 for(i=0;in;i+) fwrite(&stui,sizeof(STU),1,fp);/覆盖要修改的学生信息 fclose(fp); /关闭学生信息表文本文件/*删除函数*/void del(void) char number20,stud300; int flag=0,i,k,ch,n,temp; if(fp=fopen(学生信息表.txt,r)=NULL) /为输入打开学生信息表文本文件 printf(Cannot open file strike any key exit!); getchar(); exit(1); for(i=0;fread(&stui,sizeof(STU),1,fp)!=0;i+);/读出学生信息 n=i; fclose(fp); printf(*1.单个删除*2.全部删除*n); printf(输入你的选择: ); scanf(%d,&ch); if(ch=1) loop: printf(输入要删除学生的学号: ); scanf(%s,number); for(i=0;in;i+) if(strcmp(stui.num,number)=0) flag=1; k=i; printf(*是否确定删除?*n); printf(*1-是*2-否*n); scanf(%d,&temp); if(temp=2) goto loop; if(flag=0) printf(*列表中无此记录*n); goto loop; for(i=k;in-1;i+) strcpy(,stui+1.name); strcpy(stui.num,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论