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

    C语言学生信息管理 .docx

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

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

    C语言学生信息管理 .docx

    精品名师归纳总结同学信息治理系统一. 课程设计目的 :娴熟把握条件语句、循环、数组、函数操作,将本课程所学的学问合理的运用于实践当中。明白一些书上没有的函数及使用方法。为以后的用C 语言乃至其他设计语言解决实际问题打下了一个良好的基础。二. 课程设计的思路及设计过程1. 思路:设计出适合本班同学的同学信息治理系统,可以依据多种查询方式查询班级成员信息。2. 过程:a. 定义所需函数 : void mainvoid mint xvoid putLinkList pvoid allLinkList head,int x b 然后调用函数。c 通过预先输入同学信息 ,实现可以依据学号 姓名 年龄 性别 查询同学信息。d 快捷启动 ,快捷推出。3.程序流程图如下 :4.课程设计中涉及的知识点循环语句:for语句循环。for 语句是 C 语言中所供应的功能最强、使用最为灵敏的一种循环语句。特别适用与循环 次 数 固 定 而 循 环 条 件 不 确 定 的 情 况 。for语 句 最 主 要 的 特 点 是 : 特 别 适 合 已 知 循 环 次 数 的 循 环 语 句 。while语句while语句 可以 实现 当型 循环 , 通 常用 于 能够 确定 的循 环 次 数的 循环 把握 。条件语句:if语句。if 语句是 C 语言中的选择结构语句的主要形式,它依据if 语句后面的条件表达式来准备执行过程。数 组 : 一 维 数 组 元 素 的 应 用 、 赋 值 和 越 界 检 查 。一 维 数 组 声 明 的 一 般 形 式 为 :类型 标 识符数 组 名常量 表达 式。数组元素是组成数组的基本单元。一维数组赋值的方法有:用赋值语句对数组元素逐个赋值。接受初始化赋值和动态赋可编辑资料 - - - 欢迎下载精品名师归纳总结值的方法。为了不行防止不行推测的错误发生,在程序中最好仍是加上数组越界检查程序代码,将数组越界的检查范畴加在程序中,就可以确保程序执行的正确性。因此,可以说数组的边界检验便是程序员的职责。函数:1)、函数的定义。函数定义的形式1传统的定义形式形类型标识符参函数名(说形参列表)明语句/声明部分*功能实现部分*/return表达式。2现代的定义形式 类型标识符函数名(数据类型形式参数,数据类型形式参数,)语句/声*功能明实现部部分分*/return表达式。2)、函数的调用。在函数调用中,对于无参数调用时是没有实际参数列表。实际参数列表中的参数可以是 常 数、 变 量或 其他 构 造 类 型 数 据 及 表达 式, 各 是 参 数之 间 用 逗号 分隔 。在C语 言 程 序 中 , 可 以 用 以 下 几 种 方 式 调 用 函 数 :1函数表达式2函数语句3函数实参3 ) 、 函 数 变 量 的 作 用 域 。C 语言中全部的变量都有自己的作用域。变量说明的方式不同,其作用域也不同。 C 语 言 中 的 变 量 , 按 作 用 域 范 围 可 分 为 两 种 , 即 局 部 变 量 和 全 局 变 量 。局部变量:局部变量也称为内部变量。局部变量是在函数内作定义说明的,其作用域仅 限 于 函 数 内 , 离 开 函 数 后 在 使 用 这 种 变 量 是 非 法 的 。可编辑资料 - - - 欢迎下载精品名师归纳总结全局变量:全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域是从定义变量的位置开头到当前源文件结束。4 )、数组元素作为函数的参数。假犹如一个源文件中,全局变量与局部变量同名,就在局部变量的作用范畴内全局变 量被“屏蔽”了,即它不起作用。发生函数调用时,把作为实参的数组元素的值传送给形参,实现一一对应、单向的至传递。5 )、数组名作为函数的参数。用数组名作为函数参数时,要求形参和相对应的实参都必需是类型相同的数组,都必须有明确的数组说明。数组名实质上就是数组的首的址,因此数组名作函数参数时所进行的传递只是的址的传递。数组名作函数参数时,由于实际上形参和实参共享同一数组,因此当形参变化时,形参和实参共享的数组就发生了变化,即实参也随之变 化。4.程序设计如下 :#include "stdio.h" #include "stdlib.h" #include "conio.h" #include "string.h" #define K 8#define ERROR 0#define OK 1char kmK7 。 /科 目int KM=0 。 /科目数int n =0 。 /人 数int Y =20 。/ 每页显示的人数/* 单链表结构 */ typedef struct LNodechar ID 8 。/学号char name8 。 / 姓名char sex 3。 / 性别char age 4。/年龄char cj K6 。 / 成果struct LNode*next。*LinkList。LinkList InsertLinkList head。LinkList sortLinkList head,int x。void mint x 。/* 创建一个带头结点的空链表*/LinkList createvoidLinkList L。可编辑资料 - - - 欢迎下载精品名师归纳总结L=LinkListmallocsizeofstruct LNode。ifL.=NULLL->next=NULL。return L 。/* 设置科目 :返回科目数 */ int setKMint i=0,kk=KM。char x1,s,y1 。ifKM>0printf" 当前设置 :" 。fori=0 。i<KM 。i+ifi%4=0printf"nn"。printf"%d.%-5s ",i+1,kmi。printf"0- 退出 最大值 :%d",K 。 ifKM>0printf"nn设置科目数 :" 。scanf"%s",x 。ifatoix=0return KM。whileatoix<1|atoix>Ksystem"cls" 。 m1 。ifKM>0printf" 输入不合法 ." 。fori=0 。 i<KM 。 i+ifi%4=0printf"nn"。printf"%d.%-5s ",i+1,kmi。 printf"0- 退出 最大值 :%d",K 。elseprintf" 没有资料,请设置资料.n" 。printf"n设置科目数 :"。scanf"%s",x 。ifatoix=0return KM。ifKM>0printf"n真的要修改吗 .Y/N" 。s=getch。ifs.='y' && s.='Y'return kk。 ifatoix>KMdoifKM=0s='y'。elseprintf"n是否保留原先设置 .Y/N" 。s=getch 。 ifs='y' | s='Y'fori=KM。i<atoix 。i+printf"n输入第 %d 门科目名称 :",i+1 。 getskmi 。whilestrlenkmi=0|strlenkmi>7getskmi。else ifs='n' | s='N'fori=0 。i<atoix 。i+printf"n输入第 %d 门科目名称 :",i+1 。 getskmi 。whilestrlenkmi=0|strlenkmi>7getskmi。whiles.='y' && s.='Y' && s.='n' && s.='N'。elsedosystem"cls" 。 m1 。printf" 当前设置 :" 。可编辑资料 - - - 欢迎下载精品名师归纳总结fori=0 。i<atoix 。i+ifi%4=0printf"nn"。printf"%d.%-5s ",i+1,kmi。 printf"nn输入需要修改科目的序号:" 。scanf"%s",y 。ifatoiy=0return kk。ifatoiy>0 && atoiy<=atoixprintf"n输入第 %d 门科目名称 :",atoiy 。getskmatoiy-1 。getskmatoiy-1 。whilestrlenkmatoiy-1=0|strlenkmatoiy-1>7printf"输入不合法 .n 请重新输入第 %d 门科目名称 :",atoiy 。getskmatoiy-1 。whileatoiy<1 | atoiy>atoix。 return atoix 。/* 读入数据 */ int loadkm int i。FILE*fp。iffp=fopen"km.txt","r+"=NULLfp=fopen"km.txt","w+"。fori=0 。.feoffp 。i+fgetskmi,7,fp。fscanffp," " 。ifstrlenkmi.=0KM+。 fclosefp 。return OK 。LinkList loadLinkList headint i=0,j。LinkList s,t,p。FILE*fp。loadkm 。iffp=fopen"data.txt","r+"=NULLreturn head。iffgetcfp=EOFsystem"cls" 。 m1 。whileKM=0system"cls" 。 m1 。printf" 没有资料,请设置资料.n" 。KM=setKM。printf"n" 。system"cls" 。m1 。printf" 添加数据 :n" 。Inserthead。return head 。/fseekfp,0L,0 。rewindfp 。p=LinkListmallocsizeofstruct LNode。fscanffp,"%s ",p->ID。fgetsp->name,8,fp 。fscanffp,"t%s %s ",p->sex,p->age 。fori=0 。i<KM 。i+fscanffp,"%s ",p->cji。fscanffp,"n" 。fori=KM 。 i<K 。 i+strcpyp->cji,"0"。p->next=NULL。head->next=p 。可编辑资料 - - - 欢迎下载精品名师归纳总结while.feoffpp=p->next。p=LinkListmallocsizeofstruct LNode。fscanffp,"%s ",p->ID。fgetsp->name,8,fp 。fscanffp,"t%s %s ",p->sex,p->age 。fori=0 。i<KM 。i+fscanffp,"%s ",p->cji。fscanffp,"n" 。fori=KM。i<K 。i+strcpyp->cji,"0"。p->next=NULL。i=j=0 。s=head。whileatols->ID<=atolp->ID&&p->next s=s->next 。i+ 。 s=head。whiles->next&&j<is=s->next 。j+ 。 t=s->next 。s->next=p 。p->next=t 。 s=head 。i=0 。whiles->next s=s->next 。i+ 。n=i 。fclosefp 。return head 。/* 储存文件 */int saveLinkList head int i。LinkList p=head->next。FILE*fp,*fpp。iffp=fopen"data.txt","w+"=NULLreturn ERROR。iffpp=fopen"km.txt","w+"=NULLreturn ERROR。fori=0 。i<KM 。i+fprintffpp,"%s",kmi。fprintffpp,""。 whilepfprintffp,"%s ",p->ID。fori=0 。i<8-intstrlenp->ID。 i+fprintffp," "。fputsp->name,fp 。fori=0 。i<8-intstrlenp->name 。i+fprintffp," "。fprintffp," %s %s ",p->sex,p->age。fori=0 。i<KM 。i+fprintffp,"%s ",p->cji。fprintffp,"n"。p=p->next 。 fclosefp 。fclosefpp 。return OK 。/* 平均成果 */可编辑资料 - - - 欢迎下载精品名师归纳总结double pjLinkList p int i。double pj=0 。fori=0 。i<KM 。i+ pj+=atofp->cji。pj/=KM。return pj 。/* 排头 */ btint i。printf" 学号 t 姓名 t 性别 年龄 "。fori=0 。i<KM 。i+printf"%-5s",kmi。printf" 平均 n" 。printf"-"。ifKM<9 fori=0 。i<KM+1 。i+printf"-"。printf"n" 。 elsefori=0 。i<KM+1 。i+printf"-"。/* 输出当前指针信息 */ void putLinkList p int i。printf"%st",p->ID。printf"%st",p->name。printf" %s ",p->sex 。printf"%3d ",atoip->age。fori=0 。i<KM 。i+ ifatofp->cji<10printf" %-5g",atofp->cji。else printf"%-6g",atofp->cji。ifpjp<10printf" %1.2fn",pjp。else printf"%2.2fn",pjp。 int pddchar x,int zint y=strlenx,k,i。ifz=1fori=0 。i<y 。 i+ifxi>57|xi<48return ERROR。ify>7return ERROR 。 ifz=2fori=0 。i<y 。 i+ifxi=46k+。ifxi>57|xi<46|xi=47|k=2return ERROR。 return OK 。/* 输出信息 */void allLinkList head,int x LinkList p=head->next。int i,j=0 。char a14,a24,t,k1,c16,c26,tmp3,ID18,ID28。double zK=0,zpj=0.0。char n10,s3 。ifx=0 system"cls" 。bt 。whilep putp 。可编辑资料 - - - 欢迎下载精品名师归纳总结fori=0 。 i<KM 。 i+zi+=atofp->cji。j+ 。ifj%Y=0 ifj.=0 printf"-"。ifKM<8fori=0 。i<KM+1 。 i+printf"-"。printf"n"。 elsefori=0 。i<KM+1 。i+printf"-"。printf" 按任意键连续 " 。getch 。system"cls" 。bt 。p=p->next 。 ifx=1printf" 按学号搜寻 "。printf"nn学号范畴 :" 。scanf"%s",ID1 。scanf"%s",ID2 。whilepddID1,1=ERROR|pddID2,1=ERRORsystem"cls" 。m2。printf" 输入错误 ." 。printf"nn学号范畴 :" 。scanf"%s",ID1 。scanf"%s",ID2 。 ifatolID1>atolID2strcpytmp,ID1 。strcpyID1,ID2 。strcpyID2,tmp 。system"cls" 。bt 。whilep ifatolID1<=atolp->ID&&atolID2>=atolp->IDputp 。fori=0 。i<KM 。i+zi+=atofp->cji。j+ 。ifj%Y=0ifj.=0printf"-"。ifKM<8fori=0 。 i<KM+1 。i+printf"-"。printf"n"。 elsefori=0 。i<KM+1 。i+printf"-"。printf" 按任意键连续 " 。getch 。system"cls" 。bt 。 p=p->next 。ifx=2printf" 按姓名搜寻 "。printf"nn姓名 :" 。scanf"%s",n 。system"cls" 。bt 。whilep.=NULLifstrcmpn,p->name=0可编辑资料 - - - 欢迎下载精品名师归纳总结putp 。fori=0 。i<KM 。i+zi+=atofp->cji。j+ 。ifj%Y=0ifj.=0printf"-"。ifKM<8fori=0 。i<KM+1 。i+printf"-"。printf"n"。 elsefori=0 。i<KM+1 。i+printf"-"。printf" 按任意键连续 " 。getch 。system"cls" 。bt 。 p=p->next 。ifx=3printf" 按年龄搜寻 " 。printf"nn年龄范畴 :" 。scanf"%s",a1 。scanf"%s",a2 。whilepdda2,1=ERROR | pdda1,1=ERROR | atoia1>100 | atoia2>100printf" 输入错误 ." 。printf"nn年龄范畴 :" 。scanf"%s",a1 。scanf"%s",a2 。ifatofa1>atofa2strcpytmp,a1 。strcpya1,a2 。strcpya2,tmp 。system"cls" 。bt 。whilepifatoip->age>=atoia1ifatoip->age<=atoia2putp 。fori=0 。i<KM 。i+zi+=atofp->cji。j+ 。ifj%Y=0 ifj.=0printf"-"。ifKM<8fori=0 。i<KM+1 。 i+printf"-"。printf"n"。elsefori=0 。i<KM+1 。 i+printf"-"。printf" 按任意键连续 "。getch 。system"cls" 。bt 。可编辑资料 - - - 欢迎下载精品名师归纳总结p=p->next 。ifx=4printf" 按性别搜寻 nn1. 男 2.女nn 性别 :" 。t=getch 。ift='1'strcpys,"男"。else ift='2'strcpys," 女" 。else strcpys,"男" 。system"cls" 。bt 。whilepifstrcmps,p->sex=0putp 。fori=0 。i<KM 。i+zi+=atofp->cji。j+ 。ifj%Y=0ifj.=0printf"-"。ifKM<8fori=0 。i<KM+1 。i+printf"-"。printf"n"。elsefori=0 。i<KM+1 。i+printf"-"。printf" 按任意键连续 " 。getch 。system"cls" 。bt 。p=p->next 。ifx=5printf" 按成果搜寻 " 。fori=0 。i<KM 。i+ifi%4=0printf"nn"。printf"%d.%-5s ",i+1,kmi。printf"nn选择科目 :" 。scanf"%s",k 。whileatoik>KM|atoik<=0system"cls" 。 m2。printf" 超出范畴 ." 。fori=0 。 i<KM 。 i+ifi%4=0printf"nn"。可编辑资料 - - - 欢迎下载精品名师归纳总结printf"%d.%-5s ",i+1,kmi。printf"nn选择科目 :" 。scanf"%s",k 。printf"n%s成果范畴 :",kmatoik-1。scanf"%s",c1 。scanf"%s",c2 。whilepddc2,2=ERROR | pddc1,2=ERROR | atofc2>100 | atofc1>100printf" 输入错误 ." 。printf"n成果范畴 :"。scanf"%s",c1 。scanf"%s",c2 。ifatofc1>atofc2strcpytmp,c1 。strcpyc1,c2 。strcpyc2,tmp 。system"cls" 。bt 。whilepifatofp->cjatoik-1>=atofc1ifatofp->cjatoik-1<=atofc2putp 。fori=0 。i<KM 。i+zi+=atofp->cji。j+ 。ifj%Y=0ifj.=0printf"-"。ifKM<8fori=0 。i<KM+1 。 i+printf"-"。printf"n"。elsefori=0 。i<KM+1 。 i+printf"-"。printf" 按任意键连续 "。getch 。system"cls" 。bt 。p=p->next 。printf"-"。ifj>0可编辑资料 - - - 欢迎下载精品名师归纳总结ifKM<8fori=0 。 i<KM+1 。i+printf"-"。printf"n" 。elsefori=0 。 i<KM+1 。i+printf"-"。printf" 共有 %d 人t",j 。printf" 平均成果 : " 。fori=0 。i<KM 。i+zi/=j。ifzi<10.0 printf"%1.2f ",zi。else printf"%2.2f ",zi。 zpj+=zi 。zpj/=KM 。printf"%2.2fn",zpj。elsesystem"cls" 。m1 。printf"n未找到数据 ." 。getch 。/* 逆序表 */void L_convertLinkList headLinkList s=head 。LinkList p1=LinkListmallocsizeofstruct LNode 。LinkList p2=LinkListmallocsizeofstruct LNode 。LinkList p3=LinkListmallocsizeofstruct LNode 。p1=s->next 。p2=p1->next 。p3=p2->next 。p1->next=NULL。whilep3->nextp2->next=p1 。p1=p2 。p2=p3 。p3=p3->next 。p2->next=p1 。p3->next=p2 。s->next=p3 。head=s 。/判定错误int pdLinkList p,int q,int hint i,x,y=0 。ifq=1x=strlenp->age 。可编辑资料 - - - 欢迎下载精品名师归纳总结fori=0 。i<x 。i+ifp->agei>57|p->agei<48return ERROR。ifq=2x=strlenp->cjh 。fori=0 。i<x 。i+ifp->cjhi=46y+。ifp->cjhi>57|p->cjhi<46|p->cjhi=47|y=2return ERROR。return OK 。/* 修改成果 */LinkList editLinkList head,char D8int i=0 。char s,x,z1 。LinkList p=head->next。whileatoip->ID.=atoiDp=p->next 。if.pprintf" 未找到数据 .n" 。getch。return head 。whilei>=0system"cls" 。m1 。printf"1. 修改基本信息2.修改成果 0.退出 n 请选择 :" 。x=getch 。ifx='0'return head。else ifx='1'system"cls" 。 m1。whilexprintf"n基本信息 : 1.姓名 :%s 2.性别 :%s 3.年龄 :%s n 请选择 :",p->name,p->sex,p->age 。x=getch 。ifx='0'break 。ifx='1'printf"n输入新的姓名 :"。getsp->name 。getsp->name。whilepddp->name,1=OK|strlenp->name>7printf" 输入错误 .n 重新输入姓名 :" 。getsp->name 。else ifx='2'可编辑资料 - - - 欢迎下载精品名师归纳总结printf"nnt1. 男 2.女 nn 请选择 :" 。s=getch 。ifs='1'printf" 男" 。strcpyp->sex," 男"。else ifs='2'printf" 女" 。strcpyp->sex," 女"。else strcpyp->sex," 男" 。else ifx='3'printf"n输入新的年龄 :"。scanf"%s",p->age 。whileatofp->age.=atoip->age|atofp->age<1|atofp->age>100|pdp,1,0=ERRORprintf" 输入错误,重新输入年龄:" 。scanf"%s",p->age 。ifx='1'|x='2'|x='3'printf"n修改成功 _" 。getch 。break 。continue 。else ifx='2'system"cls" 。 m1。printf" 科目设置 :n" 。fori=0 。 i<KM 。 i+ifi%4=0printf"nn"。printf" %d.%-5s %g",i+1,kmi,atofp->cji。printf"nn选择序号 :" 。scanf"%s",z 。ifatoiz=0continue。whileatoiz>KM | atoiz<1printf" 输入错误 ,重新输入 :" 。scanf

    注意事项

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

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




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

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

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

    收起
    展开