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

飓风算法恢复的网站大连做网站排名

飓风算法恢复的网站,大连做网站排名,WordPress主题改变登录页面,欧美风格网站模版功能模块 具体功能如下#xff1a; 添加学生信息修改学生信息#xff08;按学号#xff09;排序#xff08;分别按总分升序、降序、以及按姓名升序#xff09;查找学生#xff08;按学号#xff09;删除学生查看所有学生信息 数据结构体设计 本表设计一个学生信息的结…功能模块 具体功能如下 添加学生信息修改学生信息按学号排序分别按总分升序、降序、以及按姓名升序查找学生按学号删除学生查看所有学生信息 数据结构体设计 本表设计一个学生信息的结构体就行 //学生信息结构体 typedef struct student {char ID[10];//学号char name[20]; //姓名char sex; //性别float score[5]; //成绩float total; //总成绩float avg; //平均成绩 }STU;这样就定义了学生信息的结构体STUSTU student[N]定义多个学生 总体设计流程图 在主函数中首先调用load函数把文件中的学生信息全部读取到结构数组中然后调用display函数显示主菜单接着输入选择项然后根据选择项调用不同的函数执行相应功能。 这样就得到了系统的整体流程 主要功能模块 下面是功能模块函数的声明 //函数声明 void display(void);//显示菜单 void load(STU stu[],int *nPtr);//输入学生信息 void save(STU stu[],int n);//保存学生信息 void sort(STU stu[],int n);//排序 void InputRecord(STU stu[],int i);//输入一条记录 void find(STU stu[],int n);//查找 void del(STU stu[],int *nPtr);//删除 void add(STU stu[],int *nPtr);//增加 void edit(STU stu[],int n);//修改 void DeleteAll(STU stu[],int *nPtr);//删除所有记录 void DeleteRecord(STU stu[],int *nPtr);//删除一条记录 int FindByNum(STU stu[],int n,char *str);//按学号查找 void output(STU stu[],int n);//输出学生信息 void PrintRecord(STU *sPtr);//输出一条记录主函数代码编写 定义结构体数组然后使用Switch来设置进入界面菜单 int main() {STU stu[100];//学生信息结构体数组int n;int select;load(stu,n);//读取文件信息while (1){display();//显示菜单scanf(%d,select);switch (select){case 1:add(stu,n);//增加break;case 2:edit(stu,n);//修改break;case 3:sort(stu,n);//排序break;case 4:find(stu,n);//查找break;case 5:del(stu,n);//删除break;case 6:output(stu,n);//输出学生信息break;case 7:return 0;default:printf(输入错误请重新输入\n);break;}}return 0; }显示主菜单display void display(void) {system(cls);//清屏printf(欢迎使用学生信息管理系统\n);printf(说明在本系统输入功能对应数字即可\n);printf(1.增加学生信息\n);printf(2.修改学生信息\n);printf(3.排序\n);printf(4.查找\n);printf(5.删除\n);printf(6.输出学生信息\n);printf(7.退出\n); }学生信息加载到数组stu的函数load 运用文件读写fread将文件中的学生信息读取到stu数组中去记录下当前学生数量 //输入学生信息 void load(STU stu[],int *nPtr) {FILE *fp;int i;if((fpfopen(stu.dat,r))NULL){*nPtr0;printf(文件打开失败\n);return;}//把文件中的信息读取到结构体数组中for ( i 0;fread(stu[i],sizeof(STU),1,fp)!0 ; i);*nPtri;//记录文件中当前学生数量fclose(fp); }保存数据save //保存数据 void save(STU stu[],int n) { FILE *fp;if((fpfopen(stu.dat,w))NULL){printf(文件打开失败\n);return;}//把n个记录写入文件fwrite(stu,n*sizeof(stu[0]),1,fp);fclose(fp); }输入记录InputRecord //输入一条记录InputRecord void InputRecord(STU stu[],int i)//输入一条记录 { int j;//输入学号并验证其合法性printf(请输入第%d个学生的学生信息,i1);printf(请输入学号(学号小于9位数字组成)\n);scanf(%s,stu[i].ID);//输入姓名printf(请输入姓名(姓名小于20位字符组成)\n);scanf(%s,stu[i].name);//输入性别 printf(请输入性别(男性用m或女性用f)\n);scanf( %c,stu[i].sex);//输入成绩总和printf(请输入5门课的成绩(成绩为0-100之间的整数)\n);stu[i].total0;for ( j 0; j 5; j){scanf(%f,stu[i].score[j]);stu[i].totalstu[i].score[j];}//计算平均成绩stu[i].avgstu[i].total/5; }添加记录add /*调用InputRecord函数添加若干学生信息并把新添加的学生信息依次保存到文件中 */ //添加记录add void add(STU stu[],int *nPtr) {int i0;char sely;while (sely){InputRecord(stu,(*nPtr));//添加第n1个学生信息(*nPtr);printf(是否继续添加(y/n)?\n);scanf( %c,sel);}save(stu,*nPtr);//保存学生信息 }输出指针sPtr所指记录的内容PrintRecord //输出指针sPtr所指记录的内容PrintRecord void PrintRecord(STU *sPtr) {int i;printf(%8s%8s%4c,sPtr-ID,sPtr-name,sPtr-sex);for ( i 0; i 5; i){printf(%8.2f,sPtr-score[i]);}printf(%8.2f%8.2f,sPtr-total,sPtr-avg); printf(\n); }输出学生信息output() 首先输出表头然后在循环中调用PrintRecord来显示每一个记录的内容 //输出学生信息output void output(STU stu[],int n) {int i;printf(学号\t姓名\t性别\t课程1\t课程2\t课程3\t课程4\t课程5\t总成绩\t平均成绩\n);for ( i 0; i n; i){PrintRecord(stu[i]);}system(pause); }按学号查找学生信息FindByNum 按学号查询信息返回学生下标 //按学号查找学生信息FindByNum int FindByNum(STU stu[],int n,char *str) {for ( int i 0; i n; i)if(strcmp(stu[i].ID,str)0)return i;return -1; }修改学生信息函数edit() 该函数首先按用户输入的学号调用函数FindByName找到要修改的记录然后调用PrintRecord显示该记录的内容再逐项询问是否需要修改最后调用save更新文件。 //edit修改学生信息 void edit(STU stu[],int n) {int i,index;char sel;char str[20];printf(请输入学号:\n);scanf(%s,str);indexFindByNum(stu,n,str);//查找学号为str的学生信息if(index0){printf(没有找到学号为%s的学生信息\n,str);return;}else{printf(找到学号为%s的学生信息\n,str);PrintRecord(stu[index]);}//修改姓名printf(是否修改姓名(y/n)?\n);scanf( %c,sel);if(sely){printf(请输入新的姓名:\n);scanf(%s,stu[index].name);}//修改性别printf(是否修改性别(y/n)?\n);scanf( %c,sel);if(sely){printf(请输入f or m:\n);scanf(%s,stu[index].sex);}//修改成绩printf(是否修改成绩(y/n)?\n);scanf( %c,sel);if(sely){stu[index].total0;for ( i 0; i 5; i){printf(请输入第%d门课的成绩:\n,i1);scanf(%f,stu[index].score[i]);stu[index].totalstu[index].score[i];}stu[index].avgstu[index].total/5;}save(stu,n);//保存修改后的学生信息}排序sort的功能流程图 排序代码编写 //排序sort //菜单编写 void sort(STU stu[],int n) {int select,i,j;int (*cmp)(STU a,STU b);//函数指针 int ScoreAsc(STU a,STU b);//成绩升序int ScoreDesc(STU a,STU b);//成绩降序int NameAsc(STU a,STU b);//姓名升序printf(请选择排序方式(1.成绩升序 2.成绩降序 3.姓名升序):\n);scanf(%d,select);switch (select){case 1:cmpScoreAsc;break;case 2:cmpScoreDesc;break;case 3:cmpNameAsc;break;default:return; }//比较函数编写 //按照指定规则进行比较交换排序 for ( i 0; i n-1; i)for ( j i1;jn;j)if((*cmp)(stu[i],stu[j])0)//若逆序cmp返回正数{STU tempstu[i];stu[i]stu[j];stu[j]temp;}output(stu,n);//输出排序后的学生信息 }//成绩升序 int ScoreAsc(STU a,STU b) {return a.totalb.total?1:-1;//如果ab,返回1否则返回-1 }//成绩降序 int ScoreDesc(STU a,STU b) {return a.totalb.total?1:-1;//如果ab,返回1否则返回-1 }//姓名升序 int NameAsc(STU a,STU b) {return strcmp(a.name,b.name);//按照姓名升序排列/*若 a 和 b 相等则返回值为 0 若 a 按字典序小于 b则返回值为负整数 若 a 按字典序大于 b则返回值为正整数。*/}查询信息find //查询find //在数组stu的前n个元素中查找学号为str的学生信息 void find(STU stu[],int n) {int index;char str[20];printf(请输入学号:\n);scanf(%s,str);indexFindByNum(stu,n,str);//查找学号为str的学生信息if(index0){printf(没有找到学号为%s的学生信息\n,str);return;}else{printf(找到学号为%s的学生信息\n,str);PrintRecord(stu[index]);}system(pause); }删除del 调用FindByName得到对应下标然后删除记录save更新文件 //删除指定记录del void del(STU stu[],int *nPtr) {int i,index;char str[20];printf(请输入学号:\n);scanf(%s,str);indexFindByNum(stu,*nPtr,str);//查找学号为str的学生信息if(index0){printf(没有找到学号为%s的学生信息\n,str);return;}for ( i index; i *nPtr-1; i){stu[i]stu[i1];}(*nPtr)--;printf(删除成功\n);save(stu,*nPtr);//保存修改后的学生信息system(pause); }删除全部 //删除全部delALL void DeleteAll(STU stu[],int *nPtr) {char str[20];*nPtr0;save(stu,*nPtr);//保存修改后的学生信息system(pause); } 整体代码 #include stdio.h #include stdlib.h #include string.h//学生信息结构体 typedef struct student {char ID[10];//学号char name[20]; //姓名char sex; //性别float score[5]; //成绩float total; //总成绩float avg; //平均成绩 }STU;//函数声明 void display(void);//显示菜单 void load(STU stu[],int *nPtr);//输入学生信息 void save(STU stu[],int n);//保存学生信息 void sort(STU stu[],int n);//排序 void InputRecord(STU stu[],int i);//输入一条记录 void find(STU stu[],int n);//查找 void del(STU stu[],int *nPtr);//删除 void add(STU stu[],int *nPtr);//增加 void edit(STU stu[],int n);//修改 void DeleteAll(STU stu[],int *nPtr);//删除所有记录 void DeleteRecord(STU stu[],int *nPtr);//删除一条记录 int FindByNum(STU stu[],int n,char *str);//按学号查找 void output(STU stu[],int n);//输出学生信息 void PrintRecord(STU *sPtr);//输出一条记录int main() {STU stu[100];//学生信息结构体数组int n;int select;load(stu,n);//读取文件信息while (1){display();//显示菜单scanf(%d,select);switch (select){case 1:add(stu,n);//增加break;case 2:edit(stu,n);//修改break;case 3:sort(stu,n);//排序break;case 4:find(stu,n);//查找break;case 5:del(stu,n);//删除break;case 6:output(stu,n);//输出学生信息break;case 7:return 0;default:printf(输入错误请重新输入\n);break;}}return 0; }//显示菜单 void display(void) {system(cls);//清屏printf(欢迎使用学生信息管理系统\n);printf(说明在本系统输入功能对应数字即可\n);printf(1.增加学生信息\n);printf(2.修改学生信息\n);printf(3.排序\n);printf(4.查找\n);printf(5.删除\n);printf(6.输出学生信息\n);printf(7.退出\n); }//输入学生信息 void load(STU stu[],int *nPtr) {FILE *fp;int i;if((fpfopen(stu.dat,rb))NULL){*nPtr0;printf(文件打开失败\n);return;}//把文件中的信息读取到结构体数组中for ( i 0;fread(stu[i],sizeof(STU),1,fp)!0 ; i);*nPtri;//记录文件中当前学生数量fclose(fp); }//保存数据 void save(STU stu[],int n) { FILE *fp;if((fpfopen(stu.dat,wb))NULL){printf(文件打开失败\n);return;}//把n个记录写入文件fwrite(stu,n*sizeof(stu[0]),1,fp);fclose(fp); }//输入一条记录InputRecord void InputRecord(STU stu[],int i)//输入一条记录 { int j;//输入学号并验证其合法性printf(请输入第%d个学生的学生信息,i1);printf(请输入学号(学号小于9位数字组成)\n);scanf(%s,stu[i].ID);//输入姓名printf(请输入姓名(姓名小于20位字符组成)\n);scanf(%s,stu[i].name);//输入性别 printf(请输入性别(男性用m或女性用f)\n);scanf( %c,stu[i].sex);//输入成绩总和printf(请输入5门课的成绩(成绩为0-100之间的整数)\n);stu[i].total0;for ( j 0; j 5; j){scanf(%f,stu[i].score[j]);stu[i].totalstu[i].score[j];}//计算平均成绩stu[i].avgstu[i].total/5; }//添加记录add void add(STU stu[],int *nPtr) {int i0;char sely;while (sely){InputRecord(stu,(*nPtr));//添加第n1个学生信息(*nPtr);printf(是否继续添加(y/n)?\n);scanf( %c,sel);}save(stu,*nPtr);//保存学生信息 }//输出指针sPtr所指记录的内容PrintRecord void PrintRecord(STU *sPtr) {int i;printf(%8s%8s%4c,sPtr-ID,sPtr-name,sPtr-sex);for ( i 0; i 5; i){printf(%8.2f,sPtr-score[i]);}printf(%8.2f%8.2f,sPtr-total,sPtr-avg); printf(\n); }//输出学生信息output void output(STU stu[],int n) {int i;printf(学号\t姓名\t性别\t课程1\t课程2\t课程3\t课程4\t课程5\t总成绩\t平均成绩\n);for ( i 0; i n; i){PrintRecord(stu[i]);}system(pause); }//按学号查找学生信息FindByNum int FindByNum(STU stu[],int n,char *str) {for ( int i 0; i n; i)if(strcmp(stu[i].ID,str)0)return i;return -1;}//edit修改学生信息 void edit(STU stu[],int n) {int i,index;char sel;char str[20];printf(请输入学号:\n);scanf(%s,str);indexFindByNum(stu,n,str);//查找学号为str的学生信息if(index0){printf(没有找到学号为%s的学生信息\n,str);return;}else{printf(找到学号为%s的学生信息\n,str);PrintRecord(stu[index]);}//修改姓名printf(是否修改姓名(y/n)?\n);scanf( %c,sel);if(sely){printf(请输入新的姓名:\n);scanf(%s,stu[index].name);}//修改性别printf(是否修改性别(y/n)?\n);scanf( %c,sel);if(sely){printf(请输入f or m:\n);scanf(%s,stu[index].sex);}//修改成绩printf(是否修改成绩(y/n)?\n);scanf( %c,sel);if(sely){stu[index].total0;for ( i 0; i 5; i){printf(请输入第%d门课的成绩:\n,i1);scanf(%f,stu[index].score[i]);stu[index].totalstu[index].score[i];}stu[index].avgstu[index].total/5;}save(stu,n);//保存修改后的学生信息}//排序sort void sort(STU stu[],int n) {int select,i,j;int (*cmp)(STU a,STU b);//函数指针 int ScoreAsc(STU a,STU b);//成绩升序int ScoreDesc(STU a,STU b);//成绩降序int NameAsc(STU a,STU b);//姓名升序printf(请选择排序方式(1.成绩升序 2.成绩降序 3.姓名升序):\n);scanf(%d,select);switch (select){case 1:cmpScoreAsc;break;case 2:cmpScoreDesc;break;case 3:cmpNameAsc;break;default:return; }//按照指定规则进行比较交换排序 for ( i 0; i n-1; i)for ( j i1;jn;j)if((*cmp)(stu[i],stu[j])0)//若逆序cmp返回正数{STU tempstu[i];stu[i]stu[j];stu[j]temp;}output(stu,n);//输出排序后的学生信息 }//成绩升序 int ScoreAsc(STU a,STU b) {return a.totalb.total?1:-1;//如果ab,返回1否则返回-1 }//成绩降序 int ScoreDesc(STU a,STU b) {return a.totalb.total?1:-1;//如果ab,返回1否则返回-1 }//姓名升序 int NameAsc(STU a,STU b) {return strcmp(a.name,b.name);//按照姓名升序排列/*若 a 和 b 相等则返回值为 0 若 a 按字典序小于 b则返回值为负整数 若 a 按字典序大于 b则返回值为正整数。*/}//查询find //在数组stu的前n个元素中查找学号为str的学生信息 void find(STU stu[],int n) {int index;char str[20];printf(请输入学号:\n);scanf(%s,str);indexFindByNum(stu,n,str);//查找学号为str的学生信息if(index0){printf(没有找到学号为%s的学生信息\n,str);return;}else{printf(找到学号为%s的学生信息\n,str);PrintRecord(stu[index]);}system(pause); }//删除指定记录del void del(STU stu[],int *nPtr) {int i,index;char str[20];printf(请输入学号:\n);scanf(%s,str);indexFindByNum(stu,*nPtr,str);//查找学号为str的学生信息if(index0){printf(没有找到学号为%s的学生信息\n,str);return;}for ( i index; i *nPtr-1; i){stu[i]stu[i1];}(*nPtr)--;printf(删除成功\n);save(stu,*nPtr);//保存修改后的学生信息system(pause); }//删除全部delALL void DeleteAll(STU stu[],int *nPtr) {char str[20];*nPtr0;save(stu,*nPtr);//保存修改后的学生信息system(pause); } 运行截图 代码还是有点小问题 后续希望完善。
http://www.w-s-a.com/news/892997/

