c语言课程设计小结C语言心得体会

c语言课程设计小结  时间:2021-07-12  阅读:()

学生成绩记录薄 c语言 课程设计报告

C语言程序设计报告 课题名称:学生成绩管理 1 系统概述: 本程序为一个学生成绩管理系统,对学生的成绩进行管理,学生的信息包括学号,姓名,学期,三门课程的成绩,输入这些信息,本程序可以自动计算总成绩,可以按高分到低分进行排名,并对输入信息的人数进行汇总. 2 数据结构设计: (1)结构体; (2)数组的设计:运用指针代替数组,使用指针来建立线性表,使程序更加简洁,可读性更强. 3 各函数的设计: 函数原型:void InitList(SqLinkList &L); 功能: 创建一个空的线性链表; 入口参数:L为要创建的线性链表; 出口参数:创建链表的L.head为空,L.length为0; 返回值: 无; 函数原型:void EmptyLinkList(SqLinkList &L); 功能: 清空整个线性链表; 入口参数:L为要清空的链表名称; 出口参数:若清空成功则链表长度L.length为0; 返回值: 无; 函数原型:int ScanE(ElemType &e); 功能: 输入学生信息; 入口参数:e为要输入信息的学生名称; 出口参数:e.num保存学号,e.name保存姓名,e.team保存所在学期,e.s1,e.s2,e.s3分别保存三门课程的成绩; 返回值: 输入合法返回1,否则返回0; 错误处理:若学号、姓名等输入不合法会有提示及重输; 函数原型:Status SqLinkListAppend(SqLinkList &L,ElemType e); 功能: 追加一个结点到线性链表中; 入口参数:e为所追加的结点名称,L为e所追加到的线性链表的名称; 出口参数:若追加成功,则e为头结点,链表长度L.length增1; 返回值: 若追加成功返回1; 函数原型:Link SearchNode(SqLinkList L,int NUM); 功能: 查找学号为NUM的学生; 入口参数:查找的链表名称L,学号NUM; 出口参数:若找到结点指针p指向该结点,否则指向空结点; 返回值: 结点指针p; 函数原型:void SearchTeam(SqLinkList L,int team); 功能: 查找学期为team的所有记录并输出其信息; 入口参数:查找的链表名称L,要查找的学期team; 出口参数:无; 返回值: 无; 函数原型:void SearchUnpass(SqLinkList L,float s1,float s2,float s3); 功能: 查找所有有挂科记录的学生并输出其信息; 入口参数:查找的链表名称L,要查找的各门学科成绩s1,s2,s3; 出口参数:无; 返回值: 无; 函数原型:void SqLinkListSearch(SqLinkList L); 功能: 对链表进行分类查找; 入口参数:要查找的链表名称L; 出口参数:无; 返回值: 无; 函数原型: void inputData(SqLinkList &L); 功能: 输入数据,并追加一个结点; 入口参数: L为要追加结点的链表名称; 出口参数: 无; 返回值: 无; 函数原型:void SqLinkListTraverse(SqLinkList L); 功能: 输出链表中所有学生成绩列表; 入口参数:L为要输出信息的链表名称; 出口参数:无; 返回值: 无; 函数原型:void PrintE(ElemType e); 功能: 输出一个结点的所有信息; 入口参数:要输出的结点名称e; 出口参数:无; 返回值: 无; 4 使用程序的说明: 本程序为一个学生成绩管理系统。

对学生的成绩信息进行管理,学生的信息包括学号、姓名、学期、三门课程的成绩、平均成绩、名次。

本管理系统实现学生的学号、姓名、学期、每门课程的成绩的录入,并自动按平均分排名,使用时按屏幕上的提示,输入使用代码.如下图所示: 例如:输入代码数字”1”,程序执行”输入学生成绩或已存在的学生成绩进行修改”这条小程序.输入学生个人信息后,如下图所示: 如此分别输入相应的程序代码,就执行相应的程序段. 如下的程序是按学号进行成绩排名: 当输入”6”时,执行相应的程序,即汇总一共输入学生的人数: 5 总结和体会: 通过对C语言学习,尤其是这学期本班开展C语言双语教学,体会到学习难的同时,也真正了解到C语言作为一门高级的计算机语言的强大功能,特别是在当今实际生活,生产,办公,信息管理等方面的强大作用. 这次合作我们遇到了许多的困难。

时间的紧迫,知识的不足,给我很大的压力。

最终我还是还是完成了任务。

团结就是力量是我这次最真切的感受。

