C语言实训-学生成绩管理系统(合集五篇)

时间:2019-05-15 10:39:57下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《C语言实训-学生成绩管理系统》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《C语言实训-学生成绩管理系统》。

第一篇:C语言实训-学生成绩管理系统

#include

#include

#include

#include

#include

#define STU_NUM40

#define COURSE_NUM10

typedef struct

{

intnum;

charname[20];

intscore[COURSE_NUM];

longsum;

floataverage;

}STU;

void AppendScore(STU*head,int n,int m);

void PrintScore(STU*head,int n,int m);

void TotalScore(STU*head,int n,int m);

void SortScore(STU*head,int n);

int SearchNum(STU*head,int num,int n);

void SearchScore(STU*head,int n,int m);

int Menu_Select(void);

void main()

{

charch;

intm,n;

STUstu[STU_NUM];

printf(“请输入学生总数和课程门数(n<40,m<10):”);scanf(“%d,%d”,&n,&m);

while(1)

{

ch = Menu_Select();

switch(ch)

{

case'1':AppendScore(stu,n,m);

TotalScore(stu,n,m);

break;

case'2':PrintScore(stu,n,m);

break;

case'3':SearchScore(stu,n,m);

break;

case'4':SortScore(stu,n);

printf(“nSorted resultn”);

PrintScore(stu,n,m);

break;

case'5':exit(0);

printf(“End of program!”);

break;

default:printf(“Input error!”);

break;

}

}

getchar();

}

int Menu_Select(void)

{

char ch;

time_t d;

time(&d);

printf(“*************************************************************n”);printf(“tt学生成绩管理系统n”);

printf(“ttt1.添加成绩n”);

printf(“ttt2.显示成绩n”);

printf(“ttt3.查找n”);

printf(“ttt4.排序n”);

printf(“ttt5.退出n”);

printf(“**************************************************************n”);printf(“%s”,ctime(&d));

printf(“请输入你的选择(1~5):”);

scanf(“ %c”,&ch);

return ch;

}

void AppendScore(STU*head,int n,int m)

{

intj;

STU*p;

for(p=head;p

{

printf(“n请输入学号:”);

scanf(“%d”,&p->num);

printf(“请输入姓名:”);

scanf(“%s”,p->name);

for(j=0;j

{

printf(“请输入成绩%d:”,j+1);

scanf(“%d”,p->score+j);

}

}

}

void PrintScore(STU*head,int n,int m)

{

STU *p;

inti;

char str[100]={''},temp[3];

strcat(str,“ 学号姓名”);

for(i=1;i<=m;i++)

{

strcat(str,“成绩”);

itoa(i,temp,10);

strcat(str,temp);

strcat(str,“ ”);

}

strcat(str,“总分平均成绩”);

printf(“%s”,str);

for(p=head;p

{

printf(“nNo.%3d%8s”,p->num,p->name);for(i=0;i

{

printf(“%7d”,p->score[i]);

}

printf(“%11d%9.2fn”,p->sum,p->average);}

}

voidTotalScore(STU *head,int n,int m)

{

STU*p;

inti;

for(p=head;p

{

p->sum=0;

for(i=0;i

{

p->sum=p->sum+p->score[i];

}

p->average=(int)p->sum/m;

}

}

voidSortScore(STU*head,int n)

{

int i,j,k;

STUtemp;

for(i=0;i

{

k=i;

for(j=i;j

{

if((head+j)->sum>(head+k)->sum){k=j;

}

}

if(k!=i)

{

temp=*(head+k);

*(head+k)=*(head+i);

*(head+i)=temp;

}

}

}

int SearchNum(STU*head,int number,int n)

{

int i;

for(i=0;i

{

if((head+i)->num==number)return i;}

return-1;

}

void SearchScore(STU*head,int n,int m)

{

int number,findNo;

printf(“Please Input the number you want to search:”);scanf(“%d”,&number);

findNo=SearchNum(head,number,n);

if(findNo==-1)

{

printf(“nNot found!n”);

}

else

{

PrintScore(head+findNo,1,m);

}

}

第二篇:C语言实训

湖北轻工职业技术学院 《C语言程序设计》实验报告

实验十一:函数

班 级: ___________10计管_________________ 姓 名: ___________胡高______________ 学 号: ___________1003011138________________ 日 期: ____________2011-5-29________________

一、实验目的和要求

1、理解数组引入的意义及作用;

2、掌握一维数组的基本思想和基本用法;

3、掌握使用一维数组的基本算法:排序与查找。

二、实验主要仪器和设备 计算机一台,Turbo C环境。

三、实验内容

请将该实验报告重新命名为“实验11-学号[姓名]”,如“实验11-66[张三]”

1、P145 填空题2(2)

2、P145 上机操作题 3(5)

四、实验原始纪录 实验1 程序的设计界面。(Alt+PrintScreeninclude SysRq拷贝当前窗口)

程序代码。(此处写代码,不是图片。

#include void main(){

void swap();

extern int a,b;

a=3;b=10;

swap();

printf(“a=%d,b=%dn”,a,b);

}

int a,b;

void swap()

{

int temp;

temp=a;a=b;b=temp;

}

实验2 程序的设计界面。

程序代码。

五、实验结果及分析

实验1运行结果图。

实验2运行结果图。

六、实验总结与思考(主要写一些在实验过程中,遇到的问题、所犯的错误,以及是如何发现纠正的。大约100至200字左右。)

本次试验的内容是考察数组的引用、基本算法等,但是总体感觉有点问题。有的地方不知道如何下手

第三篇:c语言实训

目 录

特别注意,打开视图菜单-文档结构图观察文档结构。目录由WORD菜单中插入-引用-目录自动生成并更新,不需要手工生成菜单。

本模板仅说明格式,内容由指导老师决定,不用按这份目录内容编写实训报告。

具体目录见文档要求。以下部分仅供参考。

目 录........................................................................................................................1

一、实训的目的与要求................................................................................................1

二、题目说明................................................................................................................2

三、总体设计................................................................................................................2

3.1.软件模块结构图...........................................................................................2 3.2.程序流程图...................................................................................................3

四、详细设计和实施....................................................................................................3

4.1 XXXX模块.....................................................................................................4.2

4.3

五、遇到的问题和解决方法........................................................................................4

六、实训总结................................................................................................................4

七、参考文献................................................................................................................4 附录(源程序代码)....................................................................................................5

一、实训的目的与要求

(正文为宋体,五号字 行间距为21)中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国

二、题目说明

(正文为宋体,五号字 行间距为21)题目参照任务书中有关描述

三、总体设计

3.1.软件模块结构图(以下图仅供样式参考)

图1-1 软件模块结构图

3.2.程序流程图(以下图仅供样式参考):

四、详细设计和实施

(正文为宋体,五号字 行间距为21)4.1 模块1 ………(可以写一些关键程序代码,另外截一些界面图并说明实现了什么功能,以证明功能实现了)每一个界面,必须有(1)功能简介(2)界面截图一张(3)界面关键代码和描述 每一个界面说明作为独立的一小节。(在文档说明中有样例)

五、遇到的问题和解决方法

(正文为宋体,五号字 行间距为21)1. 2. 3. …………

六、实训总结

(正文为宋体,五号字 行间距为21)

七、参考文献

[1] 权明富,齐佳音,舒华英.客户价值评价指标体系设计[J].南开管理评论,2004,7(3):17-18.[2] 刘小洪,邹鹏.商业银行客户关系价值管理模型研究[J].管理科学,2005,18(3):57-60.附录(源程序代码)

第四篇:C语言实训

第一天的题目: 求两个整数之和。

#include main(){ int a,b,sum;a=3;b=5;sum=a+b;printf(“sum is %d/n”,sum);} 求两个整数中的较大者。#include “stdio.h” void main(){int max(int,int);int a,b,c;scanf(“%d,%d,”,&a,&b);c=max(a,b);printf(“max=%d”,c);} int max(int x,int y){ int z;if(x>y)z=x;else z=y;return(z);}

求1×3×5×7×9×11 #include int main(){ int i = 1,sum = 1;while(i <= 11){

sum = sum*i;

i = i+2;}

printf(“%d”,sum);return 0;} 有50个学生,要求将成绩在80分以上的学生的学号和成绩输出。

#include main(){

int i;

int a[50];

for(i=0;i<50;i++)

{

scanf(“%d”,&a[i]);

if(a[i]>80)

printf(“%d”,a[i]);

} }

判定2000—2500年中的每一年是否闰年,并将结果输出。

#include int main(){

int y;

y=2000;

while(y<=2500)

{

if(((y%4 == 0)&&(y%100!= 0))||(y%400 == 0))

printf(“%d 年是闰年n”,y);

else printf(“%d 年不是闰年n”,y);

y=y++;} } 求111111 23499100#include void main(){ int sign=1;float deno=2.0,sum=1.0,term;while(deno<=100){

sign=-sign;

term=sign/deno;

sum=sum+term;

deno=deno+1;} printf(“%fn”,sum);} 给出一个大于或等于3的正整数,判断它是不是一个素数。

#include void main(){

int i,n,mark=0;

scanf(“%d”,&n);

for(i=2;i < n/2+1;i++)

{

if(n%i==0)

{

printf(“%d不是素数”,n);

mark=1;

break;

}

}

if(mark==0)

printf(“%d是素数”,n);} 求5!#include main(){ int i,n;long fact=1;printf(“Input n:”);scanf(“%d”,&n);for(i=1;i<=n;i++)fact*=i;printf(“%d!=%1dn”,n,fact);} 给定一个大写字母,要求用小写字母输出。

#include void main(){ char c;c=getchar();if(c>='A'&&c<='Z')putchar(c+'a'-'A');} 输入两个实数,按代数值由小到大的顺序输出这两个数。

#include void main(){

float a,b,t;scanf(“%f %f”,&a,&b);if(a>b){ t=a;a=b;b=t;} printf(“%5.2f,%5.2fn”,a,b);

} 输入3个数a,b,c,要求按由小到大的顺序输出。

#include void main(){ int a,b,c,t;printf(“please input three numbersn”);scanf(“%d%d%d”,&a,&b,&c);if(a>b){ t=a;a=b;b=t;} if(a>c){ t=a;a=c;c=t;} if(b>c){ t=b;b=c;c=t;} printf(“%d<%d<%dn”,a,b,c);} 输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。

#include main(){

char zhong,guo;

scanf(“%c”,&zhong);

if(65<=zhong&&zhong<=90)

{

guo=zhong+32;

printf(“%c”,guo);

}

else

printf(“%c”,zhong);}

