C语言学生信息管理系统实训报告.docx
《C语言学生信息管理系统实训报告.docx》由会员分享,可在线阅读,更多相关《C语言学生信息管理系统实训报告.docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 学生信息管理系统本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉 C 语言的文件和单链表的各种基本操作。本程序中涉及结构体、单链表、文件等方面的知识。通过本程序的训练,使学生能对 C 语言的文件操作有一个更深刻的了解,掌握利用单链表存储结构实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。一、问题定义根据实训要求,创建学生信息管理系统,假设系统中包含学生的学号、姓名、年龄、性别、出生年月、地址、电话、E-mail 等信息。设计的学生信息管理系统,需能提供以下功能:系统以菜单方式工作。学生信息录入功能-输入。学生信息浏览功能-输出。查询功能。修
2、改信息功能。按学号删除学生信息功能。程序的运行效果如下图所示。二系统设计1. 总体设计采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务, 然后分别设计各个小任务。需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。可以用模块化层次结构图(即模块图)来分析其任务的划分,以下为程序的功能模块设计。学生信息管理系统系统帮助模块系统帮助说明从文件读入输入信息模块从键盘输入按学号查询查询信息模块按学号查询修改学生信息更新信息模块删除学生信息增加学生信息系统刷新系统模块数据保存2. 详细设计学生信息管理系统#include/*I/O函数*/ #include /*其它说明
3、*/ #include /*字符串函数*/#define BUFLEN 100 /* 缓冲区最大字符数 */#define LEN 15 /* 学号和姓名最大字符数,实际请更改 */ #define N 100 /* 最大学生人数,实际请更改*/struct record /*结构体*/char codeLEN+1; /* 学号 */ char nameLEN+1; /* 姓名 */ int age; /* 年龄 */char sex3; /* 性别 */char timeLEN+1; /* 出生年月 */ char add30; /* 家庭地址 */char telLEN+1; /* 电话号
4、码 */ char mail30; /* 电子邮件地址 */stuN;int k=1,n,m; /* 定义全局变量 */ void readfile();/* 函数声明 */ void seek();void modify(); void insert(); void del(); void display(); void save(); void menu(); int main()while(k) menu();system(pause); return 0;void help()printf(n尊敬的用户:您好!); printf(n=n|);printf(n|欢 迎进入帮助 系 统 !
5、|n|printf(n|);|n|);printf(n|1.进入系统后,先刷新学生信息,再查询!|n|);printf(n|2. 请 按 照 菜 单 提 示 进 入 数 字 代 号 !|n|);printf(n|3.增加学生信息后,请切记保存!|n|);printf(n|4. 谢 谢 您 的 使 用 !|n|);printf(n= n);void readfile()/* 建立信息 */char *p=student.txt;FILE *fp;int i=0;if (fp=fopen(student.txt,r)=NULL)printf(Open file %s error! Strike a
6、ny key to exit!,p); system(pause);exit(0);while(fscanf(fp,%s %s%d%s %s %s %s %s,stui.code,stui.name,&stui.age, stui.sex,stui.time,stui.add,stui.tel,stui.mail)=8) i+;i=i;fclose(fp); n=i;printf(刷新完毕!n);void seek() /*查找*/int i,item,flag;char s121; /* 以姓名和学号最长长度+1为准 */ printf(n);printf(-1.按学号查询n);printf
7、(-2.按姓名查询n);printf(-3.退出本菜单n);printf(n);while(1)printf(请选择子菜单编号:); scanf(%d,&item);flag=0; switch(item)case 1:printf(请输入要查询的学生的学号:n); scanf(%s,s1);for(i=0;in;i+) if(strcmp(stui.code,s1)=0)flag=1;printf(学生学号学生姓名年龄性别出生年月地址电话E-mailn);printf(n);printf(%6s %7s %6d %5s %9s %8s %10s %14sn,stui.code,stui.na
8、me,stui.age, stui.sex,stui.time,stui.add,stui.tel,stui.mail);if(flag=0)printf(该学号不存在!n); break; case 2:printf(请输入要查询的学生的姓名:n); scanf(%s,s1);for(i=0;in;i+) if(strcmp(stui.name,s1)=0)flag=1;printf(学生学号学生姓名年龄性别出生年月地址电话E-mailn);printf(n);printf(%6s %7s %6d %5s %9s %8s %10s %14sn,stui.code,stui.name,stui
9、.age, stui.sex,stui.time,stui.add,stui.tel,stui.mail);if(flag=0)printf(该姓名不存在!n); break; case 3:return;default:printf(请在1-3之间选择n);void modify() /*修改信息*/int i,item,num;char sex13,s1LEN+1,s2LEN+1; /* 以姓名和学号最长长度+1为准 */ printf(请输入要要修改的学生的学号:n);scanf(%s,s1); for(i=0;in;i+)if(strcmp(stui.code,s1)=0) /*比较字
10、符串是否相等*/num=i;printf(n);printf(1.修改姓名n);printf(2.修改年龄n);printf(3.修改性别n); printf(4.修改出生年月n); printf(5.修改地址n); printf(6.修改电话号码n); printf(7.修改E-mail地址n); printf(8.退出本菜单n); printf(n);while(1)printf(请选择子菜单编号:); scanf(%d,&item); switch(item)case 1:printf(请输入新的姓名:n); scanf(%s,s2); strcpy(stunum.name,s2); b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学生 信息管理 系统 报告
限制150内