您的当前位置:首页>全部百科>百科问答详情
注:文章内容来源于网络,真实性有待确认,请自行甄别。

C++程序解释一下请详细点啊谢谢啊这是关于学生成绩管理输入学生成

发表于:2024-10-24 00:00:00浏览:15次 分类: 电脑/网络-程序设计-C/C++
问题描述: 请详细点啊 谢谢啊 这是关于成绩管理 输入学生成绩 输出最低分 最高分 平均分 及一定分数段的所占的比例.. 一定详细啊 #include <stdio.h> #include <string.h> #include <stdlib.h> #define NULL 0 #define SIZE sizeof(struct student) struct student { int num; char name[10]; int age; char addr[15]; 请详细点啊 谢谢啊 这是关于成绩管理 输入学生成绩 输出最低分 最高分 平均分 及一定分数段的所占的比例.. 一定详细啊 #include <stdio.h> #include <string.h> #include <stdlib.h> #define NULL 0 #define SIZE sizeof(struct student) struct student { int num; char name[10]; int age; char addr[15]; float score[3]; float zf,pjf; struct student *next; }; struct student *head=NULL,*tail=NULL; int n=0; void load(); void save(); void add(); void input(struct student *p); void list(); void main() { int ch; int loop=1; while(loop) { printf("\n\n"); printf("========== main menu ============\n"); printf(" 1---load\n"); printf(" 2---save\n"); printf(" 3---add\n"); printf(" 4---insert\n"); printf(" 5---delete\n"); printf(" 6---update\n"); printf(" 7---locate\n"); printf(" 8---list\n"); printf(" 9---calc\n"); printf(" 10---sort\n"); printf(" 11---tj\n"); printf(" 0---quit\n"); printf("=================================\n"); printf("input your choice:"); scanf("%d",&ch); getchar(); switch(ch) { case 1: load(); break; case 2: save(); break; case 3: add(); break; case 4: case 5: case 6: case 7: case 8: list(); break; case 9: case 10: case 0: loop=0; break; default: printf("input choice error!"); } } } void load() { FILE *fp; struct student *p1,*p2; int i; if ((fp=fopen("stu.dat","rb"))==NULL) { printf("cannot open file!\n"); return; } p2=tail; while(1) { p1=(struct student *)malloc(SIZE); if (p1==NULL) { printf("malloc failed!\n"); break; } if (fread(p1,SIZE,1,fp)!=1) break; n++; if (n==1) head=p1; else p2->next=p1; p2=p1; } fclose(fp); p2->next=NULL; tail=p2; } void save() { FILE *fp; struct student *p; if ((fp=fopen("stu.dat","wb"))==NULL) { printf("cannot open file!\n"); return; } p=head; while(p!=NULL) { if (fwrite(p,SIZE,1,fp)!=1) { printf("file write error!\n"); break; } p=p->next; } fclose(fp); } void add() { struct student *p1,*p2; int i; p2=tail; p1=(struct student *)malloc(SIZE); if (p1==NULL) { printf("malloc failed!\n"); return; } input(p1); while(p1->num!=0) { n++; if (n==1) head=p1; else p2->next=p1; p2=p1; p1=(struct student *)malloc(SIZE); input(p1); } p2->next=NULL; tail=p2; } void input(struct student *p) { int i; printf("\n"); printf("num: "); scanf("%d",&p->num); getchar(); if (p->num==0) return; printf("name: "); gets(p->name); printf("age: "); scanf("%d",&p->age); getchar(); printf("addr: "); gets(p->addr); printf("three scores: "); for(i=0;i<3;i++) scanf("%f",&(p->score[i])); p->zf=0; p->pjf=0; } void list() { struct student *p; int i; p=head; i=1; printf(" mnameageaddrywsxyyzfpjf\n"); printf("----------------------------------------------------------------------\n"); while (p!=NULL) { printf("%2d %5d %-10s %3d %-10s %7.2f %7.2f %7.2f %7.2f %7.2f\n",i,p->num,p->name, p->age,p->addr,p->score[0],p->score[1],p->score[2], p->zf,p->pjf); p=p->next; i++; } }
#include #include #include #define NULL 0 /*定义常量*/ #define SIZE sizeof(struct student) /*定义SIZE sizeof函数*/ struct student { int num; char name[10]; int age; char addr[15]; float score[3]; float zf,pjf; struct student *next; }; /*构造student的数据类型*/ struct student *head=NULL,*tail=NULL; /*定义开头,结尾数值为空*/ int n=0; void load(); void save(); void add(); void input(struct student *p); void list(); /*调用一大串函数load*/ void main() { int ch; int loop=1; while(loop) { printf("\n\n"); printf("========== main menu ============\n"); printf(" 1---load\n"); printf(" 2---save\n"); printf(" 3---add\n"); printf(" 4---insert\n"); printf(" 5---delete\n"); printf(" 6---update\n"); printf(" 7---locate\n"); printf(" 8---list\n"); printf(" 9---calc\n"); printf(" 10---sort\n"); printf(" 11---tj\n"); printf(" 0---quit\n"); printf("=================================\n"); /*打印主菜单*/ printf("input your choice:"); /*提示输入操作*/ scanf("%d",&ch); getchar(); /*读取输入命令*/ switch(ch) { case 1: load(); break; case 2: save(); break; case 3: add(); break; case 4: case 5: case 6: case 7: case 8: list(); break; case 9: case 10: case 0: loop=0; break; default: /*switch语句做判断*/ printf("input choice error!"); } /*提示错误*/ } } void load() /*load函数*/ { FILE *fp; struct student *p1,*p2; int i; /*定义文件以及文件指针*/ if ((fp=fopen("stu.dat","rb"))==NULL) { printf("cannot open file!\n"); return; } p2=tail; while(1) { p1=(struct student *)malloc(SIZE); if (p1==NULL) { printf("malloc failed!\n"); break; } if (fread(p1,SIZE,1,fp)!=1) break; n++; if (n==1) head=p1; else p2->next=p1; p2=p1; } fclose(fp); p2->next=NULL; tail=p2; } void save() { FILE *fp; struct student *p; if ((fp=fopen("stu.dat","wb"))==NULL) { printf("cannot open file!\n"); return; } p=head; while(p!=NULL) { if (fwrite(p,SIZE,1,fp)!=1) { printf("file write error!\n"); break; } p=p->next; } fclose(fp); } void add() { struct student *p1,*p2; int i; p2=tail; p1=(struct student *)malloc(SIZE); if (p1==NULL) { printf("malloc failed!\n"); return; } input(p1); while(p1->num!=0) { n++; if (n==1) head=p1; else p2->next=p1; p2=p1; /*将指针p1的指向赋给p2*/ p1=(struct student *)malloc(SIZE); input(p1); /*定义p1的指向*/ } p2->next=NULL; tail=p2; /*文件尾部指向p2*/ } void input(struct student *p) { int i; printf("\n"); printf("num: "); scanf("%d",&p->num); getchar(); if (p->num==0) return; printf("name: "); gets(p->name); printf("age: "); scanf("%d",&p->age); getchar(); printf("addr: "); gets(p->addr); printf("three scores: "); for(i=0;i<3;i++) scanf("%f",&(p->score[i])); p->zf=0; p->pjf=0; } void list() { struct student *p; /*指针指向 student*/ int i; p=head; /*指针指向文件开头 */ i=1; printf(" mnameageaddrywsxyyzfpjf\n");printf("----------------------------------------------------------------------\n"); while (p!=NULL) { printf("%2d %5d %-10s %3d %-10s %7.2f %7.2f %7.2f %7.2f %7.2f\n",i,p->num,p->name, p->age,p->addr,p->score[0],p->score[1],p->score[2], p->zf,p->pjf); /*输出文件中对应的学号,姓名,年龄,地址,最低分 ,最高分 ,平均分*/ p=p->next; i++; } }

