C语言实训学生信息管理系统_第1页
C语言实训学生信息管理系统_第2页
C语言实训学生信息管理系统_第3页
C语言实训学生信息管理系统_第4页
C语言实训学生信息管理系统_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

实训报告实训名称C语言编程开发实训专业班级物联1541姓名张禄泽学号01指导教师黄标兵、王丽平实训时间~成绩评定考核内容平时答辩实训报告综合评定成绩计算机技术与工程学院《实训报告》文档规范及注意事项一、按照《任务书》中“实训报告要求”模式写。二、文档格式为A4纸、页边距上下2.54cm,左3.7cm,右2.7cm;正文通篇段落1.5倍行距,宋体五号;一级标题4号黑体,二级标题小四黑体。三、图、表应有标号和名称,且图名位于图下,表名位于表格上方;表格:表名用小五号黑体,表头用小五号黑体,表内数字、字母用小五号TimesNewRoman体,表内汉字用小五号宋体;表框线两端不封。图解:图名用小五号黑体。图表的大小要适中。四、参考文献格式为:序号作者,书名,出版地:出版社名称,出版社年份序号作者.论文题名.期刊名称,年份,卷号(期号):起至页码五、附录中的源代码应有适当的注释(可没有附录,但是提交的源代码电子文档中应有适当的注释)。六、按照格式要求填写《实训报告》封面中学生应填写的内容。七、实训结束后,学生应提交的文档包括纸质文档和电子文档。纸质文档包括:1.《实训报告》1份(左侧装订)。电子文档包括:1.实训报告2.源程序3.程序的可执行文件(.exe)目录TOC\o\h\z\t"标题7,7"HYPERLINK第1部分课程设计目的 1HYPERLINK第2部分课程设计内容与要求 2HYPERLINK2.1课程设计内容 6HYPERLINK2.2基本要求 2HYPERLINK第3部分报告正文 3HYPERLINK3.1设计题目及任务要求 3HYPERLINK3.2总体设计 3HYPERLINK第4部分课程设计总结 22HYPERLINK第5部分参考文献 23第1部分实训目的C语言编程开发实训是学生在《C语言程序设计》课程结束时进行的一项实践活动,综合运用C程序设计课程和其他先修课程的理论和知识,掌握C语言开发实训的一般方法,树立正确的设计思想,培养分析问题和解决实际问题的能力;学会从实际的要求出发,合理的选择算法,正确的使用测试方法,培养学生程序设计能力;学习运用帮助和查阅有关技术资料的能力。针对实训题目对学生在整个实训阶段进行检查考核,主要包括考勤、阶段性检查、成果答辩和实训报告。学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。第2部分实训内容与要求2.1实训内容C语言编程开发实.可实现信息的录入、浏览、修改、删除、可按学号、姓名查询,学生信息必须包含学号,姓名,年龄,性别,出生年月,地址,电话以文件的形式打开。2.2基本要求(1)所有学生统一在机房进行设计,一人一组。(2)听从指导老师的统一安排。(3)严格遵守作息时间、不迟到、不早退,病、事假必须向指导老师请假。(4)使用C语言开发。(5)满足编程规范。(6)设计结构清晰(模块化开发)。(7)根据任务书的要求选择实训题目,每个题目同一班级内不超过三人选择,根据题目难易程度进行综合评分。学生也可以自选题目,但自选题目要满足实训题目要求并经指导老师确认。(8)实训报告不合格者不允许参加答辩。(9)抄袭他人程序者记零分。(10)无故缺课累计超过该课程总学时数三分之一者记零分。第3部分报告正文3.1实训题目及任务要求题目:学生信息管理系统设计要求:1.可实现信息的录入、浏览、修改、删除、可按学号、姓名查询;2.学生信息必须包含学号,姓名,年龄,性别,出生年月,地址,电话。3.以文件的形式打开4.必须有注释。3.2总体设计开始菜单输入n的值进行选择开始菜单输入n的值进行选择保存结束是否继续进行NYYY5添加学生信息6修改学生信息2浏览学生信息3查询学生信息4删除学生信息7退出1录入学生信息详细设计开始输入信息存入文件存入文件继续?结束结束信息录入流程图开始输入浏览选项输入浏览选项从文件中导出数据从文件中导出数据输出数据浏览流程图浏览流程图结束结束信息查询界面,按1依照姓名查询,按2依照学号查询。在文件数据中搜索后若无查找内容则输出“搜索无结果”,若找到查找内容,则输出该内容,返回主菜单。开始输入查询选项输入查询选项选择查询类型选择查询类型按学生姓名查询按学号查询输入查找的学生输入查找的学生姓名输入学好号从文件中导出数据从文件中导出数据从文件中导出数据从文件中导出数据是否搜索到学生是否搜索到学生姓名?是否搜索学号?输出搜索无结果输出搜索无结果输出相应数据输出相应数据输出相应数据输出相应数据结束结束查询模块信息查询流程图删除模块修改模块图1.系统的总体流程图.一、主界面二、信息录入三、信息浏览四、信息查询五、删除信息六、信息添加七、信息修改源程序#include<string.h>#defineN100structstudent{intnum;charname[30];charsex;intage;charxueyuan[30];intbj;charaddr[30];chartel[30];}stu[100];//定义一个结构体 voidmenu();voidinput();voidsave(int);voiddisplay();voiddel();voidadd();voidsearch();voidsearch_num();voidsearch_xueyuan();voidsearch_tel();voidmodify();//定义各函数voidmain(){menu();intn,flag;chara;do{printf("请选择你需要操作的步骤(1--7):\n");scanf("%d",&n);if(n>=1&&n<=7){flag=1;break;}else{flag=0;printf("您输入有误,请重新选择!");}}while(flag==1);{switch(n){case1:printf("◆◆◆输入学生信息◆◆◆\n");printf("\n");input();break;case2:printf("◆◆◆浏览学生信息◆◆◆\n");printf("\n");display();break;case3:printf("◆◆◆按学号查询才学生信息◆◆◆\n");printf("\n");search();break;case4:printf("◆◆◆删除学生信息◆◆◆\n");printf("\n");del();break;case5:printf("◆◆◆添加学生信息◆◆◆\n");printf("\n");add();break;case6:printf("◆◆◆修改学生信息◆◆◆\n");printf("\n");modify();break;case7:exit(0);break;default:break;}getchar();printf("\n");printf("是否继续进行(yorn):\n");scanf("%c",&a);if(a=='y'){flag=1;system("cls");//清屏menu();//调用菜单函数printf("请再次选择你需要操作的步骤(1--7):\n");scanf("%d",&n);printf("\n");}elseexit(0);}}voidmenu()//菜单函数{printf("************欢迎进入学生信息管理系统**********\n");printf("1.录入学生信息");printf("2.浏览学生信息\n");printf("3.查询学生信息");printf("4.删除学生信息\n");printf("5.添加学生信息");printf("6.修改学生信息\n");printf("7.退出\n");printf("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t制作人侯迪");printf("\n");printf("\n");}voidinput()//录入函数{inti,m;printf("请输入需要创建信息的学生人数(1--100):\n");scanf("%d",&m);for(i=0;i<m;i++){printf("请输入学号:");scanf("%d",&stu[i].num);printf("请输入姓名:");scanf("%s",stu[i].name);getchar();printf("请输入性别(f--女m--男):");scanf("%c",&stu[i].sex);printf("请输入年龄:");scanf("%d",&stu[i].age);printf("请输入学院:");scanf("%s",stu[i].xueyuan);printf("请输入年级:");scanf("%d",&stu[i].bj);printf("请输入住址:");scanf("%s",stu[i].addr);printf("请输入电话:");scanf("%s",stu[i].tel);printf("\n");}printf("\n创建完毕!\n");save(m);}voidsave(intm)//保存文件函数{inti;FILE*fp;if((fp=fopen("student_list","wb"))==NULL){printf("cannotopenfile\n");exit(0);}for(i=0;i<m;i++)//将内存中学生的信息输出到磁盘文件中去if(fwrite(&stu[i],sizeof(structstudent),1,fp)!=1)printf("filewriteerror\n");fclose(fp);}intload()//导入函数{FILE*fp;inti=0;if((fp=fopen("student_list","rb"))==NULL){printf("cannotopenfile\n");exit(0);}else{do{fread(&stu[i],sizeof(structstudent),1,fp);i++;}while(feof(fp)==0);}fclose(fp);return(i-1);}voiddisplay()//浏览函数{inti;intm=load();printf("学号\t\t姓名\t\t性别\t\t年龄\n");for(i=0;i<m;i++)//m为输入部分的学生人数printf("%d\t%s\t\t%c\t\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age);printf("学院\t\t年级\t\t住址\t\t电话\n");for(i=0;i<m;i++)//m为输入部分的学生人数printf("\n%s\t%d\t\t%s\t\t%s\n",stu[i].xueyuan,stu[i].bj,stu[i].addr,stu[i].tel);}voiddel()//删除函数{intm=load();inti,j,n,t,flag;charname[20];printf("\n原来的学生信息:\n");display();printf("\n");printf("请输入要删除的学生的姓名:\n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i++){if(strcmp(stu[i].name,name)==0){printf("\n已找到此人,原始记录为:\n");printf("学号\t姓名\t\t性别\t\t年龄\n");printf("\n%d\t\t%s\t%c\t\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age);printf("\n学院\t\t班级\t\t住址\t\t电话\n");printf("\n%s\t%d\t\t%s\t%s\n",stu[i].xueyuan,stu[i].bj,stu[i].addr,stu[i].tel);printf("\n确实要删除此人信息请按1,不删除请按0\n");scanf("%d",&n);if(n==1){for(j=i;j<m-1;j++){strcpy(stu[j].name,stu[j+1].name);stu[j].num=stu[j+1].num;stu[j].sex=stu[j+1].sex;stu[j].age=stu[j+1].age;strcpy(stu[j].xueyuan,stu[j+1].xueyuan);stu[j].bj=stu[j+1].bj;strcpy(stu[j].addr,stu[j+1].addr);strcpy(stu[j].tel,stu[j+1].tel);}flag=0;}}}if(!flag)m=m-1;elseprintf("\n对不起,查无此人!\n");printf("\n浏览删除后的所有学生信息:\n");save(m);//调用保存函数display();//调用浏览函数printf("\n继续删除请按1,不再删除请按0\n");scanf("%d",&t);switch(t){case1:del();break;case0:break;default:break;}}voidadd()//添加函数{FILE*fp;intn;intcount=0;inti;intm=load();printf("\n原来的学生信息:\n");display();printf("\n");fp=fopen("student_list","a");printf("请输入想的学生数:\n");scanf("%d",&n);for(i=m;i<(m+n);i++){printf("\n请输入新增加学生的信息:\n");printf("请输入学生号:");scanf("%d",&stu[i].num);printf("\n");printf("请输入姓名:");scanf("%s",stu[i].name);getchar();printf("请输入性别(f--女m--男):");scanf("%c",&stu[i].sex);printf("请输入年龄:");scanf("%d",&stu[i].age);printf("请输入学院:");scanf("%s",stu[i].xueyuan);printf("请输入年级:");scanf("%d",&stu[i].bj);printf("请输入住址:");scanf("%s",stu[i].addr);printf("请输入电话:");scanf("%s",stu[i].tel);printf("\n");count=count+1;printf("已增加的人数:\n");printf("%d\n",count);}printf("\n添加完毕!\n");m=m+count;printf("\n浏览增加后的所有学生信息:\n");printf("\n");save(m);display();fclose(fp);}voidsearch()//查询函数{intt,flag;do{printf("\n按学号查询请按1;按学院查询请按2;按电话号码查询请按3;进入主函数请按4\n");scanf("%d",&t);if(t>=1&&t<=4){flag=1;break;}else{flag=0;printf("您输入有误,请重新选择!");}}while(flag==0);while(flag==1){switch(t){case1:printf("按学号查询\n");search_num();break;case2:printf("按学院查询\n");search_xueyuan();break;case3:printf("按电话号码查询\n");search_tel();break;case4:main();break;default:break;}}}voidsearch_num(){intnum;inti,t;intm=load();printf("请输入要查找的学号:\n");scanf("%d",&num);for(i=0;i<m;i++)if(num==stu[i].num){printf("\n已找到此人,其记录为:\n");printf("学号\t姓名\t\t性别\t\t年龄\n");printf("\n%d\t\t%s\t%c\t\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age);printf("\n学院\t\t年级\t\t住址\t\t电话\n");printf("\n%s\t%d\t\t%s\t%s\n",stu[i].xueyuan,stu[i].bj,stu[i].addr,stu[i].tel);break;}if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询学号请按2\n");scanf("%d",&t);switch(t){case1:search();break;case2:break;default:break;}}voidsearch_xueyuan(){charxueyuan[30];inti,t;intm=load();printf("请输入要查找的学院:\n");scanf("%s",xueyuan);for(i=0;i<m;i++)if(strcmp(stu[i].xueyuan,xueyuan)==0){printf("\n已找到,其记录为:\n");printf("学号\t姓名\t\t性别\t\t年龄\n");printf("\n%d\t\t%s\t%c\t\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age);printf("\n学院\t\t年级\t\t住址\t\t电话\n");printf("\n%s\t%d\t\t%s\t%s\n",stu[i].xueyuan,stu[i].bj,stu[i].addr,stu[i].tel);}if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询学院请按2\n");scanf("%d",&t);switch(t){case1:search();break;case2:break;default:break;}}voidsearch_tel(){chartel[20];inti,t;intm=load();printf("请输入要查找的电话号码:\n");scanf("%s",tel);for(i=0;i<m;i++)if(strcmp(tel,stu[i].tel)==0){printf("\n已找到,其记录为:\n");printf("学号\t姓名\t\t性别\t\t年龄\n");printf("\n%d\t\t%s\t%c\t\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age);printf("\n学院\t\t年级\t\t住址\t\t电话\n");printf("\n%s\t%d\t\t%s\t%s\n",stu[i].xueyuan,stu[i].bj,stu[i].addr,stu[i].tel);}if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询电话号码请按2\n");scanf("%d",&t);switch(t){case1:search();break;case2:break;default:break;}}voidmodify()//修改函数{intnum;charname[20];charsex;intage;charxueyuan[30];intbj;charaddr[30];chartel[20];intb,c,i,n,t,flag;intm=load();printf("\n原来的学生信息:\n");display();printf("\n");printf("请输入要修改的学生的姓名:\n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i++){if(strcmp(stu[i].name,name)==0){printf("\n已找到,其记录为:\n");printf("学号\t姓名\t\t性别\t\t年龄\n");printf("\n%d\t\t%s\t%c\t\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age);printf("\n学院\t\t年级\t\t住址\t\t电话\n");printf("\n%s\t%d\t\t%s\t%s\n",stu[i].xueyuan,stu[i].bj,stu[i].addr,stu[i].tel);printf("\n确实要修改此人信息请按1;不修改请按0\n");scanf("%d",&n);if(n==1){printf("\n需要进行修改的选项\n1.学号2.姓名3.性别4.年龄5.学院6.年级7.住址8.电话\n");printf("请输入你想修改的那一项序号:\n");scanf("%d",&c);if(c>8||c<1)printf("\n选择错误,请重新选择!\n");}flag=0;}}if(flag==1)printf("\n对不起,查无此人!\n");do{switch(c)//因为当找到第i个学生时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人{case1:printf("学号改为:");scanf("%d",&num);stu[i-1].num=num;break;case2:printf("姓名改为:");scanf("%s",name);strcpy(stu[i-1].name,name);break;case3:printf("性别改为:");getchar();scanf("%c",&sex);stu[i-1].sex=sex;break;case4:printf("年龄改为:");scanf("%d",&age);stu[i-1].age=age;break;case5:printf("学院改为:");

温馨提示

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

评论

0/150

提交评论