C语言编写《学生信息管理系统》之结构体
来源:互联网 发布:网络推广外包 编辑:程序博客网 时间:2024/05/16 10:59
版权声明:创作不易,希望大家理解。
这次给大家带来的结构体处理一些数据,以编写《学生信息管理系统》为背景的小试牛刀,基本功能都可以使用,文件的操作这里没有涉及,有兴趣的同学可以查看我的链表版的《学生信息管理系统》,大家加油
有一点瑕疵,小毛病,自己动手调一调。抱歉
下面是查找模块,有姓名和学号两种查询方式,这里是姓名方式,就不赘述了。
下面是删除模块,全为1的被我删除了。2是刚添加的。
下面是修改模块,绝对没问题。
这是重点,排序模块,其中涉及不少知识大家慢慢看!
读取和保存,没来得及写,抱歉了。大家可以动手自己写写,Ctrl+v习惯了就不好了!!代码奉上,有兴趣的可以看看我的链表的!下期见咯。
#include<stdio.h>#include<stdlib.h>#include<string.h>int n=0;struct student {char name[20]; //名字char num[20]; //学号char Class[20]; //班级char mayor[20]; //专业int age; //年龄int score; //成绩}s[100];void add() //添加{system("cls");printf("请输入学生基本信息:\n姓名:");scanf("%s",&s[n].name);printf("学号:");scanf("%s",&s[n].num);printf("年龄:");scanf("%d",&s[n].age);printf("班级:");scanf("%s",&s[n].Class);printf("专业:");scanf("%s",&s[n].mayor);printf("成绩:");scanf("%d",&s[n].score);n++;printf("\n\n您输入的信息已被保存!\n");system("pause");system("cls");}void print(){int i;system("cls");printf("姓名\t学号\t\t班级\t年龄\t专业\t\t成绩\n");for(i=0;i<10;i++){printf("%-8s",s[i].name);printf("%-16s",s[i].num);printf("%-8d",s[i].age);printf("%-8s",s[i].Class);printf("%-16s",s[i].mayor);printf("%-8d",s[i].score);printf("\n");}printf("\n信息显示完毕!\n");system("pause");system("cls");}void find() //查找{void find1();void find2();int a;system("cls");printf("1.按姓名查找\n2.按学号查询\n");scanf("%d",&a);switch(a){case 1:find1();break;case 2:find2();break;}}void Delete() //删除{int i;char a[20];printf("请输入要删除的学号");scanf("%s",&a);for(i=0;i<n;i++)if(strcmp(a,s[i].num)==0){while(i<n){s[i]=s[i+1];i++;}n-=1;}}void amend() //修改{{int i,j,o;char a[20];system("cls");printf("修改学生的学号:");scanf("%s",&a); //通过输入需要修改信息的学号找到他printf("\n");for(i=0;i<n;i++){if(strcmp(a,s[i].num)==0){printf("学号:%s\n",s[i].num); printf("姓名:%s\n",s[i].name); printf("班级:%s\n",s[i].Class); printf("专业:%s\n",s[i].mayor); printf("年龄:%d\n",s[i].age);printf("成绩:%d\n\n",s[i].score);o=i;}}printf("1.修改学号\n2.修改姓名\n3.修改专业\n4.修改年级\n5.修改性别\n6.修改出生日期\n请选择:");scanf("%d",&j); //选择修改的信息switch(j) //选择结构!{case 1:printf("学号修改为:");scanf("%s",s[o].num);break;case 2:printf("姓名修改为:");scanf("%s",s[o].name);break;case 3:printf("专业修改为:");scanf("%s",&s[o].mayor);break;case 4:printf("班级修改为:");scanf("%d",&s[o].Class);break;case 5:printf("成绩修改为:");scanf("%s",&s[o].score);break;case 6:printf("年龄修改为:");scanf("%d",s[o].age);break;}printf("\n修改成功!\n\n");system("pause");system("cls");}}void sort() //排序(成绩){struct student tmp;int i,j;printf("共排序%d组数据\n\n",n);for(i=0;i<n;i++){for(j=i+1;j<n;j++) //for双循环对每一个值进行冒泡比较{if(s[i].score>s[j].score) //前面的值如果大于后面的纸就进行冒泡排序{tmp=s[i]; //交换内容s[i]=s[j]; //交换内容s[j]=tmp; //交换内容}}}printf("已按照成绩排序!\n");system("pause");system("cls");}void save(){int i;FILE *fp;fp=fopen("c.txt","wb");for(i=0;i<n;i++)if(fwrite(&s[i],sizeof(s),1,fp)!=1)printf("Error");fclose(fp);printf("\n\n已存入文件中!!!\n");system("pause");system("cls");}void read(){int i;FILE *fp;fp=fopen("C:\\Users\\Administrator\\Desktop\\学生信息管理系统3个版本\\学生信息管理系统顺序版本4.0\\c.txt","rb");for(i=0;i<9;i++)fread(&s[i],sizeof(s),1,fp);fclose(fp);printf("\n\n已经读取文件!!!\n");system("pause");system("cls");}void find1(){int i;char a[20];system("cls");printf("您选择按姓名查询:\n");scanf("%s",&a);for(i=0;i<n;i++){if(strcmp(a,s[i].name)==0){printf("\n\n\n%s\t",s[i].name);printf("%s\t\t",s[i].num);printf("%s\t",s[i].Class);printf("%d\t",s[i].age);printf("%d\t",s[i].score);printf("%s",s[i].mayor);printf("\n");}}system("pause");system("cls");}void find2(){int i;char a[20];system("cls");printf("您选择按学号查询:\n");scanf("%s",&a);for(i=0;i<n;i++){if(strcmp(a,s[i].num)==0){printf("%s\t",s[i].name);printf("%s\t\t",s[i].num);printf("%s\t",s[i].Class);printf("%d\t",s[i].age);printf("%d\t",s[i].score);printf("%s",s[i].mayor);printf("\n");}}system("pause");system("cls");}void main() //主函数{int a=1;while(1){if(a>=0&&a<=9){system("cls");printf("〓〓〓〓〓〓〓〓〓〓 ☆ 学 生 成 绩 管 理 系 统 ☆ 〓〓〓〓〓〓〓〓〓〓\n");printf("〓〓〓〓〓〓〓〓〓★ ☆ 1.增加学生信息 ☆ ★〓〓〓〓〓〓〓〓〓\n");printf("〓〓〓〓〓〓〓〓〓★ ☆ 2.显示全部信息 ☆ ★〓〓〓〓〓〓〓〓〓\n");printf("〓〓〓〓〓〓〓〓〓★ ☆ 3.查找全部信息 ☆ ★〓〓〓〓〓〓〓〓〓\n");printf("〓〓〓〓〓〓〓〓〓★ ☆ 4.删除学生信息 ☆ ★〓〓〓〓〓〓〓〓〓\n");printf("〓〓〓〓〓〓〓〓〓★ ☆ 5.修改学生信息 ☆ ★〓〓〓〓〓〓〓〓〓\n");printf("〓〓〓〓〓〓〓〓〓★ ☆ 6.按成绩 排序 ☆ ★〓〓〓〓〓〓〓〓〓\n");printf("〓〓〓〓〓〓〓〓〓★ ☆ 7.保存学生信息 ☆ ★〓〓〓〓〓〓〓〓〓\n");printf("〓〓〓〓〓〓〓〓〓★ ☆ 8.读取学生信息 ☆ ★〓〓〓〓〓〓〓〓〓\n");printf("〓〓〓〓〓〓〓〓〓★ ☆ 0.安全退出系统 ☆ ★〓〓〓〓〓〓〓〓〓\n");printf("请选择:");scanf("%d",&a);switch(a){case 1:add();break;case 2:print();break;case 3:find();break;case 4:Delete();break;case 5:amend();break;case 6:sort();break;case 7:save();break;case 8:read();break;case 0:exit(0);break;}}else{printf(" 您输入的不符合要求,请输入符合要求的数字返回主菜单!");scanf("%d",&a);}}}
0 0
- C语言编写《学生信息管理系统》之结构体
- C语言编写《学生信息管理系统》之链表
- 学生信息管理系统-结构体编写
- C语言设计之 学生信息管理系统
- C语言课程设计之学生信息管理系统
- C语言学生信息管理系统
- c语言学生信息管理系统
- 学生信息管理系统 c语言
- C语言:学生信息管理系统
- c语言学生信息管理系统
- C语言 学生信息管理系统
- C语言学生信息管理系统
- 大一C语言结课设计之《学生信息管理系统》
- C语言小练习之学生信息管理系统
- [C] 结构体测试程序 -- 学生信息管理系统
- 学生信息管理系统---之结构、关系分析
- 学生信息管理系统(c语言)
- 学生信息管理系统(C语言)
- Hive(笔记)
- 2015.07.20MapReducer源码解析(笔记)
- 2015.07.12hadoop伪分布安装
- HDFS入门(1)
- Docker搭建hadoop集群
- C语言编写《学生信息管理系统》之结构体
- Spark(开课吧笔记)
- 各种神字体来袭,圈子球迷用书法作品为国足呐喊加油!
- Docker(开课吧笔记)
- Redis(2015.08.03笔记一)
- Zookepper(2015.08.16笔记)
- Storm(2015.08.12笔记)
- 《将博客搬至CSDN》
- Ubunu下安装中文输入法(新增Ubuntu 16.04)