user-0 提问: 如有大神帮我解决难题 定感激不尽

回复:
user: user-1
content: 提醒：再牛×的老师也无法代替学生自己领悟和上厕所！

user: user-1
content: 自己的作业通常还不至于难道请大神帮忙。请百度这个小神就行。

user: user-2
content: void stuid_find() {//学号查找 利用strcmp()函数       int i,flag=0,k;       char wqs[MIN_C];       k=1;       system("cls");       puts("***************>>>>>>当前模式以学号查询信息状态<<<<<<*************");       while(k) {           printf("请键入学生学号： ");           scanf("%s",wqs);           for(i=0; i<i_entry; i++)               if(strcmp(DATA[i].stuid,wqs)==0) {                   printf("%-18s",&DATA[i].stuid);                   printf("%-16s",DATA[i].name);                   printf("%-4s",&DATA[i].age);                   printf("%-6s",DATA[i].gender);                   printf("%-12s",&DATA[i].birth);                   printf("%-16s",DATA[i].add);                   printf("%-16s",DATA[i].tle);                   printf("%-15s\n",DATA[i].email);                   flag=1;               }           if(flag==0)               puts("未查找到该同学信息，如需录入信息请重新键入命令.");           LIGHT();           puts("请按照文字提示键入命令：");           printf("\t\t1.继续查询\n\t\t0.退出查询\n请键入命令:");           GREEN();           scanf("%d",&k);       }   }      void name_find() {//姓名查找 利用函数strcmp()==0 的特性       int i,flag=0,k;       char wqs[MIN_C];       k=1;       system("cls");       puts("***************>>>>>>当前模式以姓名查询信息状态<<<<<<*************");       while(k) {           printf("请键入学生姓名： ");           scanf("%s",wqs);           for(i=0; i<i_entry; i++)               if(strcmp(DATA[i].name,wqs)==0) {                   printf("%-18s",&DATA[i].stuid);                   printf("%-16s",DATA[i].name);                   printf("%-4s",&DATA[i].age);                   printf("%-6s",DATA[i].gender);                   printf("%-12s",&DATA[i].birth);                   printf("%-16s",DATA[i].add);                   printf("%-16s",DATA[i].tle);                   printf("%-15s\n",DATA[i].email);                   flag=1;               }           if(flag==0)               puts("未查找到该同学信息，如需录入信息请重新键入命令.");           LIGHT();           puts("请按照文字提示键入命令：");           printf("\t\t1.继续查询\n\t\t0.退出查询\n请键入命令:");           GREEN();           scanf("%d",&k);       }   }      void case4() {       int v;       LIGHT();       printf("提示：1,按照学号查询；2,按照姓名查询.请键入：");       GREEN();       scanf("%d",&v);       if(v==1) {           stuid_find();       }       if(v==2) {           name_find();       }   }      void deal() {//主要处理函数       int k,flag,p;       p=1;       notice();       flag=1;       while(flag) {           if(p>1)               notice();           scanf("%d",&k);           system("cls");           switch(k) {               case 0: {                   puts("温馨提醒：");                   puts("\t    ^…………^……^^谢谢您的支持,欢迎再次使用!^^……^…………^ ");                   puts("\t*******学生基本信息已保存在当前目录文件 student_data.txt 下********");                   flag=0;                   LIGHT();                   break;               }               case 1: {                   case1();                   break;               }               case 2: {                   case2();                   break;               }               case 3: {                   case3();                   break;               }               case 4: {                   case4();                   break;               }               case 5: {                   case5();                   break;               }               default: {                   RED();                   printf("请正确键入命令前数字！\n");                   GREEN();                   break;               }           }           p=1103;           puts("\n");       }   }      int main() {       if ((fp = fopen("student_data.txt", "r+")) == NULL) {           fp = fopen("student_data.txt", "w+");       }       init();//文件的初始化读入       GREEN();//控制台颜色为绿色       printf(" >************欢 迎 您 使 用 学 生 信 息 管 理 系 统(正式版1.0.1)************<\n");       printf(">*************     请键入以下命令行所对应的数字进行操作：     *************<\n");       printf(">*************   请确定正确退出程序,否则文件将不被正常保存.     *************<\n");       deal();//处理数据       fclose(fp);//文件正常关闭       return 0;   }

user: user-2
content: #include <stdio.h>   #include <string.h>   #include <stdlib.h>   #include <math.h>   #include <windows.h>   #define MIN_C 100//每个数据对应字符串类型占据的大小   #define MAX_G 1000//学生信息量大小      int i_entry;//学生的人数统计   FILE *fp;//文件指针      struct student {       char stuid[MIN_C];//学生学号       char name[MIN_C];//学生姓名       char age[3];//学生年龄       char gender[MIN_C];//学生性别       char birth[MIN_C];//学生出生日期       char add[MIN_C];//学生地址       char tle[MIN_C];//学生电话       char email[MIN_C];//学生邮箱   } DATA[MAX_G];      struct student temp;//用于排序的中间变量      void init() {//文件的初始化读取       while (!feof(fp)) {           fscanf(fp, "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", DATA[i_entry].stuid, DATA[i_entry].name, DATA[i_entry].age,                  DATA[i_entry].gender, DATA[i_entry].birth, DATA[i_entry].add, DATA[i_entry].tle, DATA[i_entry].email);           i_entry++;       }   }      void file_save() {//信息以文件格式录入函数       fprintf(fp, "%s\t\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", DATA[i_entry].stuid, DATA[i_entry].name,DATA[i_entry].age,               DATA[i_entry].gender, DATA[i_entry].birth, DATA[i_entry].add, DATA[i_entry].tle, DATA[i_entry].email);   }      void RED() {//控制台调整前景色为红色       HANDLE kai_1 = GetStdHandle(STD_OUTPUT_HANDLE);       SetConsoleTextAttribute(kai_1, FOREGROUND_INTENSITY | FOREGROUND_RED); // 为红色   }      void GREEN() {//控制台调整前景色为绿色       HANDLE kai_2 = GetStdHandle(STD_OUTPUT_HANDLE);       SetConsoleTextAttribute(kai_2, FOREGROUND_INTENSITY | FOREGROUND_GREEN);// 为绿色   }      void LIGHT() {//控制台调整前景色为强光       HANDLE kai_2 = GetStdHandle(STD_OUTPUT_HANDLE);       SetConsoleTextAttribute(kai_2, FOREGROUND_INTENSITY | FOREGROUND_INTENSITY);// 为强光   }       void notice() {//提示信息       RED();       puts("\t\t\t1.学生综合信息录入");       puts("\t\t\t2.学生综合信息浏览");       puts("\t\t\t3.综合信息排序浏览");       puts("\t\t\t4.学生个人信息查询");       puts("\t\t\t5.学生综合信息修改");       printf("\t\t\t0. 退  出  系  统\n");       GREEN();       printf("请键入：");   }      void entry() {//学生信息的录入       int flag,i;       system("cls");       init();       flag=1;       puts("***************>>>>>>当前模式为学生信息录入状态<<<<<<*************");       printf("请输入学生学号：");       flag=1;//标识变量，用以判断该信息是否已存在       scanf("%s",&DATA[i_entry].stuid);       for(i=0; i<i_entry; i++) //判断输入数据的正误，即文件中是否已存在该信息           if(strcmp(DATA[i].stuid,DATA[i_entry].stuid)==0) {               flag=0;               break;           }       if(flag==1) {           printf("请输入学生姓名：");           scanf("%s",DATA[i_entry].name);           printf("请输入学生年龄：");           scanf("%s",DATA[i_entry].age);           printf("请输入学生性别：");           scanf("%s",DATA[i_entry].gender);           printf("请输入学生出生年月日(以/隔开)：");           scanf("%s",DATA[i_entry].birth);           printf("请输入学生联系地址：");           scanf("%s",DATA[i_entry].add);           printf("请输入学生联系电话：");           scanf("%s",DATA[i_entry].tle);           printf("请输入学生联系邮箱：");           scanf("%s",DATA[i_entry].email);           file_save();       }       if(flag==0)           puts("该学号已经存在，如需修改请转到修改命令！");   }      void Change(int x) {//学生信息的更改提示内容       printf("请输入修改后的学生学号：");       scanf("%s",DATA[x].stuid);       printf("请输入修改后的学生姓名：");       scanf("%s",DATA[x].name);       printf("请输入修改后的学生年龄：");       scanf("%s",DATA[x].age);       printf("请输入修改后的学生性别：");       scanf("%s",DATA[x].gender);       printf("请输入修改后的学生出生年月日(以/隔开)：");       scanf("%s",DATA[x].birth);       printf("请输入修改后的学生联系地址：");       scanf("%s",DATA[x].add);       printf("请输入修改后的学生联系电话：");       scanf("%s",DATA[x].tle);       printf("请输入修改后的学生联系邮箱：");       scanf("%s",DATA[x].email);       puts("数据修改完成！");       file_save();   }      void case5() {//信息更改       int flag,i,t;       system("cls");       puts("***************>>>>>>当前模式为学生信息修改状态<<<<<<*************");       LIGHT();       printf("选定检索方式：1.学号检索\t2.姓名检索.   请键入：");       GREEN();       flag=0;       scanf("%d",&t);       if(t==2) {           init();           LIGHT();           printf("请输入需要修改的学生姓名：");           scanf("%s",&DATA[i_entry].name);           GREEN();           for(i=0; i<i_entry; i++) //判断输入数据的正误               if(strcmp(DATA[i].name,DATA[i_entry].name)==0) {                   flag=1;                   break;               }           if(flag==1) {               Change(i);           }           if(flag==0)               puts("该姓名不存在，请检查输入是否有误！");       }       if(t==1) {           LIGHT();           init();           printf("请输入需要修改的学生学号：");           scanf("%s",&DATA[i_entry].stuid);           GREEN();           for(i=0; i<i_entry; i++) //判断输入数据的正误               if(strcmp(DATA[i].stuid,DATA[i_entry].stuid)==0) {                   flag=1;                   break;               }           if(flag==1) {               Change(i);           }           if(flag==0)               puts("该学号不存在，请检查输入是否有误！");       }   }      void i_printf() {//学生信息的输出       int i;       printf("学号\t姓名\t年龄\t性别\t出生年/月/日\t联系地址\t联系电话\t联系邮箱");       printf("\n");       for(i=0; i<i_entry; i++) {           printf("%-18s",&DATA[i].stuid);           printf("%-16s",DATA[i].name);           printf("%-4s",&DATA[i].age);           printf("%-6s",DATA[i].gender);           printf("%-12s",&DATA[i].birth);           printf("%-16s",DATA[i].add);           printf("%-16s",DATA[i].tle);           printf("%-15s\n",DATA[i].email);       }   }      void case1() {//当键入数字 1 之后的执行情况       int flag;       flag=1;       while(flag) {           entry();           LIGHT();           printf("提示：1,继续录入；0,录入完成.是否继续录入：");           GREEN();           scanf("%d",&flag);           i_entry++;       }   }      void case2() {       puts("***************>>>>>>当前模式为学生信息浏览状态<<<<<<*************");       i_printf();   }      void stuid_sort() {//学号排序 冒泡排序算法       int r,t;       system("cls");       puts("***************>>>>>>当前模式以学号排序后浏览状态<<<<<<*************");       //struct student temp;       for(r=1; r<i_entry; r++) {           for(t=0; t<i_entry-r; t++) {               if(strcmp(DATA[t+1].stuid, DATA[t].stuid)<0) {//学号由低到高                   temp=DATA[t+1];                   DATA[t+1]=DATA[t];                   DATA[t]=temp;               }           }       }   }      void name_sort() {//姓名排序 冒泡排序算法       int j,k;       system("cls");       puts("***************>>>>>>当前模式以姓名排序后浏览状态<<<<<<*************");       //struct student temp;       for(j=1; j<i_entry; j++) {           for(k=0; k<i_entry-j; k++) {               if(strcmp(DATA[k+1].name,DATA[k].name)<0) {                   temp=DATA[k+1];                   DATA[k+1]=DATA[k];                   DATA[k]=temp;               }           }       }   }      void case3() {       int v;       LIGHT();       printf("提示：1,按照学号排序；2,按照姓名排序.请键入：");       GREEN();       scanf("%d",&v);       if(v==1) {           stuid_sort();           i_printf();       }       if(v==2) {           name_sort();           i_printf();       }   }

user: user-2
content: 主要的几个考点： 1.文件的读取与存储问题 2.结构体的应用 3.函数的定义 4.排序 自己尝试着去写一下。

user: user-0
content: #include <stdio.h> #include <stdlib.h> #define SIZE 20 /* run this program using the console pauser or add your own getch, system("pause") or input loop */   	struct student 	{char name[20]; 	int no; 	int score[3]; 	}stud[SIZE]; 	int main() 	{void find(int p);  	 void sort(void);  	int i,j,x; 	FILE *fp; 	fp=fopen("121.txt","rb"); 	if((fp=fopen("121.txt","rb"))==NULL) 	{printf("The file can't open'"); 	exit(0); 	} 	printf("sorted student's scores list as follow\n'"); 	printf("--------------------------------------\n"); 	printf("NAME      NO.   YINGYU TINENG ZHIAN\n"); 	printf("--------------------------------------\n"); 	for(i=0;i<SIZE;i++) 	{	fscanf(fp,"%s %d %d %d %d",stud[i].name,&stud[i].no,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]); 	printf("%s       %d       %d      %d     %d\n",stud[i].name,stud[i].no,stud[i].score[0],stud[i].score[1],stud[i].score[2]); 	} 	find(x); 	sort(); 	fclose(fp); 	return 0; } void find(int p)   {int i,x;   printf("请输入学生学号：");    scanf("%d",&x);    if(x<1||x>20)    printf("你输入的数据错误\n");     for(i=1;i<=20;i++)      if(x==i)        printf("该学生的英语、体能、治安分数分别是：%d %d %d\n",stud[i-1].score[0],stud[i-1].score[1],stud[i-1].score[2]);   }   void sort(void)   {struct student temp[20];   int a,b;   int sum[20];   for(a=0;a<20;a++)   sum[a]=stud[a].score[0]+stud[a].score[1]+stud[a].score[2];   for(b=0;b<20;b++)   {for(a=0;a<20;a++)     if(sum[a]<sum[a+1])    {temp[a]=stud[a];    stud[a]=stud[a+1];    stud[a+1]=temp[a];    }    for(b=0;b<20;b++)    printf("%s       %d       %d      %d     %d   %d\n",stud[b].name,stud[b].no,stud[b].score[0],stud[b].score[1],stud[b].score[2],sum[b]); 	}    } 赵老师 最后一个函数为什么不能实现用总分排序？？

user: user-3
content: 我可以帮你把最后那项完成  难点：不知道怎么做 解决办法：上csdn发帖 编程小结或体会：还是得靠自己

user: user-4
content: 1，文件读写 2，排序算法、插入算法 3，数据基本类型操作 都是基础问题，这里没人会给你写出来的，自己好好学一下就差不多能写出来了

user: user-1
content: 引用 2 楼 qq_37242769 的回复:百度没用了 赵老师 救我 我现在救你实际上是害你。

user: user-0
content: 百度没用了 赵老师 救我