1. 学生学籍信息管理系统设计
[要求]
使用下面的数据设计一个简单的学籍管理系统。 学生基本信息文件(A.TXT)极其内容: 学号 姓名 性别 宿舍号码 电话号码 01 张成成 男 501 87732111 02 李成华 女 101 87723112 03 王成凤 女 101 87723112 04 张明明 男 502 87734333 05 陈东 男 501 87732111 06 李果 男 502 87734333 07 张园园 女 102 87756112
学生成绩基本信息文件(B.TXT)极其内容:
.....................................................................................................................
学号 课程编号 课程名称 学分平时成绩 实验成绩 卷面成绩 综合成绩 实得学分 01 A01 大学物理 3 66 78 82 02 B03 高等数学 4 78 -1 90 01 B03 高等数学 4 45 -1 88 02 C01 VF 3 65 76 66
................................................................................................................ 功能要求极其说明:
(1)数据录入功能:录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据。实得成绩、实得学分根据条件自动运算。 综合成绩的计算:
a.如果本课程的实验成绩为-1,则表无实验成绩,综合成绩=平时成绩*30%+卷面成绩*70%
b.如果实验成绩不为-1,表示本课程有实验成绩,综合成绩=平时成绩*15%+实验成绩*15%+卷面成绩*70%
实得学分的计算:采用等级学分制。
综合成绩在90~100之间,应得学分=学分*100% 综合成绩在80~90之间,应得学分=学分*80% 综合成绩在70~80之间,应得学分=学分*75% 综合成绩在60~70之间,应得学分=学分*60% 综合成绩在60分以下,应得学分=学分*0%
(2)查询功能:分为学生基本情况查询和成绩查询两种 学生基本情况查询:
输入一个学号或姓名(可实现选择)查出此学生的基本信息并显示输出。 输入一个宿舍号码,可查出本室所有学生的基本信息并显示输出。 称号查询:
输入一个学号时,查出此学生所有课程情况,格式如下: 学号:XX 课程名称:XXXX综合成绩:XX实得学分:XXX ...............................................................................
1
共修:X科,实得总分为:XXX
(3)删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此学生所有信息。
(4)排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。 [提示]
数据结构采用结构体数组,提供学生基本信息和学生成绩基本信息结构体数组。
二 需求分析
根据题目要求,该程序应具备的功能有:
(1)数据录入功能:录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据。实得成绩、实得学分根据条件自动运算。 (2)查询功能:分为学生基本情况查询和成绩查询两种
(3)删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此学生所有信息。 (4)排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。
三 程序总体设计
2
学生学籍信息管理系统 MENU(菜单) 数据录入功能模块查询功能模块删除功能模块排序功能模块退出 查询功能模块查询功能模块按学分升序排列按学分降序排列按综合成绩升序排列按综合成绩降序排列 四 程序详细设计
⒈主函数
主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。 [流程图]
显示一系列功能选项输入n,判断n是否是1--5 根据n的值调用个功能模块函[程序]
void main() { while(1) {
clrscr(); /*清屏幕*/
gotoxy(1,1); /*移动光标*/
textcolor(BLACK); /*设置文本显示颜色为黄色*/ textbackground(GREEN); /*设置背景颜色为蓝色*/
window(1,1,99,99); /* 制作显示菜单的窗口,大小根据菜单条数设计*/ clrscr();
printf(\"\\n<<<<<<<<<<<<< printf(\"* ========================================================= * \\n\"); printf(\"* 1>input 2>cha zhao * \\n\"); printf(\"* 3>delete 4>paixu xianshi * \\n\"); printf(\"* 5>exit * \\n\"); printf(\"* * \\n\"); printf(\"* --------------------------------------------------------- * \\n\"); printf(\" Please input which you want(1-5):\"); ch=getch(); switch(ch) { case '1':input();break; case '2':search(); getch();break; case '3':delete();getch(); break; 3 case '4':sort(); getch();break; case '5':exit(0); default: continue; } } } ⒉个功能模块设计 ⑴数据录入。 [数据结构] 我们需要录入的信息数据有两类:一类是学生基本信息,包括学号,学号 姓名 性别 宿舍号码 电话号码,存放在文件S_INFO.TXT中。另一类信息是学生成绩基本信息,包括学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据。实得成绩、实得学分根据条件自动运算。 这些信息存放在文件S_SCORE.TXT中。 学生基本信息的存放格式为: struct info { int sMingci; //名次 char xuehao[8]; char name[10]; char sex[2]; char d_num[4]; //宿舍号码 char tel_num[9]; //宿舍电话号码 }data,s_info[100]; 成绩基本信息的存放格式为: struct course { char xuehao[8]; char course_No[6]; //课程代号 char course_name[10]; //课程名字 float xuefen; //学分 float p_chengji; //平时成绩 float s_chengji; //实验成绩 float j_chengji; //卷面成绩 float z_chengji; //综合成绩 float s_xuefen; //实际学分 }course_data,s_course[100]; [需求分析] 数据录入模块的功能是用户通过输入选项在基本信息和成绩信息的输入之间进行选择。 [程序] void input() { while(1) 4 { printf(\"\\nwhich information do you want to input: b(base) s(socre) e(exit)\"); ch=getch(); if(ch=='b'||ch=='B') { if((fp=fopen(\"s_info.txt\ { printf(\"cannot open this file.\\n\"); getch();exit(0); } printf(\"\\nPlease input xuehao:\"); gets(sn); while((fread(&data,sizeof(data),1,fp))==1) { if(strcmp(sn,data.xuehao)==0) { flag=1; } } if(flag==1) { printf(\"\\n the number has exist,press ang key continue:\\n\"); flag=0; getch(); continue; } else { strcpy(data.xuehao,sn); } printf(\"Please input name:\"); gets(data.name); printf(\"Please input sex:M(male)/F(female):\\n\"); gets(data.sex); printf(\"Please input your dormitory No:\"); gets(data.d_num); 5 printf(\"Please input telephone Number:\"); gets(data.tel_num); fwrite(&data,sizeof(data),1,fp); //写入数据 fclose(fp); } //if else if(ch=='s'||ch=='S') { if((fp1=fopen(\"s_score.txt\ { printf(\"cannot open this file.\\n\"); getch();exit(0); } printf(\"\\nPlease input xuehao:\"); gets(sn); while((fread(&data,sizeof(data),1,fp))==1) { if(strcmp(sn,data.xuehao)==0) { flag=1; } } if(!flag) { printf(\"\\nthis number is not exist\\n\"); continue; } else { flag=0; strcpy(course_data.xuehao,sn); } printf(\"\\nPlease input course No:\"); gets(course_data.course_No); printf(\"\\nPlease input course name:\"); gets(course_data.course_name); printf(\"\\nPlease input course xuefeng:\"); gets(temp); course_data.xuefen=atof(temp); printf(\"\\nPlease input pingshi chengji:\"); gets(temp); 6 course_data.p_chengji=atof(temp); printf(\"\\nPlease input shiyan chengji:\"); gets(temp); course_data.s_chengji=atof(temp); printf(\"\\nPlease input juanmian chengji:\"); gets(temp); course_data.j_chengji=atof(temp); //以下是综合成绩计算 if(course_data.s_chengji==-1) //如果有实验 { course_data.z_chengji=(course_data.p_chengji)*0.3+(course_data.j_chengji)*0.7; } else //如果无实验 { course_data.z_chengji=(course_data.p_chengji)*0.15+(course_data.s_chengji)*0.15+(course_data.j_chengji)*0.7; } //以下是实际学分计算 if((course_data.z_chengji)<60) {course_data.s_xuefen=0;} else if((course_data.z_chengji)<70) {course_data.s_xuefen=course_data.xuefen*0.6;} else if((course_data.z_chengji)<80) {course_data.s_xuefen=course_data.xuefen*0.75;} else if((course_data.z_chengji)<90) {course_data.s_xuefen=course_data.xuefen*0.8;} else {course_data.s_xuefen=course_data.xuefen; } fwrite(&course_data,sizeof(course_data),1,fp1); //写入数据 fclose(fp1); fclose(fp); } //else if else {break; 7 } printf(\"another?y/n\"); ch=getch(); if(ch=='n'||ch=='N') break; } } //input ⑵查询功能模块。 [需求分析] 该模块的功能分为学生基本情况查询和成绩查询两种。学生基本情况查询是根据输入的学号或姓名查出此学生的基本信息并显示输出;或者根据输入的宿舍号码,查出本室所有学生的基本信息并显示输出。成绩查询的功能是根据输入的学号,查出此学生的所有课程情况。 [流程图] 选择基本信息查询还是成绩查询 a/A b/B 学生基本情况查询 学生成绩查询 输入学号 选择根据学号,姓名,宿舍号码查找 根据选择,输入学号/姓名/宿舍号码 是否找到 信息 是否找到 信息 显示找到的信息 提示没找到,按任意键继续 显示找到的信息 提示没找到,按任意键继续 [程序] void search() { printf(\"\\n select form: a(student information) b(socre information)\"); ch=getch(); if(ch=='a'||ch=='A') { if((fp=fopen(\"s_info.txt\ { printf(\"\\nCannot open this file.\\n\"); exit(0); } 8 printf(\"\\nselectway: a(student Number) b(student name) c(dormitory NO):\\n\"); ch1=getch(); //按照学号查找 if(ch1=='a'||ch1=='A') { printf(\"\\nplease input the student number:\"); gets(temp_NO); printf(\" xuehao name sex sushe hao telephone \"); printf(\"\\n------------------------------------------------------------------------------\\n\"); while((fread(&data,sizeof(data),1,fp))==1) { if(strcmp(temp_NO,data.xuehao)==0) { flag=1; printf(\"\\n%8s%10s%12s%14s%20s\\n\um); } } if(!flag) { printf(\"\\nthis number is not exist,press any key to continue\\n\"); getch(); } else { flag=0; } } //按照名字查找 else if(ch1=='b'||ch1=='B') { printf(\"\\nplease input the name:\"); gets(temp_name); printf(\" xuehao name sex sushe hao telephone \"); printf(\"\\n------------------------------------------------------------------------------\\n\"); while((fread(&data,sizeof(data),1,fp))==1) 9 { if(strcmp(temp_name,data.name)==0) { flag=1; printf(\"\\n%8s%10s%12s%14s%20s\\n\um); } } if(!flag) { printf(\"\\nthis name is not exist,press any key to continue:\\n\"); getch(); } else { flag=0; } } //按照宿舍号码查找 else if(ch1=='c'||ch1=='C') { printf(\"\\nplease input the dormitory number:\"); gets(temp_dnum); printf(\" xuehao name sex sushe hao telephone \"); printf(\"\\n------------------------------------------------------------------------------\\n\"); while((fread(&data,sizeof(data),1,fp))==1) { if(strcmp(temp_dnum,data.d_num)==0) { flag=1; printf(\"\\n%8s%10s%12s%14s%20s\\n\um); } if(!flag) { printf(\"this dormitory is not exist,press any key continue:\"); getch(); } else { flag=0; } } 10 } if } else { printf(\"\\nselect error\\n\"); } fclose(fp); //ch //学生成绩查找 else if(ch=='b'||ch=='B') { j=0; z_fen=0; z_xuefen=0; if((fp1=fopen(\"s_score.txt\ { printf(\"\\nCannot open this file.\\n\"); exit(0); } printf(\"\\nplease input student number:\"); gets(temp_NO); printf(\" xuehao course_No course_name xuefen chengji \"); printf(\"\\n------------------------------------------------------------------------------\\n\"); while((fread(&course_data,sizeof(course_data),1,fp1))==1) { if(strcmp(temp_NO,course_data.xuehao)==0) { flag=1; j++; z_fen=z_fen+course_data.z_chengji; z_xuefen=z_xuefen+course_data.s_xuefen; printf(\"\\n%10s%10s%10s%15.1f %18.1f\\n\No,course_data.course_name,course_data.s_xuefen,course_data.z_chengji); } } if(!flag) { printf(\" is not exist\"); 11 } else { flag=0; } printf(\"\\n------------------------------------------------------------------------------\\n\"); printf(\" z_gong:%3d ke z_xuefen:%3.1f z_cheng ji:%6.1f\ } else { printf(\"error \"); } fclose(fp1); } ⑶删除功能模块。 [需求分析]该模块的功能是当在学生基本信息文件中删除一个学生时,自动在成绩信息文件中删除此人的所有信息。 [流程图] 输入学号 在基本信息Y N 文件中是否 找到信息 删除该学生信息 提示没找到 在成绩信息文件中查找该学生退出 Y N 是否找到信 息 删除该学生信息 提示没找到 提示删除成功 退出 12 [程序] void delete() { printf(\"\\ninput the number of student you want to delete:\"); gets(temp_NO); if((fp1=fopen(\"s_score.txt\(\"temp.txt\ { printf(\"cannot open this file.\\n\"); getch();exit(0); } while((fread(&data,sizeof(data),1,fp))==1) { if(strcmp(temp_NO,data.xuehao)!=0) fwrite(&data,sizeof(data),1,fp2); } remove(\"s_info.txt\"); rename(\"temp.txt\ fclose(fp); fclose(fp2); if((fp1=fopen(\"s_score.txt\ { printf(\"cannot open this file.\\n\"); getch();exit(0); } while((fread(&course_data,sizeof(course_data),1,fp1))==1) { if(strcmp(temp_NO,course_data.xuehao)!=0) fwrite(&course_data,sizeof(course_data),1,fp2); } remove(\"s_score.txt\"); rename(\"temp.txt\ fclose(fp1); fclose(fp2); printf(\"\\n delete successful\"); } 13 ⑷排序功能模块。 [需求分析] 该模块的功能是能实现选择根据综合成绩或实得学分升序或降序排序显示数据。 [流程图] 输入要排序的课程名称 是否找到 该课程 Y N 选择排序根据:根据学分还是综合成绩 提示没找到 选择排序方法:升序还是降序 退出 根据选择对数据进行排序显示 [程序] void sort() { printf(\"\\nplease input course number:\"); gets(tempcn); if((fp1=fopen(\"s_score.txt\ { printf(\"cannot open this file.\\n\"); getch();exit(0); } i=0; while((fread(&course_data,sizeof(course_data),1,fp1))==1) { if(strcmp(tempcn,course_data.course_No)==0) { s_course[i]=course_data; i++; flag=1; } } if(!flag) { printf(\"\\nno such course\\n\"); 14 } else { flag=0; printf(\"\\nplease select way : a(xuefen) b(zhong he cheng ji)\\n\"); ch=getch(); printf(\"\\nselect: s(sheng xu) j(jiang xu)\"); ch1=getch(); if(ch=='a'||ch=='A') { //升序排列 if(ch1=='s') { for(j=0;j printf(\"\\n%6s%10s%16s%13.1f%13.1f\\n\e[j].course_name,s_course[j].s_xuefen,s_course[j].z_chengji); } } //降序排列 else { for(j=0;j } //ch if else if(ch=='b'||ch=='B') { //升序排列 if(ch1=='s'||ch1=='S') { for(j=0;j { for(k=j;kprintf(\"\\n----------------------------------------------------------------\\n\"); for(j=0;j五 上机操作 编译、连接和运行 下面是运行后各个模块的界面图: 18 1 主菜单函数 2 数据录入功能 3 查询功能 (1)学生基本信息查询 19 (2)学生成绩查询 4 删除功能 20 5 排序功能 (1)按学生学分升序排列 (2)按学生学分降序排列 (3)按学生综合成绩升序排列 21 (4)按学生综合成绩降序排列 附录一 源程序: 22 #include \"stdio.h\" /*I/O函数*/ #include \"stdlib.h\" /*其它说明*/ #include \"string.h\" /*字符串函数*/ #include \"conio.h\" /*屏幕操作函数*/ #include \"mem.h\" /*内存操作函数*/ #include \"ctype.h\" /*字符操作函数*/ #include \"alloc.h\" /*动态地址分配函数*/ struct course { char xuehao[8]; char course_No[6]; //课程代号 char course_name[10]; //课程名字 float xuefen; //学分 float p_chengji; //平时成绩 float s_chengji; //实验成绩 float j_chengji; //卷面成绩 float z_chengji; //综合成绩 float s_xuefen; //实际学分 }course_data,s_course[100]; struct info { int sMingci; //名次 char xuehao[8]; char name[10]; char sex[2]; char d_num[4]; //宿舍号码 char tel_num[9]; //宿舍电话号码 }data,s_info[100]; int i,j,k=0; int a,b; int flag=0; char temp[20],ch,ch1,ch2; char temp_NO[8],temp_name[10],temp_dnum[4]; char tempcn[6]; char sn[8]; //临时学号 float z_fen,z_xuefen; struct course temp_course; struct info *inf; FILE *fp,*fp1,*fp2; void input() 23 { while(1) { printf(\"\\nwhich information do you want to input: b(base) s(socre) e(exit)\"); ch=getch(); if(ch=='b'||ch=='B') { if((fp=fopen(\"s_info.txt\ { printf(\"cannot open this file.\\n\"); getch();exit(0); } printf(\"\\nPlease input xuehao:\"); gets(sn); while((fread(&data,sizeof(data),1,fp))==1) { if(strcmp(sn,data.xuehao)==0) { flag=1; } } if(flag==1) { printf(\"\\n the number has exist,press ang key continue:\\n\"); flag=0; getch(); continue; } else { strcpy(data.xuehao,sn); } printf(\"Please input name:\"); gets(data.name); printf(\"Please input sex:M(male)/F(female):\\n\"); gets(data.sex); 24 printf(\"Please input your dormitory No:\"); gets(data.d_num); printf(\"Please input telephone Number:\"); gets(data.tel_num); fwrite(&data,sizeof(data),1,fp); //写入数据 fclose(fp); } //if else if(ch=='s'||ch=='S') { if((fp1=fopen(\"s_score.txt\ { printf(\"cannot open this file.\\n\"); getch();exit(0); } printf(\"\\nPlease input xuehao:\"); gets(sn); while((fread(&data,sizeof(data),1,fp))==1) { if(strcmp(sn,data.xuehao)==0) { flag=1; } } if(!flag) { printf(\"\\nthis number is not exist\\n\"); continue; } else { flag=0; strcpy(course_data.xuehao,sn); } printf(\"\\nPlease input course No:\"); gets(course_data.course_No); printf(\"\\nPlease input course name:\"); gets(course_data.course_name); printf(\"\\nPlease input course xuefeng:\"); gets(temp); course_data.xuefen=atof(temp); 25 printf(\"\\nPlease input pingshi chengji:\"); gets(temp); course_data.p_chengji=atof(temp); printf(\"\\nPlease input shiyan chengji:\"); gets(temp); course_data.s_chengji=atof(temp); printf(\"\\nPlease input juanmian chengji:\"); gets(temp); course_data.j_chengji=atof(temp); //以下是综合成绩计算 if(course_data.s_chengji==-1) //如果有实验 { course_data.z_chengji=(course_data.p_chengji)*0.3+(course_data.j_chengji)*0.7; } else //如果无实验 { course_data.z_chengji=(course_data.p_chengji)*0.15+(course_data.s_chengji)*0.15+(course_data.j_chengji)*0.7; } //以下是实际学分计算 if((course_data.z_chengji)<60) {course_data.s_xuefen=0;} else if((course_data.z_chengji)<70) {course_data.s_xuefen=course_data.xuefen*0.6;} else if((course_data.z_chengji)<80) {course_data.s_xuefen=course_data.xuefen*0.75;} else if((course_data.z_chengji)<90) {course_data.s_xuefen=course_data.xuefen*0.8;} else {course_data.s_xuefen=course_data.xuefen; } fwrite(&course_data,sizeof(course_data),1,fp1); //写入数据 fclose(fp1); fclose(fp); 26 } //else if else {break; } printf(\"another?y/n\"); ch=getch(); if(ch=='n'||ch=='N') break; } } //input void search() { printf(\"\\n select form: a(student information) information)\"); ch=getch(); if(ch=='a'||ch=='A') { if((fp=fopen(\"s_info.txt\ { printf(\"\\nCannot open this file.\\n\"); exit(0); } printf(\"\\nselectway: a(student Number) b(student name) NO):\\n\"); ch1=getch(); //按照学号查找 if(ch1=='a'||ch1=='A') { printf(\"\\nplease input the student number:\"); gets(temp_NO); printf(\" xuehao name sex sushe hao \"); printf(\"\\n------------------------------------------------------------------------------\\n\"); while((fread(&data,sizeof(data),1,fp))==1) { if(strcmp(temp_NO,data.xuehao)==0) 27 b(socre c(dormitory telephone { flag=1; printf(\"\\n%8s%10s%12s%14s%20s\\n\um); } } if(!flag) { printf(\"\\nthis number is not exist,press any key to continue\\n\"); getch(); } else { flag=0; } } //按照名字查找 else if(ch1=='b'||ch1=='B') { printf(\"\\nplease input the name:\"); gets(temp_name); printf(\" xuehao name sex sushe hao telephone \"); printf(\"\\n------------------------------------------------------------------------------\\n\"); while((fread(&data,sizeof(data),1,fp))==1) { if(strcmp(temp_name,data.name)==0) { flag=1; printf(\"\\n%8s%10s%12s%14s%20s\\n\um); } } if(!flag) { printf(\"\\nthis name is not exist,press any key to continue:\\n\"); getch(); 28 } else { flag=0; } } //按照宿舍号码查找 else if(ch1=='c'||ch1=='C') { printf(\"\\nplease input the dormitory number:\"); gets(temp_dnum); printf(\" xuehao name sex sushe hao telephone \"); printf(\"\\n------------------------------------------------------------------------------\\n\"); while((fread(&data,sizeof(data),1,fp))==1) { if(strcmp(temp_dnum,data.d_num)==0) { flag=1; printf(\"\\n%8s%10s%12s%14s%20s\\n\um); } if(!flag) { printf(\"this dormitory is not exist,press any key continue:\"); getch(); } else { flag=0; } } } else { printf(\"\\nselect error\\n\"); } fclose(fp); } //ch if 29 //学生成绩查找 else if(ch=='b'||ch=='B') { j=0; z_fen=0; z_xuefen=0; if((fp1=fopen(\"s_score.txt\ { printf(\"\\nCannot open this file.\\n\"); exit(0); } printf(\"\\nplease input student number:\"); gets(temp_NO); printf(\" xuehao course_No course_name xuefen chengji \"); printf(\"\\n------------------------------------------------------------------------------\\n\"); while((fread(&course_data,sizeof(course_data),1,fp1))==1) { if(strcmp(temp_NO,course_data.xuehao)==0) { flag=1; j++; z_fen=z_fen+course_data.z_chengji; z_xuefen=z_xuefen+course_data.s_xuefen; printf(\"\\n%10s%10s%10s%15.1f %18.1f\\n\No,course_data.course_name,course_data.s_xuefen,course_data.z_chengji); } } if(!flag) { printf(\" is not exist\"); } else { flag=0; } printf(\"\\n------------------------------------------------------------------------------\\n\"); 30 printf(\" z_gong:%3d ke z_xuefen:%3.1f z_cheng ji:%6.1f\ } else { printf(\"error \"); } fclose(fp1); } //search void delete() { printf(\"\\ninput the number of student you want to delete:\"); gets(temp_NO); if((fp1=fopen(\"s_score.txt\(\"temp.txt\ { printf(\"cannot open this file.\\n\"); getch();exit(0); } while((fread(&data,sizeof(data),1,fp))==1) { if(strcmp(temp_NO,data.xuehao)!=0) fwrite(&data,sizeof(data),1,fp2); } remove(\"s_info.txt\"); rename(\"temp.txt\ fclose(fp); fclose(fp2); if((fp1=fopen(\"s_score.txt\ { printf(\"cannot open this file.\\n\"); getch();exit(0); } while((fread(&course_data,sizeof(course_data),1,fp1))==1) { if(strcmp(temp_NO,course_data.xuehao)!=0) 31 fwrite(&course_data,sizeof(course_data),1,fp2); } remove(\"s_score.txt\"); rename(\"temp.txt\ fclose(fp1); fclose(fp2); printf(\"\\n delete successful\"); } void sort() { printf(\"\\nplease input course number:\"); gets(tempcn); if((fp1=fopen(\"s_score.txt\ { printf(\"cannot open this file.\\n\"); getch();exit(0); } i=0; while((fread(&course_data,sizeof(course_data),1,fp1))==1) { if(strcmp(tempcn,course_data.course_No)==0) { s_course[i]=course_data; i++; flag=1; } } if(!flag) { printf(\"\\nno such course\\n\"); } else { flag=0; printf(\"\\nplease select way : a(xuefen) b(zhong he cheng ji)\\n\"); ch=getch(); 32 printf(\"\\nselect: s(sheng xu) j(jiang xu)\"); ch1=getch(); if(ch=='a'||ch=='A') { //升序排列 if(ch1=='s') { for(j=0;j for(j=0;j { for(k=j;ks_course[k].z_chengji) { temp_course=s_course[j]; s_course[j]=s_course[k]; s_course[k]=temp_course; } } } printf(\"\\n\\nxuehao course_number course_name xuefen chengji\\n\"); printf(\"\\n----------------------------------------------------------------\\n\"); for(j=0;j35 s_course[k].z_chengji=temp_course.z_chengji; } } } printf(\"\\n\\nxuehao course_number course_name xuefen chengji\\n\"); printf(\"\\n----------------------------------------------------------------\\n\"); for(j=0;jvoid main() { while(1) { clrscr(); /*清屏幕*/ gotoxy(1,1); /*移动光标*/ textcolor(BLACK); /*设置文本显示颜色为黄色*/ textbackground(GREEN); /*设置背景颜色为蓝色*/ window(1,1,99,99); /* 制作显示菜单的窗口,大小根据菜单条数设计*/ clrscr(); printf(\"\\n<<<<<<<<<<<<< manage>>>>>>>>>>>>>>>>>\\n\\n\"); printf(\"* ========================================================= * \\n\"); printf(\"* 1>input 2>cha zhao * \\n\"); printf(\"* 3>delete 4>paixu xianshi * \\n\"); printf(\"* 5>exit * \\n\"); printf(\"* * \\n\"); printf(\"* --------------------------------------------------------- * \\n\"); printf(\" Please input which you want(1-5):\"); ch=getch(); switch(ch) { case '1':input();break; case '2':search(); getch();break; case '3':delete();getch(); break; case '4':sort(); getch();break; case '5':exit(0); default: continue; } } } 37
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务