欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 心得体会 > c系统实训心得体会

c系统实训心得体会

时间:2014-07-18 19:49

C语言实训心得

源程序:#include stdio.h \\\/*I\\\/O函数*\\\/#include stdlib.h \\\/*其它说明*\\\/#include string.h \\\/*字符串函数*\\\/#include conio.h \\\/*屏幕操作函数*\\\/#include mem.h \\\/*内存操作函数*\\\/#include ctype.h \\\/*字符操作函数*\\\/#include alloc.h \\\/*动态地址分配函数*\\\/#include dos.h#define N 4 \\\/*定义常数*\\\/typedef struct z1 \\\/*定义数据结构*\\\/{ char no[12]; char name[20]; int score[N]; float sum; float average; int order; struct z1 *next;}STUDENT;\\\/*以下是函数原型*\\\/STUDENT *init(); \\\/*初始化函数*\\\/STUDENT *create(); \\\/*创建链表*\\\/STUDENT *delete(STUDENT *h); \\\/*删除记录*\\\/void print(STUDENT *h); \\\/* 显示所有记录*\\\/void lookup(STUDENT *h); \\\/*查找*\\\/void save(STUDENT *h); \\\/*保存*\\\/STUDENT *load(); \\\/*读入记录*\\\/void computer(STUDENT *h); \\\/*计算总分和均分*\\\/STUDENT *Modify(STUDENT *h); \\\/*修改记录*\\\/void append(); \\\/*追加记录*\\\/STUDENT *sort(STUDENT *h); \\\/*按总分排序*\\\/STUDENT *index(STUDENT *h); \\\/*按学号排序*\\\/int menu_select(); \\\/*菜单函数*\\\/\\\/******主函数开始*******\\\/main(){ int i; STUDENT *head; \\\/*链表定义头指针*\\\/ printf(\\\ \\\ \\\ \\\ \\\ \\\ \\\ \\\ \\\ ); printf( * * ******* * ***** ***** * * ******* \\\ ); printf( * * * * * * * ** * * * \\\ ); printf( * * * * ******* * * * * * *** * ******* \\\ ); printf( * * * * * * * * * * * * * \\\ ); printf( * * ******* ******* ***** * *** * * * ******* \\\ ); printf(\\\ ); printf(\\\ ); printf(\\\ ); sleep(2); head=init(); \\\/*初始化链表*\\\/ clrscr(); \\\/*清屏*\\\/ for(;;) \\\/*无限循环*\\\/ { switch(menu_select()) \\\/*调用主菜单函数,返回值整数作开关语句的条件*\\\/ { \\\/*值不同,执行的函数不同,break 不能省略*\\\/ case 0:head=init();break; \\\/*执行初始化*\\\/ case 1:head=create();break; \\\/*创建链表*\\\/ case 2:print(head);break; \\\/*显示全部记录*\\\/ case 3:head=delete(head);break; \\\/*删除记录*\\\/ case 4:lookup(head);break; \\\/*按名字查找记录*\\\/ case 5:save(head);break; \\\/*保存文件*\\\/ case 6:head=load(); break; \\\/*读文件*\\\/ case 7:computer(head);break; \\\/*计算总分和均分*\\\/ case 8:head=Modify(head); break; \\\/*修改记录,一般会插在表尾*\\\/ case 9:head=sort(head);break; \\\/*按部分排序*\\\/ case 10:append();break; \\\/*追加记录*\\\/ case 11:head=index(head);break; \\\/*按学号排序*\\\/ case 12: exit(0); \\\/*如菜单返回值为14程序结束*\\\/ } }}\\\/*菜单函数,返回值为整数*\\\/menu_select(){ char *menu[]={***************MENU***************, \\\/*定义菜单字符串数组*\\\/ 00. init list, \\\/*初始化*\\\/ 01. Enter list, \\\/*输入记录*\\\/ 02. print list , \\\/*显示单链表中所有记录*\\\/ 03. Delete a record from list, \\\/*从表中删除记录*\\\/ 04. Search record on name, \\\/*按照姓名查找记录*\\\/ 05. Save the file, \\\/*将单链表中记录保存到文件中*\\\/ 06. Load the file, \\\/*从文件中读入记录*\\\/ 07. compute the score, \\\/*计算所有学生的总分和均分*\\\/ 08. Modify an information , \\\/*修改某学号的信息*\\\/ 09. sort to make new file, \\\/*排序*\\\/ 10. append record to file, \\\/*追加记录到文件中*\\\/ 11. index on nomber, \\\/*按学号排序*\\\/ 12. Quit}; \\\/*退出*\\\/ char s[3]; \\\/*以字符形式保存选择号*\\\/ int c,i; \\\/*定义整形变量*\\\/ gotoxy(1,1); \\\/*移动光标*\\\/ textcolor(YELLOW); \\\/*设置文本显示颜色为黄色*\\\/ textbackground(BLUE); \\\/*设置背景颜色为蓝色*\\\/ gotoxy(10,2); \\\/*移动光标*\\\/ putch(0xc9); \\\/*输出左上角边框┏*\\\/ for(i=1;i<44;i++) putch(0xcd); \\\/*输出上边框水平线*\\\/ putch(0xbb); \\\/*输出右上角边框 ┓*\\\/ for(i=3;i<20;i++) { gotoxy(10,i);putch(0xba); \\\/*输出左垂直线*\\\/ gotoxy(54,i);putch(0xba); } \\\/*输出右垂直线*\\\/ gotoxy(10,20);putch(0xc8); \\\/*输出左上角边框┗*\\\/ for(i=1;i<44;i++) putch(0xcd); \\\/*输出下边框水平线*\\\/ putch(0xbc); \\\/*输出右下角边框┛*\\\/ window(11,3,53,19); \\\/* 制作显示菜单的窗口,大小根据菜单条数设计*\\\/ clrscr(); \\\/*清屏*\\\/ for(i=0;i<16;i++) \\\/*输出主菜单数组*\\\/ { gotoxy(10,i+1); cprintf(%s,menu[i]); } textbackground(BLACK); \\\/*设置背景颜色为黑色*\\\/ window(1,1,80,25); \\\/*恢复原窗口大小*\\\/ gotoxy(10,21); \\\/*移动光标*\\\/ do{printf(\\\ make by wenwei);

printf(\\\ Enter you choice(0~13):); \\\/*在菜单窗口外显示提示信息*\\\/

scanf(%s,s); \\\/*输入选择项*\\\/

c=atoi(s); \\\/*将输入的字符串转化为整形数*\\\/

}while(c<0||c>14); \\\/*选择项不在0~14之间重输*\\\/ return c; \\\/*返回选择项,主程序根据该数调用相应的函数*\\\/}STUDENT *init(){ clrscr(); return NULL;}\\\/*创建链表*\\\/STUDENT *create(){ int i; int s; STUDENT *h=NULL,*info; \\\/* STUDENT指向结构体的指针*\\\/ clrscr(); for(;;) { info=(STUDENT *)malloc(sizeof(STUDENT)); \\\/*申请空间*\\\/ if(!info) \\\/*如果指针info为空*\\\/ { printf(\\\ out of memory); \\\/*输出内存溢出*\\\/ return NULL; \\\/*返回空指针*\\\/ } inputs(enter no:,info->no,11); \\\/*输入学号并校验*\\\/ if(info->no[0]=='@') { clrscr();break; } \\\/*如果学号首字符为@则结束输入,清屏后返回*\\\/ inputs(enter name:,info->name,15); \\\/*输入姓名,并进行校验*\\\/ printf(please input %d score \\\ ,N); \\\/*提示开始输入成绩*\\\/ s=0; \\\/*计算每个学生的总分,初值为0*\\\/ for(i=0;iscore[i]); \\\/*输入成绩*\\\/ if(info->score[i]>100||info->score[i]<0) \\\/*确保成绩在0~100之间*\\\/ printf(bad data,repeat input\\\ ); \\\/*出错提示信息*\\\/ }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; \\\/*未排序前此值为0*\\\/ info->next=h; \\\/*将头结点做为新输入结点的后继结点*\\\/ h=info; \\\/*新输入结点为新的头结点*\\\/ clrscr(); } return(h); \\\/*返回头指针*\\\/}\\\/*输入字符串,并进行长度验证*\\\/inputs(char *prompt, char *s, int count){ char p[255]; do{ printf(prompt); \\\/*显示提示信息*\\\/ scanf(%s,p); \\\/*输入字符串*\\\/ if(strlen(p)>count)printf(\\\ too long! \\\ ); \\\/*进行长度校验,超过count值重输入*\\\/ }while(strlen(p)>count); strcpy(s,p); \\\/*将输入的字符串拷贝到字符串s中*\\\/}\\\/*输出链表中结点信息*\\\/void print(STUDENT *h){ int i=0; \\\/* 统计记录条数*\\\/ STUDENT *p; \\\/*移动指针*\\\/ clrscr(); \\\/*清屏*\\\/ p=h; \\\/*初值为头指针*\\\/ printf(\\\ \\\ \\\ *********************************STUDENT************************************\\\ ); printf(|rec|nO | name | sc1| sc2| sc3| sc4| sum | ave |order|\\\ ); printf(|---|----------|---------------|----|----|----|----|--------|--------|-----|\\\ ); while(p!=NULL) \\\/*只要p不是尾结点,就输出记录*\\\/ { i++; printf(|%3d|%-10s|%-15s|%4d|%4d|%4d|%4d| %6.2f | %6.2f | %3d |\\\ , i, p->no,p->name,p->score[0],p->score[1],p->score[2],p->score[3],p->sum,p->average,p->order); p=p->next; } printf(***********************************end**************************************\\\ ); getch(); \\\/*输入任一键返回主菜单*\\\/ clrscr(); \\\/*清屏*\\\/}\\\/*删除记录*\\\/STUDENT *delete(STUDENT *h){ STUDENT *p,*q; \\\/*p为查找到要删除的结点指针,q为其前驱指针*\\\/ char s[12]; \\\/*存放学号*\\\/ char *pass=wenwei28;char a[20],b=NULL;int i=0;clrscr();printf(Input your password:);while((i<20)&&(b!='\\\\r')){ b=getch(); \\\/*无回显输入*\\\/ if(b==8) { if(i>0) {a[--i]=NULL;

putchar(8); \\\/*退格键*\\\/

putchar(' '); \\\/*以空格代替*\\\/

putchar(8);

} else putchar(7); \\\/*没有任何字符的退格,响铃警告*\\\/ } else if(b!='\\\\r') { a[i++]=b; \\\/*只要不是退格和回车就接受*\\\/ putchar('*'); } else {a[i]=NULL; break; \\\/*密码输入完了,记得加个NULL到后面*\\\/

}} if(strcmp(a,pass)!=0){clrscr();

printf(Password is mistake Tow seconds to return!);

sleep(2);clrscr();return h;

} else {printf(Password is OK! Welcome to come!); sleep(3);

} clrscr(); \\\/*清屏*\\\/ printf(please deleted no\\\ ); \\\/*显示提示信息*\\\/ scanf(%s,s); \\\/*输入要删除记录的学号*\\\/ q=p=h; \\\/*给q和p赋初值头指针*\\\/ while(strcmp(p->no,s)&&p!=NULL) \\\/*当记录的学号不是要找的,或指针不为空时*\\\/ { q=p; \\\/*将p指针值赋给q作为p的前驱指针*\\\/ p=p->next; \\\/*将p指针指向下一条记录*\\\/ } if(p==NULL) \\\/*如果p为空,说明链表中没有该结点*\\\/ { printf(\\\ list no %s student\\\ ,s);sleep(2);clrscr();return h;} else \\\/*p不为空,显示找到的记录信息*\\\/ { printf(*********************************have found********************************\\\ ); printf(|no | name | sc1| sc2| sc3| sc4| sum | ave |order|\\\ ); printf(|------------|---------------|----|----|----|----|--------|--------|-----|\\\ ); printf(|%-12s|%-15s|%4d|%4d|%4d|%4d| %6.2f | %6-5.2f | %3d |\\\ , p->no, p->name,p->score[0],p->score[1],p->score[ q=p; \\\/*保存当前结点的指针,作为下一结点的前驱*\\\/ p=p->next; \\\/*指针后移,新读入数据链到当前表尾*\\\/ } q->next=NULL; \\\/*最后一个结点的后继指针为空*\\\/ fclose(fp); \\\/*关闭文件*\\\/ printf(---You have success read data from file!!!---\\\ ); getch(); \\\/*按任意键返回主菜单*\\\/ clrscr(); return h; \\\/*返回头指针*\\\/}\\\/*成绩统计*\\\/void computer(STUDENT *h){ STUDENT *p,*t,*q; \\\/*定义移动指针*\\\/ float saverage[N]={0}; \\\/*均分初值为0*\\\/ int i; clrscr(); for (i=0;iscore[i]; \\\/*累加总分*\\\/ j++; \\\/*统计记录条数*\\\/ p=p->next; \\\/*指针后移*\\\/ h; \\\/*返回头指针 就知道这么多了,我不太懂咯~~~~心得就不来写了,自己写哈

~

~

c语言实训心得3000字

C语言实践心会在这个星期里,在专业老师的带领下进行c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

个人认为课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c语言这个工具解决实际问题,又必须掌握它。

通过多次上机练习,对于语法知识有了感性的认识,加深对它的理

C语言学生成绩管理系统实训报告

这好歹是个实训啊。

你跟着老师同学一起做,不懂问他们,实在不能解决来网上问。

直接那报告目录出来算什么啊

求一个c语言实训报告~~急急急

这些问题包括源程序都能在百度上找到答案而画流程图可以直接在网上下载一个流程图转换器就OK啦

谁有C语言模拟ATM系统的实训报告

急需

你只需要按那个模版就行,那些内容就改成你的作业 班级: 学号: 姓名:实验9 指针 一、实验目的(1)掌握指针概念,并定义与使用它。

(2)使用数组的指针和指向数组的指针变量。

(3)使用字符串的指针和指向字符串的指针变量。

二、实验内容1. 将一个3*3的矩阵转置,用函数实现。

2. 有n个人围成一圈,顺序排号。

从第一个人开始报数(1~3),凡报到3的人退出,问第几号的人能留下。

三、实验环境 硬件:(1)学生用微机 (2)多媒体实验教室 软件:(1)Windows XP 中文操作系统 (2)VC++ 6.0 四、实验结果程序1:#includevoid main(){ void move(int *pointer); int a[3][3],*p,i; printf(input marix:\\\ ); for(i=0;i<3;i++) scanf(%d %d %d,&a[i][0],&a[i][1],&a[i][2]); p=&a[0][0]; move(p); printf(matrix:\\\ ); for(i=0;i<3;i++) printf(%d %d %d\\\ ,a[i][0],a[i][1],a[i][2]);}void move(int *pointer){ int i,j,t; for(i=0;i<3;i++) for(j=i;j<3;j++) { t=*(pointer+3*i+j); *(pointer+3*i+j)=*(pointer+3*j+i); *(pointer+3*j+i)=t; }}程序2:#includevoid main(){ int i,k,m,n,num[50],*p; printf(input num of person:); scanf(%d,&n); p=num; for(i=0;i

学生学籍信息管理系统C语言的报告总结

30rmb帮写 私信

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片