当前位置: 首页 > news >正文

常用网站建设工具php网站开发实际教程答案

常用网站建设工具,php网站开发实际教程答案,现在那个网站做推广效果会好点,开网页死机、 目录 搭建offer.h文件 搭建offer.c中的main函数 密码登入系统 搭建my_oferr.c中的接口函数 使用帮助菜单接口函数 增加学生信息接口函数 查询学生信息接口函数 删除学生信息接口函数 保存学生信息接口 打开文件fopen 关闭文件fclose 判断是否保存文件fwrite 退出执行文件…、 目录 搭建offer.h文件 搭建offer.c中的main函数 密码登入系统 搭建my_oferr.c中的接口函数  使用帮助菜单接口函数 增加学生信息接口函数  查询学生信息接口函数 删除学生信息接口函数  保存学生信息接口  打开文件fopen 关闭文件fclose  判断是否保存文件fwrite 退出执行文件exit 显示学生信息接口函数  修改学生信息接口函数  学生排名信息接口函数 -------------------------------------- ----------------  每次归程都是为了更好出发 每次停歇都是为了积攒力量 。 最近大家C语言是不是都进入了实训阶段呢 还在为写不出代码而苦恼吗 接下来我将带领大家一起完成 C语言的一个简单项目-学生管理系统 主要运用了数组和指针函数 关于链表的搭建后续会更新 题目学生管理系统 学生数据由学号、姓名、性别、年龄、三门课C语言、高数、大物的成绩构成  实现功能包括1密码登入2使用提示3信息录入4查询信息5删除信息6保存信息7显示信息 8修改信息 9成绩排名 对于这种代码量超百位数的大家最好养成分模块写代码的习惯 我创建了一个.h文件和两个.c 文件.h一般放头文件和结构体类型.c文件一个设置主函数main一个完善相应的函数接口。这样分工明确不会混乱可以提高敲代码的效率哦~ 首先明白我们要实现的项目功能密码登入系统、使用帮助菜单、增加学生信息、查询学生信息、删除学生信息、保存当前信息、显示当前信息、修改学生信息、学生成绩排名 搭建offer.h文件 因为学生有以下几个基本信息姓名、年龄、学号、性别依次由name、age、id和sex来表示所以可以通过结构体实现struct语句定义存储不同类型的数据项定义一个结构体数组Stu用于存储每个学生的信息 #includestdio.h #includestring.h #includestdlib.h void TiShi(); //提示功能 void StuXinXi(); //增加信息 void ChaZhao(); //查找信息 void ShanGai(); //删改信息 void BaoCun(); //保存信息 void XianShi(); //显示信息 void XiuGai(); //修改信息 void PaiMing(); //学生排名 #define N 20 #define Number sizeof(struct Student)//求结构体的大小 //创建结构体包含学生信息 struct Student {char Stuid[N]; //学号char Stuname[N]; //名字int Stuage; //年龄char Stusex[N]; //性别double score[3]; //成绩 }Stu[Number]; //枚举体美化选项 enum menu2 {Quit 0,Resume 1 }; enum ChaZhao {CaoZuo1 1,CaoZuo2 2,CaoZuo3 3 };1.这里最好定义一个宏#define不然以后修改将会很麻烦 2.枚举体美化选项在我之前的博客讲过提高代码的可读性 3.剩下的就是头文件的引入和函数的声明以及结构体的创建 搭建offer.c中的main函数 要使用我们在offer.h中设置的头文件要在offer.c中加上#includeoffer.h #includeoffer.h 整体的框架如下 #includeoffer.h int sum 1; int main() {int i 0;int input 0, count 0;char mima[20] 123;//登入的密码char shuru[20];system(color F4);printf(\t\t\t **************************************\n);printf(\t\t\t | *欢迎使用学生管理系统* |\n);printf(\t\t\t | *管理员: 小唐* |\n);printf(\t\t\t ------------------------------------\n);printf(请输入管理员密码\n);while ((count _getch()) ! \r) {if (count \b){i--;printf(\b \b);}else{shuru[i] count;printf(*);}}shuru[i] \0; //getch赋值的是单个字符所以为了比较两个字符串的大小要给shuru数组后面添加\0if (strcmp(mima, shuru) 0){printf(\n密码正确您已进入系统\n);}else{printf(\n密码错误请重新输入\n);return 0;}system(pause);system(cls);do{menu2();printf(请选择继续还是结束操作\n);scanf(%d, sum);switch (sum){case Quit:system(cls);//清除屏幕printf(您已退出学生管理系统\n);break;case Resume:menu1();void(*p[9])() { NULL,TiShi,StuXinXi,ChaZhao,ShanGai,BaoCun,XianShi,XiuGai,PaiMing };//指针数组函数printf(请输入你要进行的操作\n);scanf(%d, input);system(cls);(*p[input])();break;default:printf(输入错误重新输入\n);break;}} while (sum);return 0; } 接下来我将带领大家解读以上代码 密码登入系统 在进入学生管理系统之前我设置了一个小型的系统密码登入界面来判断是进入还是退出 int count 0;char mima[20] 123;//登入的密码char shuru[20];system(color F4);printf(\t\t\t **************************************\n);printf(\t\t\t | *欢迎使用学生管理系统* |\n);printf(\t\t\t | *管理员: 小唐* |\n);printf(\t\t\t ------------------------------------\n);printf(请输入管理员密码\n);while ((count _getch()) ! \r) {if (count \b){i--;printf(\b \b);}else{shuru[i] count;printf(*);}}shuru[i] \0; //getch赋值的是单个字符所以为了比较两个字符串的大小要给shuru数组后面添加\0if (strcmp(mima, shuru) 0){printf(\n密码正确您已进入系统\n);}else{printf(\n密码错误请重新输入\n);return 0;} 1.我们这里利用了while去进行getch输入getch输入单个字符是不会显示信息的但我们按下回车键输入结束循环停止 2. \r 就是回车键的意思而 \b 就是删除键的意思 3.每循环一次就输入一个字符count赋值给数组shuru并打印 * 4.getch赋值的是单个字符所以为了比较两个字符串的大小要给shuru数组后面添加 \0 5.strcmp是比较两个字符串的大小详细可以看我之前的博客 以上就是我们密码登入系统的全部内容 接下来我将讲解接下来的代码实现 menu2()的作用就是选择继续操作还是退出系统 void menu2() {system(color F4);printf(\t\t\t*********************\n);printf(\t\t\t*********************\n);printf(\t\t\t-------1.Resume------\n);printf(\t\t\t-------0.Quit--------\n);printf(\t\t\t*********************\n); } 1.system(cls)-清屏函数会将显示过的内容清空被#includestdlib.h包含 2.system(color F4);是改变背景颜色的函数被#includestdlib包含 3.我们用枚举类型美化选项Quit就是0Resume就是1 4.我们采用了指针数组函数可以直接调用接口函数因为没有返回值函数类型就是void这样减少了重复代码的编写如果大家不适应也可以用switch 搭建my_oferr.c中的接口函数  首先定义我们my_oferr.c中的全局变量 #includeoffer.h int m 0; //记录录入学生的人数 由于是显示一个管理系统 所以我们设计一个主菜单 通过定义一个函数menu2()来实现这个功能: void menu1() {printf(\n);system(color F4);printf(\t\t\t*****************************************************\n);printf(\t\t\t*---------------------------------------------------*\n);printf(\t\t\t* 学生管理系统 *\n);printf(\t\t\t*****************************************************\n);printf(\t\t\t********************系统功能菜单*********************\n);printf(\t\t\t---------------------- --------------------------\n);printf(\t\t\t*****************************************************\n);printf(\t\t\t** 1、使用帮助菜单 * 2、增加学生信息 **\n);printf(\t\t\t*****************************************************\n);printf(\t\t\t** 3、查询学生信息 * 4、删除学生信息 **\n);printf(\t\t\t*****************************************************\n);printf(\t\t\t** 5、保存当前信息 * 6、显示当前信息 **\n);printf(\t\t\t*****************************************************\n);printf(\t\t\t** 7、修改学生信息 * 8、学生成绩排名 **\n);printf(\t\t\t*****************************************************\n);printf(\t\t\t*****************************************************\n);printf(\t\t\t---------------------- --------------------------\n); } 这个大家可以自己随喜好设置~  使用帮助菜单接口函数 void TiShi() {printf(欢迎来到学生管理系统\n);printf(在这个管理系统中教师和学生都不需要去了解自己的信息只需通过网络就能实现自己的信息管理。\n);printf(教师可以轻松便捷地掌握学生相关情况、姓名、学号以及考试成绩等基本信息。\n);printf(它还提供一个搜索功能和设置权限可以将学生的信息进行搜索\n也可根据关键字或其他方式对其进行定位并且还能显示出该人的相关基本资料。\n);printf(如果由技术上的缺陷还请联系项目负责人\n17817473648\n);system(pause);system(cls); } system(pause)是暂停函数按任意键重新启动被#includestdlib.h包含 本函数接口主要起到提示作用小伙伴们可以自行添加自己的管理需求  增加学生信息接口函数  void StuXinXi() {int i m,flag,n 0;printf(请输入你要添加的学生人数\n);scanf(%d, n);printf(--------------------------*学生信息录入系统*--------------------------------\n);if (n 0){do {flag 1;while (flag){flag 0;printf(请输入第%d位学生的学号\n, i 1);scanf(%s, Stu[i].Stuid);for (int j 0; j i; j){if (strcmp(Stu[i].Stuid, Stu[j].Stuid) 0)//判断是否重复{printf(该学生已经录入请重新选择\n);flag 1;break;}}}printf(请输入第%d学生的姓名\n, i 1);scanf(%s, Stu[i].Stuname);printf(请输入第%d学生的年龄\n, i 1);scanf(%d, Stu[i].Stuage);printf(请输入第%d学生的性别\n, i 1);scanf(%s, Stu[i].Stusex);printf(请输入第%d学生的C语言成绩\n, i 1);scanf(%lf, Stu[i].score[0]);printf(请输入第%d学生的高数成绩\n, i 1);scanf(%lf, Stu[i].score[1]);printf(请输入第%d学生的大物成绩\n, i 1);scanf(%lf, Stu[i].score[2]);i;} while (i n m);m n;if (flag 0){printf(添加完成请进行下一步操作\n);}system(pause);system(cls);} } 1.flag用来判断最后输出的提示语句提示录入成功与否 2.然后就是whie循环给结构体成员赋初值 3.在将人数累加给全局变量m就好了 查询学生信息接口函数 void ChaZhao() {int flag, input;char Stu1[Number];printf(\t\t\t----------*学生信息查找系统*----------\n);printf(\t\t\t**************************************\n);printf(\t\t\t******1.请输入你要查找的学生名字******\n);printf(\t\t\t******2.请输入你要查找的学生学号******\n);printf(\t\t\t******------3.退出本次操作------******\n);printf(\t\t\t**************************************\n);while (1){flag 0;printf(请输入你要进行的查询操作\n);scanf(%d, input);switch (input){case CaoZuo1:printf(请输入你要查找的学生名字:\n);scanf(%s, Stu1);for (int i 0; i m; i){if (strcmp(Stu[i].Stuname, Stu1) 0){flag 1;printf(学号\t\t名字\t年龄\t性别\tC语言成绩\t高数成绩\t大物成绩\n);printf(%s\t%s\t%d\t%s\t%.2lf\t\t%.2lf\t\t%.2lf\n, Stu[i].Stuid, Stu[i].Stuname, Stu[i].Stuage, Stu[i].Stusex, Stu[i].score[0], Stu[i].score[1], Stu[i].score[2]);}}break;case CaoZuo2:printf(请输入你要查找的学生学号:\n);scanf(%s, Stu1);for (int i 0; i m; i){if (strcmp(Stu[i].Stuid, Stu1) 0){flag 1;printf(学号\t\t名字\t年龄\t性别\tC语言成绩\t高数成绩\t大物成绩\n);printf(%s\t%s\t%d\t%s\t%.2lf\t\t%.2lf\t\t%.2lf\n, Stu[i].Stuid, Stu[i].Stuname, Stu[i].Stuage, Stu[i].Stusex, Stu[i].score[0], Stu[i].score[1], Stu[i].score[2]);}}break;case CaoZuo3:return;default:printf(输入错误重新选择\n);}if (flag 0){printf(该学生没有录入系统请重新查找\n);}}system(pause); } 删除学生信息接口函数  void ShanGai() {int flag 0;char arr[Number]; //定义一个数组printf(----------------------------------*学生名单*----------------------------------------------------------\n);printf(学号\t\t名字\t年龄\t性别\tC语言成绩\t高数成绩\t大物成绩\n);for (int i 0; i m; i){printf(%s\t%s\t%d\t%s\t%.2lf\t\t%.2lf\t\t%.2lf\n, Stu[i].Stuid, Stu[i].Stuname, Stu[i].Stuage, Stu[i].Stusex, Stu[i].score[0], Stu[i].score[1], Stu[i].score[2]);}printf(请输入你要删除学生的学号\n);scanf(%s, arr);for (int i 0; i m; i){if (strcmp(Stu[i].Stuid, arr) 0) //查找对应的学号{flag 1;for (int j i; j m - 1; j) //m-1防止越界访问{Stu[j] Stu[j 1]; //整个结构体后一个覆盖前一个}}}if (flag 0){printf(无法查找该学生信息!\n);}else{printf(删除成功,请查询系统\n);m--; //删除成功总人数减一printf(----------------------------------*学生名单*----------------------------------------------------------\n);printf(学号\t\t名字\t年龄\t性别\tC语言成绩\t高数成绩\t大物成绩\n);for (int i 0; i m; i){printf(%s\t%s\t%d\t%s\t%.2lf\t\t%.2lf\t\t%.2lf\n, Stu[i].Stuid, Stu[i].Stuname, Stu[i].Stuage, Stu[i].Stusex, Stu[i].score[0], Stu[i].score[1], Stu[i].score[2]);}}system(pause); } 保存学生信息接口  这里穿插一下文件的保存的函数内容  打开文件fopen 可以使用 fopen( ) 函数来创建一个新的文件或者打开一个已有的文件这个调用会初始化类型 FILE 的一个对象类型 FILE 包含了所有用来控制流的必要的信息。下面是这个函数调用的原型 FILE *fopen( const char *filename, const char *mode ); 在这里filename 是字符串用来命名文件访问模式 mode 的值可以是下列值中的一个 关闭文件fclose 为了关闭文件请使用 fclose( ) 函数。函数的原型如下 int fclose( FILE *fp ); 如果成功关闭文件fclose( ) 函数返回零如果关闭文件时发生错误函数返回 EOF。这个函数实际上会清空缓冲区中的数据关闭文件并释放用于该文件的所有内存。EOF 是一个定义在头文件 #includestdio.h 中的常量。 判断是否保存文件fwrite fwrite(file,string,length) file必需。规定要写入的打开文件。string必需。规定要写入打开文件的字符串。length可选。规定要写入的最大字节数。 fwrite() 函数将内容写入一个打开的文件中。 函数会在到达指定长度或读到文件末尾EOF时以先到者为准停止运行。 如果函数成功执行则返回写入的字节数。如果失败则返回 FALSE。 退出执行文件exit void exit(int status)  立即终止调用进程。任何属于该进程的打开的文件描述符都会被关闭该进程的子进程由进程 1 继承初始化且会向父进程发送一个 SIGCHLD 信号。  void BaoCun() {FILE* fp; //文件指针char filename[Number];printf(------------------------------\n);printf(---*请输入你要保存的文件名*---\n);printf(------------------------------\n);scanf(%s, filename);if (fp fopen(filename.txt, a) NULL)//fopen以.txt的形式打开文件函数{printf(打开文件失败\n);exit(0);}for (int i 0; i m; i){if (fwrite(Stu[i], sizeof(struct Student), 1, fp) ! 1){printf(保存失败\n);}else{printf(保存成功\n); //返回字节数则成功保存}}fclose(fp); //关闭文件system(pause); } 我们保存之后在这里查看保存过的文件  显示学生信息接口函数 void XianShi() {if (m 0){printf(您好现在还暂未录入学生信息请稍后重试);}else {printf(现在有%d名学生\n, m);printf(-------------------------------------*成绩显示*----------------------------------------------\n);printf(学号\t\t名字\t年龄\t性别\tC语言成绩\t高数成绩\t大物成绩\n);for (int i 0; i m; i){printf(%s\t%s\t%d\t%s\t%.2lf\t\t%.2lf\t\t%.2lf\n, Stu[i].Stuid, Stu[i].Stuname, Stu[i].Stuage, Stu[i].Stusex, Stu[i].score[0], Stu[i].score[1], Stu[i].score[2]);}}system(pause); } 修改学生信息接口函数 void XiuGai() {int input 0;int flag;char id[Number], name[Number], sex[Number];int age;double score;printf(请输入要修改的学生学号\n);scanf(%s, id);while (1){flag 0;for (int i 0; i m; i){if (strcmp(id, Stu[i].Stuid) 0){flag 1;printf(学号\t\t名字\t年龄\t性别\tC语言成绩\t高数成绩\t大物成绩\n);printf(%s\t%s\t%d\t%s\t%.2lf\t\t%.2lf\t\t%.2lf\n, Stu[i].Stuid, Stu[i].Stuname, Stu[i].Stuage, Stu[i].Stusex, Stu[i].score[0], Stu[i].score[1], Stu[i].score[2]);printf(**************************************************\n);printf(----1.修改学生性别 2.修改学生姓名-----\n);printf(----3.修改学生年龄 4.修改C语言成绩----\n);printf(----5.修改高数成绩 6.修改大物成绩-----\n);printf(********************7.退出本菜单******************\n);printf(请输入你要修改的选项\n);scanf(%d, input);switch (input){case 1:printf(请输入要修改的性别\n);scanf(%s, sex);strcpy(Stu[i].Stusex, sex);break;case 2:printf(请输入要修改的姓名\n);scanf(%s,name);strcpy(Stu[i].Stuname, name);break;case 3:printf(请输入要修改的年龄\n);scanf(%d, age);Stu[i].Stuage age;break;case 4:printf(请输入要修改的C语言成绩\n);scanf(%lf, score);Stu[i].score[0] score;break;case 5:printf(请输入要修改的高数成绩\n);scanf(%lf, score);Stu[i].score[1] score;break;case 6:printf(请输入要修改的大物成绩\n);scanf(%lf, score);Stu[i].score[2] score;break;case 7:return;default:printf(选择错误请重新选择\n);break;}}if (1 input input 6){printf(恭喜你修改成功\n);break;}if (flag 0){printf(没有找到该学生信息请重新输入学生学号\n);gets(name);}}}system(pause); } char* strcpy(char * destination, const char * source );  strcpy拷贝函数将括号右边的值拷贝到左边详细可看我之前的博客 学生排名信息接口函数 int PaiXu(const void* e1, const void* e2) {return ((struct Student*)e2)-score[0] - ((struct Student*)e1)-score[0]; } int PaiXu1(const void* e1, const void* e2) {return ((struct Student*)e2)-score[0] - ((struct Student*)e1)-score[0]; } int PaiXu2(const void* e1, const void* e2) {return ((struct Student*)e2)-score[2] - ((struct Student*)e1)-score[2]; } void PaiMing() {int input 0;while (1){printf(\t\t**************************************************\n);printf(\t\t---------------------***光荣榜***-----------------\n);printf(\t\t**************************************************\n);printf(\t\t********1.C语言-------------------2.高数**********\n);printf(\t\t********3.大物--------------------4.退出系统******\n);printf(\t\t**************************************************\n);printf(请输入你要查询的排名\n);scanf(%d, input);switch (input){case 1:printf(\t学号\t\t名字\tC语言成绩\n);int rs sizeof(Stu) / sizeof(Stu[0]);qsort(Stu, rs, sizeof(Stu[0]), PaiXu);//排序for (int i 0; i m; i){printf(第%d名\t%s\t%s\t%.2lf, i1, Stu[i].Stuid, Stu[i].Stuname, Stu[i].score[0]);printf(\n);}break;case 2:printf(\t学号\t\t名字\t高数成绩\n);int rs1 sizeof(Stu) / sizeof(Stu[0]);qsort(Stu, rs1, sizeof(Stu[0]), PaiXu1);for (int i 0; i m; i){printf(第%d名\t%s\t%s\t%.2lf, i1, Stu[i].Stuid, Stu[i].Stuname, Stu[i].score[0]);printf(\n);}break;case 3:printf(\t学号\t\t名字\t大物成绩\n);int rs2 sizeof(Stu) / sizeof(Stu[0]);qsort(Stu, rs, sizeof(Stu[0]), PaiXu2);for (int i 0; i m; i){printf(第%d名\t%s\t%s\t%.2lf, i1, Stu[i].Stuid, Stu[i].Stuname, Stu[i].score[0]);printf(\n);}break;case 4:return;default:printf(选择错误重新选择\n);break;}} } 我们采用qsort排序法 void qsort (void* base, size_t num, size_t size, int (*compar)(const void*,const void*));base首元素地址-数组名 num元素个数 size数据类型的大小 int (*compar)(const void*,const void*))比较大小的函数指针  以下是整个代码的实现 #define _CRT_SECURE_NO_WARNINGS 1 #includestdio.h #includestring.h #includestdlib.h #define N 20 #define Number sizeof(struct Student) struct Student {char Stuid[N]; char Stuname[N]; int Stuage; char Stusex[N]; double score[3]; }Stu[Number]; enum menu2 {Quit 0,Resume 1 }; enum ChaZhao {CaoZuo1 1,CaoZuo2 2,CaoZuo3 3 };int m 0; void menu1() {printf(\n);system(color F4);printf(\t\t\t*****************************************************\n);printf(\t\t\t*---------------------------------------------------*\n);printf(\t\t\t* 学生管理系统 *\n);printf(\t\t\t*****************************************************\n);printf(\t\t\t********************系统功能菜单*********************\n);printf(\t\t\t---------------------- --------------------------\n);printf(\t\t\t*****************************************************\n);printf(\t\t\t** 1、使用帮助菜单 * 2、增加学生信息 **\n);printf(\t\t\t*****************************************************\n);printf(\t\t\t** 3、查询学生信息 * 4、删除学生信息 **\n);printf(\t\t\t*****************************************************\n);printf(\t\t\t** 5、保存当前信息 * 6、显示当前信息 **\n);printf(\t\t\t*****************************************************\n);printf(\t\t\t** 7、修改学生信息 * 8、学生成绩排名 **\n);printf(\t\t\t*****************************************************\n);printf(\t\t\t*****************************************************\n);printf(\t\t\t---------------------- --------------------------\n); } void menu2() {system(color F4);printf(*********************\n);printf(*********************\n);printf(-------1.Resume------\n);printf(-------0.Quit--------\n);printf(*********************\n); } void TiShi() {printf(欢迎来到学生管理系统\n);printf(在这个管理系统中教师和学生都不需要去了解自己的信息只需通过网络就能实现自己的信息管理。\n);printf(教师可以轻松便捷地掌握学生相关情况、姓名、学号以及考试成绩等基本信息。\n);printf(它还提供一个搜索功能和设置权限可以将学生的信息进行搜索\n也可根据关键字或其他方式对其进行定位并且还能显示出该人的相关基本资料。\n);printf(如果由技术上的缺陷还请联系项目负责人\n唐工:2172227341qq.com\n);system(pause);system(cls); } void StuXinXi() {int i m,flag,n 0;printf(请输入你要添加的学生人数\n);scanf(%d, n);printf(--------------------------*学生信息录入系统*--------------------------------\n);if (n 0){do {flag 1;while (flag){flag 0;printf(请输入第%d位学生的学号\n, i 1);scanf(%s, Stu[i].Stuid);for (int j 0; j i; j){if (strcmp(Stu[i].Stuid, Stu[j].Stuid) 0){printf(该学生已经录入请重新选择\n);flag 1;break;}}}printf(请输入第%d学生的姓名\n, i 1);scanf(%s, Stu[i].Stuname);printf(请输入第%d学生的年龄\n, i 1);scanf(%d, Stu[i].Stuage);printf(请输入第%d学生的性别\n, i 1);scanf(%s, Stu[i].Stusex);printf(请输入第%d学生的C语言成绩\n, i 1);scanf(%lf, Stu[i].score[0]);printf(请输入第%d学生的高数成绩\n, i 1);scanf(%lf, Stu[i].score[1]);printf(请输入第%d学生的大物成绩\n, i 1);scanf(%lf, Stu[i].score[2]);i;} while (i n m);m n;if (flag 0){printf(添加完成请进行下一步操作\n);}system(pause);system(cls);} } void ChaZhao() {int flag, input;char Stu1[Number];printf(\t\t\t----------*学生信息查找系统*----------\n);printf(\t\t\t**************************************\n);printf(\t\t\t******1.请输入你要查找的学生名字******\n);printf(\t\t\t******2.请输入你要查找的学生学号******\n);printf(\t\t\t******------3.退出本次操作------******\n);printf(\t\t\t**************************************\n);while (1){flag 0;printf(请输入你要进行的查询操作\n);scanf(%d, input);switch (input){case CaoZuo1:printf(请输入你要查找的学生名字:\n);scanf(%s, Stu1);for (int i 0; i m; i){if (strcmp(Stu[i].Stuname, Stu1) 0){flag 1;printf(学号\t\t名字\t年龄\t性别\tC语言成绩\t高数成绩\t大物成绩\n);printf(%s\t%s\t%d\t%s\t%.2lf\t\t%.2lf\t\t%.2lf\n, Stu[i].Stuid, Stu[i].Stuname, Stu[i].Stuage, Stu[i].Stusex, Stu[i].score[0], Stu[i].score[1], Stu[i].score[2]);}}break;case CaoZuo2:printf(请输入你要查找的学生学号:\n);scanf(%s, Stu1);for (int i 0; i m; i){if (strcmp(Stu[i].Stuid, Stu1) 0){flag 1;printf(学号\t\t名字\t年龄\t性别\tC语言成绩\t高数成绩\t大物成绩\n);printf(%s\t%s\t%d\t%s\t%.2lf\t\t%.2lf\t\t%.2lf\n, Stu[i].Stuid, Stu[i].Stuname, Stu[i].Stuage, Stu[i].Stusex, Stu[i].score[0], Stu[i].score[1], Stu[i].score[2]);}}break;case CaoZuo3:return;default:printf(输入错误重新选择\n);}if (flag 0){printf(该学生没有录入系统请重新查找\n);}}system(pause);} void ShanGai() {int flag 0;char arr[Number];printf(----------------------------------*学生名单*----------------------------------------------------------\n);printf(学号\t\t名字\t年龄\t性别\tC语言成绩\t高数成绩\t大物成绩\n);for (int i 0; i m; i){printf(%s\t%s\t%d\t%s\t%.2lf\t\t%.2lf\t\t%.2lf\n, Stu[i].Stuid, Stu[i].Stuname, Stu[i].Stuage, Stu[i].Stusex, Stu[i].score[0], Stu[i].score[1], Stu[i].score[2]);}printf(请输入你要删除学生的学号\n);scanf(%s, arr);for (int i 0; i m; i){if (strcmp(Stu[i].Stuid, arr) 0) {flag 1;for (int j i; j m - 1; j) {Stu[j] Stu[j 1]; }}}if (flag 0){printf(无法查找该学生信息!\n);}else{printf(删除成功,请查询系统\n);m--; printf(----------------------------------*学生名单*----------------------------------------------------------\n);printf(学号\t\t名字\t年龄\t性别\tC语言成绩\t高数成绩\t大物成绩\n);for (int i 0; i m; i){printf(%s\t%s\t%d\t%s\t%.2lf\t\t%.2lf\t\t%.2lf\n, Stu[i].Stuid, Stu[i].Stuname, Stu[i].Stuage, Stu[i].Stusex, Stu[i].score[0], Stu[i].score[1], Stu[i].score[2]);}}system(pause); } void BaoCun() {FILE* fp; char filename[Number];printf(------------------------------\n);printf(---*请输入你要保存的文件名*---\n);printf(------------------------------\n);scanf(%s, filename);if (fp fopen(filename.txt, a) NULL){printf(打开文件失败\n);exit(0);}for (int i 0; i m; i){if (fwrite(Stu[i], sizeof(struct Student), 1, fp) ! 1){printf(保存失败\n);}else{printf(保存成功\n);}}fclose(fp);system(pause); } void XianShi() {if (m 0){printf(您好现在还暂未录入学生信息请稍后重试);}else {printf(现在有%d名学生\n, m);printf(-------------------------------------*成绩显示*----------------------------------------------\n);printf(学号\t\t名字\t年龄\t性别\tC语言成绩\t高数成绩\t大物成绩\n);for (int i 0; i m; i){printf(%s\t%s\t%d\t%s\t%.2lf\t\t%.2lf\t\t%.2lf\n, Stu[i].Stuid, Stu[i].Stuname, Stu[i].Stuage, Stu[i].Stusex, Stu[i].score[0], Stu[i].score[1], Stu[i].score[2]);}}system(pause); } void XiuGai() {int input 0;int flag;char id[Number], name[Number], sex[Number];int age;double score;printf(请输入要修改的学生学号\n);scanf(%s, id);while (1){flag 0;for (int i 0; i m; i){if (strcmp(id, Stu[i].Stuid) 0){flag 1;printf(学号\t\t名字\t年龄\t性别\tC语言成绩\t高数成绩\t大物成绩\n);printf(%s\t%s\t%d\t%s\t%.2lf\t\t%.2lf\t\t%.2lf\n, Stu[i].Stuid, Stu[i].Stuname, Stu[i].Stuage, Stu[i].Stusex, Stu[i].score[0], Stu[i].score[1], Stu[i].score[2]);printf(**************************************************\n);printf(----1.修改学生性别 2.修改学生姓名-----\n);printf(----3.修改学生年龄 4.修改C语言成绩----\n);printf(----5.修改高数成绩 6.修改大物成绩-----\n);printf(********************7.退出本菜单******************\n);printf(请输入你要修改的选项\n);scanf(%d, input);switch (input){case 1:printf(请输入要修改的性别\n);scanf(%s, sex);strcpy(Stu[i].Stusex, sex);break;case 2:printf(请输入要修改的姓名\n);scanf(%s,name);strcpy(Stu[i].Stuname, name);break;case 3:printf(请输入要修改的年龄\n);scanf(%d, age);Stu[i].Stuage age;break;case 4:printf(请输入要修改的C语言成绩\n);scanf(%lf, score);Stu[i].score[0] score;break;case 5:printf(请输入要修改的高数成绩\n);scanf(%lf, score);Stu[i].score[1] score;break;case 6:printf(请输入要修改的大物成绩\n);scanf(%lf, score);Stu[i].score[2] score;break;case 7:return;default:printf(选择错误请重新选择\n);break;}}if (1 input input 6){printf(恭喜你修改成功\n);break;}if (flag 0){printf(没有找到该学生信息请重新输入学生学号\n);gets(name);}}}system(pause); }int PaiXu(const void* e1, const void* e2) {return ((struct Student*)e2)-score[0] - ((struct Student*)e1)-score[0]; } int PaiXu1(const void* e1, const void* e2) {return ((struct Student*)e2)-score[0] - ((struct Student*)e1)-score[0]; } int PaiXu2(const void* e1, const void* e2) {return ((struct Student*)e2)-score[2] - ((struct Student*)e1)-score[2]; } void PaiMing() {int input 0;while (1){printf(\t\t**************************************************\n);printf(\t\t---------------------***光荣榜***-----------------\n);printf(\t\t**************************************************\n);printf(\t\t********1.C语言-------------------2.高数**********\n);printf(\t\t********3.大物--------------------4.退出系统******\n);printf(\t\t**************************************************\n);printf(请输入你要查询的排名\n);scanf(%d, input);switch (input){case 1:printf(\t学号\t\t名字\tC语言成绩\n);int rs sizeof(Stu) / sizeof(Stu[0]);qsort(Stu, rs, sizeof(Stu[0]), PaiXu);//排序for (int i 0; i m; i){printf(第%d名\t%s\t%s\t%.2lf, i1, Stu[i].Stuid, Stu[i].Stuname, Stu[i].score[0]);printf(\n);}break;case 2:printf(\t学号\t\t名字\t高数成绩\n);int rs1 sizeof(Stu) / sizeof(Stu[0]);qsort(Stu, rs1, sizeof(Stu[0]), PaiXu1);for (int i 0; i m; i){printf(第%d名\t%s\t%s\t%.2lf, i1, Stu[i].Stuid, Stu[i].Stuname, Stu[i].score[0]);printf(\n);}break;case 3:printf(\t学号\t\t名字\t大物成绩\n);int rs2 sizeof(Stu) / sizeof(Stu[0]);qsort(Stu, rs, sizeof(Stu[0]), PaiXu2);for (int i 0; i m; i){printf(第%d名\t%s\t%s\t%.2lf, i1, Stu[i].Stuid, Stu[i].Stuname, Stu[i].score[0]);printf(\n);}break;case 4:return;default:printf(选择错误重新选择\n);break;}} } #includeoffer.h int sum 1; int main() {int i 0;int input 0, count 0;char mima[20] 123;//登入的密码char shuru[20];char mingzi[20];system(color F4);printf(\t\t\t **************************************\n);printf(\t\t\t | *欢迎使用学生管理系统* |\n);printf(\t\t\t | *管理员: 小唐* |\n);printf(\t\t\t ------------------------------------\n);printf(请输入管理员密码\n);while ((count _getch()) ! \r){if (count \b){i--;printf(\b \b);}else{shuru[i] count;printf(*);}}shuru[i] \0; if (strcmp(mima, shuru) 0){printf(\n密码正确您已进入系统\n);}else{printf(\n密码错误请重新输入\n);return 0;}system(pause);system(cls);do{menu2();printf(请选择继续还是结束操作\n);scanf(%d, sum);switch (sum){case Quit:system(cls);printf(您已退出学生管理系统\n);break;case Resume:menu1();void(*p[9])() { NULL,TiShi,StuXinXi,ChaZhao,ShanGai,BaoCun,XianShi,XiuGai,PaiMing };//指针数组函数printf(请输入你要进行的操作\n);scanf(%d, input);system(cls);(*p[input])();break;default:printf(输入错误重新输入\n);break;}} while (sum);return 0; }
http://www.zqtcl.cn/news/106330/

