求教高手流程图问题~~~
#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");}这个程序的总流程图和子流程图,我画的太简单了,不是计算机专业的,实在很头疼,愿哪位热心的朋友帮帮我,十分的感激!!!!
大致看了一下是用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()---就显示成功退出和再见等信息。
时间有限写得比较简单,特别是后面,有点基础应该能看懂了,我漏掉的,自己再补充一下。
问:自考疑问俺对自考一无所知,有热心的朋友帮帮我吧,给我指点一下迷津,选什么专业比较好考一点?
答:选择专业首先要你喜欢的专业,这样可以提高学习的积极性。其次要选择就业面广的专业,这样以后找工作容易。最后要结合自己的实际情况,选择专科还是本科作为起点。详情>>
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>