第一篇: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语言程序设计》实验报告 实验十一:函数 班 级: ___________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 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字左右。) 本次试验的内容是考察数组的引用、基本算法等,但是总体感觉有点问题。有的地方不知道如何下手 目 录 特别注意,打开视图菜单-文档结构图观察文档结构。目录由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.附录(源程序代码) 第一天的题目: 求两个整数之和。 #include 求1×3×5×7×9×11 #include sum = sum*i; i = i+2;} printf(“%d”,sum);return 0;} 有50个学生,要求将成绩在80分以上的学生的学号和成绩输出。 #include 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 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++;} } 求111111 23499100#include sign=-sign; term=sign/deno; sum=sum+term; deno=deno+1;} printf(“%fn”,sum);} 给出一个大于或等于3的正整数,判断它是不是一个素数。 #include 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 #include #include 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 #include char zhong,guo; scanf(“%c”,&zhong); if(65<=zhong&&zhong<=90) { guo=zhong+32; printf(“%c”,guo); } else printf(“%c”,zhong);} 1(x0)1编一程序,输入一个x值,要求输出相应的y值。y0(x0) 1(x0)#include 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 5写一程序,判断某一年是否闰年。#include 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 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 return 0;} 要求输出100~200之间的不能被3整除的数。#include 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 printf(“%sn”,p[i]);} } 用 41131517 公式求 的近似值,直到发现某一项的绝对值小于10-6 为止(该项不累计加)。 #include s=-s; t=s/n; pi=pi+t;} pi=pi*4;printf(“%.6fn”,pi);return 0;} 求费波那西(Fibonacci)数列的前40个数。这个数列有如下特点:第1、2两个数为1、1。从第3个数开始,该数是其前面两个数之和。即: F11F21FFFn1n2n(n1)(n2) (n3)#include f3=f1+f2; printf(“%12dn”,f3); f1=f2; f2=f3;} return 0;} 输入一个大于3的整数n,判定它是否素数(prime,又称质数)。#include if(a%b==0) { printf(“此数不是素数n”); return 0; } printf(“此数是素数n”); return 0;} 求100~200间的全部素数。#include 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 #include 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 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]);} 将一个二维数组行和列的元素互换,存到另一个二维数组中。 14123b25a456 36#include 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 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++)第二篇:C语言实训
第三篇:c语言实训
第四篇:C语言实训