程序的设计学生籍贯信息记录簿_第1页
程序的设计学生籍贯信息记录簿_第2页
程序的设计学生籍贯信息记录簿_第3页
程序的设计学生籍贯信息记录簿_第4页
程序的设计学生籍贯信息记录簿_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

程序设计报告(2012/2013学年第二学期)题目:学生籍贯信息记录簿专业学生姓名班级学号指导教师指导单位日期评评分项优异优异中等差恪守机房规章制度上机时的表现学习态度程序准备状况程序设计能力团队合作精神课题功能实现状况算法设计合理性用户界面设计报告书写仔细程度容详确程度文字表达娴熟程度回答下列问题正确度简短评语评分等级

教师署名:年代日备评分等级有五种:优异、优异、中等、及格、不及格注学生籍贯信息记录簿一、课题容和要求编制一个学生籍贯信息记录簿,每个学生信息包含:学号、、籍贯。详细功能:1)创立信息链表并以磁盘文件保留;2)读取磁盘文件并显示输出所有学生的籍贯信息;3)按学号或查问其籍贯;4)按籍贯查问并输出该籍贯的所有学生;5)能增添、删除和改正学生的籍贯信息;6)显示输出籍和非籍学生的信息并可分别存盘。二、需求剖析模块1:显示基本信息(创立信息链表并以磁盘文件保留,读取磁盘文件)模块2:输出籍贯信息(显示输出所有学生的籍贯信息)模块3:依据条件查问(按学号或查问其籍贯,按籍贯查问)模块4:输出学生信息(输出该籍贯的所有学生)模块5:基本信息管理(增添、删除和改正学生的籍贯信息)模块6:分别显示存盘(显示输出籍和非籍学生的信息并可分别存盘)模块7:结束程序(退出系统)三、纲要设计四、源程序代码#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>#defineMAX100

//

宏定义最多输入人数typedefstruct{charnum[50];charname[50];charaddress[50];}Student;//定义了一个新的构造体种类StudentStudentstu[MAX];//定义构造体型数组intn;//定义一个全局变量,表示第n个学生intt;ints=0;voidInput();//输入信息voidDisplay();//2.读取最先输入的信息并显示voidReadfile();//读取文件student.dat的信息voidModify(inti);//5.改正第i个学生的和籍贯voidSave1();//将最先输入的容存档到student.dat文件中voidSave2();//传递格式化输出到student.dat文件voidDis();//6.显示输出,非学生信息voidFind(inti);//3.按学号或查问籍贯voidFinds();

//4

按籍贯查找学生voidmain(){charchoose;do{if(s==0){intM=35;printf("欢迎大家进入邮电大学籍贯管理系统\n");s++;}printf("**********************************************************\n");printf("1.输入信息并存档\n");printf("2.读守信息并显示\n");printf("3.按学号或查问籍贯\n");printf("4.按籍贯查问学生\n");printf("5.改正(删除)指定或学号的学生的和籍贯\n");printf("6.显示输出,非学生信息\n");printf("**********************************************************\n");scanf("%s",&choose);switch(choose){case'1':{Input();Save1();}break;case'2':{Readfile();Display();}break;case'3':{Readfile();Find(1);}break;case'4':{Readfile();Finds();}break;case'5':{Readfile();Find(0);}break;case'6':{Readfile();Dis();}break;default:printf("输入错误,请从头输入:\n");}}while(1);}voidSave2(intt)

//

传递格式化输出到

student.dat

文件中{FILE*fp;fp=fopen("student.dat","w");//

以只写的方式翻开

student.dat

文件fprintf(fp,"%s%s%s\n",stu[t].num,stu[t].name,stu[t].address);//

格式化输出:学号地点fclose(fp);}voidInput()

//

输入信息{n=0;do{printf("请输入第%d个学生信息,输入Finish结束输入(输入格式:学号籍贯)\n",n+1);scanf("%s",stu[n].num);if(strcmp(stu[n].num,"Finish")==0)break;scanf("%s",stu[n].name);scanf("%s",stu[n].address);n++;}while(1);}voidSave1()//将最先输入的容存档到student.dat文件中{inti;FILE*fp;if((fp=fopen("student.dat","a+"))==NULL)//fp=fopen("student.dat","w");//for(i=0;i<n;i++){

