学生籍贯信息记录簿设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

任务要求:编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息(可选项);内容摘要:本设计报告书主要写了关于“学生籍贯信息记录薄设计”的有关内容和部分程序的解析;本程序可运用于对学生籍贯的管理,也可进行编辑和删除,同时也可运用学生的姓名和学号对其籍贯进行查询。在程序的编译过程中,其中涉及了C语言程序中的“结构体”、“For循环”、“if函数”、“函数的调用”、等内容。教师评语:成绩签名:日期:年月日课程设计报告书学生籍贯信息记录薄班级:方1310-1学号:20136764姓名:张佳琪指导教师:王帆石家庄铁道大学四方学院2014.6.24一、设计思想运用结构体定义几个变量,再通过编译各个功能的函数,在主函数中进行调用,并利用C语言中常用的For循环、if函数、while函数、printf语句、scanf语句等相关内容完成本设计。进行完每次操作后都能返回菜单,也可从菜单中选择直接退出。其中主要利用了函数的循环和调用。二、系统完成功能及框图①可以存储学生信息;②按学号和姓名查找该学生的籍贯;③按籍贯可以查询所有学生的信息;④可以对学生的信息加以修改;⑤可以删除学生的信息;⑥读取磁盘文件并显示输出所有学生的籍贯信息;三、核心算法及说明1、//主函数voidmain(){主要功能图1主要功能intfun;read_data();menu();while(1){printf(请输入功能号[0-7]:,&fun);scanf(%d,&fun);switch(fun){case0://退出break;case1://查看所有学生信息view_data();break;case2://输入学生记录add_data();break;case3://删除学生记录delete_data();break;case4://编辑学生记录edit_data();break;case5://查询(学号)query_data_no();break;case6://查询(姓名)query_data_name();break;case7://查询(籍贯)sort_data_address();break;}if(fun==0)break;to_menu();}}其上为本程序的主函数,对已经定义好的子函数进行调用,是整个程序的主体部分。其中的每一个“case”语句分别对应其子函数的程序以及对其进行使用。四、界面设计图2主要功能菜单图3查看所有学生信息图4输入学生信息图5删除学生的学号图6编辑学生的学号图7按照学生学号查询图8按照学生姓名查询五、结论本程序的用途很广,能为学校对学生的管理提供很大的帮助;其编写过程其实不易,工作量很大,需要自己认真仔细地去完成,丝毫不能有一点的差错,否则该程序将是一团糟的,什么也执行不了;同时也真让我体会到了C语言的困难之处,也不是一朝一夕能学成的,所以还需要自己继续努力,对C语言做更深更全面的了解。此次工作我们分工细致,工作积极,各自完成了自己所分担的责任,也完成的比较完善。总之,是我和同伴一起努力共同完成的结果。六、参考资料图9按照学生的籍贯查询严蔚敏吴伟民,《数据结构(C语言版)》,清华大学出版社,2007.9潭浩强,《C语言程序设计(第三版)》,高等教育出版社,2002.4://=446&id=476刘卫国.《C语言程序设计》,中国铁道出版社,2008.2刘卫国.《C语言程序设计实践教程》,中国铁道出版社,2008.2邵军王忠《C语言程序设计》西安电子科技大学出版社周立功《C程序设计高级教程》北京航空航天出版社附录程序代码如下:#includestdio.h#includeio.h#includestdlib.h#includestring.h#defineMAX300structstudent{charname[10];//姓名charno[50];//学号charad[20];//籍贯};structdata{intcount;//当前学生数组中学生的个数structstudentstu[MAX];//学生数组}dd;//显示主菜单voidmenu(){system(cls);printf(\n);printf(\t\t\t********************************\n);printf(\t\t\t**\n);printf(\t\t\t*学生籍贯信息记录簿*\n);printf(\t\t\t**\n);printf(\t\t\t*[0]退出*\n);printf(\t\t\t*[1]查看所有学生信息*\n);printf(\t\t\t*[2]输入学生记录*\n);printf(\t\t\t*[3]删除学生记录*\n);printf(\t\t\t*[4]编辑学生记录*\n);printf(\t\t\t*[5]查询(学号)*\n);printf(\t\t\t*[6]查询(姓名)*\n);printf(\t\t\t*[7]查询(籍贯)*\n);printf(\t\t\t**\n);printf(\t\t\t********************************\n);printf(\t\t\t**\n);}//等待用户按回车后回到主菜单voidto_menu(){charc1,c2;printf(\n\n\n按回车键返回主菜单...);scanf(%c%c,&c1,&c2);menu();}//查看所有学生信息voidview_data(){inti;printf(姓名\t学号\t籍贯);printf(\n-------------------------------------------------------------------\n);for(i=0;idd.count;i++)printf(%s\t%s\t%s\n,dd.stu[i].name,dd.stu[i].no,dd.stu[i].ad);}//将数据从结构体数组保存到文件中voidsave_data(){FILE*fp;inti,k;k=dd.count;fp=fopen(c:/dada.txt,w);fwrite(&k,sizeof(int),1,fp);for(i=0;ik;i++)fwrite(&dd.stu[i],sizeof(structstudent),1,fp);fclose(fp);}//输入学生记录voidadd_data(){structstudentst;intb;intk;inti,j;while(1){j=0;printf(\n请输入学生信息:);printf(\n姓名\t学号\t籍贯);printf(\n---------------------------------------------------------------\n);scanf(%s%s%s,st.name,st.no,st.ad);for(i=0;idd.count;i++)if(strcmp(dd.stu[i].no,st.no)==0){j=1;printf(学号录入重复,请重新输入!);break;}if(j==1)continue;if(j==0){k=dd.count;strcpy(dd.stu[k].name,st.name);strcpy(dd.stu[k].no,st.no);strcpy(dd.stu[k].ad,st.ad);dd.count++;}printf(\n\n继续添加学生信息[1-yes0-no]:);scanf(%d,&b);if(b==0)break;}save_data();}//将数据从文件读到结构体数组中voidread_data(){FILE*fp;inti,k;structstudentst;k=0;if(access(c:/dada.txt,0)==-1)//如果文件不存在{fp=fopen(c:/dada.txt,w);fwrite(&k,sizeof(int),1,fp);fclose(fp);}fp=fopen(c:/dada.txt,r);fread(&k,sizeof(int),1,fp);dd.count=k;for(i=0;ik;i++){fread(&st,sizeof(structstudent),1,fp);strcpy(dd.stu[i].name,st.name);strcpy(dd.stu[i].no,st.no);strcpy(dd.stu[i].ad,st.ad);}fclose(fp);}//删除学生记录voiddelete_data(){inti,k;charno[50];printf(\n请输入要删除学生的学号:);scanf(%s,no);k=-1;for(i=0;idd.count;i++){if(strcmp(dd.stu[i].no,no)==0){k=i;break;}}if(k==-1){printf(\n\n没有找到该学生(学号-%s)!,no);}else{for(i=k;idd.count;i++){strcpy(dd.stu[i].name,dd.stu[i+1].name);strcpy(dd.stu[i].no,dd.stu[i+1].no);strcpy(dd.stu[i].ad,dd.stu[i+1].ad);}dd.count--;save_data();printf(\n\n删除(学号-%s)成功!,no);}}//编辑学生记录voidedit_data(){inti,k;charno[50],ad[20];printf(\n请输入要编辑学生的学号:);scanf(%s,no);k=-1;for(i=0;idd.count;i++){if(strcmp(dd.stu[i].no,no)==0){k=i;break;}}if(k==-1){printf(\n\n没有找到该学生(学号-%s)!,no);}else{printf(\n姓名:%s,学号:%s,dd.stu[k].name,dd.stu[k].no);printf(\n请修改学生数据:);printf(\n籍贯:);scanf(%s,ad);strcpy(dd.stu[k].ad,ad);}}//查询(学号)voidquery_data_no(){inti,k;charno[50];printf(\n请输入要查询学生的学号:);scanf(%s,no);k=-1;for(i=0;idd.count;i++){if(strcmp(dd.stu[i].no,no)==0){{printf(\n\n姓名\t学号\t籍贯);printf(\n-----------------------------------------------------------------\n);}k=i;printf(%s\t%s\t%s\n,dd.stu[i].name,dd.stu[i].no,dd.stu[i].ad);}}if(k==-1){printf(\n\n没有找到该学生(学号-%s)!,no);}}//查询(姓名)voidquery_data_name(){inti,k;charname[10];printf(\n请输入要查询学生的姓名:);scanf(%s,name);k=-1;for(i=0;idd.count;i++){if(strcmp(dd.stu[i].name,name)==0){{printf(\n

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功