6 程序代码: void InitList(SqLinkList &L) { // 构造一个空的线性表L; L.head = 0; //头指针为空; L.length = 0; //长度初始为0; } void EmptyLinkList(SqLinkList &L){ //入口参数为整个线性表的数据,功能为清空线性表; Node *p; if(!L.head)printf("系统中不存在记录。

"); //头指针为空时没有学生录入; else { while (L.head){ //每个循环将下一结点赋值给头指针,并释放本结点空间,直至线性表清空; p=L.head; L.head=p->next; free(p); } //end while; L.length=0; //长度为0; printf("该管理系统学生信息已清空。

"); }//end else; } int ScanE(ElemType &e){ //输入一个学生的成绩数据结点。

返回0为无效结点数据,1为有效结点数据; printf(" 学号:"); scanf("%d",&e.num); if(e.num==0){ //学号为0输入不合法,重新输入; printf("学号输入不合法. "); return 0; } printf(" 姓名:"); scanf("%s",&e.name); printf(" 学期:"); scanf("%d",&e.team); while(e.team>12){ //系统只记录小于12的学期数; printf("输入的学期不能大于12,请重新输入:"); scanf("%d",&e.team); } printf(" 成绩A:"); scanf("%f",&e.s1); printf(" 成绩B:"); scanf("%f",&e.s2); printf(" 成绩C:"); scanf("%f",&e.s3); return OK; } Status SqLinkListAppend(SqLinkList &L,ElemType e){ //追加一个结点到线性表中; Node *p; p=SearchNode(L,e.num); //查找学号为e.num的记录并将其地址赋给指针p; if (p==0){ //若不存在添加学号相同的结点,追加一个结点; p=(Node *)malloc(sizeof(Node)); if (!p) return ERROR; memcpy(&(p->data),&e,sizeof(ElemType)); p->next=L.head ; L.head=p; //追加的一个结点为首结点; L.length++; //表长度加1; } else { //如果该学号记录已存在,则进行修改操作; memcpy(&(p->data),&e,sizeof(ElemType)); printf("该学生记录已经存在,已完成修改操作。

"); } return OK; } Link SearchNode(SqLinkList L,int NUM){ //查找学生记录,该学生的学号为NUM; Node *p; p=L.head; //p先指在头结点; while (p&& p->data.num !=NUM ) p=p->next; //如果该学生的学号不为NUM则查找下一个结点; return p; } void SearchTeam(SqLinkList L,int team){ //按学期查找并输出所有该学期存在的记录; Node *p; p=L.head; int n,sum=0; //sum记录该学期的学生总人数; printf("请输入您要查询的学生的学期:"); scanf("%d",&n); printf(" 学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩 "); while(p&&p->next){ //如果p结点和它的下一结点不为空,且该结点的学期等于要查找学期,则格式输出所有该学期学生信息; if(p->data.team==n){ PrintE(p->data); sum++; //查找到一个该学期的学生记录计数加1; } p=p->next; //转向下一结点; } //end while; if(p->data.team==n){ //如果p的下一结点为空,且本结点学期为n,则格式输出该结点信息; sum++; PrintE(p->data); } if(sum==0)printf("没有这学期的记录。

"); if(sum)printf("该学期共有%d人的记录. ",sum); } void SearchUnpass(SqLinkList L,float s1,float s2,float s3){ //查找并输出有挂科的学生信息; Node *p; p=L.head; int sum=0; //sum计数挂科总人数,初始为0; printf("以下是有一门以上不及格科目的学生的成绩: "); printf(" 学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩 "); while(p&&p->next){ //如果p及其下一结点为真,且该结点有一门以上科目分数低于60则输出该结点成绩并使sum计数加1; if((p->data.s1<60)||(p->data.s2<60)||(p->data.s3<60)) { PrintE(p->data); sum++; } //end if; p=p->next; //转到下一结点; } //end while; if((p->data.s1<60)||(p->data.s2<60)||(p->data.s3<60)){ //查看最后一个结点,若有挂科,sum加1并格式输出结点信息; sum++; PrintE(p->data); } if(sum==0)printf("没有不及格的记录。

"); if(sum)printf("共有%d人的挂科记录. ",sum); } void SqLinkListSearch(SqLinkList L){ //分类查找学生记录; Node *p; p=L.head; int n,reg; //reg为查询方式的指令; printf("1--按学号查询 2--按学期查询 3--挂科学生信息列表 "); printf("请您输入查询方式:"); scanf("%d",&reg); if(L.length){ if(reg>3)printf("对不起没有您要求的选项。

"); //若reg>3则输入不合法; else if(reg==1){ //reg==1按学号查询; printf("请输入您要查询的学生的学号:"); scanf("%d",&n); while(p&&p->next&& p->data.num !=n) p=p->next; //当p和他下一结点为真时且结点数据不为要查找数据时转向下一结点; if(p->data.num==n){ //找到所要查询结点,格式输出; printf(" 学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩 "); PrintE(p->data); } else printf("没有您要查找的学号。

"); } //end reg==1 if ; else if(reg==2)SearchTeam(L,p->data.team); //reg==2,调用SearchTeam函数按学期查询并输出; else if(reg==3)SearchUnpass(L,p->data.s1,p->data.s2,p->data.s3); //reg==3,调用SearchUnpass函数,输出全部有挂科记录的学生信息; }//end if; else printf("系统中无记录. "); } void inputData(SqLinkList &L){ //请求输入学生成绩,则追加一个结点并输入; ElemType e; if (ScanE(e)) SqLinkListAppend(L,e); //输入数据,追加一个结点; } void SqLinkListTraverse(SqLinkList L){ //所有学生信息列表输出; Node *p; char c; p=L.head; if(p) //非空表; { printf(" 学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩 "); for (p=L.head ;p;p=p->next )PrintE(p->data); //从第一个结点开始输出所有信息直到结点为空; } else printf("系统中无记录。

"); //空表; c=getchar(); } void PrintE(ElemType e){ //输出各科成绩和平均成绩; printf("%d %s %d %f %f %f %f ",e.num,e.name,e.team,e.s1,e.s2,e.s3,(e.s1+e.s2+e.s3)/3); //格式输出学生的学号、姓名、学期、A、B、C三门成绩以及平均成绩; }

C语言程序设计课程设计报告怎么写啊?有谁有样本吗?谢啦!

实 验 报 告 一 课 程 C语言程序设计 实验项目 C程序设计初步 成 绩 专业班级 学 号 指导教师 金发夏 姓 名 序 号 实验日期 一【实验目的】 1. 了解使用VC++6.0的开发环境; 2. 掌握在该系统上如何编辑、编译、连接和运行一个C程序; 3. 通过运行简单的C程序,初步了解C源程序的特点; 二【实验内容】 【实验1-1】输入并运行一个简单的正确程序 1)输入下面的程序 include void main( ) { printf(" 欢迎学习C语言程序设计! "); } 2).仔细观察屏幕的输入程序,检查有无错误。

