您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > C语言程序设计实训指导书
C语言程序设计实训指导书一、课程基本知识1、实训目的:通过实训,学会为涉及的数据定义适当的结构体,使用结构体设计;另一方面,通过实训,复习巩固二进制磁盘文件的建立,使用结构体数组作磁盘文件输入输出的中介,使用二进制磁盘文件存盘,增强数据抽象能力和程序设计的能力,为后续课程,特别是软件编码打下坚实的知识基础。课程设计主要目的:C语言程序设计课程实训是三年制高职计算机应用技术、计算机网络技术、软件技术专业的重要的实训环节之一。教育目标是在学生学习了C语言程序设计的基本知识、基本理论的基础上,通过综合实训,培养学生的动手能力,培养学生学习新知识的能力,提高学生分析问题和解决问题的综合能力,培养学生的团队合作精神,为今后从事专业工作打下必要的基础。知识教学目标:(1)掌握模块化程序设计的方法;(2)进一步学习和掌握C语言中的文件操作函数及其应用;(3)学习和掌握C语言中的图形处理函数及其应用能力培养目标:(1)能正确分析现实生活中的问题,并抽象成数学模型,进行模块分析和编程;(2)在程序调试过程中,能根据运行环境给出的错误提示,正确解决程序中的语法错误;(3)在程序调试过程中,能根据运行结果,运用相应的手段,正确地找出并解决程序中的逻辑错误;(4)在实训过程中,适当进行小组分工,培养团队谐调和团队合作的能力;(5)提交课程实训任务书,培养专业文档书写的能力2、实训内容:自行设计学生成绩管理系统或工厂职工工资管理系统、小型通讯录、机房收费管理系统、典型算法集成、RSA加密、制作表格、菜单的实现、动画的制作3、实训所用设施:PC机、TurboC、VC6.0语言编辑、编译运行工具等。4、实训任务及要求:根据提供的实习题目,认真完成软件设计的全部过程,并以最终软件设计成果来证明其独立完成实际任务的能力,从而,反映出理解和运用C程序知识的水平和能力,最后完成软件设计和程序调试并提交文档:课程实训报告书,报告书中包含设计的算法及部分程序代码。二、实训基本操作方法1、按照系统用户手册及文档规范要求进行操作,养成查阅手册、文档的良好习惯;2、对特殊疑难问题采用讨论、协作等方式进行解决,有意识地训练团队合作意识;3、实训报告应多包含在实训过程中出现的错误及解决方法。三、实训项目1、请自行设计学生成绩管理系统或工厂职工工资管理系统(1)使用结构体数组作磁盘文件输入输出的中介学生成绩信息结构:学生编号,姓名,三门成绩,总分,平均分要求在子函数中分别解决学生编号,姓名,三门成绩输入和求总分,平均分问题等项功能,写盘,读盘,按总分排序,再按总分排序后的结构体数组写盘。(2)使用switch()多分支语句作管理系统用户界面设计:主调程序范本如下:#include“fa1.c”#include”fa2.c”#include”fa3.c”voidmain(){intk,s=0;while(s!=1){aa:printf(“pleaseselect:1.createfile2.readfile\n”);printf(“3.appendfile4.exit\n”);scanf(“%d”,&k);switch(k){case1:creat();gotoaa;case2:wread();gotoaa;case3:wappe();gotoaa;case4:s=1;}}}(3)使用二进制磁盘文件存盘:使用fwrite(),fread()函数(4)对数据管理应包括:建立数据文件、增加数据、修改数据、查询数据、对数据排序和屏幕显示数据等功能。该系统应是选单式主控模块和子模块的程序调用结构。该系统应在VC++6.0版本系统环境下完成,以便提供汉字提示界面。亦可在Turboc2.0下完成。该系统应包括学生成绩信息文件的建立,写盘,读盘并显示,查找最高总分等项功能。2、小型通讯录每个用户的信息包括姓名和电话号码两部分,要求能根据菜单提示,完成以下功能:(1)将用户信息加入到不同的组中,即写入不同的文件(2)可以按姓名或电话的方式查询用户信息(注意:该题可以自由发挥其功能,即可以用数组实现,也可以用链表实现)示例代码:#includestdio.hstructaddress{/*结点的结构*/charname[20];charstreet[20];charcity[10];charQQ[10];structaddress*next;structaddress*prior;}jilu;structaddress*start;/*第一个进入列表的结点*/structaddress*last;/*最后一个进入列表的结点*/voidenter();voiddisplay();voidsearch();voidsave();voidload();voidlist();structaddress*find(char*name);structaddress*store(structaddress*,structaddress*);main(){start=last=NULL;load();for(;;){/*无限循环可不断回到主菜单*/switch(menu()){case1:enter();break;case2:delete();break;case3:list();break;case4:search();break;case5:save();break;case6:exit(0);}}}menu()/*菜单函数*/{charc;printf(1.Enter\n);printf(2.Delete\n);printf(3.List\n);printf(4.Search\n);printf(5.Save\n);printf(6.Quit\n);do{printf(\nEnteryouchoice:);c=getche();}while(c'0'||c'6');returnc-48;}voidenter(){structaddress*info;for(;;){info=(structaddress*)malloc(sizeof(jilu));if(!info){printf(\noutofmemory);return;}inputs(\nentername:,info-name,19);if(!info-name[0])break;inputs(enterstreet:,info-street,19);inputs(entercity:,info-city,9);inputs(enterQQ:,info-QQ,9);start=store(info,start);}}inputs(char*AA,char*s,intWW){charp[255];do{printf(AA);gets(p);if(strlen(p)WW)printf(\ntoolong\n);}while(strlen(p)WW);strcpy(s,p);}structaddress*store(structaddress*i,structaddress*top){structaddress*old,*p;if(last==NULL){i-next=NULL;i-prior=NULL;last=i;returni;}p=top;old=NULL;while(p){if(strcmp(p-name,i-name)0){old=p;p=p-next;}else{if(p-prior){p-prior-next=i;i-next=p;i-prior=p-prior;p-prior=i;returntop;}i-next=p;i-prior=NULL;p-prior=i;returni;}}old-next=i;i-next=NULL;i-prior=old;last=i;returnstart;}delete(){structaddress*info;chars[80];printf(entername:);gets(s);info=find(s);/*调用查找函数*/if(info){if(start==info){start=info-next;if(start)start-prior=NULL;elselast=NULL;}else{info-prior-next=info-next;if(info!=last)info-prior-next=info-prior;elselast=info-prior;}free(info);}}structaddress*find(char*name)/*查找函数*/{structaddress*info;info=start;while(info){if(!strcmp(name,info-name))returninfo;info=info-next;}printf(namenotfound\n);returnNULL;}voidlist(){structaddress*info;info=start;printf(\n%-20s%-20s%-10s%-10s%-6s\n,name,street,city,QQ);while(info){display(info);info=info-next;}printf(\n\n);}voiddisplay(structaddress*info){printf(%-20s%-20s%-10s%-10s\n,info-name,info-street,info-city,info-QQ);}voidsearch(){charname[40];structaddress*info,*find();printf(enternametofind:);gets(name);info=find(name);if(!info)printf(notfound\n);/*显示函数*/elsedisplay(info);}voidsave(){structaddress*info;FILE*fp;if((fp=fopen(mlist,wb))==NULL){printf(cannotopenfile\n);exit(1);}printf(\nSavingfile\n);info=start;while(info){fwrite(info,sizeof(structaddress),1,fp);info=info-next;}fclose(fp);}voidload(){structaddress*info,*temp=NULL;FILE*fp;if((fp=fopen(mlist,rb))==NULL){printf(cannotopenfile\n);return;}while(start){info=start-next;free(info);start=info;}printf(\nLoadingfile\n);start=(structaddress*)malloc(sizeof(structaddress));if(!start){printf(outofmemory!\n);return;}info=start;while(!feof(fp)){if(1!=fread(info,sizeof(structaddress),1,fp))break;info-next=(structaddress*)malloc(sizeof(structaddress));if(!info-next){printf(outofmemory\n);return;}info-prior=temp;temp=info;info=info-next;}temp-next=NULL;last=temp;start-prior=NULL;fclose(fp);/*关闭文件,释放内存*/}3、机房收费管理系统(1)输入功能:输入若干名学生的学号、班级、姓名、开始上机时间和
本文标题:C语言程序设计实训指导书
链接地址:https://www.777doc.com/doc-3262425 .html