https://www.myziyuan.com/

- 十里八乡
- #include #include #include #define LONG 501 //教室总数 #define SIZE 4 //此常量代表教学楼教室编号宽度 struct shuju //结构体声明 { int BUILDING; int FLOOR; int num; //存放楼编号、楼层 、教室编号 char LESSION; //是否有课标志 int YEAR; char MON; char DAY; char WEEK; }; /**********************************输入函数***********************************/ struct shuju *INPUT(struct shuju *P_CLASS, struct shuju *FIRST) { int M,N; struct shuju *P ; L1: system("cls"); //清屏 printf("******************************大学教室管理系统******************************\n"); printf("******************##############教室输入界面###############*****************\n"); printf("今天是: %d年%d月",FIRST->YEAR,FIRST->MON); printf("%d号 星期",FIRST->DAY); switch(FIRST->WEEK) { case 1:printf("一\n");break; case 2:printf("二\n");break; case 3:printf("三\n");break; case 4:printf("四\n");break; case 5:printf("五\n");break; case 6:printf("六\n");break; case 7:printf("天\n");break; } printf("\n"); printf("\n"); printf("\n"); //显示界面 printf("请输入教室号码、教室使用情况,中间以逗号间隔\n"); printf("\n"); printf("\n"); printf("注:教室号码第一位为教学楼编号,第二位为楼层\n"); printf("有课键入1,没有课则键入0。回车确定;输入0结束\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); L2: while (1) //数据输入 { if ((FIRST-1)->YEAR != 0) printf("第%d间教室:",P_CLASS - FIRST + 2); if ((FIRST-1)->YEAR == 0) printf("第%d间教室:",P_CLASS - FIRST +1); scanf("%d,%d",&P_CLASS->num ,&P_CLASS->LESSION); printf("\n"); if (P_CLASS->num == 0) //输入数据为0? break; //跳出循环 if (SIZE==5)M=10000; if (SIZE==4)M =1000; if(SIZE==3) M = 100; M = P_CLASS->num/M; if (M9) //教室编号不符合格式? { printf("教室长度错误!不等于规定的长度\n按任意键重新输入"); getchar();getchar(); goto L2; } if (P_CLASS->LESSION LESSION >1)//输入错误课程? { printf("数据中的是否有课输入错误!\n按任意键重新输入"); getchar();getchar(); goto L2; } for (P = FIRST; P num == P->num ) //是否有重复数据? { printf("数据中有重复教室号!\n按任意键重新输入!!"); getchar();getchar(); goto L2; } P_CLASS++ ; //指向结构体数组的下一个元素 } if (P_CLASS-FIRST num==0) P_CLASS--; if ((P_CLASS - FIRST) >= LONG) P_CLASS = FIRST; printf("输入完毕!!!!\n"); L3: printf("返回主界面请键入0,重新输入请键入1,修改刚才输入键入2:"); getchar(); //吃掉回车符 scanf("%d",&N); switch (N) { /*重新输入:初始化指向结构体指针, 返回函数体首部重新执行*/ case 1 : { P_CLASS = FIRST ; (FIRST-1)->YEAR = 0; goto L1; }; break; /*修改刚才输入:修改指向结构体指针, 转到数据输入执行*/ case 2 : { printf("请输入你要修改第几间教室:"); scanf("%d",&N); P_CLASS = FIRST + N - 1; (FIRST-1)->YEAR = 0; goto L2; }; break; case 0 : break; //直接跳出,函数结束 default:{ printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!输入错误!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); getchar(); goto L3; } //提示输入错误,重新输入 } return(P_CLASS); } /******************************排序输出函数***********************************/ void OUTPUT(struct shuju *P_CLASS, struct shuju *FIRST) { char B[10]={0},F[10]={0}; struct shuju *P ; struct shuju *Q; int num_num,M,N,I=0; system("cls"); printf("******************************大学教室管理系统******************************\n"); printf("******************##############排序输出界面###############*****************\n"); printf("今天是: %d年%d月",FIRST->YEAR,FIRST->MON); printf("%d号 星期",FIRST->DAY); switch(FIRST->WEEK) { case 1:printf("一\n");break; case 2:printf("二\n");break; case 3:printf("三\n");break; case 4:printf("四\n");break; case 5:printf("五\n");break; case 6:printf("六\n");break; case 7:printf("天\n");break; } printf("\n"); printf("\n"); printf("\n"); //初始化输出界面 if(FIRST->num == 0) //没有任何可显示数据? printf("初始化数据错误,没有任何可以显示的数据!!\n"); if (FIRST->num != 0) { printf("请稍后,排序计算中,键入任意键查看排序结果:"); getchar();getchar(); //########################起泡法进行排序############################## for (P = FIRST; P num > (Q + 1)->num) //相邻两教室比较 { num_num = Q->num; Q->num = (Q + 1)->num; (Q + 1)->num = num_num; } } } for (P = FIRST; P BUILDING = P->num /M; //取教室号码第二位给FLOOR P->FLOOR = (P->num - P->BUILDING*M)/N; } /*************************调整输出界面***************************/ printf("共记录有%d间教室\n",P_CLASS - FIRST + 1);printf("\n"); for(M = 1; MBUILDING==M) B[M] = 1; //如果有该楼号,标志置位 if (B[M]==1) //控制楼编号 { printf("\n");printf("\n");printf("\n");printf("%36d号楼\n",M); for (N = 1;NFLOOR==N && P->BUILDING==M)F[N] = 1; if (F[N]==1) { printf("\n");printf("\n");printf("第%d层:",N); I = 0; for (P =FIRST;P FLOOR==N&& P->BUILDING==M) { I = I + 1; printf("%d",P->num); if (P->LESSION == 1)printf("有课 "); if (P->LESSION == 0)printf("没课 "); if (I % 5 == 0) { printf("\n");printf(" ");}//每行满5个? } } } F[N] = 0; //清零层计数,用于下栋楼显示 } } } } printf("\n"); printf("\n"); printf("\n"); printf("按任意键返回主界面\n"); getchar(); getchar(); } /**********************************保存函数***********************************/ void SAVE(struct shuju *P_CLASS, struct shuju *FIRST) { FILE *FP;char FILENAME[20]; struct shuju *P; system("cls"); printf("******************************大学教室管理系统******************************\n"); printf("******************################保存界面#################*****************\n"); printf("\n"); printf("\n"); printf("\n"); if(FIRST->num == 0) //没有任何可保存的数据? printf("没有任何可以保存的数据!!\n"); if (FIRST->num != 0) { printf("请稍后,数据保存中,请输入文件名:"); scanf("%s",FILENAME); if ((FP = fopen (FILENAME,"w")) == NULL) //只写文本文件 { printf("保存文件失败!!!"); goto S1; } /*开始保存数据到文件*/ fprintf(FP,"一共有%d间教室\n",P_CLASS-FIRST +1);//写入指针长度 for (P = FIRST; P num,P->LESSION); //写入教室号码 fprintf(FP,"%d年%d月",FIRST->YEAR,FIRST->MON); fprintf(FP,"%d日,星期%d",FIRST->DAY,FIRST->WEEK);//写入当前日期 printf("文件保存成功"); fclose (FP); } S1: printf("\n"); printf("\n"); printf("\n"); printf("按任意键返回主界面\n"); getchar(); getchar(); } /**********************************载入函数***********************************/ struct shuju *LOAD( struct shuju *FIRST) { struct shuju *P_CLASS ,*P,*Q;int M;FILE *FP;char FILENAME[20]; LOAD:system("cls"); printf("******************************大学教室管理系统******************************\n"); printf("******************################载入界面#################*****************\n"); printf("\n"); printf("\n"); printf("\n"); printf("请稍后,数据载入中,请输入文件名:"); scanf("%s",FILENAME); if ((FP = fopen (FILENAME,"r")) == NULL) //只读文本文件 { printf("读取文件失败!!!"); getchar(); getchar(); goto LOAD1; } fscanf(FP,"一共有%d间教室\n",&M); P_CLASS = M + FIRST - 1; //恢复结构体数组指针 for (P = FIRST; P num,&P->LESSION); //读取教室号码 fscanf(FP,"%d年%d月",&FIRST->YEAR,&FIRST->MON); fscanf(FP,"%d日,星期%d",&FIRST->DAY,&FIRST->WEEK);//读取日期 if (feof(FP) ==0) { printf("文件读取失败"); getchar(); getchar(); goto LOAD; } for (P = FIRST; P num/M; if (M9) //教室编号不符合格式? { printf("教室长度错误!,不等于规定的长度\n"); printf("\n"); printf("\n"); printf("文件读取失败"); getchar(); getchar(); goto LOAD; } if (P->LESSION LESSION >1)//输入错误课程? { printf("数据中的课输入错误!"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("文件读取失败"); getchar(); getchar(); goto LOAD; } } for (P = FIRST; P num == Q->num ) { printf("数据中有重复教室号!\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("文件读取失败"); getchar(); getchar(); goto LOAD; } if (feof(FP) !=0) printf("文件读取成功"); fclose (FP); LOAD1: printf("\n"); printf("\n"); printf("\n"); printf("按任意键返回主界面\n"); getchar(); getchar(); return(P_CLASS); } void SERCH(struct shuju *P_CLASS, struct shuju *FIRST) { int N; struct shuju *P; M: system("cls");printf("******************************大学教室管理系统******************************\n"); printf("******************################查询界面#################*****************\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("请输入你要查询的教室编号:"); scanf("%d",&N); printf("\n"); printf("\n"); printf("\n"); for (P = FIRST; P num == N) //有相同数据? { if (P->LESSION == 1) printf("%d已经有课了,无法作为自习或者其它用处\n",N); if (P->LESSION == 0) printf("%d没有课,可以使用!\n",N);break;//找到结果? } if(P > P_CLASS) printf("没有找到相应教室!!!\n"); //没找到结果? printf("\n"); printf("\n"); printf("\n"); printf("\n"); M1: printf("继续查询请键入1,返回主界面依然键入0 \n"); scanf("%d",&N); switch (N) { case 1: goto M ;break ; case 0: break ; default:printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!输入错误!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); goto M1; break; } } void MAINDISPLY(struct shuju *FIRST) { printf("******************************大学教室管理系统******************************\n"); printf("******************#################主界面##################*****************\n"); printf("今天是: %d年%d月",FIRST->YEAR,FIRST->MON); printf("%d号 星期",FIRST->DAY); switch(FIRST->WEEK) { case 1:printf("一\n");break; case 2:printf("二\n");break; case 3:printf("三\n");break; case 4:printf("四\n");break; case 5:printf("五\n");break; case 6:printf("六\n");break; case 7:printf("天\n");break; } printf("\n"); printf("\n"); printf("\n"); printf("教室输入 (1)\n"); printf("排序输出 (2)\n"); printf("空教室查询(3)\n"); printf("保存结果 (4)\n"); printf("载入文件 (5)\n"); printf("关闭系统 (0)\n"); printf("\n"); printf("\n"); printf("\n"); } /***********************************主函数************************************/ void main() { struct shuju CLASS[LONG]={0}; //定义结构体数组,长度500; int N; struct shuju *P_CLASS; P_CLASS = &CLASS[1];//指向结构体的数组的指针 printf("大学教室管理系统欢迎您!!!\n"); printf("\n"); printf("\n"); printf("\n"); printf("进入系统前,请先输入今天的日期、星期\n"); printf("\n"); printf("\n"); printf("年:"); scanf("%d",&CLASS[1].YEAR); printf("\n"); printf("月:"); scanf("%d",&CLASS[1].MON); printf("\n"); printf("日:"); scanf("%d",&CLASS[1].DAY); printf("\n"); printf("星期:"); scanf("%d",&CLASS[1].WEEK); printf("\n"); while (1) { if(P_CLASS num !=0) CLASS[0].YEAR = 1; //指针指向有数据? if (P_CLASS->num ==0) CLASS[0].YEAR = 0; //指针指向空数据? system("cls"); MAINDISPLY(&CLASS[1]); //清屏,然后显示主界面 printf("请输入操作代码:"); scanf("%d",&N); switch (N) { case 1 : P_CLASS = INPUT(P_CLASS ,&CLASS[1]); break; case 2 : OUTPUT (P_CLASS ,&CLASS[1]); break; case 3 : SERCH (P_CLASS ,&CLASS[1]); break; case 4 : SAVE (P_CLASS ,&CLASS[1]); break; case 5 : P_CLASS = LOAD (&CLASS[1]); break; case 0 : exit(0); break; default: printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!输入错误!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");getchar();getchar(); //提示输入错误 } } }
- 2022-01-06 17:27:18
- 网站模板素材下载
- 新项目“控制台项目是控制台程序控制台程序通常用于不需要图形界面的Windows平台程序。
- 2022-01-06 17:26:06

