欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c语言课程设计-.pdf

    • 资源ID:76192028       资源大小:362.04KB        全文页数:50页
    • 资源格式: PDF        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言课程设计-.pdf

    课程设计任务书一、设计题目(一)学生成绩排名(二)根据条件进行学生成绩排名(三)链表的操作(链表的建立,访问,删除链表指定结点,增加结点)(四)学生成绩文件管理(五)一个综合系统(学生成绩管理系统)二、主要内容(一)学生成绩排名先采用选择法,将学生成绩从高到低进行排序,再输入一个学生的成绩,将此成绩按照排序规律插入已排好序的学生成绩数组,最后将排好序的成绩单进行反序存放。(二)根据条件进行学生成绩排名在函数中进行10 个学生成绩从高到低排名,再改进函数,进行 n 个学生成绩从高到低排名,排名方式根据函数的style 参数进行,如 style 为a按升序排,style 为 d 按降序排(a:ascending 升,d:descending 降)。编写多个不同函数,使之能实现不同的排序算法(3 种以上),再编写一个通用输出函数,(要求用函数指针做参数)能分别打印不同排序算法的结果。(三)链表的操作(链表的建立,访问,删除链表指定结点,增加结点)建立一个动态链表,将学生数据(学号,成绩)存入链表结构中,实现链表的访问(求学生成绩的平均分,找到最高分,最低分,将其数据输出)。删除指定学号的学生数据,对学生数据进行排序,分别在链表头部,中间,末尾插入学生数据。(四)学生成绩文件管理定义一个结构体数组,存放10 个学生的学号,姓名,三门课的成绩,输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩,输出三门课程的平均分数最高的学生的学号、姓名及其平均分,将 10 个学生的相关数据,存入文件中,再从文件中读出,按照平均分数从高到低进行排序,分别将结果输出到屏幕上和另一文件中,再从文件中读取第1,3,5,7,9个学生的数据。(五)学生成绩管理系统设计:数据库的数据项主要数据包括:学号、姓名、年级、专业、成绩1、成绩 2、成绩 3、平均成绩、总成绩。要求具有以下功能:(1)添加、删除任意个记录。(2)修改任意个记录。(3)显示、保存记录。(4)排序功能:打开学生数据库,计算每个学生的平均成绩和总成绩,用冒泡法或选择排序法将平均成绩和总成绩排序后生成两个新文件(从大到小),存盘并显示这两个文件的全部记录。(5)查询功能:打开总成绩排序文件,用折半查找法统计出给定分数的人数并显示。三、具体要求围绕课程设计的目的和意义,基本要求如下:1、认真阅读 C 语言课程设计指导书,明确课程设计的目的、意义和要求;2、快速总结 C 程序设计语言的精髓,如:函数的概念、函数的设计和函数的调用;3、快速熟悉 Tuber C 或 C+的上机环境。能熟练进行高级编辑操作(特别是字块操作);熟悉步进式、断点跟踪的程序调试方法,提高工作效率。4、根据“课程设计题目”,采用结构化的程序设计思想,确定系统的总体设计方案、确 定时间进度。如果是多人共一题,则要首先完成小组内的人员分工及安排,不允许重题现象。5学习并了解良好的程序设计风格。按质、按量、并按时间完成课程设计的任务。6提供可运行的课程设计系统,参加上机面试答辩。本次课程设计的重点是:学会设计并编写函数,掌握好各函数之间的调用关系;利用文件操作函数,建立数据库并完成对数据库的各种操作;掌握几种典型算法的应用(如:冒泡法、选择排序法和折半查找法)。同时锻炼学生根据题目进行分析、设计、编码、调试程序和书写必要文档的综合处理能力,从实践中学习并体会程序设计的结构化思想和设计方法。四、进度安排依照教学计划,课程设计时间为3 周。按照软件工程的思想,软件系统的分析设计至关重要,并要充分重视书写“文档”。避免甚至杜绝“拿到题目就编码”的现象。建议将时间分为三个阶段:第一阶段,根据题目要求,拿出系统的总体设计方案:即构思各程序模块的算法,并画出相应的N-S 图,同时编写相应的文档;第二阶段,根据 N-S 图编写程序代码并单独调试,再将调试通过的各个子模块进行集成调试;第三阶段,归纳文档资料,按要求填写在 课程设计说明书 上,并参加答辩。三个阶段时间分配的大概比例是:35:45:20。五、完成后应上交的材料1课程设计的题目、系统的总功能和各子模块的功能;2题目的设计思想(或算法)简述;3主要程序的框图(要求用N-S图);4源程序代码(要求在关键的位置有注释,从而增加程序的可读性);5课程设计的总结报告,主要包括以下内容:(1)课程设计中遇到的主要问题和解决方法;(2)你的创新和得意之处;(3)设计中存在的不足及改进的设想;(4)本次课程设计的感想和心得体会。以上完成的源程序及相关文档,填写在课程设计说明书上,要求干净整洁,符合课程设计的要求和规范。六、总评成绩指导教师签名日期年月日系 主 任审核日期年月日目录一、设计任务的主要算法分析,1 1.1 主要算法具体分析,2 二、程序的流程图,3 2 5 学生成绩管理系统的N-S图,8 1.系统总流程图模块,8 2.录入功能模块,9 3.删除功能模块,10 4.修改功能模块,11 5.文件保存功能模块,12 6.排序功能模块,13 7.查询功能模块,14 8.浏览功能模块,14 三、各个模块的源代码,15 31 学生成绩排名,15 3 2 根据条件进行学生成绩排名,17 3 3 链表的操作,22 3 4 学生成绩文件管理,32 3 5 学生成绩管理系统,39 A.口令模块,39 B 菜单 模块,39 C.录入功能模块,41 D.删除功能模块,52 E.修改功能模块,50 F.文件保存模块,43 G.排序功能模块,48 H.查询功能模块,45 I.浏览功能模块,44 四、程序运行效果图,54 4.1 用户登陆画面,54 4.2 菜单显示画面,55 4.3 录入功能图示,56 4.4 删除功能图示,56 4.5 修改功能图示,56 4.6 文件保存图示,57 4.7 排序功能图示,58 4.8 查询功能图示,58 4.9 浏览功能图示,59 五、设计心得,60 5.1 课程设计中遇到的主要问题和解决方法,60 5.2 本程序的创新和得意之处,60 5.3 设计中存在的不足及改进的设想,60 5.4 本次课程设计的感想和心得体会,60 佛山科学技术学院课程设计用纸1 一.算法分析初始化:建立空链表录入:录入学生信息到链表删除:删除指定的学生信息修改:修改学生信息保存:把链表记录存入文件排序:按平均分或总分排序查询:按总分查找学生信息浏览:向屏幕输出学生信息退出:退出系统定义学生的结构体如下:typedef struct Student/链表的数据结构 int number;佛山科学技术学院课程设计用纸2 char name20;char grad20;char profess20;float score3;struct Student*next;Student,*LinkList;算法分析:这个学生信息系统主要是一个以动态链表的应用为基础加上C 的基础语法一起的一个综合系统程序。1 主程序是用 switch 函数做为一个功能的选择函数2 录入函数是一个建立动态链表的应用3 删除函数是一个链表的一个指针的变化程序利用指针的作用去“删除”(不再指向)不需要的信息和“插入”(指向)需要的信息。4 排序函数和删除函数其实是原理是差不多,都是利用了指针的指向作用,把指向第二结构体的指针指向第一个,把第一个的指针指向第二个,那么两个结构体里面的位置就掉换了,就是我们所说排序。5 查询函数是一个在链表中按照总分查询出指定的学生6 浏览函数是一个将信息输出到屏幕的动态链表的应用7 保存文件函数是把链表中的信息存入文件中。0 退出程序,结束系统.佛山科学技术学院课程设计用纸3 二程序的流程图5 总流程图说明:这个基本是口令和菜单的结合体,用户先通过口令,密码输入三次错误则退出系统。密码正确进入系统功能键选择,根据SWITCH 选择菜单里面我们需要的功能。0 功能键是退出系统25.1 录入函数寻找最后一个节点while(!p-next)创建存储空间q=(LinkList)malloc(sizeof(Student);是否逐项输入学生信息(学号、姓名、年级、专业、成绩1、成绩 2、成绩 3)显示录入后数据佛山科学技术学院课程设计用纸4 说明:这个函数把指针p 指向新开的空间,然后再向空间里面写如数据,进而做成我们所需要的链表。2.5.2 删除函数删除学生信息1 根据学号删除2 根据姓名删除if(p-number=number)是否strcmp(p-name,name)=0 是否删除该学号的学生信息没有可删除的学号删除该姓名的学生信息没有可删除的学生信息删除完成!说明:利用指针的指向性,当 STRCMP 函数=0时找到要删除的学生信息时,把指向这个信息结构体的指针指向下一个结构体,把这个信息挡在链表外面,p2-next=p1next。佛山科学技术学院课程设计用纸5 2.5.3 修改函数修改学生信息1 根据学号查找修改2 根据姓名查找修改p-number=number;是否strcmp(p-name,name)=0 是否修改该学号的学生信息(根据菜单 switch(n))找不到数据!修改该姓名的学生信息(根据菜单switch(n))找不到数据!修改完成!输入要保存文件的文件名fp=fopen(stud,w)为读入内存打开一个文件打开是否成功是否存入数据输出提示不能打开文件退出 exit 用 fprintf函数读入数据while(p&p=p-next)fclose(fp);关闭文件说明:用 if(p-number=number)比较学号是否相等,或用strcmp 函数找到需要修改的姓名,然后找到修改的数据,再输入需修改的信息。佛山科学技术学院课程设计用纸6 2.5.4 文件保存函数文件保存函数1 保存数据2 打开数据输入要打开文件的文件名 fp=fopen(stud,r)为读入内存打开一个文件打开是否成功是否存入数据输出提示不能打开文件退出 exit 定义一个动态的存储空间p=(LinkList)malloc(sizeof(Student)用 fprintf函数读入数据 fclose(fp);关闭文件说明:用fprintf函数写入文件,while(p&p=p-next),将数据逐个存入文件。佛山科学技术学院课程设计用纸7 2.5.5 排序函数排序函数1 按平均分排序2 按总分排序ScoreSort(L);输出按平均分排序的学生信息ScoreSort(L);按总分排序的学生信息输入要保存文件的文件名 fp=fopen(stud,w)为读入内存打开一个文件打开是否成功是否存入数据输出提示不能打开文件退出 exit 用 fprintf函数读入数据while(p&p=p-next)fclose(fp);关闭文件说明:选择按平均分排序还是总分排序,将排好序的学生信息存入新文件中。佛山科学技术学院课程设计用纸8 2.5.6 查询函数输入要打开总分的文件名 fp=fopen(stud,r)为读入新链表打开一个文件打开是否成功是否存取数据输出提示不能打开文件退出 exit 用 fscanf 函数读入数据p=(LinkList)malloc(sizeof(Student);p-next=NULL;fclose(fp);关闭文件输入你要找的分数HalfSort()是否找到是否找到一人!不存在与指定分数相同的学生!说明:打开总成绩排序文件,用折半查找法统计出给定分数的人数并显示。佛山科学技术学院课程设计用纸9 2.5.7 浏览函数输入要打开的文件名fp=fopen(stud,r)为读入新链表打开一个文件打开是否成功是否存取数据输出提示不能打开文件退出 exit 用 fscanf 函数读入数据p=(LinkList)malloc(sizeof(Student);fclose(fp);关闭文件printf(“学号、姓名、年级、专业、成绩1、成绩 2、成绩 3”)while(p!=0)printf(学号:%d,姓名:%s,年级:%s,专业:%s 三门成绩:%3.2f%3.2f%3.2f n,p-number,p-name,p-grad,p-profess,p-score0,p-score1,p-score2);p=p-next;说明:打开要读取的文件,将学生数据读到新链表while(p!=0)p=p-next;,浏览学生信息。佛山科学技术学院课程设计用纸10 三原代码程序31 学生成绩排名#include void main()void sort(int array,int n);int a11;int i;printf(请输入 10 个学生成绩:n);for(i=0;i10;i+)scanf(%d,&ai);sort(a,10);/调用 sort 函数printf(已排好序的 10 个数:n);for(i=0;i10;i+)printf(%d,ai);printf(n);printf(第十一个学生成绩:n);scanf(%d,&a10);sort(a,11);printf(已排好序的 11 个数:n);for(i=0;i=0;i-)printf(%d,ai);printf(n);void sort(int array,int n)/选择法排序函数 int i,j,k,t;for(i=0;in-1;i+)k=i;/k用来存放当前最大的元素的序号for(j=i+1;jarrayk)/若第 j 个元素比第 k 个元素大k=j;/将当前最小元素的序号j 保存在 k 中t=arrayk;arrayk=arrayi;arrayi=t;/将最大元素与 arrayi对换 32 根据条件进行学生成绩排名#include void sort(int a,int n,char style)/选择法排序函数 int i,j;佛山科学技术学院课程设计用纸12 if(style=d)for(i=0;in-1;i+)for(j=i+1;jn;j+)if(aiaj)int t;t=ai;ai=aj;/将最大元素与 ai对换aj=t;else if(style=a)for(i=0;in-1;i+)for(j=i+1;jaj)int t;t=ai;ai=aj;/将最小元素与 ai对换aj=t;int*mosort(int a,int n)/冒泡法升序函数佛山科学技术学院课程设计用纸13 int i,j,t;for(j=0;jn-1;j+)for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t;return a;int*mosort1(int a,int n)/冒泡法降序函数 int i,j,t;for(j=0;jn-1;j+)for(i=0;in-j-1;i+)if(aiai+1)t=ai;ai=ai+1;ai+1=t;return a;佛山科学技术学院课程设计用纸14 int*sort1(int a,int n)/选择法降序函数 int i,j,t;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(aiaj)t=ai;ai=aj;aj=t;return a;int*sort(int a,int n)/选择法升序函数 int i,j,t;for(i=0;in-1;i+)for(j=i+1;jaj)t=ai;ai=aj;aj=t;佛山科学技术学院课程设计用纸15 return a;void show(int*(*fun)(int*,int),int*a,int n)/输出函数 int i;fun(a,n);printf(排序结果为:n);for(i=0;in;i+)printf(%d,ai);printf(n);void main()int a1000,i,n;char style;printf(请输入学生人数和排序类型n);printf(a、将学生成绩按升序排列:n);printf(d、将学生成绩按降序排列:n);scanf(%d,%c,&n,&style);printf(请输入各个学生的成绩:n);佛山科学技术学院课程设计用纸16 for(i=0;in;i+)scanf(%d,&ai);sort(a,n,style);printf(输出的学生成绩为:n);for(i=0;in;i+)printf(%d n,ai);printf(n);printf(选择法升序:n);show(&sort,a,n);printf(选择法降序:n);show(&sort1,a,n);printf(冒泡法升序:n);show(&mosort,a,n);printf(冒泡法降序:n);show(&mosort1,a,n);33 链表的操作#include#include typedef struct Student/链表的数据结构佛山科学技术学院课程设计用纸17 int number;float score3;float aver;struct Student*next;Student,*LinkList;void CreateList(LinkList&L,int n)/初始化链表 L=(LinkList)malloc(sizeof(Student);L-next=NULL;for(int i=0;inumber),&(p-score0),&(p-score1),&(p-score2);p-next=L-next;L-next=p;void FrontInsert(LinkList&L,int number,float score1,float score2,float score3)/头插入结点 LinkList p=(LinkList)malloc(sizeof(Student);佛山科学技术学院课程设计用纸18 p-next=L-next;L-next=p;p-number=number;p-score0=score1;p-score1=score2;p-score2=score3;void RearInsert(LinkList&L,int number,float score1,float score2,float score3)/尾插入结点 LinkList p=L;while(p-next)/寻找最后一个结点 p=p-next;LinkList q=(LinkList)malloc(sizeof(Student);q-number=number;q-score0=score1;q-score1=score2;q-score2=score3;p-next=q;q-next=NULL;佛山科学技术学院课程设计用纸19 void ListInsert(LinkList&L,int i,int number,float score1,float score2,float score3)/在第 i 个位置之前插入结点 LinkList p;p=L;int j=0;while(p&jnext;+j;if(!p|ji-1)printf(插入位置出错!);return;LinkList s;s=(LinkList)malloc(sizeof(Student);s-number=number;s-score0=score1;s-score1=score2;s-score2=score3;s-next=p-next;p-next=s;void ListDelete(LinkList&L,int number)/删除给出学号的结点 佛山科学技术学院课程设计用纸20 if(L-next)if(number0)LinkList p=L;if(L-next-next=NULL&L-next-number=number)free(L-next);L-next=NULL;return;while(p-next)if(p-next-number=number)LinkList q=p-next;/记录下 p-next 结点p-next=q-next;free(q);return;p=p-next;printf(找不到可删除的学号!);else printf(学号输入错误!);else printf(链表空!);void aver(LinkList L,int n)/求平均分佛山科学技术学院课程设计用纸21 int i;LinkList p;p=L-next;for(i=0;iaver=(float)(p-score0+p-score1+p-score2)/3);p=p-next;void HighAverageScore(LinkList L)/求出最高平均成绩 if(L-next)float Hscore=L-next-aver;LinkList p=L;while(p-next)p=p-next;if(p-aver)Hscore)Hscore=p-aver;printf(最高平均分为:%3.2f n,Hscore);LinkList q=L;佛山科学技术学院课程设计用纸22 while(q-next)/寻找相等最高平均分的结点并输出q=q-next;if(q-aver-Hscore)aver-Hscore)-0.01)printf(学号:%d;成绩 :%3.2f%3.2f%3.2f n,q-number,q-score0,q-score1,q-score2);else printf(没有任何数据!n);void LowAverageScore(LinkList L)/求出最低平均成绩 if(L-next)float Lscore=L-next-aver;LinkList p=L;while(p-next)p=p-next;if(p-aver)aver;printf(最低平均分为:%3.2f n,Lscore);佛山科学技术学院课程设计用纸23 LinkList q=L;while(q-next)/寻找相等最低平均分的结点并输出q=q-next;if(q-aver-Lscore)aver-Lscore)-0.01)printf(学号:%d;成绩 :%3.2f%3.2f%3.2f n,q-number,q-score0,q-score1,q-score2);else printf(没有任何数据!n);void Scoresort(LinkList&L)/按平均成绩从高到低排序学生数据 LinkList i,j;float k;int n;if(L-next=NULL)return;if(L-next-next!=NULL)for(i=L-next;i-next!=NULL;i=i-next)for(j=i-next;j-next!=NULL;j=j-next)if(i-aver)(j-aver)k=i-aver;佛山科学技术学院课程设计用纸24 i-aver=j-aver;j-aver=k;n=i-number;i-number=j-number;j-number=n;k=i-score0;i-score0=j-score0;j-score0=k;k=i-score1;i-score1=j-score1;j-score1=k;k=i-score2;i-score2=j-score2;j-score2=k;void print(LinkList L)/把链表的数据输出 LinkList p=L;int j=0;if(p-next)while(p-next)佛山科学技术学院课程设计用纸25 p=p-next;printf(学 号:%d;成 绩:%3.2f%3.2f%3.2f n,p-number,p-score0,p-score1,p-score2);else printf(没有数据可输出!);void printaver(LinkList L)/把链表的数据输出 LinkList p=L;int j=0;if(p-next)while(p-next)p=p-next;printf(学号:%d;成绩:%3.2f%3.2f%3.2f%3.2fn,p-number,p-score0,p-score1,p-score2,p-aver);else printf(没有数据可输出!);佛山科学技术学院课程设计用纸26 void main()int n=1,k,b,num;float score3;printf(请输入要插入数据个数:n);scanf(%d,&n);printf(n请输入学生学号和三科成绩:n);LinkList L;CreateList(L,n);aver(L,n);printf(nn所有学生的学号,三科成绩及平均成绩:n);printaver(L);printf(n);HighAverageScore(L);printf(n);LowAverageScore(L);printf(n);printf(请输入要删除数据的学号:);scanf(%d,&k);ListDelete(L,k);printf(删除后的结果为:n);print(L);printf(n);佛山科学技术学院课程设计用纸27 Scoresort(L);printf(按平均成绩从高到低排序为:n);print(L);printf(n);printf(请输入数据(学号、三科成绩)在头部插入:n);scanf(%d%f%f%f,&num,&score0,&score1,&score2);FrontInsert(L,num,score0,score1,score2);printf(在头结点插入后为:n);print(L);printf(n);printf(请输入数据(位置、学号、三科成绩)在中间插入:n);scanf(%d%d%f%f%f,&b,&num,&score0,&score1,&score2);ListInsert(L,b,num,score0,score1,score2);printf(在中间插入数据后为:n);print(L);printf(n);printf(请输入数据(学号、三科成绩)在尾部插入:n);scanf(%d%f%f%f,&num,&score0,&score1,&score2);RearInsert(L,num,score0,score1,score2);printf(在尾结点插入数据后为:n);print(L);佛山科学技术学院课程设计用纸28 printf(n);printf(最终数据结果为:n);print(L);34 学生成绩文件管理#include#define N 10 struct student int num;char name20;float score3;float aver;stu;void input(struct student stu)/输入各学生信息 int i;printf(请输入各学生的信息:学号、姓名、三门课成绩(语文、数学、英语):n);for(i=0;iN;i+)printf(第%d位学生:n,i+1);scanf(%d%s%f%f%f,&stui.num,&stui.name,佛山科学技术学院课程设计用纸29&stui.score0,&stui.score1,&stui.score2);stui.aver=(stui.score0+stui.score1+stui.score2)/3;void max_aver(struct student stu)/输出平均成绩最高的学生 int i,a=0;for(i=0;istua.aver)a=i;printf(n【平均成绩最高的学生】n);printf(学号:%dn姓名:%sn平均成绩:%6.2fn,stua.num,stua.name,stua.aver);for(i=0;iN;i+)if(stui.aver=stua.aver&a!=i)printf(n【与最高平均成绩相同的学生】n);printf(学号:%dn姓名:%sn平均成绩:%6.2fn,stui.num,stui.name,stui.aver);printf(n);佛山科学技术学院课程设计用纸30 void max_score(struct student stu,int k)/输出单科成绩最高的学生 int i,b=0;if(k=1)for(i=0;istub.score0)b=i;printf(n语文成绩最高的学生是:n);printf(学号:%dn姓名:%sn语文成绩:%5.1fn,stub.num,stub.name,stub.score0);for(i=0;iN;i+)if(stui.score0=stub.score0&b!=i)printf(n【与最高语文成绩相同的学生】n);printf(学号:%dn姓名:%sn平均成绩:%6.2fn,stui.num,stui.name,stui.score0);printf(n);佛山科学技术学院课程设计用纸31 if(k=2)for(i=0;istub.score1)b=i;printf(n数学成绩最高的学生是:n);printf(学号:%dn姓名:%sn数学成绩:%5.1fn,stub.num,stub.name,stub.score1);for(i=0;iN;i+)if(stui.score1=stub.score1&b!=i)printf(n【与最高数学成绩相同的学生】n);printf(学号:%dn姓名:%sn平均成绩:%6.2fn,stui.num,stui.name,stui.score1);printf(n);if(k=3)佛山科学技术学院课程设计用纸32 for(i=0;istub.score2)b=i;printf(n英语成绩最高的学生是:n);printf(学号:%dn姓名:%sn英语成绩:%5.1fn,stub.num,stub.name,stub.score2);for(i=0;iN;i+)if(stui.score2=stub.score2&b!=i)printf(n【与最高英语成绩相同的学生】n);printf(学号:%dn姓名:%sn平均成绩:%6.2fn,stui.num,stui.name,stui.score2);void main()struct student stuN,t;int i,j,a;FILE*fp;input(stu);佛山科学技术学院课程设计用纸33 printf(n选择科目(1.语文,2.数学,3.英语),找出其分数最高的学生:n);scanf(n%d,&a);printf(n);max_score(stu,a);max_aver(stu);if(fp=fopen(stud,w)=NULL)/将 10个学生数据存入文件 stud.dat printf(不能打开文件!);return;for(i=0;iN;i+)fprintf(fp,%-6d%-8s%5.1f%5.1f%5.1f%6.2fn,stui.num,stui.name,stui.score0,stui.score1,stui.score2,stui.aver);fclose(fp);printf(n显示 stud.dat文件(学号,姓名,语文,数学,英语,平均分):n);if(fp=fopen(stud,r)=NULL)/打开 stud.dat文件,将数据读出 佛山科学技术学院课程设计用纸34 printf(不能打开文件!n);return;for(i=0;iN;i+)fscanf(fp,%-6d%-8s%5.1f%5.1f%5.1f%6.2fn,&stui.num,stui.name,&stui.score0,&stui.score1,&stui.score2,&stui.aver);printf(%-6d%-8s%5.1f%5.1f%5.1f%6.2fn,stui.num,stui.name,stui.score0,stui.score1,stui.score2,stui.aver);fclose(fp);printf(n将 stud.dat文件按照平均分从高到低进行排序n);for(i=0;iN;i+)a=i;for(j=i+1;jstua.aver)a=j;佛山科学技术学院课程设计用纸35 t=stui;stui=stua;stua=t;printf(stud.dat文 件 排 序 后 存 入studsort.dat文 件 并 显示:n);if(fp=fopen(studsort,w)=NULL)/打开 studsort.dat文件,将数据存入 printf(打开文件!n);return;for(i=0;iN;i+)fprintf(fp,%d%s%5.1f%5.1f%5.1f%6.2fn,stui.num,stui.name,stui.score0,stui.score1,stui.score2,stui.aver);printf(%-10d%-10s%5.1f%5.1f%5.1f%6.2fn,stui.num,stui.name,stui.score0,stui.score1,stui.score2,stui.aver);printf(n显示 studsort.dat文件中第 1,3,5,7,9个学生的数据:n);佛山科学技术学院课程设计用纸36 if(fp=fopen(studsort,r)=NULL)/打开 studsort.dat文件,将数据读出 printf(打开文件!n);return;for(i=0;iN;i=i+2)fscanf(fp,%-10d%-10s%5.1f%5.1f%5.1f%6.2fn,&stui.num,stui.name,&stui.score0,&stui.score1,&stui.score2,&stui.aver);printf(%-10d%-10s%5.1f%5.1f%5.1f%6.2fn,stui.num,stui.name,stui.score0,stui.score1,stui.score2,stui.aver);35 学生成绩管理系统#include#include#include#define MAX 100 佛山科学技术学院课程设计用纸37 typedef struct Student /链表的数据结构 int number;char name20;char grad20;char profess20;float score3;struct Student*next;Student,*LinkList;void student_key()/输入口令正确则进入系统 int i=1;char a10;while(inext=NULL;void print(LinkList L)/输出链表的数据 LinkList p=L;int j=0;if(p-next)while(p-next)p=p-next;printf(显示所有记录:n);printf(学号:%d,姓名:%s,年级:%s,专业:%s 三门成绩:%3.2f%3.2f%3.2f n,p-number,p-name,p-grad,p-profess,p-score0,p-score1,p-score2);佛山科学技术学院课程设计用纸39 else printf(没有数据可输出!n);/*录入函数*/void RearInsert(LinkList&L)/尾部插入结点 int number;char chars320;float score3;LinkList p=L;printf(输入添加的记录:n);printf(请输入学生信息(学号、姓名、年级、专业、成绩1、成绩 2、成绩 3):n);scanf(%d%s%s%s%f%f%f,&number,chars0,chars1,chars2,&score0,&score1,&score2);while(p-next)/找到最后一个结点p=p-next;LinkList q=(LinkList)malloc(sizeof(Student);strcpy(q-name,chars0);strcpy(q-grad,chars1);strcpy(q-profess,chars2);q-number=number;佛山科学技术学院课

    注意事项

    本文(c语言课程设计-.pdf)为本站会员(索****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开