1(x0)1编一程序,输入一个x值,要求输出相应的y值。y0(x0)

1(x0)#include void main(){

int x,y;

printf(“请输入x:”);

scanf(“%d”,&x);

if(x<0)

y=-1;

else if(x=0)

y=0;

else

y=1;

printf(“y=%d”,y);} 要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为60~69分,D等为 60分以下。成绩的等级由键盘输入。#include void main(){ char grade;printf(“等级:”);scanf(“%c”,&grade);switch(grade){ case 'A': printf(“90~100n”);break;case 'B': printf(“80~89n”);break;case 'C': printf(“70~79n”);break;case 'D': printf(“60~69n”);break;case 'E': printf(“不合格n”);break;default: printf(“error!n”);break;} }

5写一程序,判断某一年是否闰年。#include int main(){

int a;

scanf(“%d”,&a);

if(a%4==0&&a%100!=0||a%400==0)

printf(“是闰年”);

else printf(“不是闰年”);} 运输公司对用户计算运输费用。路程(s km)越远,每吨·千米运费越低。标准如下:

s < 250

没有折扣

250≤s < 500

2%折扣

500≤s < 1000

5%折扣

1000≤s < 2000

8%折扣

2000≤s < 3000

10%折扣

3000≤s

15%折扣 #include int main(){

int c, s;

float p, w, d, f;

scanf(“%f %f %d”, &p, &w, &s);

if(s >= 3000)c =12;

else c = s / 250;

switch(c)

{

case 0 : d = 0;break;

case 1 : d = 2;break;

case 2 :

case 3 : d = 5;break;

case 4 :

case 5 :

case 6 :

case 7 : d = 8;break;

case 8 :

case 9 :

case 10:

case 11: d = 10;break;

case 12: d = 15;break;

}

f = p * w * s *(1-d / 100);

printf(“freight =%15.4fn”,f);} 全班有50个学生,用循环语句统计各学生三门课的平均成绩。#include void main(){ int score[9];int total[3];int average[3];int i;for(i=0;i<9;i++)scanf(“%d”,score+i);for(i=0;i<3;i++){ total[i]=score[i*3]+score[i*3+1]+score[i*3+2];average[i]=total[i]/3;printf(“学生%d的平均分:%dn”,i,average[i]);} } 求1+2+3+…+100 #include main(){ int i=1,sum=0;while(i<=100){ sum=sum+i;i++;} printf(“sum=%dn”,sum);} 在全系1000学生中,征集慈善募捐,当总数达到10万元时就结束,统计此时捐款的人数,以及平均每人捐款的数目。#include int main(){ int s;unsigned double a=0;unsigned double m;for(s=1;s<=1000;s++){ scanf(“%uf”,&m);if((a+m)<100000.00)a=a+m;else { a=a+m;printf(“捐钱人数为%d,平均钱数为%.2fn”,s,(double)a/s);break;} }

