2022年C语言实训学生信息管理系统 .pdf
实训报告实训名称C 语言编程开发实训专业班级物联 1541 姓名张禄泽学号1511431101 指导教师黄标兵、王丽平实训时间2016.2.292016.3.11 成 绩 评 定考核内容平时答辩实训报告综合评定成 绩计算机技术与工程学院名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 28 页 - - - - - - - - - 实训报告文档规范及注意事项一、按照任务书中“实训报告要求”模式写。二、文档格式为A4 纸、页边距上下2.54cm,左 3.7cm,右 2.7cm;正文通篇段落1.5倍行距,宋体五号;一级标题4 号黑体,二级标题小四黑体。三、图、表应有标号和名称,且图名位于图下,表名位于表格上方;表格:表名用小五号黑体,表头用小五号黑体,表内数字、字母用小五号Times New Roman 体,表内汉字用小五号宋体;表框线两端不封。图解:图名用小五号黑体。图表的大小要适中。四、参考文献格式为:序号作者 , 书名 ,出版地:出版社名称,出版社年份序号作者 论文题名 期刊名称,年份,卷号(期号):起至页码五、附录中的源代码应有适当的注释(可没有附录, 但是提交的源代码电子文档中应有适当的注释) 。六、按照格式要求填写实训报告封面中学生应填写的内容。七、实训结束后,学生应提交的文档包括纸质文档和电子文档。纸质文档 包括:1 实训报告 1 份(左侧装订) 。电子文档 包括:1实训报告2源程序3程序的可执行文件(.exe)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 28 页 - - - - - - - - - 目录第 1 部分 课程设计目的 . - 1 -第 2 部分 课程设计内容与要求 . - 2 -2.1 课程设计内容. 6 2.2 基本要求 . - 2 -第 3 部分 报告正文 . - 3 -3.1 设计题目及任务要求. - 3 -3.2 总体设计 . - 3 -第 4 部分 课程设计总结 . - 24 -第 5 部分 参考文献 . - 25 -名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 28 页 - - - - - - - - - - 1 - 第 1 部分 实训目的C 语言编程开发实训是学生在C 语言程序设计课程结束时进行的一项实践活动,综合运用 C 程序设计课程和其他先修课程的理论和知识,掌握 C 语言开发实训的一般方法,树立正确的设计思想,培养分析问题和解决实际问题的能力;学会从实际的要求出发,合理的选择算法, 正确的使用测试方法,培养学生程序设计能力;学习运用帮助和查阅有关技术资料的能力。针对实训题目对学生在整个实训阶段进行检查考核,主要包括考勤、 阶段性检查、 成果答辩和实训报告。学习 c 程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限, 课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c 语言开发程序的能力,为今后的继续学习打下一个良好的基础。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 28 页 - - - - - - - - - - 2 - 第 2 部分实训内容与要求2.1 实训内容 C语言编程开发实. 可实现信息的录入、浏览、修改、删除、可按学号、姓名查询,学生信息必须包含学号,姓名,年龄,性别,出生年月,地址,电话以文件的形式打开。2.2 基本要求(1)所有学生统一在机房进行设计,一人一组。(2)听从指导老师的统一安排。(3)严格遵守作息时间、不迟到、不早退,病、事假必须向指导老师请假。(4)使用 C语言开发。(5)满足编程规范。(6)设计结构清晰(模块化开发)。(7)根据任务书的要求选择实训题目,每个题目同一班级内不超过三人选择,根据题目难易程度进行综合评分。学生也可以自选题目,但自选题目要满足实训题目要求并经指导老师确认。(8)实训报告不合格者不允许参加答辩。(9)抄袭他人程序者记零分。(10)无故缺课累计超过该课程总学时数三分之一者记零分。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 28 页 - - - - - - - - - - 3 - 第 3 部分 报告正文3.1 实训题目及任务要求题目:学生信息管理系统设计要求: 1.可实现信息的录入、浏览、修改、删除、可按学号、姓名查询; 2.学生信息必须包含学号,姓名,年龄,性别,出生年月,地址,电话。 3.以文件的形式打开 4.必须有注释。3.2 总体设计菜单输 入 n 的值 进 行 选择保存结束是 否 继 续进行N Y5 添加学6 修改2 浏览3 查询4 删除7 退出1 录入开始名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 28 页 - - - - - - - - - - 4 - 详细设计信息录入流程图开始存入文件输入信息继续?结束开始输入浏览选项从文件中导出数据输出数据结束浏览流程图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 28 页 - - - - - - - - - - 5 - 信息查询界面, 按 1 依照姓名查询, 按 2 依照学号查询。 在文件数据中搜索后若无查找内容则输出“搜索无结果” ,若找到查找内容,则输出该内容,返回主菜单。按学生姓名查询按学号查询查询模块开始输入查询选项选择查询类型输入查 找的学生姓名输入学好号从文件中导出数据从文件中导出数据是否搜索到学生姓名?是 否 搜 索 学号?输出相应数据输出相应数据输出搜索无结果结束名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 28 页 - - - - - - - - - - 6 - 信息查询流程图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 28 页 - - - - - - - - - - 7 - 删除模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 28 页 - - - - - - - - - - 8 - 修改模块图 1. 系统的总体流程图 . 一、主界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 28 页 - - - - - - - - - - 9 - 二、信息录入三、信息浏览四、信息查询名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 28 页 - - - - - - - - - - 10 - 五、删除信息六、信息添加七、信息修改名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 28 页 - - - - - - - - - - 11 - 源程序#include #define N 100 struct student int num; char name30; char sex; int age; char xueyuan30; int bj; char addr30; char tel30; stu100; /定义一个结构体void menu(); void input(); void save(int); void display(); void del(); void add(); void search(); void search_num(); void search_xueyuan(); void search_tel(); void modify(); /定义各函数void main() menu(); int n,flag; char a; do printf(请选择你需要操作的步骤(1-7):n); scanf(%d,&n); if(n=1&n=7) flag=1; break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 28 页 - - - - - - - - - - 12 - else flag=0; printf(您输入有误,请重新选择!); while(flag=1); switch(n) case 1:printf( 输入学生信息n);printf(n);input();break; case 2:printf( 浏览学生信息n);printf(n);display();break; case 3:printf( 按学号查询才学生信息n);printf(n);search();break; case 4:printf( 删除学生信息n);printf(n);del();break; case 5:printf( 添加学生信息n);printf(n);add();break; case 6:printf( 修改学生信息n);printf(n);modify();break; case 7:exit(0);break; default :break; getchar(); printf(n); printf(是否继续进行 (y or n):n); scanf(%c,&a); if(a=y) flag=1; system(cls); /清屏 menu(); /调用菜单函数 printf(请再次选择你需要操作的步骤(1-7):n); scanf(%d,&n); printf(n); else exit(0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 28 页 - - - - - - - - - - 13 - void menu() /菜单函数 printf( *欢迎进入学生信息管理系统*n); printf( 1.录入学生信息); printf( 2.浏览学生信息n); printf( 3.查询学生信息); printf( 4.删除学生信息n); printf( 5.添加学生信息); printf( 6.修改学生信息n); printf( 7.退出 n); tt制作人侯迪 ); printf(n); printf(n); void input() /录入函数 int i,m; printf(请输入需要创建信息的学生人数(1-100):n); scanf(%d,&m); for (i=0;im;i+) printf(请输入学号: ); scanf(%d,&stui.num); printf(请输入姓名 : ); scanf(%s,stui.name); getchar(); printf(请输入性别 (f-女 m- 男 ): ); scanf(%c,&stui.sex); printf(请输入年龄 : ); scanf(%d,&stui.age); printf(请输入学院 : ); scanf(%s,stui.xueyuan); printf(请输入年级 : ); scanf(%d,&stui.bj); printf(请输入住址 : ); scanf(%s,stui.addr); printf(请输入电话 : ); scanf(%s,stui.tel); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 28 页 - - - - - - - - - - 14 - printf(n); printf(n创建完毕 !n); save(m); void save(int m) /保存文件函数 int i; FILE*fp; if (fp=fopen(student_list,wb)=NULL) printf (cannot open filen); exit(0); for (i=0;im;i+) /将内存中学生的信息输出到磁盘文件中去 if (fwrite(&stui,sizeof(struct student),1,fp)!=1) printf(file write errorn); fclose(fp); int load() /导入函数 FILE*fp; int i=0; if(fp=fopen(student_list,rb)=NULL) printf (cannot open filen); exit(0); else do fread(&stui,sizeof(struct student),1,fp); i+; while(feof(fp)=0); fclose(fp); return(i-1); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 28 页 - - - - - - - - - - 15 - void display() /浏览函数 int i; int m=load(); printf( 学号 tt姓名 tt性别 tt年龄 n); for(i=0;im;i+) /m为输入部分的学生人数printf( %dt%stt%ctt%dtn,stui.num,stui.name,stui.sex,stui.age); printf( 学院 tt年级 tt住址 tt电话 n); for(i=0;im;i+) /m为输入部分的学生人数printf(n %st%dtt%stt%sn,stui.xueyuan,stui.bj,stui.addr,stui.tel); void del() /删除函数 int m=load(); int i,j,n,t,flag; char name20; printf(n 原来的学生信息:n); display(); printf(n); printf(请输入要删除的学生的姓名:n); scanf(%s,name); for(flag=1,i=0;flag&im;i+) if(strcmp(stui.name,name)=0) printf(n已找到此人,原始记录为:n); printf( 学号 t姓名 tt性别 tt年龄 n); printf(n %dtt%st%ctt%dtn,stui.num,stui.name,stui.sex,stui.age); printf(n 学院 tt班级 tt住址 tt电话 n); printf(n %st%dtt%st%sn,stui.xueyuan,stui.bj,stui.addr,stui.tel); printf(n确实要删除此人信息请按1, 不删除请按0n); scanf(%d,&n); if(n=1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 28 页 - - - - - - - - - - 16 - for(j=i;jm-1;j+) strcpy(stuj.name,stuj+1.name); stuj.num=stuj+1.num; stuj.sex=stuj+1.sex; stuj.age=stuj+1.age; strcpy(stuj.xueyuan,stuj+1.xueyuan); stuj.bj=stuj+1.bj; strcpy(stuj.addr,stuj+1.addr); strcpy(stuj.tel,stuj+1.tel); flag=0; if(!flag) m=m-1; else printf(n对不起,查无此人!n); printf(n 浏览删除后的所有学生信息:n); save(m); /调用保存函数 display(); /调用浏览函数 printf(n继续删除请按1,不再删除请按0n); scanf(%d,&t); switch(t) case 1:del();break; case 0:break; default :break; void add()/添加函数 FILE*fp; int n; int count=0; int i; int m=load(); printf(n 原来的学生信息:n); display(); printf(n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 28 页 - - - - - - - - - - 17 - fp=fopen(student_list,a); printf(请输入想的学生数:n); scanf(%d,&n); for (i=m;i=1&t=4) flag=1; break; else flag=0; printf(您输入有误,请重新选择!); while(flag=0); while(flag=1) switch(t) case 1:printf(按学号查询 n);search_num();break; case 2:printf(按学院查询 n);search_xueyuan();break; case 3:printf(按电话号码查询n);search_tel();break; case 4:main();break; default:break; void search_num() int num; int i,t; int m=load(); printf(请输入要查找的学号:n); scanf(%d,&num); for(i=0;im;i+) if(num=stui.num) printf(n已找到此人,其记录为:n); printf( 学号 t姓名 tt性别 tt年龄 n); printf(n %dtt%st%ctt%dtn,stui.num,stui.name,stui.sex,stui.age); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 28 页 - - - - - - - - - - 19 - printf(n 学院 tt年级 tt住址 tt电话 n); printf(n %st%dtt%st%sn,stui.xueyuan,stui.bj,stui.addr,stui.tel); break; if(i=m) printf(n对不起,查无此人n); printf(n); printf(返回查询函数请按1, 继续查询学号请按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2: break; default:break; void search_xueyuan() char xueyuan30; int i,t; int m=load(); printf(请输入要查找的学院:n); scanf(%s,xueyuan); for(i=0;im;i+) if(strcmp(stui.xueyuan,xueyuan)=0) printf(n已找到,其记录为:n); printf( 学号 t姓名 tt性别 tt年龄 n); printf(n %dtt%st%ctt%dtn,stui.num,stui.name,stui.sex,stui.age); printf(n 学院 tt年级 tt住址 tt电话 n); printf(n %st%dtt%st%sn,stui.xueyuan,stui.bj,stui.addr,stui.tel); if(i=m) printf(n对不起,查无此人n); printf(n); printf(返回查询函数请按1, 继续查询学院请按2n); scanf(%d,&t); switch(t) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 28 页 - - - - - - - - - - 20 - case 1:search();break; case 2:break; default :break; void search_tel() char tel20; int i, t; int m=load(); printf(请输入要查找的电话号码:n); scanf(%s,tel); for(i=0;im;i+) if(strcmp(tel,stui.tel)=0) printf(n已找到,其记录为:n); printf( 学号 t姓名 tt性别 tt年龄 n); printf(n %dtt%st%ctt%dtn,stui.num,stui.name,stui.sex,stui.age); printf(n 学院 tt年级 tt住址 tt电话 n); printf(n %st%dtt%st%sn,stui.xueyuan,stui.bj,stui.addr,stui.tel); if(i=m) printf(n对不起,查无此人n); printf(n); printf(返回查询函数请按1, 继续查询电话号码请按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2:break; default :break; void modify() /修改函数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 28 页 - - - - - - - - - - 21 - int num; char name20; char sex; int age; char xueyuan30; int bj; char addr30; char tel20; int b,c,i,n,t,flag; int m=load(); printf(n 原来的学生信息:n); display(); printf(n); printf(请输入要修改的学生的姓名:n); scanf(%s,name); for(flag=1,i=0;flag&i8|c1) printf(n选择错误,请重新选择!n); flag=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 28 页 - - - - - - - - - - 22 - if(flag=1) printf(n对不起,查无此人!n); do switch(c) /因为当找到第i 个学生时 ,for语句后 i 自加了 1, 所以下面的应该把改后的信息赋值给第i-1个人 case 1:printf(学号改为 : ); scanf(%d,&num); stui-1.num=num; break; case 2:printf(姓名改为 : ); scanf(%s,name); strcpy(stui-1.name,name); break; case 3:printf(性别改为 : ); getchar(); scanf(%c,&sex); stui-1.sex=sex; break; case 4:printf(年龄改为 : ); scanf(%d,&age); stui-1.age=age; break; case 5:printf(学院改为 : ); scanf(%s,xueyuan); strcpy(stui-1.xueyuan,xueyuan); break; case 6:printf(年级改为 : ); scanf(%d,bj); break; case 7:printf(住址改为 : ); scanf(%s,addr); strcpy(stui-1.addr,addr); break; case 8:printf(电话改为 : ); scanf(%s,tel); strcpy(stui-1.tel,tel); break; printf(n); printf(n是否确定所修改的信息?n 是 请按 1 ; 不, 重新修改请按 2: n); scanf(%d,&b); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 28 页 - - - - - - - - - - 23 - while(b=2); printf(n浏览修改后的所有学生信息:n); printf(n); save(m); display(); printf(n继续修改请按1,不再修改请按0n); scanf(%d,&t); switch(t) case 1:modify();break; case 0:break; default :break; #include #include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 28 页 - - - - - - - - - - 24 - 第 4 部分实训总结使用正文格式来书写,从自我收获、实训中遇到的问题及其解决办法等方面进行总结,不少于 500 字。实习的题目也不算太难,思路很清晰,总共三步走:1. 读取文件; 2. 录入文件; 3. 保存文件。原以为会很轻松,但还是遇到很多问题,以前上课时从未想到过。经历过基本一天都在看程序的时间,我发现我懂的太少,要学的太多。对文件的操作我一直都没注意,现在才发现其乐无穷;以前觉得很难, 现在轻松写出程序。学习与实践果然是不可分割的。实习中,大家八仙过海各显神通,有的用数组,这也可以理解,方便使用,排序便利;有的直接用文件C语句查询、删除, 让我大开眼界,文件还能这么用!在写报告时看到一篇用指针数组做的程序,相当有意思。发现水平还是不够,同学可以用C 语言编出一个比较漂亮的界面,还可以随意调用文件操作,实在让人赞叹不已。此次实习加强了我对c 语言的理解,很多以前迷糊的概念得到了明确,亦让我感到C语言强大之处,直接操作内存,实在很暴力。一句诗概括此次实习, “山重水复疑无路,柳暗花明又一村” ; 如今 C语言实习已然结束,但是对于计算机语言的学习决不能放松,“雄关漫道真如铁,而今迈步从头越”。现在的世界是信息化的,我们现在对于Matlab 的要求也很大,C语言也是其基础。路漫漫其修远兮,吾将上下而求索。感谢老师们这几天的指导。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 27 页,共 28 页 - - - - - - - - - - 25 - 第 5 部分 参考文献1谭浩强著C语言程序设计 2005 年 7 月第 3 版http:/ 吴 煌 坚学长时间报告名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 28 页,共 28 页 - - - - - - - - -