getchar(); }
int numstus; int lens;
student *pointer; void main() {
int i=1; char str[2]; lens=100;
pointer=(student *)malloc(lens*LEN); *分配内存* numstus=0;
welcome(); *欢迎界面* while(i>0) {
i=menu_select(); *控制菜单* switch(i) {
case 1:addrecord(pointer);break; *增加学生信息* case 2:findrecord(pointer);break; *查询学生信息* case 3:amendrecord(pointer);break; *修改学生信息* case 4:sort(pointer);break; *学生信息排序* case 5:statistic(pointer);break; *统计信息* case 6:openfile(pointer);break; *打开文件* case 7:writetotext(pointer);break; *保存文件*
case 8:display(pointer,0,numstus-1);break; *显示记录* case 0:
if(numstus!=0) printf(\是否保存当前记录?(yn)\ gets(str);
if(str[0]=='y'||str[0]=='Y') writetotext(pointer); i=-1;break; *退出系统*
default:printf(\请输入数字0~8:\\n\输入错误* } }
printf(\欢迎再次使用本系统。\\n\\n\ display1(); }
3. 修改模块:
[分析]:用户输入要修改学生的学号,根据学生的学号等信息查找学生记录,并提示用户修改该记录的哪部分信息.根据用户选择修改相应的信息. [流程图]:
输入要修改的学号
Y N Y
N [程序]: void xiugai() {
if((fp=fopen(\=NULL) *检查是否出错* {
printf(\exit(0); }
printf(\scanf(\
while((fread(&data,sizeof(data),1,fp))==1) {
j=atoi(data.xuehao); if(j==i) {
printf(\a.nianling);
printf(\gets(data.mingzi);
printf(\gets(temp);data.score[0]=atof(temp); printf(\gets(temp);data.score[1]=atof(temp);
printf(\gets(temp);data.score[2]=atof(temp);
data.score[3]=data.score[0]+data.score[1]+data.score[2]; } fwrite(&data,sizeof(data),1,fp1); }
fseek(fp,0L,0); *将位置指针移到离头文件0个字节处* fseek(fp1,0L,0);
while((fread(&data,sizeof(data),1,fp1))==1) {
fwrite(&data,sizeof(data),1,fp); }
fclose(fp); fclose(fp1); }
4. 删除模块:
[分析]:
该模块的功能是,用户输入要删除的学生的学号,根据学生学号查找记录并删除. [流程图]:
输入要删除的学号
Y N Y
相关推荐: