c集中上机实验报告
- 格式:doc
- 大小:100.00 KB
- 文档页数:20
上机实验报告篇1用户名se××××学号姓名学院①实验名称:②实验目的:③算法描述(可用文字描述,也可用流程图):④源代码:(.c的文件)⑤用户屏幕(即程序运行时出现在机器上的画面):2.对c文件的要求:程序应具有以下特点:a可读性:有注释。
b交互性:有输入提示。
c结构化程序设计风格:分层缩进、隔行书写。
3.上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。
请注意:过时不候哟!四、实验报告内容0.顺序表的插入。
1.顺序表的删除。
2.带头结点的单链表的\'插入。
3.带头结点的单链表的删除。
注意:1.每个人只需在实验报告中完成上述4个项目中的一个,具体安排为:将自己的序号对4求余,得到的数即为应完成的项目的序号。
例如:序号为85的同学,85%4=1,即在实验报告中应完成顺序表的删除。
2.实验报告中的源代码应是通过编译链接即可运行的。
3.提交到个人空间中的内容应是上机实验中的全部内容。
上机实验报告篇2一、《软件技术基础》上机实验内容1.顺序表的建立、插入、删除。
2.带头结点的单链表的建立(用尾插法)、插入、删除。
二、提交到个人10m硬盘空间的内容及截止时间1.分别建立二个文件夹,取名为顺序表和单链表。
2.在这二个文件夹中,分别存放上述二个实验的相关文件。
每个文件夹中应有三个文件(.c文件、.obj文件和.exe文件)。
3. 截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。
三、实验报告要求及上交时间(用a4纸打印)1.格式:《计算机软件技术基础》上机实验报告用户名se××××学号姓名学院①实验名称:②实验目的:③算法描述(可用文字描述,也可用流程图):④源代码:(.c的文件)⑤用户屏幕(即程序运行时出现在机器上的画面):2.对c文件的要求:程序应具有以下特点:a 可读性:有注释。
b 交互性:有输入提示。
《高级语言程序设计》实验报告实验序号:2 实验项目:数据类型、运算符和表达式09机制2 学号232 姓名叶志伟专业、班级实验地点1-511 指导教师胡亮实验时间 3.15一、实验目的及要求1.掌握C基本数据类型的基本概念、基本属性。
2.学会如何书写一个整型、字符型、实型常量。
3.掌握C算术运算符的基本概念、基本属性、运算规则。
二、实验设备(环境)及要求使用Visual C++ 6.0;windows系列操作系统的环境。
三、实验内容与步骤1.输入下列源程序,进行修改、编译、连接和运行。
程序:main ( ){ char c1,c2;c1=97;c2=98;printf("%c,%c\n",c1,c2);printf("%d,%d\n",c1,c2);}运行结果是:两行结果的不同是由什么引起的:程序定义了输出的类型,第一个输出字符型,另一个输出整型。
2.输入并运行下面的程序:#include<stdio.h>void main(){char c1,c2,c3;c1=getchar();c3=getchar();putchar(c1);putchar(c2);putchar(c3);}观察以下不同输入时的输出,分析不同输出的原因。
(↙表示回车)(1)123↙(2)12↙(3)1↙2↙运行结果是:分析运行结果:getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.3.把以上程序改写如下,用于上面相同的输入运行,分析不同输出的原因。
C语言程序设计上机实验报告学院:机械工程学院班级:机自161213姓名:刘昊学号:20162181310实验时间:2017年3月6号任课老师:张锐C语言程序设计上机实验报告实验一一、实验名称: C程序的运行环境和运行C程序的方法二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C程序三、实验内容:(1). 输入并运行一个简单的C程序。
(2). 设计程序,对给定的两个数求和。
(3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。
四、源程序代码:代码1:运行结果1:程序分析1:该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了1和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for 循环来进行整除过程的简写。
代码2:运行结果2:程序分析2:简单的使用printf()和scanf()函数进行简单的数据运算。
代码3:运行结果3:程序分析3:使用if语句进行判断。
五.实验总结C语言程序设计上机实验报告实验二一、实验名称:顺序结构程序设计二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法,熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。
三、实验内容:(1). 编写程序,实现小写字母转大写。
(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。
(3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。
(4). 编写程序,实现单字符getchar和putchar输入输出。
(5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。
四、源程序代码代码1:运行结果1:程序分析1:所有的字符都有一个对应的数字与之对应,每一个小写字母对应的数与大写字母对应的数之间总是相差32,所以只需要对所输入的字符进行减法运算就可以转换为与之对应的大写字母。
代码2:运行结果2:程序分析2:简单的数据运算和格式字符的输出。
C语言程序设计上机实验报告实验一一、实验名称: C程序的运行环境和运行C程序的方法二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C程序三、实验内容:(1). 输入并运行一个简单的C程序。
(2). 设计程序,对给定的两个数求和。
(3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。
四、源程序代码:代码1:#include<stdio.h>int main(){printf("hello world!\n");return 0;}运行结果1:程序分析1:代码2:#include<stdio.h> int main(){int a=5,b=6,c;c=a+b;printf("c=%d\n",c);return 0;}运行结果2:程序分析2:代码3:#include<stdio.h>int main(){int a=5,b=6,c;if(a>b){c=a;}else{c=b;}printf("%d\n",c);return 0;}运行结果3:程序分析3:五.实验总结C语言程序设计上机实验报告实验二一、实验名称:顺序结构程序设计二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法,熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。
三、实验内容:(1). 编写程序,实现小写字母转大写。
(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。
(3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。
(4). 编写程序,实现单字符getchar和putchar输入输出。
(5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。
四、源程序代码代码1:#include<stdio.h>int main(){char c1,c2;c1=getchar();printf("%c,%d\n",c1,c1);c2=c1-32;printf("%c,%d\n",c2,c2);return 0;}运行结果1:程序分析1:代码2:#include<stdio.h>int main(){int a=5,c1,c2;double b=3.141592653,c3,c4;c1=a/b;c3=a/b;c2=a+b;c4=a+b;printf("%d,%d,%lf,%lf\n",c1,c2,c3,c4);return 0;}运行结果2:程序分析2:代码3:#include<stdio.h>int main(){here: printf("计算三角形的面积请输入‘1’,立方体的体积和表面积请输入‘2’,圆的面积和周长请输入‘3’.\n");int a;scanf("%d",&a);if(a==1){double l,h,s;printf("请输入三角形的底边长和所在底边的高.");scanf("%lf%lf",&l,&h);s=l*h/2;printf("三角形的面积为%.16f\n",s);}else if(a==2){printf("请输入立方体的长宽高.");double b,c,d,v,s;scanf("%lf%lf%lf",&b,&c,&d);v=b*c*d;s=b*c+b*d+c*d;printf("立方体的体积为%.16f,表面积为%.16f\n",v,s);}else{double r,s,c,m;printf("请输入圆的半径");scanf("%lf",&r);m=3.141592653;s=m*r*r;c=2*m*r;printf("圆的面积为%.16f,圆的周长为%.16f\n",s,c);}goto here;}运行结果3:程序分析3:代码4:#include<stdio.h> int main(){getchar();putchar('b');return 0;}运行结果4:程序分析4:代码5:#include<stdio.h>int main(){int a;printf("请输入任意十进制整数:");scanf("%d",&a);printf("转换为八进制数为:%o\n转化为十六进制数为:%x\n",a,a); return 0;}运行结果5:程序分析5:五、实验总结C语言程序设计上机实验报告实验三一、实验名称:选择结构程序设计二、实验目的:正确使用逻辑运算符和逻辑表达式,熟练掌握if 语句和switch 语句,学习调试程序。
成都信息工程学院计算机系
课
程
实
验
报
告
(说明:实验报告必须包含下面的每项内容,根据实验情况认真填写,封面必须打印或复印(A4纸),书写上机实验报告内容的纸张也用A4纸,最后从侧面装订)
一【上机实验目的】
(上机实验目的见老师给的上机实验计划表)
二【实验环境】
PC机每人1台
三【上机实验内容】
(此次上机实验老师布置的具体任务)
四【上机调试程序流程图】(注:可打印)
(可用盒图表示,也可用流程图的形式表示)
五【上机调试中出现的错误信息、错误原因及解决办法】
(记录下你调试程序中出现的错误信息的英文提示,分析出错原因及可能的解决办法)
六【上机调试后的源程序及还存在的问题】(注:源程序可打印)(如你的程序没有问题可不写,但可记录下你对你编写此程序的其它具体想法,)
七【上机实验中的其他它问题及心得】
(在上机实验中遇到的你不能解决的其它问题,如非C语言程序调试的问题等,简单描述一下你此次上机的收获及感想)。
实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程。
2.熟悉编译环境。
3.初步熟悉C语言程序的语法规定。
4.了解简单函数的使用方法。
实验内容:1.编程且上机运行:求3个整数的和。
2.编程且上机运行:求2个数的和、差、积和商。
3.编程且上机运行:输入3个数,求最大值。
4.编程且上机运行:输入圆的半径,求圆的面积和周长。
5.在屏幕上输出:“hello world!”实验结果:实验二(第3章实验)1.实验目的:理解C语言的类型系统。
实验内容:写程序测试数据-2在类型char,int,unsigned int,long int,unsigned long int 中存储情况。
实验过程:实验结果:参见各种类型的存储实现描述。
2.实验目的:了解混合类型计算中类型的转换规则。
实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。
注意unsigned int和int数据运算时类型转换的方向。
实验过程:/** 类型转换问题* 试问下面两个表达式等价吗?*/#include <stdio.h>#include <stdlib.h>int main() {unsigned int ui,uj;ui = 1;uj = 2;if (ui < uj)printf("\n%u < %u is true !\n", ui, uj);elseprintf("\n%u < %u is false !\n", ui, uj);if (ui - uj < 0)printf("\n%u - %u <0 is true !\n", ui, uj);elseprintf("\n%u - %u <0 is false !\n", ui, uj);system("pause");return 0;}实验结果:参见类型转换规则。
2.第一次实验C语言程序设计实验报告专业运算机科学与技术班级信安1302班日期成绩实验组别第 1 次实验表达式和标准输入与输出实验指导教师周时阳学生姓名学号同组人姓名实验名称表达式和标准输入与输出实验实验目的1.熟练把握各类运算符的运算功能,操作数的类型,运算结果的类型及运算进程中的类型转换,重点是C语言特有的运算符,例如位运算符,问号运算符,逗号运算符等;熟记运算符的优先级和结合性。
2.把握getchar, putchar, scanf和printf等函数的用法。
3.把握简单的C程序(顺序结构程序)的编写方式。
4.完成教师布置的习题及课程设计上的题目。
实验内容(一)输出“王”字源程序如下:#include <>int main(){puts("*************");puts(" * ");puts(" * ");puts("*************");puts(" * ");puts(" * ");puts("*************");return 0;}实验步骤:步骤一:计算输出进程中应操纵的空格数,选择星号作为输出的标记。
步骤二:采纳puts函数实现对字符串的输出。
调试及编译进程:实验中显现的不足及修改:无。
调试:实现对王字的输出。
(二)编程将华氏温度转换为摄氏温度源程序如下:#include <>int main(){double x,y;printf("请输入华氏温度:");scanf("%lf",&x);y=(5*(x-32))/9;printf("%.2lf(F)=%.2lf(C)",x,y);return 0;}编辑步骤:步骤一:概念两个浮点型变量,别离用来寄放华氏温度和摄氏温度步骤二:用输入函数输入一个华氏温度值并存入命名为x的单元中。
最新上机实验报告二实验目的:1. 熟悉计算机上机操作环境,掌握基本的软件使用技巧。
2. 学习并实践编程基础,增强逻辑思维和问题解决能力。
3. 通过实验加深对理论知识的理解,提高实验操作技能。
实验内容:1. 环境搭建:安装并配置必要的编程软件,如IDE、版本控制系统等。
2. 基础编程:完成一系列编程练习,包括数据类型、控制结构、循环、函数等。
3. 算法实现:编写程序解决具体问题,如排序算法、查找算法等。
4. 调试与优化:学习调试技巧,优化代码性能,提高程序运行效率。
5. 版本控制:学习使用版本控制系统,如Git,进行代码管理和协作开发。
实验步骤:1. 在指导老师的帮助下,完成实验环境的搭建和配置。
2. 按照实验指导书的要求,逐步完成基础编程练习。
3. 分析并选择合适的算法解决给定问题,编写代码实现。
4. 利用调试工具进行代码调试,修正发现的错误和不足。
5. 学习并实践版本控制的基本概念和操作,进行代码的提交、更新和合并。
实验结果:1. 成功搭建了实验所需的软件环境,并熟悉了各个工具的基本操作。
2. 完成了所有基础编程练习,并通过测试,代码逻辑清晰,运行无误。
3. 实现了排序和查找算法,并通过案例验证了算法的正确性和效率。
4. 通过调试,优化了代码结构和性能,提升了程序的运行速度。
5. 掌握了版本控制的基本概念,能够进行基本的代码管理和协作。
实验总结:通过本次上机实验,我不仅巩固了编程基础知识,还提高了解决实际问题的能力。
在实验过程中,我学会了如何有效地使用调试工具和版本控制系统,这些技能对于未来的编程学习和软件开发都具有重要意义。
同时,我也认识到了编写可读性强、可维护性高的代码的重要性。
在未来的学习中,我将继续提高我的编程技能,并更加注重代码质量。
C网页设计集中上机报告学生:学号:班级:专业:目录集中上机总结 (20)(正文内容)#include "stdio.h"#include "stdlib.h"#include "ctype.h"#include "malloc.h"#include "string.h"#include "conio.h"#include "mem.h"#define N 4typedef struct stuNode{char no[9];char name [15];char sex [2];int age;int score[N];float sum;float average;int order;struct stuNode *next;}STUDENT;STUDENT *init();STUDENT *create();STUDENT *delete_student(STUDENT *h); void inputs(char *prompt,char *s, int count); void print(STUDENT *h);void search(STUDENT *h);void save(STUDENT *h);STUDENT *load();void computer(STUDENT *h); STUDENT *insert(STUDENT *h);void copy();void append();STUDENT *sort(STUDENT *h);int menu_select();int submenu();void grade();void class0(STUDENT *h);void class6(STUDENT *h);void class7(STUDENT *h);void class8(STUDENT *h);void class9(STUDENT *h);void main(){int i;STUDENT *head;head = init();clrscr();printf (\n\n);printf ("\t****************\n");printf ("\t* WELCOME TO MY STUDENTS' SCORE SYSTEM \n");printf (\t*********************************************\n);for (; ;){switch(menu_select()){case 0:head=init();break;case 1:head=create();break;case 2:head=delete-student(head);break;case 3:append();break;case 4:head=insert(head);break;case 5:print(head);break;case 6:search(head);break;case 7:save(head);break;case 8:head=load();break;case 9:copy();break;case 10:computer(head);break;case 11:head=sort(head);break;case 12:grade();break;case 13:exit(0);}}}int menu_select(){char *menu[]={"**************MENU************","0. Init list","1.Add records to list","2.Delete a record from list","3.Append a record to list","4.Insert a record to list","5.Print list","6.Search record on name","7.Save the file","8.Load the file","9.Backup the file","10.Average of each score","11.Sort and order","12.Classification the score","13.Quit"};char s[3];int c, i;gotoxy(1,25);printf("press any key to continue...\n");getch ();clrscr();gotoxy(1,1);textcolor(YELLOW);textbackground(BLUE);gotoxy(19,2);putch(0xc9);for(i=1;i<40;i++)putch(0xcd);putch(0xbb);for(i=3;i<20;i++){gotoxy(19,i);putch(0xba);gotoxy(63,i);putch(0xba);}gotoxy(19,20);putch(0xc8);for(i=1;i<44;i++)putch(0xcd);putch(0xbc);window(20,3,62,19);clrscr();for(i=0;i<15;i++){gotoxy(10,i+1);cprintf("%s",menu[i]);}textbackground(BLACK);window(1,1,80,25);gotoxy(10,21);do{printf("\n\t\t Enter your choice(0~13) to continue...");scanf("%s",s);c=atoi(s);}while(c<0||c>13);return c;}STUDENT *init(){return NULL;}STUDENT *create(){int i;int s;STUDENT *h=NULL,*info;clrscr();while(1){info=(STUDENT *)malloc(sizeof(STUDENT));if (!info){printf("\t out of memory");return NULL;}inputs("\n\nEnter the NO.as 20032300. \n [Type * to End Enter]:",info->no,9);if(info->no[0]= = '*')break;inputs("Enter name:",info->name,15);inputs("Enter the sex M(ale) or F(emale):",info->sex,2);do{printf("Enter the age of the student:");scanf("%d",&info->age);if(info->age>30||info->age<0)printf("\tAGE ERROR!!TYPE AGAIN!\n");}while(info->age<0||info->age>30);printf("\n\nplease input %d scores\n",N);printf("The oder is:\n");printf("scorel......FOREIGN LANGUAGE\NSCORE2.....HIGH LEVEL MATHS\n");printf("score3.........c LANGUAGE\nscore4.........PHILOSOPHY\n");s=0;for(i=0;i<N;i++){do{printf("score %d:".i+1);scanf("%d",&info->score[i]);if(info->score[i]>100||info->score[i]<0)printf("\n DA TA ERROR!!TYPE AGAIN!\n");}while(info->score[i]>100||info->score[i]<0);s=s+info->score[i];info->sum=s;info->average=(float)s/N;info->order=0;info->next=h;h=info;}return(h);}void inputs(char *prompt, char *s, int count){char p[255];do{printf(prompt);scanf("%s",p);if(strlen(p)>count)printf("\n too long!\n");}while(strlen(p)>count);strcpy(s,p);}void print(STUDENT *h){STUDENT *p;int i=1;clrscr();p=h;printf("\n*******************SYUDENT**********************************\n");printf("|rec| No | name |sex|age|sc1|sc2|sc3|sc4| sum | ave |order|\n");printf("|---|----------|-----------|---|---|---|---|---|---|-------|------|-----|\n");while(p!=NULL){printf("|%-3d|%-10s|%-15s|%1s|%3d|%3d|%3d|%3d|%3d|%4.2f|%4.2f|%3d|\n",i,p->no,p->na me,p->sex,P->age,p->score[0]),p->score[1],p->score[2],p->score[3],p->sum,p->average,p->order) ;p=p->next;i++;}printf("*********************************************end********************* **************************************\n");}STUDENT *delete_student(STUDENT *h){student *p,*q;char s[9];clrscr();printf("please deleted no\n");scanf("&s",s);p=q=h;while(strcmp(p->no,s)&&p!=NULL){q=p;p=p->next;}if(p==NULL)printf("\nList No. %sstudent\n",s);else{printf("\n\n\n*************STUDENT****************************************** ******\n");printf("|rec| No | name |sex|age|sc1|sc2|sc3|sc4| sum | ave |order|\n");printf("|---|----------|-----------|---|---|---|---|---|---|-------|------|-----|\n");printf("|%-3d|%-10s|%-15s|%1s|%3d|%3d|%3d|%3d|%3d|%4.2f|%4.2f|%3d|\n",i,p->no,p->name,p ->sex,P->age,p->score[0]),p->score[1],p->score[2],p->score[3],p->sum,p->average,p->order);printf("*********************************************end************************* **********************************\n");getcher();if(p==h)h=p->next;elseq->next=p->next;free(p);printf("\n*****Have deleted No %s student*****\n",s);printf("\n*****Have deleted No %s student*****\n",s);printf("*********Don`tforget to save!*********\n");}return(h);}void search(STUDENT *h){STUDENT *p;char s[15];int len;clrscr();printf("\nPlease enter name for searching\n");scanf("%s",s);p=h;while(p!=NULL){while(strcmp(p->name,s)&&p!=NULL)p=p->next;if(p==NULL)printf("\nlist no %s student\n",s);else{printf("| No | name |sex|age|sc1|sc2|sc3|sc4| sum | ave |order|\n");printf("|----------|-----------|---|---|---|---|---|---|-------|------|-----|\n");printf("|%-10s|%-15s|%1s|%3d|%3d|%3d|%3d|%3d|%4.2f|%4.2f|%3d|\n",i,p->no,p->name,p->sex,P->age,p->score[0]),p->score[1],p->score[2],p->score[3],p->sum,p->average,p->order);p=p->next;}}getchar();}STUDENT *insert(STUDENT *h){STUDENT *p,*q,*info;char s[9];int s1,i;printf("\n\nplease enter location befor the No.\n");scanf("%s",s);printf("\nplease new record\n");info=(STUDENT *)malloc(sizeof(STUDENT));if(!info){printf("\nOut of memory");return NULL;}inputs("Enter the No.\n[As 20032300]:",info->no,9);inputs("Enter the name:",info->name,15);inputs("Enter the sex M(ale) or f(emale):"info->sex,2);do{printf("Enter the age of the student:");scanf("%d",&info->age);if(info->age>30||info->ahe<0)printf("\t AGE ERROR!!TYPE AGAIN!\N");}while(info->age<0||info->age<30);printf("\n\nplease input %dscores\n",N);printf("The order is:\n");printf("score1......FOREIGN LANGUAGE\nscore2......HIGH LEVEL MATHS\n"); printf("score3.............C LANGUAGE\nscore4............PHILOSOPHY\n");si=0;for(i=0;i<N;i++){do{printf("score%d:"i+1);scanf("%d",&info->score[i]);if(info->score[i]>100||info->score[i]<0);printf("%t Error data!!repeat input!\n");}while(info->score[i]>100||info->score[i]<0);s1=s2+info->score[i];}info->sum=s1;info->average=(float)s1/N;info->order=0;info->next=NULL;p=h;q=h;while(strcmp(p->no,s)&&p!=NULL){q=p;p=p->next;}if(p=NULL){if(p==h)h=hinfo;elseq->next=info;}else{if(p==h){info->next=p;h=info;}else{info->next=p;q->next=info;}}printf("\n****Have inserted %s student****\n",info->name); printf("***Don't forget to save***\n");return(h);}void save (STUDENT *h){FILE *fp;STUDENT *p;char outfile[10];printf("%s",outfile);if((fp=fopen(outfile,"wb"))==NULL){printf("can not open file\n");exit(1);}printf("\nSaving file......\n");p=h;while(p!=NULL){fwrite(p,sizeof(STUDENT),1,fp);p=p->next;}fclose(fp);printf("**********Saved successful!!**********\n");}STUDENT *load(){STUDENT *p,*q,*h=NULL;FILE *fp;char infile[10];printf("Enter infile name,for example c:\\filename.txt:\n"); scanf("%s",infile);if((fp=fopen(infile,"rb"))==NULL){printf("can not open file\n");exit(1);}printf("\n**********Loading file!**********\n");p=(STUDENT *)malloc(sizeof(STUDENT));if(!p){printf("Out of memory!\n");return h;}h=p;while(!feof(fp)){if(1!=fread(p,sizeof(STUDENT),1,fp))break;p->next=(STUDENT *)malloc(sizeof(STUDENT));if(!p->next){printf("Out of memory!\n");retur h;}q=p;p=p->next;}q->next=NULL;fclose(fp);printf("*****You have read data from file!!!*****\n"); return h;}void copy(){char outfile[10],infile[10];FILE *sfp,*tfp;STUDENT *p=NULL;clrscr();printf("Enter infile name,for example c:\\filename1.txt:\n"); scanf("%s",infile);if((sfp=fopen(infile,"rb"))==NULL){printf("Can not open output file\n");exit(0);}printf("Enter infile name,for example c:\\filename2.txt:\n"); scanf("%s",outfile);if((tfp=fopen(outfile,"wb"))==NULL){printf("Can not open output file\n");exit(0);}while(!feof(sfp)){ifif(1!=fread(p,sizeof(STUDENT),1,sfp))break;fwrite(p,sizeof(STUDENT,1,tfp));}fclose(sfp);fclose(tfp);printf("**********You have backup file!!**********\n"); }STUDENT *sort(STUDENT *h){int i=0;STUDENT *p,*q,*t,*h1;h1=h->next;while(h1!=NULL){t=h1;h1=h1->next;p=h;q=h;while(t->average<p->average&&!p=NULL){q=p;p=->next;}if(p==q){t->next=p;h=t;}else{t->next=p;q->next=t:}}p=h;while(p!=NULL){i++p->order=i;p=p->next;}printf("**********Sort success!!!**********\n"); return h;}void computer(STUDENT *h){STUDENT *p;int i=o;long s1=0;long s2=0;long s3=0;long s4=0;long sa11=0;float ave1=0;float ave2=0;float ave3=0;float ave4=0;float aa11=0;p=h;while(p!NULL){s1+=p->score[0];s2+=p->score[1];s3+=p->score[2];s4+=p->score[3];sa11+=p->sum;i++;p=p->next;}ave1=(float)s1/i;ave2=(float)s2/i;ave3=(float)s3/i;ave4=(float)s4/i;aa11=(float)sa11/i;clrscr();printf("\n\n\n****A11 students' sum score is ****\n\n\n\n\n");printf("| type | sc1 | sc2 | sc3 | sc4 | a11 |\n");printf("|------|---------|---------|---------|---------|---------|"\n);printf("| summ | %-7d | %-7d | %-7d | %-7d | %-9d |",s1,s2,s3,s4,sa11);printf("|------|---------|---------|---------|---------|---------|"\n);printf("| aver | %3.2f | %3.2f | %3.2f | %3.2f | %5.2f|\n",ave1,ave2,ave3,ave4,aa11);}void class9(STUDENT *h){STUDENT *p;int i;p=h;clrscr();while(p!=NULL){for(i=0;i<N;i++){if(p->score[i]>=90){printf("|--------|--------------|--------|--------|\n");printf("|%8s|%14s| sc%1d | %d |\n",p->no,p->name,i+1,p->score[i]);}}p=p->next;}}void class8(STUDENT *h){STUDENT *p;int i;p=h;clrscr();while(p!=NULL){for(i=0;i<N;i++){if(p->score[i]<90&&p->score[i]>=80){printf("|--------|--------------|--------|--------|\n");printf("|%8s|%14s| sc%1d | %d |\n",p->no,p->name,i+1,p->score[i]);}}p=p->next;}}void class7(STUDENT *h){STUDENT *p;int i;p=h;clrscr();while(p!=NULL){for(i=0;i<N;i++){if(p->score[i]>=70&&p->score[i]<80){printf("|--------|--------------|--------|--------|\n");printf("|%8s|%14s| sc%1d | %d |\n",p->no,p->name,i+1,p->score[i]);}}p=p->next;}}void class6(STUDENT *h){STUDENT *p;int i;p=h;clrscr();while(p!=NULL){for(i=0;i<N;i++){if(p->score[i]>=60&&p->score[i]<70){printf("|--------|--------------|--------|--------|\n");printf("|%8s|%14s| sc%1d | %d |\n",p->no,p->name,i+1,p->score[i]);}}p=p->next;}}void class0(STUDENT *h){STUDENT *p;int i;p=h;clrscr();while(p!=NULL){for(i=0;i<N;i++){if(p->score[i]<60){printf("|--------|--------------|--------|--------|\n");printf("|%8s|%14s| sc%1d | %d |\n",p->no,p->name,i+1,p->score[i]);}}p=p->next;}}void grade(){STUDENT *head;clrscr();for(;;){switch(submenu()){case 1:class9(head);break;case 2:class8(head);break;case 3:class7(head);break;case 4:class6(head);break;case 5:class0(head);break;case 6:main();break;}}}void submenu(){char*menu[]={"************SUBMENU************","1. ....90=< Record <=100....","2. ....80=< Record <90....","3. ....70=< Record <80....","4. ....60=< Record <70....","5. ....00=< Record <60....","6. Return to main menu..."};char s[3];int c,i;gotoxy(1,25);printf("Press any key to continue...\n");getch();clrscr();gotoxy(19,2);putch(0xc9);for(i=1;i<44;i++)putch(0xcd);putch(0xbb);for(i=3;i<20;i++){gotoxy(19,i);putch(0xba);gotoxy(63,i);putch(0xba);}gotoxy(19,20);putch(0xc8);for(i=1;i<44;i++)putch(0xcd);putch(0xbc);window(20,3,62,19);clrscr();for(i=0;i<7;i++){gotoxy(10,i+1);cprintf("%s",menu[i]);}textbackground(BLACK);window(1,1,80,25);gotoxy(10,21);do{printf("\n\t\t Enter your choice(1~6) to continue...");scanf("%s",s);c=atoi(s);}while(c<0||c>7);return c;}void append(){FILE *fpSTUDENT *info;int s1,i;char infile[10];printf("\nplease new record\n");info=(STUDENT *)malloc(sizeof(STUDENT));if(!info){printf("\nout of memory");return;}inputs("Enter the No.\n[As 20032300]:",info->no,9);inputs("Enter the name:",info->name,15);inputs("Enter the sex M(ale) or F(emale):",info->sex,2);do{printf("Enter the age of the student:");scanf("%d",&info->age<0);if(info->age>30||info->age<0)printf("\n AGE ERROR!!TYPE AGAIN!\n");}while(info->age<0||info->age>30);printf("\n\nplease input %d scores\n",N);printf("The order is:\n");printf("score1......FOREIHN LANGUAGE\nscore2......HIGH LEVEL MATHS\n");printf("score3............C LANGUAGE\nscore4............PHILOSOPHY\n");s1=0;for(i=1;i<N;i++){do{printf("score%d:",i+1);scanf("%d",&info->score[i]);if(info->score[i]>100||info->score[i]<0)printf("bad data,repeat input\n");}while(info->score[i]>100||info->score[i]<0);s1=s1+info->score[i];}info->sum=s1;info->average=(float)s1/N;info->order=0;info->next=NULL;printf("Enter infile name,for example c:\\filename.txt:\n");scanf("%s",infile);if((fp=fopen(infile,"ab"))==NULL){printf("Can not open file\n");exit(1);}printf("\n ****Appending record...*****\n");if(1!=fwrite(info,sizeof(STUDENT),1,fp)){printf("******File write error!******\n");return;}printf("*****Append sucessful!!*****\n");fclose(fp);}集中上机总结经过一周的集中上机,使我对C语言有了更近一步的认识,学好C语言我们必须注重实践。