return 0;} 要求输出100~200之间的不能被3整除的数。#include void

main(){

int

n;

for(n=100;n <=200;n++)

{

if(n%3!=0)

printf(“%d

”,n);}

printf(“n ”);}

第二天的题目:

1 输出以下4*5的矩阵。

10 15 20 #include void main(){ char *p[5]={“ 1 2 3 4 5”,“ 2 4 6 8 10”,“ 3 6 9 12 15”,“ 4 8 12 16 20”};for(int i=0;i<5;i++){

printf(“%sn”,p[i]);} } 用

41131517

公式求 

的近似值,直到发现某一项的绝对值小于10-6 为止(该项不累计加)。

#include #include int main(){ int s;double t,n,pi;s=-1,t=1,n=1.0,pi=0;for(t=1;fabs(t)>=1e-6;n=n+2){

s=-s;

t=s/n;

pi=pi+t;} pi=pi*4;printf(“%.6fn”,pi);return 0;}

 求费波那西(Fibonacci)数列的前40个数。这个数列有如下特点:第1、2两个数为1、1。从第3个数开始,该数是其前面两个数之和。即: F11F21FFFn1n2n(n1)(n2)

(n3)#include int main(){ int f1=1,f2=1,f3;int i;printf(“%12dn%12dn”,f1,f2);for(i=1;i<=38;i++){

f3=f1+f2;

printf(“%12dn”,f3);

f1=f2;

f2=f3;} return 0;}

输入一个大于3的整数n,判定它是否素数(prime,又称质数)。#include int main(){ int a,b;scanf(“%d”,&a);b=a;while(--b>1)

if(a%b==0)

{

printf(“此数不是素数n”);

return 0;

}

printf(“此数是素数n”);

return 0;} 求100~200间的全部素数。#include #include void main(){

int i,k,sk,flag,m=0;

for(k=100;k<=200;k++)

{

sk=(int)sqrt(k);

flag = 1;

for(i=2;i<=sk;i++)

{

if(k%i==0)

{

flag=0;

break;

}

}

if(flag==1)

{

m++;

printf(“%5d”,k);

}

}

if(m%12==0)

printf(“n”);

printf(“total:%5dn”,m);} 对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。#include int main(){ int arr[10] = {0,1, 2,3,4,5,6,7,8,9}, i,j,t;for(i=0;i<10;i++)for(j=i+1;j<10;j++)if(arr[i] < arr[j]){ t = arr[i];arr[i] = arr[j];arr[j] = t;} for(i=0;i<10;i++)printf(“%d,”, arr[i]);return 0;} 用数组处理求Fibonacci数列问题

#include #include int main(){

int i;

int f[40]={1,1};

for(i=0;i<40;i++)

{

f[i]=f[i-2]+f[i-1];

}

for(i=0;i<40;i++)

{

if(i%5==0)

printf(“/n”);

printf(“%12d”,f[i]);

}

return 0;} 有10个地区的面积,要求对它们按由小到大的顺序排列(采用起泡法)。#include void main(){ int a[10];int i,j,temp;printf(“请输入10个数:”);for(i=0;i<10;i++)

scanf(“%d”,&a[i]);for(i=0;i<10;i++)

for(j=i+1;j<10;j++)

if(a[i]>a[j])

{

temp=a[i];

a[i]=a[j];

a[j]=temp;

} for(i=0;i<10;i++)

printf(“%dt”,a[i]);} 将一个二维数组行和列的元素互换,存到另一个二维数组中。

14123b25a456 36#include main(){ static int a[2][3]={{1,2,3},{4,5,6}};static int b[3][2],i,j;printf(“array a:n”);for(i=0;i<2;i++){

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

{

printf(“%5d,a[i][j]”);

b[j][i]=a[i][j];

}

printf(“n”);} printf(“array b:n”);for(i=0;i<3;i++){

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

printf(“%5d”,b[i][j]);

printf(“n”);} } 有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。

#include int main(){

int a[3][4],max,i,j;

int x=0,y=0;

printf(“请输入矩阵的数值!n”);

for(i=0;i<3;i++)

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

scanf(“%d”,&a[i][j]);

max=a[0][0];

for(i=0;i<3;i++)

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

if(max

{

max=a[i][j];

x=i;

y=j;

}

printf(“矩阵中最大的元素为:%dn”,max);

printf(“行号为:%d,列号为:%d”,x,y);} 输出一个已知的字符串。#include main(){ char a[4];scanf(“%c,%c,%c”,&a[0],&a[1],&a[2]);a[3]='';printf(“%s”,a);} 输出一个菱形图。#include void main(){

int h;

printf(“输入高度-》 ”);

scanf(“%d”,&h);

for(int i=1;i<=h;i++)

{

for(int a=1;a<=(h-i);a++)

{

printf(“ ”);

}

for(int b=1;b<=(i*2-1);b++)

{

printf(“*”);

}

printf(“n”);

}

for(int j=h-1;j>=1;j--)

{

for(int a=1;a<=(h-j);a++)

{

printf(“ ”);

}

for(int b=1;b<=(j*2-1);b++)

{

printf(“*”);

}

printf(“n”);

} } 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。#include int main(){

char string[81],c;int i,num=0,word=0;gets(string);

for(i=0;

(c=string[i])!= ' ';i++)if(c==' ')word=0;

else

if(word==0){

word=1;num++;}

printf(“There

are

%d

word

in

the

line.n ”,num);getchar();return

0;} 有3个字符串,要求找出其中最大者。#include #include void

main(){

char

string[20];char

str[3][20];int

i;for(i=0;i <3;i++)gets(str[i]);

if(strcmp(str[0],str[1])> 0)strcpy(string,str[10]);

else

strcpy(string,str[1]);if(strcmp(str[2],string)> 0)strcpy(string,str[2]);

printf(“nthe

largest

string

isn%sn ”,string);

} 15 输出以下的结果,用函数调用实现。

******************

How do you do!

****************** #include void fun1(void){printf(“**************n”);} void fun2(void){printf(“* How do you do!n”);}

main(){fun1();fun2();fun1();} 输入两个整数,要求输出其中值较大者。要求用函数来找到大数。#include int main(){ int max(int,int);

int a,b,c;

printf(“please enter a and b:”);

scanf(“%d,%d”,&a,&b);

c=max(a,b);

printf(“%d,%d,max=%dn”,a,b,c);

return 0;}