以读写的方式翻开以只写的方式翻开

文件文件fprintf(fp,"%s%s%s\n",stu[i].num,stu[i].name,stu[i].address);//用格式化输出函数输出容到student.dat}fclose(fp);}voidDisplay()

//2.

读守信息并显示{inti;printf("学号for(i=0;i<n;i++){

籍贯:\n");printf("%5s%5s%5s\n",stu[i].num,stu[i].name,stu[i].address);}}voidFind(intf)

//3.

按学号或查问籍贯{inti;intchoose,k;charans[50];

//

定义字符串型数组,用于查找do{printf("1.

按学号查问

\n");printf("2.

按查找\n");printf("3.返回主菜单\n");scanf("%d",&choose);if(choose==1){printf("请输入学号\n");scanf("%s",ans);k=-1;for(i=0;i<n;i++)if(strcmp(ans,stu[i].num)==0){k=i;break;}if(k==-1)printf("不存在该学生信息\n");else{if(f==1)printf("%s%s%s\n",stu[k].num,stu[k].name,stu[k].address);elseModify(k);//履行改正第t个学生的和籍贯的函数}}elseif(choose==2){printf("请输入\n");scanf("%s",ans);k=-1;for(i=0;i<n;i++)if(strcmp(ans,stu[i].name)==0){k=i;break;}if(k==-1)printf("不存在该学生信息\n");else{if(f==1)printf("%s%s%s\n",stu[k].num,stu[k].name,stu[k].address);elseModify(k);//履行改正第t个学生的和籍贯的函数}}elsereturn;}while(1);}voidModify(intt)//4.改正第t个学生的和籍贯{intchoose;inti;printf("1.删除\n");printf("2.改正\n");scanf("%d",&choose);if(choose==1){for(i=t;i<n-1;i++){stu[i]=stu[i+1];}n--;}else{printf(">>>>请从头输入该学生信息:\n");scanf("%s%s%s",stu[t].num,stu[t].name,&stu[t].address);}Save2(t);//传递修悔过的格式化输出到student.dat文件中}voidReadfile()//读取文本文件student.dat的信息{FILE*fp;if((fp=fopen("student.dat","r"))==NULL)return;//以只读的方式翻开student.dat文件n=0;while(!feof(fp))//判断文件指针能否指向文件结束处{fscanf(fp,"%s%s%s",stu[n].num,stu[n].name,&stu[n].address);//利用fscanf()函数输入信息n++;}fclose(fp);}voidDis()//5.显示输出,非学生信息{inti;printf("学生:\n");printf("学号籍贯\n");for(i=0;i<n;i++){if(strcmp(stu[i].address,"")==0)//比较字符串大小{printf("%s%5s%5s\n",stu[i].num,stu[i].name,stu[i].address);}}printf("\n");printf("\n");printf("非学生:\n");printf("学号籍贯\n");for(i=0;i<n;i++){if(strcmp(stu[i].address,"")!=0){printf("%s%7s%5s\n",stu[i].num,stu[i].name,stu[i].address);}}}voidFinds(){inti,k=-1;intchoose;charans[50];printf("请输入籍贯\n");scanf("%s",ans);for(i=0;i<n;i++)if(strcmp(ans,stu[i].address)==0){k=1;printf("%s%s%s\n",stu[i].num,stu[i].name,stu[i].address);}if(k=-1)printf("无此省份学生信息\n");return;}五、测试数据及其结果剖析截取了调试时的图片,基本切合要求,但而后一些不人性化的地方值得改正。截图如下:此处为录入信息此处为显示和查问信息此处为查问和改正(删除)信息以及显示和非籍贯学生六、调试过程中的问题在录入信息的时候,可能会填错信息,在按了回车以后,不可以立刻回去改正,只好所有录入完以后再选择改正(删除),进行改正,不够人性化。在选择删除以后,没

温馨提示

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

评论

0/150

提交评论