猜你喜欢

C++基础题若intx=2,y=3;,则x&y的结果是:
若int x=2,y=3;,则x&y的结果是:
发表于:2024-10-24 00:00:00 浏览:37 分类: 电脑/网络-程序设计-C/C++
如何制作软件我想知道如何使用C++编写软件(具有可视化界面的软件
我想知道如何使用C++编写(具有可视化界面的软件)呢? 希望各位说的详细点,写谢了!
发表于:2024-10-24 00:00:00 浏览:37 分类: 电脑/网络-程序设计-C/C++
C++把大写改成小写用哪个函数?
++把大写改成小写用哪个函数?
发表于:2024-10-24 00:00:00 浏览:33 分类: 电脑/网络-程序设计-C/C++
哪里能下载中文版的《TheC++ProgrammingLangu?
哪里能下载中文版的《TheC++ProgrammingLangu?
发表于:2024-10-24 00:00:00 浏览:31 分类: 电脑/网络-程序设计-C/C++
哪个源码编辑器最好用?
哪个源码编辑器最好用?
发表于:2024-10-24 00:00:00 浏览:28 分类: 电脑/网络-程序设计-C/C++
C语言中整型可输出以0开头吗?要用C语言编一程序,输出以零开头的
要用编一程序,输出以零开头的一个多位整数,请问能以整型(或长整型)定义这个变量吗?谢谢!
发表于:2024-10-24 00:00:00 浏览:28 分类: 电脑/网络-程序设计-C/C++
C语言能人请进用C语言写一个程序,要求输入N个整数,按从小到大的
用写一个程序,要求输入N个整数,按从小到大的顺序输出,就说说思路。如果N=4,写个具体的程序。
发表于:2024-10-24 00:00:00 浏览:27 分类: 电脑/网络-程序设计-C/C++
用循环找出长度为20的数组中的最大值
用循环找出长度为20的数组中的最大值
发表于:2024-10-24 00:00:00 浏览:23 分类: 电脑/网络-程序设计-C/C++
求助指针变量怎么输出指针变量(存放变量地址的变量是指针变量,用来
怎么输出指针变量(存放变量地址的变量是指针变量,用来指向另一个变量。为了表示指针变量和他所指向的变量之间的关系,在中用“*”符号表示“指向”,。。。) *p怎么输出p
发表于:2024-10-24 00:00:00 浏览:23 分类: 电脑/网络-程序设计-C/C++
用哪个C/C++编译器能够绘出图形啊?(如圆,椭圆,抛物线等)代
写好了,用TC2.0,TC++3.0,win-tc等都编译不出来,用网上给的代码也弄不出来,那个Dev C++不大会用,VC不知道能不能画图。怎么办?郁闷了,到底是出了什么问题了?连个图形都绘不了,分明是在打击我学习的热情啊。
发表于:2024-10-24 00:00:00 浏览:20 分类: 电脑/网络-程序设计-C/C++