int max(int x,int y){ int z;

if(x>y)z=x;

else

z=y;

return(z);} 输入两个实数,用一个函数求出它们之和。#include int main(){ float add(float x,float y);float a,b,c;printf(“please enter a and b:”);scanf(“%f,%f”,&a,&b);c=add(a,b);printf(“sum is %f.n”,c);return 0;} float add(float x,float y){ float z;z=x+y;return(z);}

输入4个整数,找出其中最大的数。用函数的嵌套调用来处理。#include void main(){

int max_4(int a,int b,int c,int d);

int a,b,c,d,max;

printf(“Please enter 4 interger numbers:”);

scanf(“%d %d %d %d ”,&a,&b,&c,&d);

max=max_4(a,b,c,d);

printf(“max=%d n”,max);}

int max_4(int a,int b,int c,int d)

{int max_2(int,int);

int m;m=max_2(a,b);

m=max_2(m,c);

m=max_2(m,d);

return(m);

} int max_2(int a,int b)

{if(a>b)

return a;

else return b;

} 有5个学生坐在一起

 问第5个学生多少岁?他说比第4个学生大2岁  问第4个学生岁数,他说比第3个学生大2岁  问第3个学生,又说比第2个学生大2岁  问第2个学生,说比第1个学生大2岁  最后问第1个学生,他说是10岁  请问第5个学生多大(递归调用)

#include int main(){ int age(int n);printf(“NO.5,age:%dn”,age(5));return 0;} int age(int n){ int c;if(n==1)

c=10;else

c=age(n-1)+2;return(c);} 用递归方法求n!。#include float fac(int n)

{

float f;

if(n<0)

{

printf(“n<0, dataerror!”);

}

else if(n==0||n==1)

f=1;

else

f=fac(n-1)*n;

return f;} int main(){ int n;scanf(“%d”,&n);printf(“%.0fn”,fac(n));return 0;}

第3天的题目: 输入10个数,要求输出其中值最大的元素和该数是第几个数。#include #include int main(int argc, char *argv[]){

int i=1,max,temp,n=1;

while(i<=10)

{

if(i==1){

scanf(“%d”,&max);

}

else

{

scanf(“%d”,&temp);

if(temp>max)

{

max = temp;

n=i;

}

}

i++;

}

printf(“最大数%d 位置%dn”,max,n);

system(“pause”);

return 0;} 有一个一维数组score,内放10个学生成绩,求平均成绩。#include int main(){ float average(float array[10]);float score[10],aver;int i;printf(“input 10 scores:n”);for(i=0;i<10;i++)

scanf(“%f”,&score[i]);printf(“n”);aver=average(score);printf(“%5.2fn”,aver);return 0;} float average(float array[10]){ int i;float aver,sum=array[0];for(i=1;i<10;i++)

sum=sum+array[i];aver=sum/10;return(aver);} 有两个班级,分别有35名和30名学生,调用一个average函数,分别求这两个班的学生的平均成绩。#include int main(){ float average(float array[],int n);float score1[5]={98,97,91,78,66};float score2[10]={67,78,89,99,68,78,77,85,59,88};printf(“%6.2fn”,average(score1,5));printf(“%6.2fn”,average(score2,10));return 0;} float average(float array[],int n){ int i;float aver,sum=array[0];for(i=1;i

#include #define N void sort(int array[],int n){

int i,j,k,t;

for(i=0;i

{

k=i;

for(j=i+1;j

if(array[j]

k=j;

t=array[k];

array[k]=array[i];

array[i]=t;

} }

int main(){

int i,array[N];

printf(“input a number:”);

for(i=0;i<=N-1;i++)

scanf(“%d”,&array[i]);

sort(&array[0], N);

for(i=0;i<=N-1;i++)

printf(“%d ”,array[i]);

return 0;} 有一个3×4的矩阵,求所有元素中的最大值。#include int main(){ int max_value(int array[][4]);int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};printf(“max value is %dn”,max_value(a));return 0;} int max_value(int array[][4]){ int i,j,max;max=array[0][0];for(i=0;i<3;i++)

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

if(array[i][j]>max)

max=array[i][j];

return(max);} 有一个一维数组,内放10个学生成绩,写一个函数,当主函数调用此函数后,能求出平均分、最高分和最低分。#include float max=0,min=0;int main(){ float average(float array[],int n);float ave,score[10];int i;printf(“please enter 10 scores:n”);for(i=0;i<10;i++)

scanf(“%f”,&score[i]);ave=average(score,10);printf(“max=%6.2fn min=%6.2fn average=%6.2fn”,max,min,ave);

return 0;} float average(float array[],int n){int i;float aver,sum=array[0];max=min=array[0];for(i=1;imax)max=array[i];else if(array[i] int main(){

int fac(int n);int i;for(i=1;i<=5;i++)

printf(“%d!=%dn”,i,fac(i));return 0;} int fac(int n){

static int f=1;

}f=f*n;return(f);调用函数,求3个整数中的大者。#include int main(){ int max();extern int a,b,c;scanf(“%d %d %d”,&a,&b,&c);printf(“max is %d”, max());return 0;} int a,b,c;int max(){ int m;m=a>b?a:b;if(c>m)m=c;return(m);} 给定b的值,输入a和m,求a*b和am的值。#include int a;int main(){ int power(int);int b=3,c,d,m;scanf(“%d,%d”,&a,&m);c=a*b;printf(“%d*%d=%dn”,a,b,c);d=power(m);printf(“%d**%d=%dn”,a,m,d);return 0;} extern a;int power(int n){ int i,y=1;for(i=1;i<=n;i++)y*=a;

return(y);} 通过指针变量访问整型变量。#include “stdio.h” void main(){

int a,b;

int *pointer_1,*pointer_2;

a=100;b=10;

pointer_1=&a;

pointer_2=&b;

printf(“%d,%dn”,a,b);

printf(“%d,%dn”,*pointer_1,*pointer_2);} 输入a和b两个整数,按先大后小的顺序输出a和b。

 解题思路:用指针方法来处理这个问题。不交换整型变量的值,而是交换两个指针变量的值。#include main(){ int *p1,*p2,*p,a,b;

scanf(“%d,%d”,&a,&b);

p1=&a;p2=&b;

if(a

{p=p1;p1=p2;p2=p;}

printf(“na=%d,b=%dn”,a,b);

printf(“max=%d,min=%dn”,*p1, *p2);} 对输入的两个整数按大小顺序输出。现用函数处理,而且用指针类型的数据作函数参数。#include void max(int *a,int *b){ int n;if(*a<*b){

n=*a;

*a=*b;

