您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > C语言程序设计学生籍贯信息记录簿
学院程序设计工程训练报告C语言程序设计学生籍贯信息记录簿课程名称C语言程序设计工程训练姓名院(系)信息科学与技术学院专业班级学号指导教师教务处制目录1需求分析...........................................................................................................12系统总框图和功能模块说明...........................................................................12.1系统总框图..............................................................................................12.2功能模块说明..........................................................................................23系统设计...........................................................................................................23.1主要结构体................................................................................................23.2主要功能函数.............................................................................................23.3关键函数的流程图....................................................................................34系统调试...........................................................................................................45总结...................................................................................................................66源程序清单.......................................................................................................811需求分析编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。具体功能:1、创建信息链表并以磁盘文件保存2、读取磁盘文件并显示输出所有学生的籍贯信息3、按学号或姓名查询其籍贯4、按籍贯查询并输出该籍贯的所有学生5、能添加、删除和修改学生的籍贯信息6、系统以菜单方式工作2系统总框图和功能模块说明2.1系统总框图图1系统总框图学生籍贯信息记录簿输入学生信息重置学生信息查询学生信息删除学生信息修改学生信息输入学号输入籍贯输入学号删除个人删除全部退出系统22.2功能模块说明系统初始化模块:完成系统初始化。创建信息链表模块:在本地创建学生籍贯文件,保存学生籍贯信息。输入学生信息模块:完成学生籍贯信息的录入。修改学生信息模块:完成学生籍贯信息的修改。查询学生信息模块:完成学生籍贯信息的查询。删除学生信息模块:完成学生籍贯信息的删除。重置学生信息模块:完成学生籍贯信息的重置。保存学生信息模块:完成学生籍贯信息的保存。3系统设计3.1主要结构体学生信息:学号、姓名、籍贯typedefstruct{shortzhku_status;charzhku_number[12];charzhku_name[10];charzhku_address[20];}StuType;3.2主要功能函数voidzhku_AddData(void)/*录入数据*/voidwxw_ListData(void)/*显示所有数据*/voidwp_Delete(void)/*做删除标记*/3voidwp_Pack(void)/*重置信息*/voidzhku_UpdateData(void)/*修改*/voidSH_Search(void)/*查询*/3.3关键函数的流程图欢迎界面功能选择界面功能选择判断录入学生籍贯信息查询学生籍贯信息删除学生籍贯信息修改学生籍贯信息贯信息息信息重置信息显示所有学生退出按学号查询按姓名查询按籍贯查询删除个人信息删除全部信息选择查找显示全部信息无此人信息有无Esc返回选择输入学号确认删除请重置输入要修改的学号查找判断输入修改后信息提示无此人信息Esc返回44系统调试打开程序后按任意键,将会出现上述界面。5按“1”键,再按回车键,出现以上录入菜单。录入成功后提示是否继续,选择后按回车键进行操作。此为查询功能菜单,若输入程序没有录入的学号、姓名、籍贯时,则会显示出“无此人的籍贯信息”。此为删除学生信息菜单界面,按照菜单操作即可。6如果要退出该程序,直接按“7”后在按回车键即可。5总结这次我做的c语言工程实训是“籍贯信息记录簿”,在编写程序时也遇到不少的困难。其中最困扰我的文件操作方面,因为是记录簿程序,所以文件方面用得较多。通过再回去认真的复习一遍相关知识后,终于完成了各个模块的编写。因为这次的程序细分为voidzhku_AddData(void)/*录入数据*/voidwxw_ListData(void)/*显示所有数据*/voidwp_Delete(void)/*做删除标记*/voidwp_Pack(void)/*重置信息*/voidzhku_UpdateData(void)/*修改*/voidSH_Search(void)*7查询*/六个模块,在完成了全部模块的编写后,又一个困扰我的问题出现了-----就是各模块功能完整,到整合在一起组建时却发生了错误。经过半天的排查,发现有些模块用了全局变量,致使程序发生错误。再删除掉全局变量后,程序经过简单的修改又重生了。总的来说,这次实训给了我亲手完成一个简单系统的编写,经过需求分析、系统总框图和功能模块明、系统设计、系统调试等几个流程,让我实实在在地体验了一番写程序的过程。同时也发现自己的水平还很有限,应该再加把劲学习好计算机编程。86源程序清单#includestdio.h//标准输入输出文件包含预处理命令#includestdlib.h#includestring.h//字符串文件包含预处理命令#includeconio.h#includectype.h//包含tolower()的原型typedefstruct{shortzhku_status;charzhku_number[10];charzhku_name[10];charzhku_address[20];}StuType;FILE*fp;voidzhku_AddData(void)/*录入数据*/{chara;StuTypestu;charzhku_tag;stu.zhku_status=0;do{9printf(\n\n\n\n*****按ESC返回主菜单*****\n);printf(\n\n*****按Space确认开始录入信息*****\n);printf(\n\n请输入学生学号:);if((a=getch())==27)return;/*这个函数可以让用户按下任意键而不需要回车就可以接受到用户的输入*/scanf(%s,stu.zhku_number);while(stu.zhku_number==NULL){printf(输入非法,重新输入:);//zhku_tag=getchar();scanf(%s,stu.zhku_number);//while(getchar()!='\n');}printf(\n请输入学生姓名:);scanf(%s,stu.zhku_name);while(stu.zhku_number==NULL){printf(输入非法,重新输入:);//zhku_tag=getchar();scanf(%s,stu.zhku_number);//while(getchar()!='\n');}printf(\n请输入学生籍贯:);while(stu.zhku_number==NULL){printf(输入非法,重新输入:);//zhku_tag=getchar();scanf(%s,stu.zhku_number);//while(getchar()!='\n');10}scanf(%s,stu.zhku_address);fseek(fp,0,SEEK_END);//移动文件内部位置指针fwrite(&stu,sizeof(StuType),1,fp);//将信息存入文件中printf(\n录入成功,继续吗?(y/n):);while(getchar()!='\n');//跳过当前行//zhku_tag=getchar();scanf(%s,&zhku_tag);//大写字母转化为小写字母zhku_tag=tolower(zhku_tag);while(zhku_tag!='y'&&zhku_tag!='n'){printf(输入非法,重新输入(y/n):);while(getchar()!='\n');//zhku_tag=getchar();scanf(%s,&zhku_tag);zhku_tag=tolower(zhku_tag);}}while(zhku_tag=='y');printf(\n\n\n\n*****按ESC返回主菜单*****\n\n\n\n\n\n\n);do{a=getch();}while(a!=27);return;}11voidwxw_ListData(void)/*显示所有数据*/{chara;StuTypestu;stu.zhku_status=0;printf(\n%-15s%-15s%-25s\n,学号,姓名,籍贯);printf(----------------------------------\n);rewind(fp);fread(&stu,sizeof(StuType),1,fp);//读入信息while(!feof(fp))//文件未结束{if(stu.zhku_status==0){printf(%-15s%-15s%-25s\n,stu.zhku_number,stu.zhku_name,stu.zhku_address);}fread(&stu,sizeof(StuType),1,fp);}clearerr/*复位错误标志(清除文件结束标志)*/(fp);printf(\n\n\n\n*****按ESC返回主菜单*****\n\n\n\n\n\n\n);do{a=getch();12}while(a!=27);return;}voidwp_Delete(void)/*做删除标记*/{charelc;chara;StuTypestu;charwp_number[10];printf(\n*****请选择要删除的方式*****\n\n);printf([1].删除个人信息\n\n);printf([2].删除全部信息\n\n);printf(\n\n*****按ESC返回主菜单*****\n);printf(\n*****按Space确认开始功能选择*****\n\n);printf(\n请选择功能:);if((a=getch())==27)return;scanf(%s,&elc);switc
本文标题:C语言程序设计学生籍贯信息记录簿
链接地址:https://www.777doc.com/doc-3262414 .html