- 主题
- 0
- 帖子
- 8
- 精华
- 1
- 积分
- 42
- C币
- 40 枚
- 在线时间
- 2 小时
- 注册时间
- 2009-8-29
- 最后登录
- 2011-10-12
- 性别
- 男

- 主题
- 0
- 帖子
- 8
- C币
- 40 枚
- 在线时间
- 2 小时
|
发表于 2009-8-30 10:18:56
|显示全部楼层
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- int INDEX[32];
- struct STUDENT
- {
- int id,age,chinese,math,english;
- char name[21];
- }students[32];
- void page_title(char *menu_item)
- {
- clrscr();
- printf(">>> 学 生 管 理 系 统 <<<\n\n- %s -\n\n",menu_item);
- }
- void return_confirm(void)
- {
- printf("\n按任意键返回……\n");
- getch();
- }
- void student_new(void)
- {
- int n;
- page_title("录入学生基本信息");
- for(n=0;n<32;n++)
- if(students[n].id==0) break;
- printf("学号:");
- scanf("%d",&students[n].id);
- printf("姓名:");
- scanf("%s",&students[n].name);
- printf("年龄:");
- scanf("%d",&students[n].age);
- return_confirm();
- }
- int search_id(void)
- {
- int n,i;
- printf("请输入学生学号:");
- scanf("%d",&i);
- for(n=0;n<32;n++)
- {
- if(students[n].id==i&&students[n].id!=0)
- {
- printf("学号:%d\n",students[n].id);
- printf("姓名:%s\n",students[n].name);
- printf("年龄:%d\n",students[n].age);
- return n;
- }
- }
- printf("\n输入错误或学号不存在.\n");
- return -1;
- }
- void student_del(void)
- {
- int n;
- page_title("注销学生基本信息");
- if((n=search_id())!=-1) students[n].id=0;
- printf("\n!该学生已注销.\n");
- return_confirm();
- }
- void student_edit(void)
- {
- int n;
- page_title("编辑学生基本信息");
- if((n=search_id())!=-1)
- {
- printf("\n请重新输入新信息:\n学号:");
- scanf("%d",&students[n].id);
- printf("姓名:");
- scanf("%s",&students[n].name);
- printf("年龄:");
- scanf("%d",&students[n].age);
- }
- return_confirm();
- }
- void score_input(void)
- {
- int s,n,t;
- page_title("录入成绩");
- printf("\n请用数字键选择科目\n1-语文 2-数学 3-英语\n");
- scanf("%d",&s);
- for(n=0;n<32;n++)
- {
- if(students[n].id!=0)
- {
- printf("学号:%d 姓名:%s 成绩:",students[n].id,students[n].name);
- scanf("%d",&t);
- switch(s)
- {
- case 1 : students[n].chinese=t;break;
- case 2 : students[n].math=t;break;
- case 3 : students[n].english=t;break;
- }
- }
- }
- return_confirm();
- }
- void score_edit(void)
- {
- int n;
- page_title("修改成绩");
- if((n=search_id())!=-1)
- {
- printf("语文:%d 数学:%d 英语:%d\n",students[n].chinese,students[n].math,students[n].english);
- printf("\n请重新输入成绩:\n语文:");
- scanf("%d",&students[n].chinese);
- printf("数学:");
- scanf("%s",&students[n].math);
- printf("英语:");
- scanf("%d",&students[n].english);
- }
- return_confirm();
- }
- void sort_it(char nn)
- {
- int n,m,p,x,t[32];
- for(n=0;n<32;n++)
- {
- switch(nn)
- {
- case '1' : t[n]=students[n].id;break;
- case '2' : t[n]=students[n].chinese;break;
- case '3' : t[n]=students[n].math;break;
- case '4' : t[n]=students[n].english;break;
- case '5' : t[n]=students[n].chinese+students[n].math+students[n].english;break;
- }
- }
- for(n=0;n<32;n++)
- {
- x=0;
- p=-1;
- for(m=0;m<32;m++)
- {
- if(t[m]>x)
- {
- x=t[m];
- p=m;
- }
- }
- t[p]=-1;
- INDEX[n]=p;
- }
- }
- void browser(void)
- {
- int n,x;
- char k;
- sort_it('1');
- while(1)
- {
- page_title("浏览");
- printf("按数字键选择排序方式或按 0 返回\n");
- printf("学号-1\t姓名\t\t年龄\t语文-2\t数学-3\t英语-4\t总分-5\n");
- for(n=0;n<32;n++)
- {
- if(INDEX[n]!=-1)
- {
- x=INDEX[n];
- printf("%d\t%s\t",students[x].id,students[x].name);
- printf("%d\t%d\t",students[x].age,students[x].chinese);
- printf("%d\t%d\t",students[x].math,students[x].english);
- printf("%d\n",students[x].chinese+students[x].math+students[x].english);
- }
- }
- k=getch();
- if(k<'6'&&k>'0') sort_it(k);
- else if(k=='0') break;
- else continue;
- }
- }
- void main(void)
- {
- menu: page_title("操作选单");
- printf("请用数字键选择操作\n\n");
- printf("1 录入学生基本信息\n2 修改学生基本信息\n");
- printf("3 注销学生基本信息\n\n4 录入成绩\n5 修改成绩\n\n");
- printf("6 浏览...\n \n0 退出\n");
- switch(getch())
- {
- case '1' : student_new();break;
- case '2' : student_edit();break;
- case '3' : student_del();break;
- case '4' : score_input();break;
- case '5' : score_edit();break;
- case '6' : browser();break;
- case '0' : exit(0);
- }
- goto menu;
- }
复制代码
多多指教啊~ |
|