*b=n;} } int main(void){ int a,b;int *n=&a,*m=&b;printf(“输入两个整数:n”);scanf(“%d%d”,&a,&b);max(n,m);printf(“%d

%dn”,a,b);return 0;} 对输入的两个整数按大小顺序输出。

 解题思路:尝试调用swap函数来实现题目要求。在函数中改变形参(指针变量)的值,希望能由此改变实参(指针变量)的值

#include swap(int *p1,int *p2){

int temp;

temp=*p1;

*p1=*p2;

*p2=temp;}

main(){

int a,b;

int *pointer_1,*pointer_2;

scanf(“%d,%d”,&a,&b);

pointer_1=&a;pointer_2=&b;

if(a

swap(pointer_1,pointer_2);

printf(“ %d,%d ”,a,b);}输入3个整数a,b,c,要求按由大到小的顺序将它们输出。用函数实现。#include void swap(int *x,int *y){int t=*x;*x=*y;*y=t;} int main(){int a,b,c;scanf(“%d%d%d”,&a,&b,&c);if(a

 解题思路:引用数组中各元素的值有3种方法:(1)下标法;(2)通过数组名计算数组元素地址,找出元素的值;(3)用指针变量指向数组元素  分别写出程序,以资比较分析。#include void main(){ int a[10];int i;for(i=0;i<10;i++)

scanf(“%d”,&a[i]);for(i=0;i<10;i++)

printf(“%d ”,a[i]);} 通过指针变量输出整型数组a的10个元素。

 解题思路:

用指针变量p指向数组元素,通过改变指针变量的值,使p先后指向a[0]到a[9]各元素。#include main(){ int *p,i,a[10];p=a;for(i=0;i<10;i++)scanf(“%d”,p++);printf(“n”);p=a;for(i=0;i<10;i++,p++)printf(“%d”,*p);}将数组a中n个整数按相反顺序存放

 解题思路:将a[0]与a[n-1]对换,……将a[4]与a[5]对换。#include int main(){ void inv(int x[ ],int n);

int i, a[10]={3,7,9,11,0,6,7,5,4,2};

for(i=0;i<10;i++)printf(“%d ”,a[i]);

printf(“n”);

inv(a,10);

for(i=0;i<10;i++)printf(“%d ”,a[i]);

printf(“n”);

return 0;} void inv(int x[ ],int n){ int temp,i,j,m=(n-1)/2;

for(i=0;i<=m;i++)

{ j=n-1-i;

temp=x[i];x[i]=x[j];x[j]=temp;} } 用指针方法对10个整数按由大到小顺序排序。

 解题思路:

 在主函数中定义数组a存放10个整数,定义int *型指针变量p指向a[0]  定义函数sort使数组a中的元素按由大到小的顺序排列  在主函数中调用sort函数,用指针p作实参  用选择法进行排序

#include int main(){ void sort(int x[],int n);int i,*p,a[10];p=a;printf(“please enter 10 integer numbers:”);for(i=0;i<10;i++)

scanf(“%d”,p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++){

printf(“%d ”,*p);

p++;} printf(“n”);return 0;}

void sort(int x[],int n){ int i,j,k,t;for(i=0;i

k=i;

for(j=i+1;j

if(x[j]>x[k])

k=j;

if(k!=i)

{

t=x[i];

x[i]=x[k];

x[k]=t;

}

} } 有一个班,3个学生,各学4门课,计算总平均分数以及第n个学生的成绩。

.#include“stdio.h” void InputScore(double s[][4]){ int i,j;

printf(“please input the score of three student:n”);

for(i=0;i<3;i++)

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

scanf(“%lf”,&s[i][j]);} double AllAverage(double *s,int m){double sum=0;int i;

for(i=0;i

sum=sum+*(s+i);return sum/(m*4);} void PrintNScore(double(*s)[4],int n){ int i;for(i=0;i<4;i++)printf(“%d”,*(*(s+n-1)+i));} void main(){

double score[3][4],ave;

int n;

InputScore(score);

ave=AllAverage(score[0],3);

printf(“average =%lfn”,ave);

printf(“please input the NO.of student who will be printed:n”);

scanf(“%d”,&n);

printf(“The score of the %dth student is:n”,n);

PrintNScore(score,n);

}.定义一个字符数组,在其中存放字符串“I love China!”,输出该字符串和第8个字符。

 解题思路:定义字符数组string,对它初始化,由于在初始化时字符的个数是确定的,因此可不必指定数组的长度。用数组名string和输出格式%s可以输出整个字符串。用数组名和下标可以引用任一数组元素。

#include int main(){ char string[]=“I love China!”;

printf(“%sn”,string);

printf(“%cn”,string[7]);

return 0;}。

第4天的题目:

1.输入一行字符,统计其中的英文字符、数字字符、空格及其它字符的个数。#include #include #define STOP '|' int main(void){ char c;char prev;long n_chars = 0L;int n_lines = 0;int n_words = 0;int p_lines = 0;int inword = 0;

printf(“Enter text to be analyzed(| to be quit):n ”);prev = 'n';while((c = getchar())!= STOP){

n_chars++;

if(c == 'n')

n_lines++;

if(!isspace(c)&&!inword)

{

inword = 1;

n_words++;

}

if(isspace(c)&& inword)

inword = 0;

prev = c;} if(prev!= 'n')

p_lines = 1;printf(“characters = %ld,word = %d,line = %d,”,n_chars,n_words,n_lines);printf(“partial lines = %dn”,p_lines);return 0;}

2.编程先输入某班30个学生某门课的成绩,对全班30个学生成绩进行由高到低排序,并打印输出排序结果,要求按照如下函数原型,用函数编程实现排序功能。#include

void sort(float score[],int n)