相关文章:

  • c2c网站特点公司网站建设亚运村
  • 邢台wap网站建设费用黑帽seo之搜索引擎
  • 如何用阿里云做网站刷题网站怎么做
  • 织梦制作手机网站上海猎头公司名单
  • 免费生成图片的网站wordpress 购物
  • 江西建设部网站国际新闻最新消息今天2023
  • 怎么做网站啊wordpress英文显示改中文
  • 建筑专业网站有哪些网站标题seo外包优化
  • 浙江建设厅网站施工员报名中国建设协会官网站
  • 网站建设优化是干嘛上海今天最新的新闻
  • 网站大全浏览器软文的概念
  • 盐山做网站价格莱芜征婚吧
  • 具有品牌的微网站建设网站设计培训班前台
  • 网站推广工具推荐html网站地图在线生成
  • 成都本地网站建设青岛电子商务的网站建设
  • 北京网站开发培训河南省百城建设提质工程网站
  • 郑州专业建网站南通网站建设技术支持
  • 简约网站程序网络营销方式较为单一
  • 绍兴企业自助建站123房产网
  • 科技类网站设计特点备案 网站首页地址
  • 做兼职网站网站建设培训速成
  • 开源的网站管理系统商务网站设计与建设实训
  • 东莞三合一网站制作江阴做网站的公司有
  • mvc5 网站开发之學 pdf百度搜索引擎首页
  • 手机进入网站自动识别城阳区规划建设局网站
  • 网站开发平台的公司订票网站开发公司
  • 郑州网站推广信息网架结构厂家
  • 提升网站流量的方法汕头站扩建
  • 响应式网站建设制作需要注意什么网站建设汇卓
  • 馨雨公司网站建设策划方案一个网站能放多少关键词