3).对该程序进行编译,查看编译输出窗口,检查是否有错误,有错误需要改正错误。

无错误就可以运行程序。

【实验1-2】设计一个程序,已知矩形的两条边长为3.2和1.5,求矩形的面积。

【实验1-3】求4和6的和,并在显示器上输出。

然后修改程序从键盘上任意输入2个整数,并将二者的和输出。

三【实验过程】 四【实验小结】

C语言心得体会

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。

回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管PNP管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在梁强老师的辛勤指导下,终于游逆而解。

同时,在梁强老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!

欧路云:美国CUVIP线路10G防御,8折优惠,19元/月起

欧路云新上了美国洛杉矶cera机房的云服务器,具备弹性云特征(可自定义需要的资源配置:E5-2660 V3、内存、硬盘、流量、带宽),直连网络(联通CUVIP线路),KVM虚拟,自带一个IP,支持购买多个IP,10G的DDoS防御。付款方式:PayPal、支付宝、微信、数字货币(BTC USDT LTC ETH)测试IP:23.224.49.126云服务器 全场8折 优惠码:zhujiceping...

快云科技,免云服务器75折优惠服务器快云21元/月

近日快云科技发布了最新的夏季优惠促销活动,主要针对旗下的香港CN2 GIA系列的VPS云服务器产品推送的最新的75折优惠码,国内回程三网CN2 GIA,平均延迟50ms以下,硬件配置方面采用E5 2696v2、E5 2696V4 铂金Platinum等,基于KVM虚拟架构,采用SSD硬盘存储,RAID10阵列保障数据安全,有需要香港免备案CN2服务器的朋友可以关注一下。快云科技怎么样?快云科技好不...

2022年最新PHP短网址生成系统/短链接生成系统/URL缩短器系统源码

全新PHP短网址系统URL缩短器平台,它使您可以轻松地缩短链接,根据受众群体的位置或平台来定位受众,并为缩短的链接提供分析见解。系统使用了Laravel框架编写,前后台双语言使用,可以设置多域名,还可以开设套餐等诸多功能,值得使用。链接: https://pan.baidu.com/s/1ti6XqJ22tp1ULTJw7kYHog?pwd=sarg 提取码: sarg文件解压密码 www.wn7...

c语言课程设计小结为你推荐
ioeucl-ioe的学位证到底是ucl?还是后面加了一个ioesettimermfc里SetTimer和Sleep有什么区别oncontextmenu鼠标右键很好用,但是左键一点反应也没有,请问是什么原因呢?deviceid怎么能知道安卓系统手机的DEVICE ID?调度系统操作系统中为什么需要调度?smartuploadSmartUpload组建实现文件上传下载,我要把文件保存到项目中的某个文件夹中,该如何实现?最好有程序参考暴力破解密码用什么方法才能破解别人密码图片存储手机照片的保存方法?pci数据捕获和信号处理控制器三星450r5v x05 设备管理器出现pci数据捕获和信号处理控制器有个黄色的感叹号怎么办什么是句柄按键精灵的句柄是什么?
域名管理 汉邦高科域名申请 泛域名绑定 bluevm 私人服务器 512m 京东云擎 轻量 免费ddos防火墙 圣诞节促销 免费smtp服务器 工信部icp备案号 100m空间 200g硬盘 photobucket 阿里云手机官网 cloudflare vim命令 隐士ddos 好看的空间名字 更多