{

int i,j;

for(i=0;i

for(j=0;j

if(score[j]

{

float temp=score[j];

score[j]=score[j+1];

score[j+1]=temp;

}

}

void main()

{

float score[30];

int i;

printf(“Please enter the number and score:n”);

for(i=0;i<30;i++)

scanf(“%f”,&score[i]);

sort(score,30);

printf(“Sorted results:n”);

for(i=0;i<30;i++)

printf(“%f”,score[i]);

}

3.用户从键盘任意输入一个数字表示月份值n,程序显示该月份对应的英文表示,若n不在1~12之间,则输出“Illegal month”。#include int main(){

int n;

printf(“请输入n的值n”);

scanf(“%d”,&n);

switch(n)

{

case 1:printf(“Janunryn”);break;

case 2:printf(“Februaryn”);break;

case 3:printf(“Marchn”);break;

case 4:printf(“Apriln”);break;

case 5:printf(“Mayn”);break;

case 6:printf(“Junen”);break;

case 7:printf(“Julyn”);break;

case 8:printf(“Augustn”);break;

case 9:printf(“Septempern”);break;

case 10:printf(“Octobern”);break;

case 11:printf(“Novembern”);break;

case 12:printf(“Decembern”);break;

default:printf(“Illegal month”);

}

return 0;}

4.计算十个数据的平均值。#include void main(){ int a[10],sum=0,i=0;float b;printf(“输入10个数n”);for(;i<10;i++)scanf(“%d”,&a[i]);for(i=9;i>=0;i--)sum=sum+a[i];b=(float)sum/10;printf(“平均数=%fn”,b);}

5.编程实现从键盘输入一个字符串,将其字符顺序颠倒后重新存放,并输出这个字符串。(用字符数组实现)#include #include #define N 10 int main(void){ char a[N];int i,j;printf(“Input data:”);for(i=0;(a[i]=getchar())!='n';i++);a[i]='';

} printf(“输出的数据n”);for(j=i-1;j>=0;j--)printf(“%c”,a[j]);putchar('n');return 0;

6.从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和(忽略整数前的正负号)。例如,输入x为1234,则由1234分离出其千位

1、百位

2、十位

3、个位4,然后计算1+2+3+4=10,并输出10。#include main(){ int a,b,c,d;int sum,i;printf(“输入一个四位数n”);scanf(“%d”,&i);a=i/1000;b=(i/10)%10;c=(i/100)%10;d=i%10;sum=a+b+c+d;printf(“%dn”,sum);}

7.输入20个学生的成绩,求出其中大于平均成绩学生的人数,并对20名学生成绩按从高到低进行排序。#include

int count1(float score[],int n)

{

int i,count=0;

float sum=0,avg;

for(i=0;i

sum+=score[i];

avg=sum/n;

for(i=0;i

if(score[i]>avg)count++;

return count;

}

void sort(float score[],int n)

{

int i,j;

for(i=0;i

for(j=0;j

if(score[j]

{

float temp=score[j];

score[j]=score[j+1];

score[j+1]=temp;

}

}

void main()

{

int i;

float score[20];

for(i=0;i<20;i++)

scanf(“%f”,&score[i]);

int COUNT=count1(score,20);

printf(“大于平均成绩学生的人数:%d”,COUNT);

sort(score,20);

for(i=0;i<20;i++)

printf(“%f”,score[i]);

}

224466...228.利用公式=133557ׄ前100项之积计算并打印值。#include “stdio.h” void main(){ float a=2,b=1;double num=1;int i;for(i=1;i<=100;i++){

num*=a/b;

if(i%2==0)a+=2;

else b+=2;}

num*=2;printf(“π=%.16lfn”,num);}

9.由键盘输入一个班的某课程的学生成绩,计算其平均分然后输出。#include int main(){ float sum=0,n;int i=0;do {

printf(“输入第%d个学生的成绩,输入负数结束”,i+1);

scanf(“%f”,&n);

if(n<0)

break;

sum+=n;

i++;} while(1);printf(“平均成绩为%.4fn”,sum/i);return 0;}

10.从键盘输入10个整型数据,放入数组a 中,求其最大值、最小值及其所在元素的下标位置并输出。#include int main(){

}

} printf(“最大值:%d 最大值所在位置:%dn最小值:%d 最小值所在位return 0;} if(a[i]

}

min_=a[i];minInd=i;int a[10],max_,min_,maxInd,minInd;int i;scanf(”%d“,&a[0]);max_=a[0];min_=a[0];maxInd=minInd=0;for(i=1;i<10;i++){

scanf(”%d“,&a[i]);if(a[i]>max_){

max_=a[i];maxInd=i;置:%dn”,max_,maxInd,min_,minInd);

11.下面的函数MyStrcmp()用于实现函数strcmp()的功能,将两个字符串s和t进行比较,要求将两个字符串中第一个不相同字符的ASCII码值之差作为MyStrcmp()函数的返回值。#include #include“string.h” int strcmpp(char *s,char *t){int la=strlen(s),lb=strlen(t),i=0;while(1){ if(s[i]!=''&&t[i]!=''){ if(s[i]>t[i]){return 1;break;} else if(s[i]

return 0;}

12.从键盘任意输入10个整数,用函数编程实现将其中最大数与最小数的位置对换后,再输出调整后的数组。#include using namespace std;void func(){ int a[10];for(int i=0;i<10;i++)

