C语言程序设计.docx

上传人:b****7 文档编号:8791473 上传时间:2023-02-01 格式:DOCX 页数:22 大小:218.87KB
下载 相关 举报
C语言程序设计.docx_第1页
第1页 / 共22页
C语言程序设计.docx_第2页
第2页 / 共22页
C语言程序设计.docx_第3页
第3页 / 共22页
C语言程序设计.docx_第4页
第4页 / 共22页
C语言程序设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C语言程序设计.docx

《C语言程序设计.docx》由会员分享,可在线阅读,更多相关《C语言程序设计.docx(22页珍藏版)》请在冰豆网上搜索。

C语言程序设计.docx

C语言程序设计

 

C语言程序设计

 

专业:

_电气工程与自动化

学号:

___________

姓名:

_______

课题名称:

学生成绩管理体系

 

重庆邮电大学

2012年6月4日

C语言课程设计

1、设计题目

学生成绩管理设计

2、课程设计目的

了解软件工程中的一些系统分析、模板分析、代码设计的概念,利用C++实现学生成绩管理系统的录入、查询、删除、统计等基本操作,使用单链表结构实现学生成绩管理,了解数据库管理的基本功能,掌握C语言中的结构体、指针、函数(系统函数、自定义函数)、文件操作等功能。

3、系统功能

1.录入每个学生的学号和各科考试成绩;

2.计算每门课程的总分和平均分;

3.计算每个学生的总分和平均分;

4.按每个学生的总分由高到低排出名次表;

5.按每个学生的总分由低到高排出名次表;

6.按学号由小到大排出成绩表;

7.按学号查询学生排名及各科考试成绩;

0.退出系统。

4、程序设计及个模板功能简述

1、主体结构

#include------------在程序中用到系统提供的标准函数库中的输入输出函数

#include----------包含了的C语言标准库函数的定义

#include----------------process.h中提取需要的函数或其它库文件

#include-------------------------Windows程序的开头

2、主界面显示

通过主函数显示程序的主界面,通过输入的数字不同,函数会进入不同功能的函数继续运行。

5、源代码

#include

#include

#include

#include

voidmain()