- 区块链
- vc学生成绩管理系统,printf("请输入您需要的功能选项:");scanf("%d",&select);int i;char c;char id[20],password[20];admin();printf("\n\t\t请输入用户名:");fflush(stdin);gets(id);printf("\t\t 请输入密码:");fflush(stdin);while((c=getch())!='\r') //密码回显为'*'号{password[i++]=c;putchar('*');}password[i]='\0';if((strcmp(id,"yanjie")==0) && (strcmp(password,"123456")==0)){printf("\n\t\t你已成功登录!\n");do{system("cls");switch(select){case 1:displayData();break;case 2:addData();break;case 3:updateData();break;case 4:deleteData();break;case 5:selectData();break;case 0:exit(0);default:printf("\n\t\t您的输入有误!\n\n");printf("\t\t按任意键继续...\n");getch();fflush(stdin);mainFrame();}}while(select 7);}elseprintf("\n帐号或密码错误!");}void print_h(){printf("\n\t 学号\t姓 名\t语 文\t数 学\t英 语\t总 分\t平均分\n");}void addData(){system("cls");char flag;do{fflush(stdin);printf("\n\n\t\t请输入学员的编号:");scanf("%d",&stu[count].stuNo);printf("\t\t请输入学员的姓名:");fflush(stdin);gets(stu[count].stuName);printf("\t\t请输入语文成绩:");fflush(stdin);scanf("%f",&stu[count].ChineseScore);printf("\t\t请输入数学成绩:");scanf("%f",&stu[count].MathsScore);printf("\t\t请输入英语成绩:");scanf("%f",&stu[count].EnglishScore); stu[count].totalScore=stu[count].ChineseScore+stu[count].MathsScore+stu[count].EnglishScore;stu[count].avgScore = (float(stu[count].totalScore)/3);printf("\t\t是否继续输入?(Y/N):");fflush(stdin);flag = getchar();writeFileA(count);count ++;printf("\n");}while(flag == 'y' || flag == 'Y');mainFrame();}void writeFileA(int i){FILE *fp;if((fp = fopen("student.txt","a+"))==NULL){printf("文件打开失败!\n");exit(0);}fprintf(fp,"%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].stuNo,stu[i].stuName,stu[i].ChineseScore,stu[i].MathsScore,stu[i].EnglishScore,stu[i].totalScore,stu[i].avgScore);fclose(fp);}void displayData(){FILE * fp;if((fp=fopen("student.txt","r+"))==NULL){printf("文件打开失败!\n");exit(0);}count = 0;while(!feof(fp)){fscanf(fp,"%d%s%f%f%f%f%f",&stu[count].stuNo,stu[count].stuName,&stu[count].ChineseScore,&stu[count].MathsScore,&stu[count].EnglishScore,&stu[count].totalScore,&stu[count].avgScore);stu[count].totalScore=stu[count].ChineseScore+stu[count].MathsScore+stu[count].EnglishScore;stu[count].avgScore = (float(stu[count].totalScore)/3);count++;}fclose(fp);count--;system("cls");print_h();for(int i=0;i
- 2022-01-06 17:26:06