cin>>a[i];int max=0;int min=0;for(i=0;i<10;i++){

if(a[max]

if(a[min]>a[i])min=i;} int t=a[max];a[max]=a[min];a[min]=t;for(i=0;i<10;i++){

cout<

int main(){ int score,level;char band;printf(“Input Score:”);scanf(“%d”,&score);level=score/10;switch(level){ case 10: case 9: band='A';break;case 8: band='B';break;case 7: band='C';break;case 6: band='D';break;default: band='E';break;} printf(“%d的等级为%cn”,score,band);system(“pause”);return 0;} 把1~50之间不能被7整除的数输出 #include main(){ int i;for(i=1;i<=50;i++)if(i%7!=0)

printf(“%d ”,i);} 交换函数两个参数的值 #include “Stdio.h” #include “Conio.h” void swap(int* x,int *y){ int t;t=*x;*x=*y;*y=t;}

main(){ int a,b;a=11,b=21;swap(&a,&b);

printf(“%d,%d”,a,b);getch();} 求数组元素中的最大元素和最小元素 #include

int *pmin,*pmax;int extreum(int a[],int n)

{

int i;

pmax=pmin=a;

for(i=0;i<=n;i++)

{

if(a[i]>*pmax)

pmax=&a[i];

else if(a[i]<*pmin)

pmin=&a[i];

}

return 0;}

main(){

int i;

int b[10];

printf(“enter 10 numbers:n”);

for(i=0;i<10;i++)

scanf(“%d”,&b[i]);

extreum(b,10);

printf(“n max=%d,min=%dn”,*pmax,*pmin);} 求3×4矩阵的转置

第五篇:C语言实训

#include #include #include #define N 100

struct student { char classname[40];int num;

char major[40];

char name[30];char class1[40];int score1;char class2[40];int score2;char class3[40];int score3;}stu[N];

void menu();void add();void search();void change();void deleted();void sort();void show();void back();void input();void output();

int main(void){ menu();void add();

void search();

void change();

void deleted();

void sort();

void show();

void back();

void input();void output();return 0;}//需要调用的函数

void menu(){ int n;printf(“nnnnnn”);do{

printf(“

printf(”

*n“);

printf(”

*n“);

printf(”

printf(“

*n”);

************欢迎使用学生信息管理系统************n“);

*

*

功能菜单************************************************n”);

*

printf(“

*

1.添加成绩表信息

*n”);

printf(“

*

2.查询成绩信息

*n”);

printf(“

*

3.修改成绩信息

*n”);

printf(“

*n”);

printf(“

*n”);

printf(“

*n”);

printf(“

*n”);

printf(“

*n”);

printf(“

*n”);

printf(“

*n”);

printf(“

printf(”

*

4.删除信息记录

*

5.排序成绩表信息

*

6.显示成绩表所有信息

*

7.从指定的文件中读入成绩表的信息

*

8.将成绩表的信息写入指定的文件中

*

9.退出学生信息管理系统

*

************************************************nn“);

请输入数字<1-9>: ”);

scanf(“%d”,&n);switch(n){

case 1:

add();

break;

case 2:

search();

break;

case 3:

change();

break;

case 4:

deleted();

break;

case 5:

sort();

break;

case 6:

show();

break;

case 7:

}

input();

break;

case 8:

output();

break;

case 9:

back();

break;

default: }

printf(“nn抱歉!您的输入有误,请在1到9之间选择!”);}while(n<=0&&n>9);int n=2;//全局变量在这里!

void add(){

system(“cls”);int i;char a;for(i=0;i

printf(“nnn请输入学生信息:nnn”);

printf(“请输入班级:”);scanf(“n%s”,stu[i].classname);printf(“请输入姓名:”);scanf(“%s”,stu[i].name);printf(“请输入学号:”);scanf(“n%d”,&stu[i].num);printf(“请输入专业:”);scanf(“n%s”,stu[i].major);printf(“请输入课程1名称:”);scanf(“n%s”,stu[i].class1);printf(“请输入课程1成绩:”);scanf(“n%d”,&stu[i].score1);printf(“请输入课程2名称:”);

scanf(“n%s”,stu[i].class2);

printf(“请输入课程2成绩:”);

scanf(“n%d”,&stu[i].score2);printf(“请输入课程3名称:”);scanf(“n%s”,stu[i].class3);printf(“请输入课程3成绩:”);scanf(“nnn%d”,&stu[i].score3);}

printf(“nn信息添加成功!!nn”);printf(“nn学生的信息如下:nn”);printf(“ntt班级

姓名

学号

专业

课程1 课程1成绩

课程2 课程2成绩

课程3 课程3成绩”);

for(i=0;i

printf(“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].classname,stu[i].name,stu[i].num,stu[i].major,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3);

} printf(“nn按任意键返回主菜单!n”);getchar();scanf(“%c”,&a);}

menu();void search(){

{ case 1: //按姓名查找 printf(“nn请输入您想要查找的姓名:

”);system(“cls”);int i=0;int choice,s,score;int flag=0;char sname[20];char a;printf(“1.按姓名查找n2.按学号查找n3.查找总成绩相等的学生nn”);printf(“请输入您想要的查找方式(序号):”);scanf(“%d”,&choice);switch(choice)

scanf(“%s”,sname);for(i=0;i

printf(“%s %d %s %d %s %d”,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3);

case 2: //按学号查找 printf(“nn请输入您想要查找的学号:

”);} if(flag==0)//找不到该姓名

printf(“nn您搜索的该生信息不存在,请确认后再重新输入!n”);break;scanf(“%d”,&s);for(i=0;i

if(stu[i].num==s){ flag=1;printf(“nn该学生成绩信息如下:n”);

printf(“%s %s %d %s %d %s %d”,stu[i].name,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3);

case 3: //查找总成绩相等的学生

printf(“nn请输入您想要查找的学生成绩:

”);scanf(“%d”,&score);for(i=0;i

{

flag=1;printf(“nn总成绩相等的学生成绩信息如下:n”);if((stu[i].score1+stu[i].score2+stu[i].score3)==score)}

if(flag==0)//找不到该学号

printf(“nn您搜素的该生信息不存在,请确认后再重新输入!n”);break;printf(“%s %s %d %s %s %d %s %d %s %d”,stu[i].classname,stu[i].name,stu[i].num,stu[i].major,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3);}

}

if(flag==0)printf(“nn没有学生位于该分数,请重新输入!n”);break;default://输入不是1,2,3 printf(“nn您的输入有误!请在1到3之间进行选择!n”);}//这个才是switch的啦~(≧▽≦)/~

printf(“nn按任意键返回主菜单!”);getchar();scanf(“%c”,&a);menu();void change(){ system(“cls”);int i=0,item,n,sco1,sco2,sco3;

char name[30];char smajor[40];char sclassname[40];char a;printf(“请输入需要修改信息的学生学号:”);scanf(“%d”,&n);

for(i=0;i

if(n==stu[i].num)

{

printf(“*--------------------*n”);

printf(“1.修改课程1成绩;n”);

printf(“2.修改课程2成绩;n”);

printf(“3.修改课程3成绩;n”);printf(“4.修改学生的姓名;n”);printf(“5.修改学生的专业;n”);printf(“6.修改学生的班级;n”);

printf(“*--------------------*n”);printf(“nn请输入需要修改的信息(序号):”);scanf(“%d”,&item);

switch(item){ case 1:

printf(“nn请重新输入课程1成绩:

”);scanf(“%d”,&sco1);stu[i].score1=sco1;printf(“n”);break;case 2:

printf(“nn请重新输入课程2成绩:”);scanf(“%d”,&sco2);stu[i].score2=sco2;printf(“n”);break;case 3:

printf(“nn请重新输入课程3成绩:

”);scanf(“%d”,&sco3);stu[i].score3=sco3;printf(“n”);break;case 4:

printf(“nn请重新输入学生姓名:

”);scanf(“%s”,name);strcpy(stu[i].name,name);//将姓名代替 printf(“n”);break;case 5:

printf(“nn请重新输入学生专业:

”);scanf(“%s”,smajor);strcpy(stu[i].major,smajor);printf(“n”);break;case 6:

printf(“nn请重新输入学生班级:

”);scanf(“%s”,sclassname);strcpy(stu[i].classname,sclassname);printf(“n”);break;default: printf(“您的输入有误!请在1到6之间进行选择!”);}//这是switch的

printf(“修改后该学生信息如下:n”);

printf(“ntt班级

姓名

学号

专业

课程1 课程1成绩

课程2 课程2成绩

课程3 课程3成绩”);

printf(“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].classname,stu[i].name,stu[i].num,stu[i].major,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3);break;

printf(“nnn”);

printf(“nn按任意键返回主菜单!”);getchar();scanf(“%c”,&a);menu();

}//这是if的

if(i==n)printf(“nn无法找到该生信息,请确认后重新输入!”);//找不到学生学号

}//这是void的void deleted(){

for(i=0;i

if(strcmp(stu[i].name,name)==0)//找得到学生姓名

{ flag=1;printf(“请输入需要删除信息的学生姓名:”);scanf(“%s”,name);system(“cls”);int flag=0;int i;char b;char a;char name[30];

printf(“ntt班级

姓名

学号

专业

课程1 课程1成绩

课程2 课程2成绩

课程3 课程3成绩”);

printf(“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].classname,stu[i].name,stu[i].num,stu[i].major,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3);

if(flag==0)//找不到学生姓名

if(a=='n')printf(“nn已退出!n”);

if(a=='y'){

for(i=0;i

printf(“nn是否要删除该生所有信息?(y or n):”);getchar();

scanf(“%c”,&a);}//这是第二个if的

}//这是第一个if的

}//这是for的

}

