版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高级语言程序设计(C语言)实验指导书软件工程201603程序设计(C语言)实验指导书目 录使用说明 1实验一 C语言程序初步 2实验二 选择结构 7实验三 循环结构 9实验四 数组、函数 12实验五 指 针 14实验六 链表 18实验七 文件 19实验八 *综合应用举例(一) 20附录一: Turbo C 程序设计上机指导 27Turbo C 程序设计初步 27Turbo C 常用的编辑命令 30Turbo C 程序的调试 31Turbo C编译、连接和运行时的常见错误 33附录二:C语言程序设计调试技术 36C语言程序设计调试技术(一) 运行错误的判断与调试 36C语言程序设计调试技术(二)
2、基本调试手段 36C语言调试技术(三) -Turbo C 集成环境的调试功能 37C语言调试技术(四)-图形程序运行的条件 38附录三: C语言课程教学大纲 40一、本课程的地位与任务 40二、本课程的基本要求与基本内容 40三、本课程的教学要求: 41四、学时分配 42五、教材和参考书 42使用说明本实验指导书为软件工程专业高级程序程序设计语言(C语言)课程的专业使用。综合实验课学生可以自行选择。软件工程专业2015-03-31 实验一 C语言程序初步一、目的和要求 1、熟悉C 语言编程环境Visual C +,掌握运行一个C 程序设计的基本步骤,包括编辑、编译、连接和运行;2、了解数据类型
3、;3、掌握语言程序的书写格式和语言程序的结构;4、了解程序调试的思想,能找出并改正C 程序中的语法错误。二、实验内容实验一、编写以下程序,在屏幕上显示一个短句“This is a C program.”。#include stdafx.hvoid main( )printf(This is a C program .n);实验二、下面的程序试图计算由键盘输入的任意两个整数的平均值:#include stdafx.hmain()int x,y,a;scanf(%x,%y,&x,&y);a=(x+y)/2;printf(The average is : a);本实验给出下面几组测试用例,你认为哪几
4、组较好?为什么?(1)0,0(2)20,50(3)33000,200(4)-5,2(5)-32800,33000实验三、下面的程序试运行的结果为什么:#include stdafx.hvoid main(int argc, char* argv)char a=127,b;b=a+1;printf(n b=%dn,b);实验四、编写一个语言程序,测试下列各表达式i , ji + 1,j + 1i + + ,j + + + i, + + ji + + + + + j+ + i + + + + + j + +要求在各表达式中i 和j都分别有相同的初值。在实验中注意下列问题:(1) 哪些表达式是错误的
5、?为什么?(2) 理解,i,i的意义和优先级别。请调试上述程序。实验五、输入并编辑下面的程序#include stdafx.hmain()int a,b;float c,d;long e,f;unsigned int u,v;char c1,c2;scanf(%d,%d,a,b);scanf(%f,%f,c,d);scanf(%ld,%ld,e,f);scanf(%o,%o,u,v);scanf(%c,%c,c1,c2);printf(n);printf(a=%7d,b=%7dn,&a,&b);printf(c=%10.2f,d=%10.2fn,&c,&d);printfe=17ld,f=%1
6、7ldn,&e,&f);printf(u=%o,d=%on,&u,&v);printf(c1=%c,d=%cn,&c1,&c2);(1)这个程序有语法错误吗?为什么? (2)调试上述程序无语法错误后,用下面的测试数据,对程序进行测试:a=123,b=456,c=17.6,d=71837.65,e=70000,f=2174506,u=62000,v=58765,c1=a,c2=b分析运行结果。特别注意输入c1,c2的值是什么?什么原因?如何修改?三、实验步骤(一)编写并调试第一个C 语言程序1、启动VC+ 执行“开始”“程序”“Microsoft Visual Studio 6.0” “Micr
7、osoft VisualC+ 6.0”,进入VC+编程环境(如下图)。2、新建文件 执行“File (文件)” “New (新建)”,单击“Files (文件)”选项卡,然后选中“C+Sourse Files”,在“File name (文件名)”栏中输入“File.c” ,在“Location (位置)”栏中选择已经建立的文件夹(例如c:vc60,一般默认),单击“确定”按钮,这样将文件夹下新建源程序文件File.c,开始进入编辑窗口。提示:C 源程序的扩展名请命名为.c,不要命名为.cpp,否则本精简版无法编译。3、编辑程序和保存在中间的编辑窗口中输入源程序,然后执行“File (文件)”
8、 “Save (保存)”,保存源程序文件。(也可以点工具栏上的保存按钮).4、编译执行“Build (组建)” “Compile ” (编译)或按Ctrl+F7 快捷键,在产生工作区对话框中选择“Y”,开始编译,并在信息窗口显示编译信息。注:编译也可以通过按工具栏上的按钮实现,如图所示。注:信息窗口中出现的“File.obj - 0 error(s), 0 warning(s)”,表示编译正确,没有发现(语法)错误和警告,并生成了目标文件File.obj。 说明:如果显示有错误error(s),指程序中存在致命的错误,必须要改正;如果显示有警告warning(s),虽然不影响生成目标文件,但通
9、常也应该改正。5、连接 执行“Build (组建)” “Build (组建)”或按F7 快捷键,开始连接,并在信息窗口显示连接信息。信息窗口中出现的“File.exe - 0 error(s), 0 warning(s)”表示连接成功,产生了可执行文件File.exe。 注:连接也可以通过按工具栏上的按钮实现,如图所示。6、运行执行“Build (组建)” “Execute (执行)”或按Ctrl+F5 快捷键,运行窗口显示结果“This is a C program .”,按任意键退出DOS 窗口,返回到VC+编辑窗口。注:运行也可以通过按工具栏上的按钮实现,如图所示。7、关闭工作空间 执行
10、“File (文件)” “Close Workspace(关闭工作空间)”,在出现的对话框中选择“Y(是)”,关闭工作空间和打开的C 源程序文件。 说明:“关闭工作空间”是用VC 调试完一个C 程序必须要进行的操作!如果不关闭工作空间,直接新建第二个程序,则两个文件属于同一工程,都有main 函数,在连接时会出现以下错误;(二)编写并调试第二个C 程序 在上一题已经关闭工作空间的基础上,重新执行第27 步,即:新建文件,输入程序,保存,编译,连接,运行,关闭工作空间。 笨一点的办法:每次调试完一个程序后,关闭整个VC,再重新启动VC 调试新的程序。(三)打开已有文件进行修改 如果要再次打开已经
11、编写好的C 源文件进行修改,可以执行“File (文件)” “Open (打开)”或者工具栏打开按钮,在文件夹D:vc60 下选择文件ex1.c,再选择打开,进入编辑窗口,每次修改、保存后,必须重新编译,连接,运行。(四)举例:调试程序 事例:在屏幕上显示一个短句“This is a C program”。源程序(有错误的程序)# include void mian( ) printf(This is a C progamen)运行结果(改正后程序的运行结果)This is a C program(1)按照上述内容的中介绍的步骤,打开源程序File.c。(2)编译,执行“Build(组件)”“
12、Compile(编译)”,信息窗口中显示编译出错信息(如图1.1所示)。(3)找出错误,在信息窗口中双击第一条出错信息,编辑窗口就会出现一个箭头指向程序出错的位置(如图1.1所示),一般在箭头的当前行或上一行,可以找到出错语句。图1.1中箭头指向第4行,出错信息指出This is a progame 是一个未定义的变量,但This is a progame并不是变量,出错的原因是This is a progame前少了一个双引号。图1.1 编译产生的错误信息(4)改正错误,根据错误的提示找到有问题的位置进行修改,直到程序正确为止。*四、分析与讨论、记下在调试过程中所发现的错误、系统给出的出错信
13、息和对策。分析讨论对策成功或失败的原因。2、总结程序的结构和书写规则。 3、 如何正确地选用数据类型?(提示:给合前面做过的两个实验及书本进行讨论总结)4、分析总结运算符的优先级。5、总结在printf函数中可以使用的各转义字符及其功能。实验二 选择结构一、实验目的1、了解条件与程序流程的关系2、了解用不同的数据使程序的流程覆盖不同的语句、分支和路径。二、实验内容和要求实验一、 选择结构1、题目有如下程序段:if (a1&b= =0) x=x/a;if(a=2|x1) x=x+1;为了更容易明白程序的逻辑结构,我们用图5.1所示流程图来加以描述。a1&b= =0x=x/aa= =2|x1x=x
14、+1 y n y n 要求增加一些输入语句和输出语句,以便使上述程序能在不同的a,b和x值下运行,并且能观察程序流程经过(覆盖)了哪些语句、哪些分支及哪些路径。2、实验步骤 如何选择a,b和x使得: (1)可以使程序段中的每个分支都运行一次? (2)可以把判定框中的每个条件运算都进行一次? (3)可以把各种条件的组合都检测一遍?实验二、程序的功能?#include stdafx.hvoid main(int argc, char* argv) char ch; int dch; printf(请输入一个字符:n); scanf(%c,&ch); printf(输入的字符是:%cn,ch); i
15、f(ch=0&ch=9) dch=ch-0; printf(%c对应的整数是:%dn,ch,dch); else printf(%c不是数字字符n,ch); 实验三、三角形从键盘上输入三个数,让它们代表三条线段的长度,请写一个判断这三条线段所组成的三角形属于什么类型(不等边,等腰,等边或不构成三角形)的C程序。实验四、同构数输入一个正整数,判断是否是同构数? 同构数:正整数n若是它平方数的尾部,则称n为同构数。 例如:5的平方数是25,且5出现在25的右侧,那么5就是一个同构数。 25的平方数是625,且25出现在625的右侧,那么25就是一个同构数。实验五、水仙花数输入一个正整数,判断是否是
16、水仙花数? 水仙花数:是指一个 n 位数 ( n3 ),它的每个位上的数字的 n 次幂之和等于它本身。 例如:13 + 53+ 33 = 153实验六 、输入参数a,b,c,求一元二次方程ax2+bx+c=0的根。(选作)源程序(有错误的程序)#include#includevoid main() double a,b,c,d; printf(“输入一元二次方程 a=,b=,c=n”); scanf(“a=%lf,b=%lf,c=%lf”,&a,&b,&c); d=b*b-4*a*c; if(a=0) if(b=0) if(c=0) printf( “0=0参数对方程无意义!”); else
17、printf( “c!=0方程不成立”); else printf(“x=%0.2fn”,-c/b); else if(d=0) printf(“x1=%0.2fn”,(-b+sqrt(d)/(2*a); printf(“x1=%0.2fn”,(-b-sqrt(d)/(2*a); else printf(“x1=%0.2f+%0.2fin”,-b/(2*a),sqrt(-d)/(2*a); printf(“x1=%0.2f-%0.2fin”,-b/(2*a),sqrt(-d)/(2*a); 运行结果(改正后程序的运行结果)输入一元二次方程 a= ,b= ,c=a=2.1, b=8.9, c=3
18、.5x1=-7.22x2=-10.58运行结果(有错误的程序的运行结果)输入一元二次方程 a= ,b= ,c=a=2.1, b=8.9, c=3.5x1=-7.22x2=-10.58实验三 循环结构一、目的和要求1、掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。2、了解条件型循环结构的基本测试方法。3、 掌握如何正确地控制计数型循环结构的次数4、 了解对计数型循环结构进行测试的基本方法5、 了解在嵌套循环结构中,提高程序效率的方法二、实验内容与要求实验一、下面是一个计算e的近似值(使误差小于给定的)的程序。main()double e=1.0,x=1.0,y,
19、deta;int i=0;scanf(“%lf”,&deta);y=2;while(y=deta)i+;x=x*i;y=1/x;e=e+y;printf(“%12.10lf”,e);(1)、阅读上面的程序,写出程序所依据的计算公式。1+1+1/2+1/(1*2*3)+1/(1*2*3*n)(2)、当输入的deta各是什么值时,能分别使程序按下面的要求运行:.不进入循环;(当deta大于1时).只循环一次;.只循环两次;.进入死循环(程序将永远循环下去)。为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?(3)、若把原程序中的+i换成i+,观察程序的运行发生了什么变化?实验二、最小公
20、倍数和最大公约数输入2个正整数m,n,输出它们的最小公倍数和最大公约数。源程序(有错误的程序)#includevoid main() int m,n,j,k; printf(“input m nn”); while(scanf(“%d%d”,&m,&n),m0 & n0); j=m; while(j/n!0) j=j+m; k=(m*n)/j; printf(“最小公倍数是%dn最大公约数是%dn”,j,k);#includeint main(void) int m,n,j,k; do printf(input m:); scanf(%d,&m); printf(input n:); scan
21、f(%d,&n); while(m0|n0); j=m; while(j%n!=0) /这里应该是取余运算,不是除法。为0表示,j刚好被n整除 j=j+m; /每次加m保证j被m整除 k=(m*n)/j; printf(最小公倍数是%dn最大公约数是%dn,j,k); return 0;实验三、素数(质数)求1-100之间的素数?质数又称素数:是一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。实验四、猴子吃桃问题#include #include int f(int n) int i; /素数标准:只能被自己和1整除
22、的数字 for(i=2;i=sqrt(n);i+) /能被其他数整除,就不是素数 if(n%i=0) return 0; return 1;int main() int i,k=0; printf(1至100之间的素数从小到大分别为:n); for(i=2;i=100;i+) /依次判断所有数字是否为素数 if(f(i) k+; printf(%dt,i); printf(n总共%d个。n,k ); return 0; 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第10天早上想再吃的时
23、候,见只剩下一个桃子了。求第1天共摘了多少桃子?实验五、编程(选作) 找出200以内的所有完数,并输出其因子(因子就是所有可以整除这个数的数,不包括这个数自身)。一个数如恰好等于它的因子之和,这个数称为完数,如61+2+3,其中1、2、3为因子,6为因子和。输入输出示例:1161+2+3281+2+4+7+14三、分析讨论1、如何测试计数型循环结构的控制表达式中的错误?2、从实验中你得到了哪些提高嵌套循环程序效率的启示?实验四 数组、函数一、 目的与要求1、掌握C语言函数定义及调用的规则。2、理解参数传递的过程。3、掌握数组定义的规则。4、掌握C语言数组的基本用法。二、 实验内容与要求实验一、
24、编程输入n个整数,按绝对值从小到大排序后输出。例:输入:-11 2 8 5 -3 -16 9 7 6 10 输出:2 -3 5 6 7 8 9 10 -11 -16实验二、 编写并调试一个求n!(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。实验三、运行下面的C程序,根据运行结果,可以说明什么?main( ) int num5=1,2,3,4,5; inti i; for(i=0;i=5;i+) printf(“%d”,numi); 实验四、操作符&的实用现在设计一个程序,返回一个3 * 5 的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存诸的。实
25、验五、为一个起泡排序程序设计测试用例,并测试之。实验六、程序调试(选作)输入一个正整数n(0n=0)和一组(n个)有序整数,再输入一个整数x,把x插入到这组数据中,使该组数据仍然有序。源程序(有错误的程序)#includeVoid main() int i,j,n,x,an; printf(“输入数据的个数n:”); scanf(“%d”,&n); printf(“输入%d个整数:”,n); for(i=0;in;i+) Scanf(“%d”,&ai); printf(“输入要插入的整数:”); scanf(“%d”,&x); for(i=0;iai) continue; J=n-1; whi
26、le(j=i) /*调试时设置断点*/ aj=aj+1; j+; /*调试时设置断点*/ ai=x; break;If(i=n) an=x;For(i=0;in+1;i+) Printf(“%d”,ai);Putchar(n);运行结果(改正后程序的运行结果)输入数据的个数n:5输入5个整数:1 2 4 5 7 输入要插入的整数:31 2 3 4 5 7 提示:先找到插入点(插入的位置),从插入点开始,所有的数据顺序后移,然后插入数据;如果插入点在最后,则直接插入(说明插入的数排在该组数据中的最后)。用前面学过的调试方法,调试本程序,使得程序能够得到正确的运行结果。三、 分析讨论1、 针对以上
27、实验内容写出相应的参数传递过程并分析结果。2、 讨论参数的传递的几种形式。3、 通过实验,分析定义与引用数组的区别。实验五 指 针 一、目的和要求1. 熟悉指针的正确用法。2了解指针参数的特殊性。3掌握函数、指针、数组的用法。二、实验内容和要求实验一、编程 输入一个以回车结束的字符串(少于80个字符),输入其中的小写英文字母,并统计出字符的个数。输入输出示例:thow hare young!how are you!n=12实验二、程序的功能#include stdio.hchar *strcpy(char *,char *);void main(void) char a20,b60=there
28、 is a boat on the lake.; printf(%sn,strcpy(a,b);char *strcpy(char *s,char *t) while(*s+=*t+) ; return (s);实验三、调式程序 下列程序能够,当输入c是输出COMPUTER,使如其他字符输出computer?main()char *S=”COMPUTER”;char c;printf(“which style you want to n”);printf(“capital (c) or uncapital(u);”);c=getchar();if(c=c) put(s);else s=”com
29、puter”;puts(s); 实验四、利用指针完成2个变量值的交换?swap(int *p1,int *p2) int *p;p=p1;p1=p2;p2=p;main()int a,b;scanf(“%d,%d”,&a,&b);pt1=&a;pt2=&b;if(ab)swap(pt1.pt2);printf(“%d,%dn”,*pt1,*pt2);上机调试此程序。如果不能实现题目要求,指出原因,并修改之。 实验五、利用指针完成对二维数组的输出?实验六、 调式程序。注意其中的复杂声明语句;int (*function4)();和各标记符的含义,并记录执行结果。main()int fun1();
30、int fun2();int fun3();int fun4();int (*function4)();int a=10,b=5,i;function0=fun1;function1=fun2;function2=fun3;function3=fun4;for(i=0;i%dn”,i+1,execute(a,b,functioni);execute(int x,int y,int *fun()return(*fun)(x,y);fun1(int x, int y)return(x+y);fun2(int x,int y)return(x-y);fun3(int x,int y)return(x
31、*y);fun4(int x,int y)return(x/y);实验七、编程(选作) 设有N位整数和M位小数(N=20,M=10)的数据a,b。编程计算a+b并输出结果。如:12345678912345678912.1234567891 + 98765432109876543210.0123456789实验八、程序(了解) main(int argc,char *argv)while(argc-1)printf(“%sn”,*+argv);的文件名为echo.h,编译后可执行程序名为echo.exe(用DOS时),运行时输入下面命令行:echo BASIC FORTRAN COBOL PAS
32、CL分析输出结果。实验九、(了解)从1984年起,在每年举行的USENIX大会上,都有一项AWARD FOR BEST ONE LINER奖获奖的情况程序都是极精巧的C语言程序,但有些精巧得过分,使人难以懂。如果你有兴致,请先读一下下面的C 程序,它是1987年获奖者ONLINE COMP0UTER SYSTEM公司的SEINCER HINES 写的,被公认为是历史上风格最差的C 语言程序,程序清单如下:#includechar *malloc();main(otgo.toog)int togo;char *toog;char *ogto;tgoop80;FILE*ogot;int oogt=
33、0;ootg,otog=79,ottg=1;if(tog0=ottg)goto gogo;goto goog;ggot;if(fgets(tgoo,otog,ogot) goto gtgo;goto gott;gtot:exit();ogtg;+oogt;goto ogoo;togg:if(oogt0)goto oggt;goto ggot;if(!ogot)goto gogo;goto ggto;gtto:printf(“%dgotosn”,oogt);goto gtot;oggt:if(!memcmp(ogto,”goto”,4)goto otgg;goto gooo;gogo:exit(
34、ogtt);gtto:ootg=strlen(tgoo);goto gtog;oogo:-oogt;goto togg;gootogto;goto oogo;gott:fclose(ogot);got gtto;otgg:ogto=ogto+3;goto ogtg;tgog:ootg-=4;goto togg;gtgo:ogto=tgoo;got o tggo;ogoo:ootg-=3;goto gooo;goog:ogot =fopen(toogottg,”r”);goto ogog;ggto;ggto:ogto=tgoo;goto ggto:如果你上机还有时间,请运行一下上面的程序,看你能
35、否运行出结果,并分析出程序的功能。三、分析讨论1、指针的使用方法和特点。2、数组与指针的联系。实验六 链表一、目的和要求1、掌握结构体类型方法以及结构体变量的定义和引用。2、掌握指向结构体变量的指针变量的应用,特别是链表的应用。3、掌握运算符”.”和”-”的应用。4、共用体的概念和应用。5、链表的操作二、实验内容和要求实验一、编程 编写一个程序使用动态链表实现下面的功能:A)建立一个链表用于存储学生的学号、姓名和三门课程的成绩和平均成绩B)输入学号后输出该学生的学号、姓名和三门课程的成绩C)输入学号后删除该学生的数据D)插入学生的数据 E)输出平均成绩在80分及以上的记录实验二、实现两个链表的
36、合并 问题描述: 1、建立两个链表A和B,链表元素个数分别为m和n个。 2、假设元素分别为(x1,x2,xm),和(y1,y2, yn)。把它们合并成一个线形表C,使得: 1、当m=n时,C=x1,y1,x2,y2,xn,yn,xm 2、当nm时,C=y1,x1,y2,x2,ym,xm,yn 输出线性表C。 三、分析讨论1、结构体数据类型的特点。2、链表的操作的基本方法。实验七 文件一、目的和要求1、掌握文件指针的概念。2、掌握文件打开、关闭、读、写等文件操作函数。3、用缓冲文件系统对文件进行简单的操作定义和引用。二、实验内容和要求实验一、从键盘输入一行英文句子,将每个单词的首字母换成大写字母
37、,然后输出到一个磁盘文件“test.txt”文本文件中保存。 在DOS模式下,利用文件type打开test.txt(格式:type test.txt)实验二、调试程序编程从键盘输入一行英文句子,将每个单词的首字母换成大写字母,然后输出到一个磁盘文件“test.txt”二进制文件中保存。 在DOS模式下,利用文件type打开test.txt(格式:type test.txt)实验三、编程 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件stud中。程序源代码:#include stdafx.hst
38、ruct student char num6;char name8;int score3;float avr; stu5;void main()int i,j,sum;FILE *fp;for(i=0;i5;i+) printf(n please input No. %d score:n,i); printf(stuNo:); scanf(%s,stui.num); printf(name:); scanf(%s,); sum=0;for(j=0;j3;j+) printf(score %d.,j+1); scanf(%d,&stui.scorej); sum+=stui.s
39、corej;stui.avr=sum/3.0;fp=fopen(stud,w);for(i=0;i5;i+)if(fwrite(&stui,sizeof(struct student),1,fp)!=1)printf(file write errorn);fclose(fp);实验四、编程(选作、项目较大,可参考实验八) 设计一个通信录管理程序,程序应有以下9个选项: 录入每个联系人的基本信息(至少应有姓名、单位、电话、邮件地址); 从磁盘文件中读取记录到内存; 保存记录到磁盘文件; 修改记录; 插入一条记录; 删除一条记录; 显示所有的记录; 按姓名对记录升序排序 退出三、分析讨论1、文件种
40、类。2、文件的读写方式。实验八 *综合应用一、目的和要求1、掌握用C语言进行简单的数据库管理。2、了解C程序菜单设计的一般方法。3、理解链表的概念及应用。二、实验内容和步骤建立一个链表,每个结点包括学号、姓名、及三科成绩、平均成绩。除平均成绩外,各项均由键盘输入。要求: (A).计算平均成绩。 (B).要实现插入功能。 (C).要有排序功能。(D).要有存取功能。参考程序:#include struct SStudent unsigned number; char name11; int score1, score2, score3; struct SStudent * link;struct
41、 SStudent * CreateTable();void AppendToTable(struct SStudent * stu);void InsertToTable(struct SStudent * stu);void QueryTable(struct SStudent * stu, unsigned age);void SortTable(struct SStudent * stu);void PrintTable(struct SStudent * stu);void Save(struct SStudent * stu);void Load(struct SStudent *
42、 stu);void Help();void main() struct SStudent * student; unsigned number; char keyValue; student = CreateTable(); clrscr(); Help(); printf(n= ); while(keyValue = getche() != q & keyValue != Q & keyValue != 27) puts(); switch(keyValue) case l: case L:PrintTable(student); break; case d: case D:printf(
43、Please input the number you want delete: );scanf(%d, &number);QueryTable(student, number);break; case a: case A:AppendToTable(student); break; case i: case I:InsertToTable(student); break; case s: case S:SortTable(student);puts(Sort complished! Please use command L to list.); break; case v: case V:S
44、ave(student); break; case o: case O:Load(student); break; case c: case C:clrscr(); break; case h: case H:Help(); break; default: puts(Error command!); printf(n= ); struct SStudent * CreateTable() struct SStudent * stu; stu = (struct SStudent *) malloc(sizeof(struct SStudent); stu-number = 0; stu-sco
45、re1 = stu-score2 = stu-score3 = 0; stu-name0 = 0; stu-link = NULL; return(stu);void AppendToTable(struct SStudent * stu) struct SStudent * next, * last; int number; last = stu; while(last-link) last = last-link; printf(Please input the number (0 to quit): ); scanf(%d, &number); while(number) next = (struct SStudent *) malloc(sizeof(struct SStu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海上运输安全操作规程与指南
- 业务合作伙伴信赖支持承诺书3篇
- 2026年养老院适老化改造整体规划与实施方案
- 2026年医院搬迁精密医疗设备拆装与运输技术方案
- 2021-2022学年浙江省宁波市余姚市高风中学七年级(上)期中数学试卷-带答案详解
- 2023-2024学年人教版小学数学五年级下册《期末试卷》试题(含答案)一
- 国外佣金代理协议书版本
- 养殖业合作协议书
- 更换牌匾施工方案(3篇)
- 工会阅读活动策划方案(3篇)
- DRG付费下医院肾内科运营策略
- T-CECA 20011-2021 含铁含锰地下水接触氧化法给水处理技术规程
- 商铺销售协议书模板
- 2026年安阳职业技术学院单招职业适应性测试必刷测试卷及答案解析(名师系列)
- 中国古代识人方法
- 中烟机械技术中心笔试试题2025
- 基于儿童心理健康发展的智能产品设计
- GB/T 6730.11-2025铁矿石铝含量的测定EDTA滴定法
- 医院污水处理知识培训课件
- 2025届四川省绵阳市高三下学期第一次诊断考-生物试题(含答案)
- 光伏组件清洗安全培训课件
评论
0/150
提交评论