长春大学课程设计纸共14页第1页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊一、设计目的通过对高级语言程序设计课程设计的学习,来验证自身的学习效果,同时希望利用所学的基本知识和技能,进行简单的C语言程序设计。希望通过项目实践,熟悉巩固所学知识,以使自己熟练掌握高级语言程序设计,为日后学习计算机科学技术的专业知识能有进一步深入了解,奠定基础。二、设计内容1、问题描述:设计一个学生信息管理系统设计。学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。2、功能要求:1、系统以菜单方式工作2、学生信息录入功能(学生信息用文件保存)--输入3、学生信息浏览功能--输出4、学生信息查询功能--算法按学号查询按姓名查询5、学生信息的删除与修改(可选项)三、详细设计1、菜单:voidmenu(){}2、建立信息:voidreadfile(){}3、查找:voidseek(){}4、修改信息:voidmodify(){}5、插入函数:voidinsert(){}6、删除信息:voiddel(){}7、浏览信息:长春大学课程设计纸共14页第2页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊voiddisplay(){}8、保存:voidsave(){}四、调试与测试1、系统功能菜单2、选择菜单“0”,进入系统帮助及说明功能长春大学课程设计纸共14页第3页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊3、选择菜单“4”,添加学生信息(1)输入增加人数(2)依次输入学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail长春大学课程设计纸共14页第4页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊(3)录入完毕,弹出菜单4、选择菜单“3”,修改学生信息:输入被修改者学号长春大学课程设计纸共14页第5页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊(1)选择子菜单“1,修改姓名(2)选择子菜单“2”,修改年龄(3)选择子菜单“3”,修改性别(4)选择子菜单“4”,修改出生年月(5)选择子菜单“5”,修改地址(6)选择子菜单“6”,修改电话(7)选择子菜单“7”,修改E-mail5、选择菜单“2”,查询学生信息长春大学课程设计纸共14页第6页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊(1)选择子菜单“1”,按学号查询(2)选择子菜单“2”,按姓名查询(3)选择子菜单“3”,退出子菜单,弹出主菜单长春大学课程设计纸共14页第7页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊6、选择菜单“6”,显示当前信息7、选择菜单“5”,按学号删除信息(1)输入要删除的学生学号(2)再次输入“6”,确认是否删除该学生信息五、源程序清单源程序代码如下#includestdio.h#includestdlib.h#includestring.h#defineBUFLEN100#defineLEN15#defineN100structrecord{长春大学课程设计纸共14页第8页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊charcode[LEN+1];charname[LEN+1];intage;charsex[3];chartime[LEN+1];charadd[30];chartel[LEN+1];charmail[30];}stu[N];intk=1,n,m;voidreadfile();voidseek();voidmodify();voidinsert();voiddel();voiddisplay();voidsave();voidmenu();intmain(){while(k)menu();system(pause);return0;}voidhelp(){printf(\n0.欢迎使用系统帮助!\n);printf(\n1.进入系统后,先刷新学生信息,再查询;\n);printf(\n2.按照菜单提示键入数字代号;\n);printf(\n3.增加学生信息后,切记保存按;\n);printf(\n4.谢谢您的使用!\n);}voidreadfile(){char*p=student.txt;FILE*fp;inti=0;if((fp=fopen(student.txt,r))==NULL){printf(Openfile%serror!Strikeanykeytoexit!,p);system(pause);exit(0);}while(fscanf(fp,%s%s%d%s%s%s%s%s,stu[i].code,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8){i++;i=i;}长春大学课程设计纸共14页第9页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊fclose(fp);n=i;printf(录入完毕!\n);}voidseek(){inti,item,flag;chars1[21];printf(------------------\n);printf(-----1.按学号查询-----\n);printf(-----2.按姓名查询-----\n);printf(-----3.退出本菜单-----\n);printf(------------------\n);while(1){printf(请选择子菜单编号:);scanf(%d,&item);flag=0;switch(item){case1:printf(请输入要查询的学生的学号:\n);scanf(%s,s1);for(i=0;in;i++)if(strcmp(stu[i].code,s1)==0){flag=1;printf(学生学号学生姓名年龄性别出生年月地址电话E-mail\n);printf(--------------------------------------------------------------------\n);printf(%6s%7s%6d%5s%9s%8s%10s%14s\n,stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);}if(flag==0)printf(该学号不存在!\n);break;case2:printf(请输入要查询的学生的姓名:\n);scanf(%s,s1);for(i=0;in;i++)if(strcmp(stu[i].name,s1)==0){flag=1;printf(学生学号学生姓名年龄性别出生年月地址电话E-mail\n);printf(--------------------------------------------------------------------\n);printf(%6s%7s%6d%5s%9s%8s%10s%14s\n,stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);}if(flag==0)printf(该姓名不存在!\n);break;长春大学课程设计纸共14页第10页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊case3:return;default:printf(请在-3之间选择\n);}}}voidmodify(){inti,item,num;charsex1[3],s1[LEN+1],s2[LEN+1];printf(请输入要要修改的学生的学号:\n);scanf(%s,s1);for(i=0;in;i++)if(strcmp(stu[i].code,s1)==0)num=i;printf(------------------\n);printf(1.修改姓名\n);printf(2.修改年龄\n);printf(3.修改性别\n);printf(4.修改出生年月\n);printf(5.修改地址\n);printf(6.修改电话号码\n);printf(7.修改E-mail地址\n);printf(8.退出本菜单\n);printf(------------------\n);while(1){printf(请选择子菜单编号:);scanf(%d,&item);switch(item){case1:printf(请输入新的姓名:\n);scanf(%s,s2);strcpy(stu[num].name,s2);break;case2:printf(请输入新的年龄:\n);scanf(%d,&stu[num].age);break;case3:printf(请输入新的性别:\n);scanf(%s,sex1);strcpy(stu[num].sex,sex1);break;case4:printf(请输入新的出生年月:\n);scanf(%s,s2);strcpy(stu[num].time,s2);break;case5:printf(请输入新的地址:\n);scanf(%s,s2);长春大学课程设计纸共14页第11页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊strcpy(stu[num].add,s2);break;case6:printf(请输入新的电话号码:\n);scanf(%s,s2);strcpy(stu[num].tel,s2);break;case7:printf(请输入新的E-mail地址:\n);scanf(%s,s2);strcpy(stu[num].mail,s2);break;case8:return;default:printf(请在-8之间选择\n);}}}voidsort(){inti,j,*p,*q,s;chartemp[10];for(i=0;in-1;i++){for(j=n-1;ji;j--)if(strcmp(stu[j-1].code,stu[j].code)0){strcpy(temp,stu[j-1].code);strcpy(stu[j-1].code,stu[j].code);strcpy(stu[j].code,temp);strcpy(temp,stu[j-1].name);strcpy(stu[j-1].name,stu[j].name);strcpy(stu[j].name,temp);strcpy(temp,stu[j-1].sex);strcpy(stu[j-1].sex,stu[j].sex);strcpy(stu[j].sex,temp);strcpy(temp,stu[j-1].time);strcpy(stu[j-1].time,stu[j].time);strcpy(stu[j].time,temp);strcpy(temp,stu[j-1].add);strcpy(stu[j-1].add,stu[j].add);strcpy(stu[j].add,temp);strcpy(temp,stu[j-1].tel);strcpy(stu[j-1].tel,stu[j].tel);strcpy(stu[j].tel,temp);strcpy(temp,stu[j-1].mail);strcpy(stu[j-1].mail,stu[j].mail);strcpy(stu[j].mail,temp)