printf(“nn该生信息不存在!请确认后重新输入!nn”);printf(“nn请按任意键返回主菜单!n”);getchar();scanf(“%c”,&b);menu();void sort(){

system(“cls”);int i,j;int choice;struct student temp;char a;printf(“nn*--------------------*nn”);printf(“1.按总成绩升序排序nn2.按学号升序排序nn”);printf(“n*--------------------*n”);printf(“nn请输入您想要的排序方式:

”);

scanf(“%d”,&choice);switch(choice){ case 1: for(i=0;i

for(j=i+1;j

if((stu[i].score1+stu[i].score2+stu[i].score3)

{

temp=stu[i];stu[i]= stu[j];stu[j]=temp;}//这是for(j)的

printf(“nn按总成绩升序排序后的信息为:n”);for(i=0;i

printf(“nntt班级t姓名t学号t专业t课程1tt课程1成绩t课程2tt课程2成绩t课程3tt课程3成绩”);

printf(“nntt%st%st%dt%st%st%dt%st%dtt%stttt%dnnn”,stu[i].classname,stu[i].name,stu[i].num,stu[i].major,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3);}//这是for排序的

}//这是for(i)的 case 2:

for(i=0;i

break;

for(j=i+1;j

if((stu[i].score1+stu[i].score2+stu[i].score3)

{

temp=stu[i];stu[i]= stu[j];stu[j]=temp;}//这是for(j)的

printf(“nn按总成绩升序排序后的信息为:n”);for(i=0;i

printf(“nntt班级t姓名t学号t专业t课程1tt课程1成绩t课程2tt课程2成绩t课程3tt课程3成绩”);

printf(“nntt%st%st%dt%st%st%dt%st%dtt%stttt%dnnn”,stu[i].classname,stu[i].name,stu[i].num,stu[i].major,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3);}//这是for排序的

}//这是for(i)的 }//这是switch的

printf(“nn按任意键返回主菜单!n”);getchar();scanf(“%c”,&a);menu();

default:

printf(“nn抱歉!您输入的数据有误,请在1和2之间进行选择!n”);

break;}//这是void的 void show()//这是显示显示显示显示显示 {

system(“cls”);int i;char a;printf(“nn所有学生的信息如下:n”);

printf(“ntt班级

姓名

学号

专业

课程1 课程1成绩

课程2 课程2成绩

课程3 课程3成绩”);

for(i=0;i

printf(“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].classname,stu[i].name,stu[i].num,stu[i].major,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3);

} } printf(“nn按任意键返回主菜单!n”);getchar();scanf(“%c”,&a);menu();

void input(){

system(“cls”);int i;char a;FILE*fp=fopen(“file1”,“w+”);if(fp==NULL){

} printf(“ntt班级

姓名

学号

专业

课程1 课程1成绩

课程2 课程2成绩

课printf(”文件打开失败!n“);exit(1);程3 课程3成绩”);

fscanf(fp,“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].classname,stu[i].nfor(i=0;i

}

} fclose(fp);printf(“nn按任意键返回主菜单!”);getchar();scanf(“%c”,&a);menu();void output(){

system(“cls”);int i;char a;FILE*fp=fopen(“file1”,“r”);if(fp==NULL){

} printf(“文件打开失败!n”);exit(1);printf(“ntt班级

姓名

学号

专业

课程1 课程1成绩

课程2 课程2成绩

课程3 课程3成绩”);

fprintf(fp,“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].classname,stu[i].nfor(i=0;i

}

void back(){ system(“cls”);} printf(“nn按任意键返回主菜单!”);getchar();scanf(“%c”,&a);menu();fclose(fp);

int t;int a;printf(“确定退出学生成绩管理系统请按1,否则按0: ”);scanf(“%d”,&t);if(t==0){ printf(“nnn请输入任意数字返回首页: scanf(”%d“,&a);system(”cls“);menu();} if(t==1){

exit(1);} }

”);

下载C语言实训-学生成绩管理系统(合集五篇)word格式文档
下载C语言实训-学生成绩管理系统(合集五篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    C语言实训任务书

    - 1学生档案管理系统录入学生信息修改学生信息删修除改学生信息查询学生信息输出学生信息退出系统 按学号查询按班级查询 2、重要数据的数据结构设计 学生学籍的记录项用......

    C语言实训报告

    C语言程序设计 实训报告 题 目: 红外避障机器人 院 (系): 信息工程系专 业: 通信工程学生姓名:韦嘉宝 学 号: 1551100424 指导教师:朱震 周斌 王旬 全刘辉 2016 年10月 8 日 目......

    C语言实训总结

    实训总结报告 为期两周的项目工作就这样轻轻的落下了帷幕,在为期两周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服......

    C语言实训总结

    C语言实训总结 这个星期,我们迎来了C语言实训——一次至为重要的实训。在这个星期里,同学们都很认真的做着那20多道实训题目,遇到不懂的互相请教,或请问老师。非常感谢老师对我......

    C语言实训心得

    C语言实训心得 在本学期学习C语言将近一个学期后,我们进行了C语言实训,做了一个比较复杂、功能较全的学籍管理系统。虽然实训为期不长,但对我C语言水平的提高和对C的认识理解有......

    C语言实训报告

    目录 一.分步程序---------------1 二.三.四.心得体会 程序--------------------15 C语言结构-----------24 -------------30 主函数代码 #include #include #include stru......

    c语言实训报告

    C语言排序比较 目 录 一、 目的概述。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 二、 实验(设计)仪器设备和材料清单。。。。。。。......

    C语言实训报告

    C语言实训报告 一、课题名称 :日历程序 编写程序显示某一月的日历。 二、 课题目的 1.通过理论知识与实际需求相结合,编程解决一些日常中实际的问题,培养初步的独立分析能力; 2.了......