{

intx;

voidg1();voidg2();voidg3();voidg4();voidg5();voidg6();voidg7();voidg0();

voidmenu();

while

(1)

{system("cls");

menu();

scanf("%d",&x);

Sleep(300);

system("cls");

switch(x)

{

case1:

g1();break;case2:

g2();break;case3:

g3();break;case4:

g4();break;case5:

g5();break;case6:

g6();break;case7:

g7();break;case0:

printf("\n\n制作者:

***\n\n感谢使用!

\n\n\n");exit(0);printf("制作者:

***\n感谢使用!

");break;

default:

printf("输入错误");

}

printf("___________________________________________\n");

system("PAUSE");

}

}voidmenu()

{

{

printf("*****************【成绩管理菜单】******************\n");

printf("------------------------------------------------------\n");

printf("1:

成绩录入\n");

printf("2:

课程的总分和平均分\n");

printf("3学生的总分和平均\n");

printf("4:

按每个学生的总分由高到低排出名次表\n");

printf("5:

按每个学生的总分由\n");

printf("6:

按学号由小到大排出成绩表\n低到高排出名次表\n");

printf("7:

按学号查询学生排名及各");

printf("\n------------------------------------------------------\n");

printf("0:

退出系统");

printf("\n------------------------------------------------------\n");

printf("请输入选择:

\n");

}

}

voidg1()

{

intn,i,x,y,z,stu[30],mt[30],en[30],ph[30];

system("cls");

FILE*fp;

printf("请输入录入同学人数:

");

scanf("%d",&n);

if(n==0)exit

(1);

for(i=0,x=0,y=0,z=0;i

{

printf("请输入学生学号:

");

scanf("%d",&stu[i]);

printf("请输入学生%d的数学成绩:

",stu[i]);

scanf("%d",&mt[x]);

while(mt[x]>100||mt[x]<0)

{

printf("输入错误,请重新输入");

scanf("%d",&mt[x]);

}

printf("请输入学生%d的英语成绩:

",stu[i]);

scanf("%d",&en[y]);

while(en[y]>100||en[y]<0)

{

printf("输入错误,请重新输入");

scanf("%d",&en[y]);

}

printf("请输入学生%d的物理成绩:

",stu[i]);

scanf("%d",&ph[z]);

while(ph[z]>100||ph[z]<0)

{

printf("输入错误,请重新输入");

scanf("%d",&ph[z]);

}

}

//保存TXT

fp=fopen("out.txt","wb");

if(fp==NULL)

{

printf("打开文件出错\n");

}

fprintf(fp,"%d",n);

for(i=0,x=0,y=0,z=0;i

{

fprintf(fp,"%d%d%d%d",stu[i],mt[x],en[y],ph[z]);

}

fclose(fp);

printf("写入完毕!

\n");

}

voidg2()

{

FILE*fp;

intstu[30][4];

inti,j,n;

/*以读写方式打开要读取的文件*/

fp=fopen("out.txt","rw");

if(!

fp)

{

perror("cannotopenfile");

}

/*从文件中读取数据到二维数组*/

fscanf(fp,"%d",&n);

for(i=0;i

for(j=0;j<4;j++)

fscanf(fp,"%d",&stu[i][j]);

//输出列表

printf("学号数学英语物理\n");

for(i=0;i

{

for(j=0;j<4;j++)

printf("%6d",stu[i][j]);

printf("\n");

}

//计算每门课程的总分和平均分

{

intEN=0,MT=0,PH=0;

floatave_en,ave_mt,ave_ph;

for(i=0;i

{

MT=stu[i][1]+MT;

EN=EN+stu[i][2];

PH=PH+stu[i][3];

}

ave_mt=float(MT/n);

ave_en=float(EN/n);

ave_ph=float(PH/n);

printf("数学总分%d英语总分%d物理总分%d\n",MT,EN,PH);

printf("数学平均分%.2f英语平均分%.2f物理平均分%.2f\n",ave_mt,ave_en,ave_ph);

}

getchar();

fclose(fp);

}

voidg3()

{

FILE*fp;

intstu[30][4];

inti,j,n;

/*以读写方式打开要读取的文件*/

fp=fopen("out.txt","rw");

if(!

fp)

{

perror("cannotopenfile");

}

/*从文件中读取数据到二维数组*/

fscanf(fp,"%d",&n);

for(i=0;i

for(j=0;j<4;j++)

fscanf(fp,"%d",&stu[i][j]);

//输出列表

printf("学号数学英语物理\n");

for(i=0;i

{

for(j=0;j<4;j++)

printf("%6d",stu[i][j]);

printf("\n");

}

//计算每人的总分和平均分

{

intsum[30]={0};

floatave[30];

for(i=0;i

{

for(j=1;j<4;j++)

sum[i]=sum[i]+stu[i][j];

ave[i]=float(sum[i]/3);

printf("学号为%d的同学总分为%d平均分为%.2f\n",stu[i][0],sum[i],ave[i]);

}

}

getchar();

fclose(fp);

}

voidg4()

{

FILE*fp;

intstu[30][4];

inti,j,n;

/*以读写方式打开要读取的文件*/

fp=fopen("out.txt","rw");

if(!

fp)

{

perror("cannotopenfile");

}

/*从文件中读取数据到二维数组*/

fscanf(fp,"%d",&n);

for(i=0;i

for(j=0;j<4;j++)

fscanf(fp,"%d",&stu[i][j]);

//输出列表

printf("学号数学英语物理\n");

for(i=0;i

{

for(j=0;j<4;j++)

printf("%6d",stu[i][j]);

printf("\n");

}

//计算每人的总分和平均分

intsum[30]={0};

floatave[30];

for(i=0;i

{

for(j=1;j<4;j++)

sum[i]=sum[i]+stu[i][j];

ave[i]=float(sum[i]/3);

}

//按每个学生的总分由高到低排出名次表

intmax=0,t=0,k,temp[4];

{

for(k=0;k

{

for(i=0;i

{

if(sum[i]

{

t=sum[i];

sum[i]=sum[i+1];

sum[i+1]=t;

for(j=0;j<4;j++)

{

temp[j]=stu[i+1][j];

stu[i+1][j]=stu[i][j];

stu[i][j]=temp[j];

}

}

}

}

}

printf("按每个学生的总分由高到低排出名次表:

\n");

for(i=0;i

{

for(j=0;j<4;j++)

{

printf("%6d",stu[i][j]);

}

printf("总分%d",sum[i]);

putchar('\n');

}

getchar();

fclose(fp);

}

voidg5()

{

FILE*fp;

intstu[30][4];

inti,j,n;

/*以读写方式打开要读取的文件*/

fp=fopen("out.txt","rw");

if(!

fp)

{

perror("cannotopenfile");

}

/*从文件中读取数据到二维数组*/

fscanf(fp,"%d",&n);

for(i=0;i

for(j=0;j<4;j++)

fscanf(fp,"%d",&stu[i][j]);

//输出列表

printf("学号数学英语物理\n");

for(i=0;i

{

for(j=0;j<4;j++)

printf("%6d",stu[i][j]);

printf("\n");

}

//计算每人的总分和平均分

intsum[30]={0};

floatave[30];

for(i=0;i

{

for(j=1;j<4;j++)

sum[i]=sum[i]+stu[i][j];

ave[i]=float(sum[i]/3);

}

//按每个学生的总分由低到高排出名次表

intmax=0,t=0,k,temp[4];

{

for(k=0;k

{

for(i=0;i

{

if(sum[i]

{

t=sum[i];

sum[i]=sum[i+1];

sum[i+1]=t;

for(j=0;j<4;j++)

{

temp[j]=stu[i+1][j];

stu[i+1][j]=stu[i][j];

stu[i][j]=temp[j];

}

}

}

}

}

printf("按每个学生的总分由低到高排出名次表:

\n");

for(i=n-1;i!

=-1;i--)

{

for(j=0;j<4;j++)

{

printf("%3d",stu[i][j]);

}

printf("%d",sum[i]);

putchar('\n');

}

getchar();

fclose(fp);

}

voidg6()

{FILE*fp;

intstu[30][4];

inti,j,n;

/*以读写方式打开要读取的文件*/

fp=fopen("out.txt","rw");

if(!

fp)

{

perror("cannotopenfile");

}

/*从文件中读取数据到二维数组*/

fscanf(fp,"%d",&n);

for(i=0;i

for(j=0;j<4;j++)

fscanf(fp,"%d",&stu[i][j]);

//输出列表

printf("学号数学英语物理\n");

for(i=0;i

{

for(j=0;j<4;j++)

printf("%6d",stu[i][j]);

printf("\n");

}

//按学号由小到大排出成绩表

intmin=0,t=0,k,s[30]={0};

{

for(k=0;k

{

for(i=0;i

{

if(stu[i][0]>stu[i+1][0])

for(j=0;j<4;j++)

{

s[j]=stu[i][j];

stu[i][j]=stu[min][j];

stu[min][j]=s[j];

}

}

}

}

printf("按学号由小到大排出成绩表:

\n");

for(i=0;i

{

for(j=0;j<4;j++)

{

printf("%6d",stu[i][j]);

}

putchar('\n');

}

getchar();

fclose(fp);

}

voidg7()

{

FILE*fp;

intstu[30][4];

inti,j,n;

/*以读写方式打开要读取的文件*/

fp=fopen("out.txt","rw");

if(!

fp)

{

perror("cannotopenfile");

}

/*从文件中读取数据到二维数组*/

fscanf(fp,"%d",&n);

for(i=0;i

for(j=0;j<4;j++)

fscanf(fp,"%d",&stu[i][j]);

//输出列表

printf("学号数学英语物理\n");

for(i=0;i

{

for(j=0;j<4;j++)

printf("%6d",stu[i][j]);

printf("\n");

}

//计算每人的总分和平均分

intsum[30]={0};

floatave[30];

for(i=0;i

{

for(j=1;j<4;j++)

sum[i]=sum[i]+stu[i][j];

ave[i]=float(sum[i]/3);

}

//按每个学生的总分由高到低排出名次表

intmax=0,t=0,k,temp[4];

{

for(k=0;k

{

for(i=0;i

{

if(sum[i]

{

t=sum[i];

sum[i]=sum[i+1];

sum[i+1]=t;

for(j=0;j<4;j++)

{

temp[j]=stu[i+1][j];

stu[i+1][j]=stu[i][j];

stu[i][j]=temp[j];

}

}

}

}

}

printf("按每个学生的总分由高到低排出名次表:

\n");

for(i=0;i

{

for(j=0;j<4;j++)

{

printf("%6d",stu[i][j]);

}

printf("总分%3d第%2d名",sum[i],i+1);

putchar('\n');

}

//按学号查询学生排名及各科考试成绩

intm;

printf("请输入学号:

");

scanf("%d",&m);

for(i=0,j=0;i

{

if(stu[i][j]==m)

{

printf("\n你所查询的学生%d排名第%d,数学,英语,物理成绩分别为:

",m,i+1);

for(j=1;j<4;j++)

printf("%3d",stu[i][j]);

}

}

puts("\n");

getchar();

fclose(fp);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1