爱问知识人 爱问教育 医院库

求教高手流程图问题~~~

首页

求教高手流程图问题~~~

#include<stdio.h>#include<conio.h>#include<math.h>#include<string.h>#include<ctype.h>voidsave();voidload();voidfun1();voidfun2();voidfun3();voidfun4();voidfun5();voidfun6();intmenu_select();structstudent{charname[20];charaddress[30];charmajor[30];charchangemajor[30];intscore;inttuition;intdormitory;intSCHnum;intk;}stu[10];voidload(){FILE*fp;inti;if((fp=fopen("fresh.dat","rb"))==NULL){printf("cannotopeninfile\n");return;}for(i=0;i<5;i++)if(fread(&stu[i],sizeof(structstudent),1,fp)!=1){if(feof(fp)){fclose(fp);return;}printf("filereaderror\n");}fclose(fp);}voidsave(){FILE*fp;inti;if((fp=fopen("fresh.dat","wb"))==NULL){printf("cannotopenfile\n");return;}for(i=0;i<5;i++)if(fwrite(&stu[i],sizeof(structstudent),1,fp)!=1)printf("filewriteerror\n");fclose(fp);}main(){intw=0;clrscr();load();while(1){switch(menu_select()){case1:{fun1();w=1;}break;case2:{fun2();w=1;}break;case3:{fun3();w=1;}break;case4:{fun4();w=1;}break;case5:{fun5();w=1;}break;case6:fun6();exit(0); ("\n\t\terror!\n");}}}menu_select(){chars[80];charc;clrscr();printf("\nWelcometousethesystem!");printf("\n=================================================");printf("\n1.XINSHENGXINXI.");printf("\n2.XINSHENGBAODAO.");printf("\n3.WEIDAOXUESHENG.");printf("\n4.ZHUANZHUANYEXUESHENG.");printf("\n5.ZONGFENPAIXUN.");printf("\n6.Quit.");printf("\n=================================================");do{printf("\n\nPleaseselect(1--6):");gets(s);c=atoi(s);}while(c<0||c>6);returnc;}voidfun1(){inti;printf("WELCOMTOTHISSYSTOM\n");printf("PLEASEINPUTTHENEWSOFTHESTUDENT\n");for(i=0;i<2;i++){printf("\nNAME:");scanf("%s",stu[i].name);printf("\nSCHOOLNUMBER:");scanf("%s",stu[i].SCHnum);printf("\nADDRESS:");scanf("%s",stu[i].address);printf("\nCHANGEMAJOR:");scanf("%s",stu[i].changemajor);printf("\nMAJOR:");scanf("%s",stu[i].major);printf("\nSCORE:");scanf("%d",&stu[i].score);printf("\nTUITION:");scanf("%d",&stu[i].tuition);printf("\nDORMITORY:");scanf("%d",&stu[i].dormitory);stu[i].k=0;};save();}voidfun2(){FILE*p;charch1[10];charch2[30];intn,i=0;printf("WELCOMETOSYSTOMOFBAODAO!\n");printf("PLEASEINPUTYOURMESSAGE:\n");printf("\nNAME:");scanf("%s",ch1);for(i=0;i<2;i++){fread(&stu[i],sizeof(structstudent),1,p);if(strcmp(ch1,stu[i].name)==0||strcmp(ch1,stu[i].name)){printf("WELCOMTOHANGKONGXUEYUAN!\n");stu[i].k=1;save();}}}voidfun3(){inti;printf("NONECOMESTUDENTSTHNUMFOLLOWING:\n");for(i=0;i<2;i++){if(stu[i].k==0){printf("%d",stu[i].SCHnum);printf("%s\n",stu[i].name);}}getch();}voidfun4(){inti;printf("EXCHANGMAGORSTUDENTSTHNUMFOLLOWING:");for(i=0;i<2;i++){if(strcmp(stu[i].major,stu[i].changemajor)!=0){printf("%s",stu[i].SCHnum);printf("%s\n",stu[i].name);}}}voidfun5(){inti,j;structstudentteam;printf("STUDENTSCOREORDER(UP):");for(i=0;i<2;i++)for(j=i+1;j<2;j++){if(stu[i].score>=stu[j].score){team=stu[i];stu[i]=stu[j];stu[j]=team;}}for(i=0;i<2;i++)printf("%s%d\n",stu[i].name,stu[i].score);}voidfun6(){printf("**************************************************\n");printf("********************************************\n");printf("**SUCCESSINQUITSYSTEM**\n");printf("********************************************\n");printf("**GOODBYE!!!**\n");printf("********************************************\n");printf("**************************************************\n");}这个程序的总流程图和子流程图,我画的太简单了,不是计算机专业的,实在很头疼,愿哪位热心的朋友帮帮我,十分的感激!!!!

提交回答
好评回答
  • 2006-04-08 14:37:06
      大致看了一下是用C语言写的学生记录表,
        程序运行先清除屏幕显示[clrscr();],
        调用load()过程,---该过程是以只读方式打开学生记录文件fresh。dat,有一判断跟据返回参数是否等于空[NULL]是则会显示找不到该文件[printf("cannot open infile\n");]该过程还会将fresh。
      dat的数据赋值给stu[i];这个数据结构数组,如果赋值错误则显示读取错误[printf("file read error\n");]。 接着调用menu_select()过程---该过程先清除屏幕显示[clrscr();],再输出显示6个选项,等待输入数字1到6作为过程返回参数,6个选项分别是1。
      新生信息[1。 XIN SHENG XIN XI],2。新生报道[2。 XIN SHENG BAO DAO],3。未到新生[3。 WEI DAO XUE SHENG],4。转专业学生[4。 ZHUAN ZHUAN YE XUE SHENG],5。
      总分排序[5。 ZONG FEN PAI XUN],6。退出[6。Quit]。 接着多选择判断语句while()判断menu_select()返回的你选择的数字。选择1就调用过程void fun1(),2就调用void fun2()。
      。。。。6就调用void fun6()。如果没有选择数字1到6就输出错误的信息[printf("\n\t\t error ! \n");] 过程void fun1()---调用数据结构数组stu[i]的参数,在前面显示输入提示后面等待你输入信息才运行到下一个输入提示,共有8个输入项分别是,姓名、学号、地址、转修主修课、主修课、学分、学费、宿舍。
      输完调用过程save();---该过程以写的方式打开学生记录文件fresh。dat,其他同load()过程。 过程void fun2()---就是显示欢迎一类的话,然后提示输入姓名,等待输入姓名,输入姓名以后,将数据结构数组stu[i]的参数stu[i]。
      k=1表示为已报到,调用save()过程保存stu[i]参数, 过程void fun3()---用循环语句逐个检查据结构数组stu[i]的参数k是否为0将为0的学号和姓名列出。 过程void fun4()---用循环语句逐个比较据结构数组stu[i]的参数转修主修课主修课是否相同,不同学号和姓名列出。
       过程void fun5()---用循环嵌套用每个学生的记录stu[i]的参数学分与其他学生的stu[j]的参数学分比较是否大是的通过变量team交换stu[i]的数组序号,从小到大排。 过程void fun6()---就显示成功退出和再见等信息。
       时间有限写得比较简单,特别是后面,有点基础应该能看懂了,我漏掉的,自己再补充一下。

    海***

    2006-04-08 14:37:06

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 171-190
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):