编程三门课
C语言课程设计,对于初学者来说,主要是综合运用C语言基础知识,以实际项目的形式锻炼编程能力。从今天开始,一起轻松学做C语言课程设计常见项目,建议先运行代码,再一步步理解其实现。
备注:
1.不同C编译器,对C语言程序编译有差别,建议大家选择相同的编译器。
2.代码手机不方便看,可以收藏使用电脑查看,注意各种标点符号。
功能要求
学生成绩管理系统常用功能一般包括:
1.学生信息包括学号、姓名、4门课成绩(语文、数学、英语、专业课),成绩百分制整数;
2.学生信息以文件形式保存;
3.可以显示所有学生信息;
4.按照姓名或学号查询显示学生信息,姓名和学号都唯一不重复;
5.按照学号删除某个学生信息;
6.按照学号修改某个学生信息;
7.计算总分和平均分,按照学生总分或平均分从高到低排序。
实现要点
使用链表保存学生信息,实现增删改查和排序功能;
使用文件保存学生信息;
总分和平均分是根据输入由程序计算得出,不需要手工输入;
难点:使用简单选择排序算法实现链表排序。
备注:简单选择排序算法,是每次循环选出最大值或最小值,交换到链表前面。
编程环境
采用Dev-C++集成开发环境;
涉及C语言知识点:结构、链表、函数、文件读写;
功能点较多,总共600行左右,很大一部分代码是错误处理,因此对于初学者可以将这部分代码精简,预计也就是200-300行左右,下一篇将提供精简版。
# 运行结果
*************欢迎使用学生成绩管理系统*************
* 1:录入成绩 2:删除成绩 *
* 3:查询成绩 4:修改成绩 *
* 5:成绩排序 6:显示所有 *
* 7:保存成绩 8:显示菜单 *
* 0:退出系统 *
*************************************************
请输出0-8,回车结束!
1
请您按提示依次输入图书信息(以空格分隔):
学号 姓名 语文 数学 英语 专业课
202001 张三 100 88 97 89
学生【202001 张三】的信息添加成功!
请输出0-8,回车结束!
1
请您按提示依次输入图书信息(以空格分隔):
学号 姓名 语文 数学 英语 专业课
202002 李四 100 100 100 100
学生【202002 李四】的信息添加成功!
B. C语言编程关于10个学生的信息包括学号,姓名几三门课的成绩
#include "stdio.h"
#include "conio.h"
#include "math.h"
struct node
{int num;
char *name;
int a;
int b;
int c;
int d;};
typedef struct node AA;
shuchu(AA *p)
{int i;
printf("学号\t姓名\t语文\t数学\t英语\t平均分\n");
for(i=0;i<10;i++,p++)
{ printf("%d\t",p->num);
printf("%s\t",p->name);
printf("%d\t",p->a);
printf("%d\t",p->b);
printf("%d\t",p->c);
printf("%d\t",p->d); printf("\n");} }
paix(AA *p)
{int i,j;AA c;
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
if((p+i)->d<(p+j)->d) {c=p[i];p[i]=p[j];p[j]=c;}
printf("学号\t姓名\t语文\t数学\t英语\t平均分\n");
for(i=0;i<3;i++,p++)
{ printf("%d\t",p->num);
printf("%s\t",p->name);
printf("%d\t",p->a);
printf("%d\t",p->b);
printf("%d\t",p->c);
printf("%d\t",p->d);
printf("\n"); } }
main()
{AA p[10];int i,j;
for(i=0;i<10;i++)
{ printf("请输入学号");
scanf("%d",&p[i].num);
printf("请输入姓名");
scanf("%s",p[i].name);
printf("请输入语文");
scanf("%d",&p[i].a);
printf("请输入数学");
scanf("%d",&p[i].b);
printf("请输入英语");
scanf("%d",&p[i].c);
p[i].d=p[i].a+p[i].b+p[i].c;
p[i].d=p[i].d/3;}
shuchu(p);
paix(p);
getch();
}
很简单,自己要多写
不要总是靠别人
C. c语言编程输入三门课程的成绩,输出不及格门数
#include "stdio.h"
int main()
{
int sum = 0;
float YW,SX,YY;
printf("请输入学科成绩:语文、数学、英语:\n");
scanf("%f%f%f",&YW,&SX,&YY);
sum+=(YW<60)+(SX<60)+(YY<60);
printf("不及格科目总计%d科\n",sum);
return 0;
}
D. java编程:有五个学生,每个学生有3门课(语文、数学、英语)的成绩,
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.Collections;
importjava.util.Comparator;
importjava.util.LinkedList;
importjava.util.Scanner;
publicclassStudent
{
doublechinese;
doublemath;
doubleenglish;
doublesum;
Stringsname;
publicStudent(doublechinese,doublemath,doubleenglish,doublesum,Stringsname)
{
this.chinese=chinese;
this.math=math;
this.english=english;
this.sum=sum;
this.sname=sname;
}
@Override
publicStringtoString()
{
returnString.format("%s %2$.1f %3$.1f %4$.1f %5$.1f",sname,chinese,math,english,sum);
}
publicstaticvoidmain(String[]args)
{
Scannerscanner=newScanner(System.in);
LinkedList<Student>list=newLinkedList<Student>();
System.out.println("从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩)<直接回车结束>");
while(scanner.hasNextLine())
{
Stringline=scanner.nextLine().trim();
if("".equals(line))
{
break;
}
String[]info=line.split("\,");
Stringname=info[0];
doublechinese=0;
doublemath=0;
doubleenglish=0;
doublesum=0;
try
{
chinese=Double.parseDouble(info[1]);
math=Double.parseDouble(info[2]);
english=Double.parseDouble(info[3]);
sum=chinese+math+english;
}
catch(Exceptione)
{
System.out.println("格式不正确,重写输入:");
continue;
}
Studentstudent=newStudent(chinese,math,english,sum,name);
list.add(student);
}
scanner.close();
Collections.sort(list,newComparator<Student>()
{
@Override
publicintcompare(Studento1,Studento2)
{
if(o1.sum>o2.sum)
{
return-1;
}
elseif(o1.sum<o2.sum)
{
return1;
}
else
{
return0;
}
}
});
try
{
Stringfile="stu.txt";
Stringline=System.getProperty("line.separator");
FileWriterfw=newFileWriter(file,true);
FileReaderfr=newFileReader(file);
if(fr.read()==-1)
{
fw.write("姓名 语文 数学 英语 总分"+line);
}
fr.close();
for(Studentstudent:list)
{
fw.write(student.toString()+line);
fw.flush();
}
fw.close();
System.out.println("加入完毕.");
}
catch(IOExceptione)
{}
}
}
E. c语言编程要求输入全班3门课的成绩,输出全班的总成绩以及平均分还有每个人的总分跟平均分
建议建立二维数组,保留同学信息和成绩。通过循环完成
终于完成了。。。。为了方便测试,暂且定为4个人
#include <stdio.h>
#define N 4
main()
{
int i,j;
float stu[N][3],sum[N],avg[N],total=0;
for(i=0;i<N;i++)
{
printf("\n请输入学号%d三门课成绩:",i+1);
for(j=0;j<3;j++)
{
scanf("%f",&stu[i][j]);
}
}
for(i=0;i<N;i++)
{
sum[i]=0;
for(j=0;j<3;j++)
{
sum[i]+=stu[i][j];
}
avg[i]=sum[i]/3;
}
for(i=0;i<N;i++)
{
printf("第%d位总分为%f,平均分为%f\n",i+1,sum[i],avg[i]);
total+=sum[i];
}
printf("全班级总分为%f,平均分为%f",total,total/(N*3));
}
F. c语言编程有10个学生,3门课程
#include<iostream>
#include<string>
using namespace std;
class chengji
{
public:
double english,maths,chi,total,average;
string xuehao,xingming;
void getsa()
{
total=english+maths+chi;
average=total/3;
}
void disp()
{
cout<<"总分为: "<<total<<",平均分为: "<<average<<endl;
}
};
#include"chengji.h"
void main()
{
chengji std[10];
int i,j;
cout<<"请输入学生姓名、学号及成绩: \n";
for(i=0;i<10;i++)
{
cin>>std[i].xingming;
cin>>std[i].xuehao;
cin>>std[i].english;
cin>>std[i].maths;
cin>>std[i].chi;
std[i].getsa();
std[i].disp();
}
cout<<"按总成绩由小到大排序为: \n";
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(std[i].total>std[j].total)
{
int temp=std[i].total;
std[i].total=std[j].total;
std[j].total=temp;
}
}
cout<<std[i].xingming<<" ";
}
cout<<endl;
for(i=0;i<10;i++)
{
if(std[i].english<60&&std[i].maths<60||std[i].english<60&&std[i].chi<60||std[i].maths<60&&std[i].chi<60)
{
cout<<"两科不及格姓名为:"<<std[i].xingming<<"学号为: "<<std[i].xuehao<<endl;
}
}
}
G. C语言编程:输入5名学生3门课程成绩
您好!下面是我写的程序希望对您有用!
#include<stadio.h>
void main()
{
int x1,x2,x3,x4,x5,y1,y2,y3,y5,y5,z1,z2,z3,z4,z5,m1,m2,m3,m4,m5,n1,n2,n3;
printf("输入5名同学的3门课程的成绩 x1,x2,x3,x4,x5,y1,y2,y3,y5,y5,z1,z2,z3,z4,z5\n");
scanf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",&x1,&x2,&x3,&x4,&x5,&y1,&y2,&y3,&y4,&y5,&z1,&z2,&z3,&z4,&z5);
n1=(x1+x2+x3+x4+x5)/5;
n2=(y1+y2+y3+y4+y5)/5;
n3=(z1+z2+z3+z4+z5)/5;
m1=(x1+y1+z1)/3;
m2=(x2+y2+z2)/3;
m3=(x3+y3+z3)/3;
m4=(x4+y4+z4)/3;
m5=(x5+y5+z5)/3;
printf("%d,%d,%d,%d,%d,%d,%d,%d",m1,m2,m3,m4,m5,n1,n2,n3);
}
H. 编程求出某学生期末三门课程的总分及平均分。结果保留小数点后一位。知道答案的告诉我,谢了。
请问用什么语言做? 答案补充 Sorry,我不会C语言。
但是我可以用中文来给你描述,你照打。
1、定义3个实型变量a,b,c。
2、输入这3个变量的值。
3、输出这3个变量的和,即输出a+b+c
4、输出这3个变量的和除以3,即:printf("%0.1f",(a+b+c)/3); 答案补充 我打一个试试
void main()
{
float a,b,c;
scanf("%f %f %f", &a, &b, &c);
printf("总分%.0f", a + b + c);
printf("平均分%.1f",(a + b + c) / 3);
} 答案补充 那就去掉呗
void main()
{
float a,b,c;
scanf("%f %f %f", &a, &b, &c);
printf("%.0f", a + b + c);
printf("%.1f",(a + b + c) / 3);
} 答案补充 总算搞出一个正确的了。
void main()
{
float a,b,c;
scanf("%f %f %f", &a, &b, &c);
printf("%.0f\n", a + b + c);
printf("%.1f\n",(a + b + c) / 3);
}
I. C语言编程,从键盘上输入学生的三门课程成绩,求总成绩和平均成绩
#include<stdio.h>
int main()
{
double a,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
printf("总成绩:%.2lf 平均成绩:%.2lf\n",a+b+c,(a+b+c)/3);
return 0;
}
J. C语言编程:输出排序后小组三门课成绩单
仅供参考:
#include"stdio.h"
intmain()
{
intsum=0;
floatYW,SX,YY;
printf("请输入学科成绩:语文、数学、英语: ");
scanf("%f%f%f",&YW,&SX,&YY);
sum+=(YW<60)+(SX<60)+(YY<60);
printf("不及格科目总计%d科 ",sum);
return0;
}