版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用标准青岛理工大学课程实验报告课程名称计算机程序设计(C)班级软件111实验日期2021.04.21姓名赵业乐学号202107209实验成绩实验名称实验一 C程序的运行环境和运行 C程序的方法实验目的及要求1,熟悉 Visual C+6.0 环境.2 . 了解建立限制台应用程序的根本步骤.3,初步了解Visual C+6.0的环境设置.4 .初步学会简单的程序调试方法.5 .学会编写简单的C程序.6 .初步熟悉C谛言操输入scanf函数、输出printf函数的使用.7 .掌握C语言根本数据类型,熟悉变量的定义及变量的初始化和赋 值操作.8 .掌握不同的类型数据之间赋值的规律.9 .掌握C谛言
2、的算术运算符的使用以及算术表达式的使用;掌握自 加自减运算符的特点及使用.实 验 环 境Visual 6.0+ Windows 7实 验 内 容1 .根据上述步骤,创立一个基于限制台的应用程序,该程序工程中只包含一个源程序文件.功能为求两个整数的和,数据从键盘输入.2 .创立一个基于限制台的应用程序,求一元二次方程的根.使得当输入三个实数a,b,c (满足b*b-4*a*c>0 ),能够求出方程 a*x*x+b*x+c=0的两个实根,并显示在屏幕上.分析提示:通过键盘输入方程系数 a,b,c的值,而后根据 求根公式计算并输出它的两个根.算 法 描 述 及实验一1、先定义两个变量 a,b.
3、2、键入a和b.3、输出两个数的和.实验二1、定义并输入a b c0 2、判断d=bA2-4ac的大小.3、如果小于零那么无解,等于零 有一个解,x1=(-b)/(2*a) . 4、大于 零后两 个解.文档大全实用标准实x1=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a);5、输出结果.验 步 骤1调 试+ I'.fT曾4.:. ' .1 .以*瓜-过程 及: Xl-2, x2 =-3-个解:X=-1MPpe&S my Wy to Contino,除他 k" to continue实验 结 果掌握了掌握C语言根本数据类型,变量的定
4、义及变量的初始化和赋值总操作,不同的类型数据之间赋值的规律.了解了 C谛言的算术运算符的使用以及算术表达式的使用, 自加自减结运算符的特点及使用.实验一 1附 录#include<stdio.h>void main()int a,b,s;scanf("%d%d,&a,&b);printf("s=%dn",a+b);实验一 2#include<stdio.h>#include<math.h>void main()double a,b,c,d,x1,x2;printf("a b c :");sca
5、nf("%lf%lf%lf",&a,&b,&c);d=b*b-4*a*c;if (d<0)printf("无解 n");else if (d=0)x1=(-b)/(2*a);printf("个解:x=%gn",x1);文档大全实用标准else(x1=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a);printf("两个解:x1=%g,x2=%gn",x1,x2); )文档大全实用标准青岛理工大学课程实验报告课程名 称计算机程序设计C班级软件111实验日期20
6、21.4.28姓名赵业乐学号202107209实验成绩实验名 称实验二选择结构程序设计实验目的及要求1 .掌握赋值语句的使用方法.2 .掌握各种类型数据的输入输出方法,能正确使用各种格式转换符.3 .能正确使用关系运算符及表达式、逻辑运算符及表达式.4 .熟练掌握if语句,学会使用if-else语句设计双分支和多分支结构 程序.5 .熟练掌握switch语句的特点,学会使用switch语句设计多分支结 构程序.实 验 环 境Visual 6.0+ Windows 7实 验 内 容3.编写程序,根据输入的学生成绩,给出相应的等级. 90分以上的 等级为A, 60分以下的等级为E,其余每10分为一
7、个等级.要求分 别用if语句和switch语句实现.4,使用switch语句编写简单的四那么运算程序.算 法 描 述 及 实 验 步 骤实验3用if语句时:先输入学生成绩,判断等级,然后直接输出等 级代号 A,B,C,D,E.用switch语句时:先输入学生成绩,除以十,取整.根据数 值6到9判断等级.然后输出等级代号 A,B,C,D,E.实验4先定义子符义量 c和数值及量a,b.然后判断子符义量为何种 运算符号.最后输出相应结果.文档大全调 试 过 程 及 实 验 结 果实用标准'ress anu keu to continue1/5L800000*ress any key to c
8、ontinue掌握了赋值语句的使用方法,各种类型数据的输入输出方法,能 正确使用各种格式转换符、关系运算符及表达式、逻辑运算符及表达 式.掌握了 if语句,学会使用if-else 语句设计双分支和多分支结 构程序;掌握了 switch语句的特点,学会使用switch语句设计多分 支结构程序 实验二3 用if语句:#include<stdio.h>void main()(int a;printf("请输入学生成绩:n");scanf("%d",&a);if (a>90)printf("该学生成绩等级是 An")
9、;else if (a>80)printf("该学生成绩等级是 Bn");else if (a>70)printf("该学生成绩等级是 Cn");else if (a>60)printf("该学生成绩等级是 Dn"); elseprintf("该学生成绩等级是 En");用switch语句:#include<stdio.h>void main()(int a,m;文档大全实用标准printf("请输入学生成绩:n");scanf("%d",&am
10、p;a);m=a/10;switch(m)(case 9:printf("该学生的成绩等级是:An");case 8:printf("该学生的成绩等级是:Bn");case 7:printf("该学生的成绩等级是:Cn");case 6:printf("该学生的成绩等级是:Dn"); default:printf("该学生的成绩等级是:En");实验二 4#include<stdio.h>void main()(float a,b;char c;scanf("%f%c%f&
11、#39;,&a,&c,&b);switch(c)(case '+':printf("%fn",a+b);break;case '-':printf("%fn",a-b);break;case '*':printf("%fn",a*b);break;case '/':printf("%fn",a/b);break;文档大全实用标准青岛理工大学课程实验报告课程 名称计算机程序设计C班级软件111实验日 期2021-5-2姓名赵业乐学
12、号202107209实验成 绩实验 名称实验三循环结构程序设计验 目 的 及 要 求验 环 境1 .熟练掌握while、do-while、for语句的特点,学会设计循环结构程序.2 .掌握break语句以及continue语句的特点及使用范围.3 .学会编写循环嵌套程序.4 .结合程序掌握一些简单的算法.5 .进一步学习调试程序.Visual 6.0+ Windows 7提示:第实及验5.编程练习.有内别是多少?容4.编程练习.求2xxe = 1 x 2!n 项 un=xn/n!,第 n+1Un+1 = Un(x/(n+1)1、2、3、4四个数字,xn 的局部和.直到最后一项的值小于1.0e-
13、4.+ + + .n! +I 项 un+1= xn+1/(n+1)!能组成多少个互不相同且无重复数字的三位数?分算 法 描 述 及 实 验 步 骤实验四1、调用<math,h>函数.2、定义x s i j.输入x.3、直到n大于10000.4、 i=i*(x/(j+1); s=s+i; 5、输出 s实验五 1、定义 i j k fre=0.2、利用三重 for 语句.for(i=1;i<=4;i+) for(j=1;j<=4;j+) ; for(k=1;k<=4;k+).3、if(i!=k&&i!=j&&k!=j),输出 i*100
14、+j*10+k.4、最后输出("总数为:dn",fre)调 试 过 程 及文档大全3、(=8103.083910*ress any key to cant inue实用标准实验结果 总 结 附录123124132134142143213214231 234 241 243 312 314 321 32434L342412413421423431432修数为小IFress any key to continue对实验结果进行分析,问题答复,实验心得体会及改良意见实验三3#include<stdio.h>#include<math.h>void main
15、()(int x;double s,i,j;scanf("%d",&x);s=1,j=0;for(i=1;i>=pow(10,-4);j+)(i=i*(x/(j+1);s=s+i;printf("s=%fn",s);实验三4#include <stdio.h>void main() int i,j,k,fre=0;for(i=1;i<=4;i+)for(j=1;j<=4;j+)for(k=1;k<=4;k+)if(i!=k&&i!=j&&k!=j)printf("%5d
16、",i*100+j*10+k); fre=fre+1;printf("n");printf("总数为:dn",fre);文档大全环 境 实 验 内 容法 描 述 及 实 验 步 骤 调 试 过 程 及 实 验 结 果2、实用标准青岛理工大学课程实验报告课程 名称计算机程序设计(C)班级软件111实验日 期2021-5-2姓名赵业乐学号202107209实验成 绩实验 名称实验四数组程序设计实 验 目 的 及 要 求1 .掌维数组、二维数组的定义、引用及其存储方式.2 .掌握字符数组、字符串以及字符串数组的含义及区别.3 .掌握常用字符函数及字符
17、串函数的使用.4 .掌握常用数组的排序、查找等算法.实 验Visual C+6.0Windows XP2 .编写程序,定义一个含有30个元素的int类型数组.依次给数组元素赋奇数 1、3、5、7;然后按每行十个数顺序输出,最后再按每行十个数逆序输出.3 .数组中的值在 0-9的范围内,统计每个整数的个数.实验2 1、定义一个一维数组a30,i,j=1.2、利用for循环输出,ai+1=ai+2;printf("%6d",ai).3、输出数组,定义初始值1或者59.确定顺、逆序.实验3 1、定义一个一维随机数组含 20个数.2、输出该一维数组.3、禾I用 for 循环 int
18、 m,n,k; for(m=0;m<=9;m+) for(n=0;n<20;n+) if(m=an).4、输出每个数各有几个.文档大全实用标准7个个个个-个个个个 1420331321 1有有有有有有有有有有4551711S27Gcont inue总结附录掌握常用字符函数及字符串函数的使用,掌握常用数组的排 序、查找等算法.实验2#include<stdio.h>void main()(int a30,i,j=1;for(i=1;i<31;i+)(a1=1;ai+1=ai+2;printf("%6d",ai);if(i%10=0) printf
19、("n");printf("n");for(i=1;i<31;i+)(a1=59;ai+1=ai-2;printf("%6d",ai);if(i%10=0) printf("n");文档大全实用标准实验4#include<stdio.h>#include<stdlib.h>void main()(int i,a20;for(i=0;i<20;i+)(ai=rand()%10;printf("%3d",ai);printf("n");int
20、m,n,k;for(m=0;m<=9;m+)(k=0;for(n=0;n<20;n+) if(m=an) k+;printf("%d 有d jn",m,k);文档大全实用标准青岛理工大学课程实验报告课程名称计算机程序设计(C)班级软件111实验日期2021-5-7姓名赵业乐学号202107209实验成绩实验名称实验五函数实验目的及要求1 .掌握函数定义的各个要素.如函数返回值的类型、形式参数与实际参数等.2 .掌握变量的作用域和生存期的概念.3 .掌握局部变量与全局变量的区别、静态局部变量和局部变量的区别、静态 全局变量和全局变量的区别;理解外部变量和外部函数的
21、概念.4 .理解数组作为函数的参数的含义.5 .理解函数的嵌套调用.6 .掌握函数的递归调用.实 验 环 境Visual C+6.0window7实 验 内 容3 .求100200之间的素数.要求:每行10个数输出;定义子函数isprime,函数原型为int isprime( int n);4 .设 f(x)=(2x 3+3x2-4x+1)/(10x 2+3),q(x)=3f(x) 3+2f(x) 2+f(x),编程实现输入 x 的值, 计算输出q(x)的值,要求有q(x)和f(x)的定义.5 .求菲波那契数列1, 1, 2, 3, 5, 8, 13, 21 , 34的前20项.要求:使用递归
22、;每行输出 5个数.算 法 描 述 及 实 验 步 骤实验3 1、定义函数isprime(int n).2、当(n%i=0)时,返回0.否那么 返回1.3、定义main函数.确定范围100200. 4当isprime函数成 立,每五个一行输出.实验4 1、定义函数f= (2*pow(x,3)+3*pow(x,2)-4*x+1)/(10*pow(x,2)+3);q=3*pow(f(x),3)+2*pow(f(x),2)+f(x); .2、定义 main 函数.3、输出 q 函数.实验51、定义fib函数.前两项为1.2、利用递归函.Fib(x)= fib(x-1)+fib(x-2); . 3、每
23、五项一行输出.调 试 过 程 及3、101 103 107151 157 163I 19?Press anv key to109113127131137139149187173179181191193197continue文档大全实用标准实验结果1235,1321345589144 233 377 610II4、3Presskey to con tin ue5、W87 1597 2584 4181 6765I*ress any key to continue总结1,掌握了函数定义的各个要素.2,如函数返回值的类型、形式参数与实际参数等.3,需要进一步掌握函数.附录实验3#include<
24、stdio.h>int isprime(int n)(int i;for(i=2;i<n;i+)(if(n%i=0)return 0;return 1;main()(int n,m=0;for(n=100;n<=200;n+)(if(isprime(n)(printf("%5d",n);m+;if(m%10=0) printf("n"); printf("n");实验4#include<stdio.h>#include<math.h>文档大全实用标准double f(float x)(doub
25、le c;c=(2*pow(x,3)+3*pow(x,2)-4*x+1)/(10*pow(x,2)+3); return c;double q(float x)(double c;c=3*pow(f(x),3)+2*pow(f(x),2)+f(x);return c;main()(float x;double y;scanf("%f",&x);y=q(x);printf("%lfn",y);实验5#include<stdio.h>int fib(int x)(if(x=1|x=2)return 1;elsereturn fib(x-1
26、)+fib(x-2);main()(int n,s;for(n=1;n<=20;n+)(s=fib(n);printf("%-5d",s);if(n%5=0) printf("n");printf("%n");文档大全实用标准青岛理工大学课程实验报告课程名称计算机程序设计C班级软件111实验日期2021-5-16姓名赵业乐学号202107209实验成绩实验名称实验六指针实验目的及要求1 .理解指针的定义,学会指针变量的初始化以及指针可以参与的运 算.2 .掌握指针和一维数组的关系.3 .理解指针和二维数组的关系、理解行指针或数组
27、指针的概念.4 .理解指针数组和数组指针的区别.5 .理解指针和函数的关系以及指针函数和函数指针的含义.6 .了解指针的指针即二级指针o实 验 环 境Visual C+6.0window7实 验 内 容6 .编写程序.读入三个浮点数,将整数局部和小数局部分别输出.要求使用指针作形参.7 .编写一个函数,返回数组元素中最大值的地址,并在主函数中输 出该儿素.算法描 述及实 验 步 骤实验6 1、定义函数,指针做形参.2、定义a为整数局部,*p-a既 是小数局部.然后输出.3、主函数中,键入三个浮点型数.并使用 fu函数.实验71、定义dizhi函数,指针做形参.返回地址.2、定义主函数, 以及一
28、个数组.3、调用dizhi函数,输出数组和最大值.调试过程及实验结果6、7、1.5 2.3 6.7亚数球分是1小数局部是0.500皿口 整数不分是2八数局部是.-300000 整数局部是E小数局部是0-700000Ppcsg any key to cont最大数是;9地址是:1244912Press any key to continue.总1.运用指针时应时刻注意指针指向的改变,防止逻辑上的错误,加大 编程时的难度.2.通过指针变量可以提升程序质量,编写程序方便灵文档大全实用标准结活,可以实现多个值的返回附 录实验6#include<stdio.h>void fu(float *
29、p)(int a;a=(int)*p;printf("整数局部是%d 小数局部是%fn",a,*p-a);main()(float a3;int i;for(i=0;i<3;i+)(scanf("%f',&ai);fu(&ai);实验7#include<stdio.h>int dizhi(int *p)(int s;p=&s;printf("地址是:dn",p);return p;main()(int i,s,a10,*p;for(i=0;i<10;i+) ai=rand()%10;pri
30、ntf("%d ",ai);printf("n");s=a0;for(i=0;i<10;i+)if(s<ai+1)s=ai;printf("最人数是;%dn",s);dizhi(&s);文档大全实用标准青岛理工大学课程实验报告课程名称计算机程序设计C班级软件111实验日期2021-5-16姓名赵业乐学号202107209实验成绩实验名称指针实验目的及要求1 .理解指针的定义,学会指针变量的初始化以及指针可以参与的运 算.2 .掌握指针和一维数组的关系.3 .理解指针和二维数组的关系、理解行指针或数组指针的概念.4
31、.理解指针数组和数组指针的区别.5 .理解指针和函数的关系以及指针函数和函数指针的含义.6 .了解指针的指针即二级指针o实 验 环 境Visual C+6.0window7实 验 内 容6 .编写程序.读入三个浮点数,将整数局部和小数局部分别输出.要求使用指针作形参.7 .编写一个函数,返回数组元素中最大值的地址,并在主函数中输 出该儿素.算法描 述及实 验 步 骤实验6 1、定义函数,指针做形参.2、定义a为整数局部,*p-a既 是小数局部.然后输出.3、主函数中,键入三个浮点型数.并使用 fu函数.实验71、定义dizhi函数,指针做形参.返回地址.2、定义主函数, 以及一个数组.3、调用
32、dizhi函数,输出数组和最大值.调试过程及实验结果6、7、1.5 2.3 6.7亚数球分是1小数局部是0.500皿口 整数不分是2八数局部是.-300000 整数局部是E小数局部是0-700000Ppcsg any key to cont最大数是;9地址是:1244912Press any key to continue.总1.运用指针时应时刻注意指针指向的改变,防止逻辑上的错误,加大 编程时的难度.2.通过指针变量可以提升程序质量,编写程序方便灵文档大全实用标准结活,可以实现多个值的返回附 录实验6#include<stdio.h>void fu(float *p)(int a
33、;a=(int)*p;printf("整数局部是%d 小数局部是%fn",a,*p-a); main()(float a3;int i;for(i=0;i<3;i+) (scanf("%f',&ai);fu(&ai);实验7#include<stdio.h>int dizhi(int *p)(int s;p=&s;printf("地址是:dn",p);return p; main()(int i,s,a10,*p;for(i=0;i<10;i+) ai=rand()%10; printf(
34、"%d ",ai);printf("n");s=a0;for(i=0;i<10;i+) if(s<ai+1) s=ai;printf("最人数是;%dn",s);dizhi(&s);文档大全实用标准青岛理工大学课程实验报告课程名称计算机程序设计C班级软件111实验日期2021-5-30姓名赵业乐学号202107209实验成绩实验名称实验七链去实验目的及要求1 .掌握结构体类型变量的定义和使用.2 .掌握结构体类型数组的概念和应用.3 .掌握链表的概念,初步学会对链表进行操作.实 验 环 境VC+6.0实 验 内 容
35、1 .编写程序.有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个学生数据,要求输出 3门课总平均成绩,以及最高分的学生的 数据包括学号、姓名、 3门课的成绩、平均分数.2 .建立一个学生链表,每个结点包括:学号、姓名、性别、年龄.输入一个 年龄,如果链表中的结点所包含的年龄等于此年龄,那么将此结点删去.算第一题定义一个结构体变量,包含学号、姓名、3门课的成绩 定义一个可以输入学生信息的函数.文档大全实用标准法 描 述 及 实 验 步 骤定义一个函数可以求平均分并返回.输出3门课总平均成绩,以及最高分的学生的数据包括学号、姓名、 3门课 的成绩、平均分数.第二题定义一个结构
36、体变量,包括 学号、姓名、性别、年龄和指向下一个节点的 指针.创立链表,输入学生信息.定义一个可以输出学生信息函数.定义一个可以删除节点的函数, 当输入一个年龄时,如果链表中的结点所调 试 过 程 及 实 验 结 果SOT俞人:学号、姓名、分开输入三门分数输入第2个学生信息,W2 hob 7? 54 99所入第3个学生信息:阳3 alice 99 98 97俞入第4个学生信息,00485 65 88输入第5个学生信息:H05 ellor 86 58 6786.60 £7.6067.80文档大全的学生信息如下:户alice 99.00 98.00 97.00 9S_33Press an
37、y keg to continue卷入学生信息用去学号,姓名、性别、年龄输入第1个学生后鱼001 y引dong tn 2时输入第2个学生信息002 xiaahin w 21输入第3个学生信息003 dapengf m 19创立链表.2 -显示链表,"删除相同年龄博-退出操作%人要删除的年龄20犯嚣,戮%示链表.3-删除相同年龄.0-退出操作2 xiaohin w21第2个学生信息:3 dapeng m191-创立链表.2-显示链表.3-删除相同年龄通-退出操作包含的年龄等于此年龄,那么将此结点删去.实用标准熟练地掌握共用体;总在写程序时可以熟练地使用链表进行数据操作.结/第一题代码如
38、下:#include<stdio.h>#define N 5void input(struct student stud);double av1(struct student stud); double av2(struct student stud); double av3(struct student stud); int max(struct student stud);struct studentint no;char name10;double degree1;double degree2;double degree3;void main()struct student
39、studN;double aver3,avg;int a,i;input(stud);aver0=av1(stud);aver1=av2(stud);aver2=av3(stud);a=max(stud);avg=(studa.degree1+studa.degree2+studa.degree3)/3.0;for(i=0;i<3;i+)printf("筑 门平均分:t",i+1);printf("%.2lfn",averi);printf("分数最高的学生信息如下:n");printf("%dt%st%.21f%.2
40、lf %.2lf %.2lfn",studa.no,,studa.degree1,studa.degree2,studa.degree3,avg);void input(struct student stud)/体俞入 N 个学生的信息int i;息输入格式:学号、姓名分开输入三门分数n");文档大全实用标准for(i=0;i<N;i+)(printf("输入第%d个学生信息:n",i+1);scanf(''%d%s%lf%lf%lf',&studi.no,,&stud
41、i.degree1,&stu di.degree2,&studi.degree3);double av1(struct student stud)/计算第一门课的平均分(int i;double a=0.0,b;for(i=0;i<N;i+)a+=studi.degree1;b=a/N;return b;double av2(struct student stud)/计算第二门课的平均分(int i;double a=0.0,b;for(i=0;i<N;i+)a+=studi.degree2;b=a/N;return b;double av3(struct stud
42、ent stud)/计算第三门课的平均分(int i;double a=0.0,b;for(i=0;i<N;i+)a+=studi.degree3;b=a/N;return b;int max(struct student stud)/脩找分数最大的学生下标(double m=0,aN;int i,k=0;for(i=0;i<N;i+)(ai=studi.degree1+studi.degree2+studi.degree3;if(m<ai)(m=ai;k=i;文档大全实用标准return k;)III第二题代码如下:#include<stdio.h>#inclu
43、de<malloc.h>#define N 3typedef struct stud(int no;char name10;char sex10;int age;struct stud *next;Stud;Stud *create();void show(Stud *head);void delet(Stud *head);Stud *getnode(Stud *head,int n);void shan(Stud *head);void main()/主函数(Stud *head;int n;do(printf("1-创立链表,2-显示链表,3-删除相同年龄,0-退出
44、操作n");scanf("%d",&n);switch(n)(case 1:head=create();break;case 2:show(head);break;case 3:delet(head);break;default:break;while(n!=0);Stud *create()/创立链表储存学生信息(Stud *p,*head,*r;int i;head=(Stud *)malloc(sizeof(Stud);r=head;文档大全实用标准printf("输入学生信息格式:学号、姓名、性别、年龄n");for(i=1;i
45、<=N;i+)(p=(Stud *)malloczeof(Stud);printf("输入第%d个学生信息n",i);scanf("%d%s%s%d,&p->no,p->name,p->sex,&p->age);r->next=p;r=p;r->next=NULL;return head;void show(Stud *head)/® 示学生信息(int i=0;Stud *p=head->next;printf("学生信息如下:n");while(p!=NULL)(pr
46、intf("第 个学生信息:nn",i+1);printf("%dt%st%st%dn",p->no,p->name,p->sex,p->age); p=p->next;i+;Stud *getnode(Stud *head,int n)(int i=1;Stud *p=head;if(n<1)return NULL;while(p!=NULL&&i<n)(p=p->next;i+;if(p!=NULL)return p;elsereturn NULL;void delet(Stud *he
47、ad)/W除与输入年龄相同的学生信息(int year,i=1,k=1;Stud *p=head->next,*q;文档大全实用标准printf("输入要删除的年龄n"); scanf("%d",&year);while(p!=NULL)( if(year=p->age)(if(k=1)(head->next=p->next; free(p);p=head; else ( q=getnode(head,k); q->next=p->next; free(p);p=q;else k+; p=p->next;
48、printf("相同年龄已删除n");文档大全实用标准青岛理工大学课程实验报告课程名称计算机程序设计C班级软件111实验日期2021-6-8姓名赵业乐学号202107209实验成绩实验名称实验八综合程序设计实验目的及要求1 .掌握文件以及缓冲文件系统、文件指针的概念.2 .学会使用文件翻开、关闭、读、写等文件操作函数.3 .通过一个综合程序,使学生对综合运用C语言程序设计语言有初步的熟悉.实 验 环 境VC+6.0实 验 内 容一、学生治理系统1、学生根本信息的治理,包括添加、修改、删除、查找、全删等 操作;2、课程数据的治理,包括添加、修改、删除、查找、全删等操作;3、学
49、习成绩数据的治理,包括添加、修改、删除、查找、全删等 操作;4、学生成绩查询系统,包括按学号、按课程号、按班号统计学生 的成绩.算 法 描首先自定义学生信息、课程数据、学生成绩的结构体,定义这些变量 的链表,一边对这些数据进行操作.一、在写主函数时,先把数据从文件中提取到链表中,操作后再写入 文件中进行保存.文档大全实用标准述及实验步骤二、在学生信息治理系统中,添加,即是判断是否存在相同学号,没 有通过链表进行添加操作,有的话进行提示,修改时只改对应学号的信息,学号不需要修改,但需要同时修改成绩治理系统中的对应 学 号的学生姓名,在进行删除操作时,先查找是否有和需要修改的学号 相对应的学生信息
50、,有的话那么根据链表删除操作进行删除,查找时判 断是否有需要查找的学号,假设有,输出对应的学生信息,进行全删操 作时,和链表的释放操作差不多,但是要注意的是不能释放头结点的 地址,它是一个全局变量,释放后不能进行其他操作.调 试 过 程 及 实 验 结 果文档大全在课程数据、学习成绩数据的处理时,采取同样的处理方式; 三、学生成绩查询系统分按学号、按课程号、 按班号三种方式来统计 学生的成绩.实用标准一,方早送理学鼠H可以熟练地进行文件操作,翻开文件,写文件,向文件中添加内容, 以及文件的读取等操作进行编写小型程序.Student 文件#include<stdio.h>#inclu
51、de<stdlib.h>#include<malloc.h>#include<string.h>#include"school.h"void addstudent();void displaystudent();void alterstudent();void changename(int no,char name);void findstudent();void文档大全实用标准void deleallstu();extern StudNode *studenthead;extern ScoreNode *scorehead; void
52、student() ( int x; doprintf("1-添加,2-修改,3-显示,4-查找,5-删除,6-全删,0-返回n"); scanf("%d",&x);switch(x) case 1:addstudent();break;case 2:alterstudent();break;case 3:displaystudent();break;case 4:findstudent();break;case 5:deletstudent();break;case 6:deleallstu();break;case 0:break;defau
53、lt :printf("选择错误 n");break;while(x!=0);void addstudent()/添加一个学生信息 StudNode *p=studenthead->next,*s,*q=studenthead; int no;StudType st;printf("输入添加的学生学号n");scanf("%d",&no);while(p!=NULL && p->data.no!=no) q=p;p=p->next;if(p=NULL)/学号不重复s=(StudNode *)m
54、alloc(sizeof(StudNode);printf("输入学生信息格式:姓名、年龄、班号n");scanf("%s%d%s",,&st.age,st.classno);st.no=no;s->data=st;s->next=q->next; q->next=s; else文档大全实用标准printf("学号重复 n");)void displaystudent() (StudNode *p=studenthead->next;if(p!=NULL)(printf("
55、学生信息如下:n");printf("学号姓名年龄 班号n");while(p!=NULL) (printf("%3d%8s%5d%8sn",p->data.no,p->,p->data.age,p->dat a.classno);p=p->next;)printf("学生信息输出完毕n");) else printf("无学生信息n");)void alterstudent()/修改一个学生的信息,但是学号不改变,同时改变成绩治理文件的姓 名(StudNode *p=studenthead->next;int no;StudType st; if(p!=NULL)(printf("输入要修改白学生学号n");scanf("%d",&no);while(p!=NULL&& p->data.no!=no) p=p->next;if(p!=NULL) (printf("输入修改学生信息,格式:姓名、年龄、班号n");sc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024石材工程项目劳务分包服务合同3篇
- 2025年玻璃幕墙玻璃破碎风险评估与应急预案合同样本3篇
- 2025年度美容仪器销售代理与市场运营支持合同4篇
- 2025年度人工智能研发与应用合作协议3篇
- 家教中家长自我成长的重要性
- 现代家庭教育的五大核心能力
- 2025年度住宅小区物业费专项维修资金使用与管理合同3篇
- 2025年城市特色餐厅与旅行社联合营销合作协议2篇
- 2025年度网络游戏代理合作协议书(联合运营)4篇
- 二零二五年货车共营项目合作协议3篇
- 2024年高考八省联考地理适应性试卷附答案解析
- 足浴技师与店内禁止黄赌毒协议书范文
- 中国高血压防治指南(2024年修订版)要点解读
- 2024-2030年中国光电干扰一体设备行业发展现状与前景预测分析研究报告
- 湖南省岳阳市岳阳楼区2023-2024学年七年级下学期期末数学试题(解析版)
- 农村自建房安全合同协议书
- 杜仲叶药理作用及临床应用研究进展
- 4S店售后服务6S管理新规制度
- 高性能建筑钢材的研发与应用
- 无线广播行业现状分析
- 汉语言沟通发展量表(长表)-词汇及手势(8-16月龄)
评论
0/150
提交评论