相关文章:

  • 织梦的网站关键词如何自己搭建微信小程序
  • 怎么做基金公司网站韩都衣舍网站建设ppt
  • 外贸网站模板aspnet网站开发 视频
  • 上海植物租赁做网站南浔网站建设
  • 怎么做学校网站做兼职工作上哪个网站招聘
  • 软件下载网站哪个比较好杭州开发小程序
  • 做网站都用什么技术学做名片的网站
  • 备案网站忘记密码乐装网
  • 电商扶贫网站建设淄博网站建设小程序
  • 网站群建设代理丰城网站建设公司
  • 青岛网站建设服务器wordpress迁移跳转原网站
  • 泰安网站建设哪里有公司如何注册网站
  • 做网站开专票税钱是多少个点上海市有哪些公司
  • 寿县有做网站开发的吗宁波网站建设方式
  • 网站建设和网站推广服务器怎么发布网站
  • 比较好的摄影网站雅安市政建设公司网站
  • 网站与微信区别wordpress 站内信
  • 宁夏网站开发设计说明书源码下载脚本之家
  • 邱县做网站百度搜索排名机制
  • 运城个人网站建设智慧团建系统官方网站登录
  • 公司营业执照可以做几个网站一家专门做母婴的网站
  • 网站建设商标属于哪个类别搜狗seo快速排名公司
  • 织梦做商城网站企业网络建站
  • 网站后期维护都有什么wordpress首页加图片
  • 展会网站怎么做网页设计与制作教程版徐洪亮课后答案
  • 石景山网站建设设计公司建设网站怎么建立服务器
  • 本地生活服务平台app网站关键词优化原理
  • 建网站的公司叫什么重庆论坛建站模板
  • 湖北网站制作公司银川网站建设哪家不错
  • 网站后台演示地址服装网站建设公司推荐