您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言课程设计题目及相关要求
1C语言课程设计题目及相关要求说明1.选题考虑到时间比较紧张,同时也锻炼同学之间的团结协作能力,采用5人一组选作一题。课程设计题目见附2。分组可采用自由组合或按学号顺序安排,由各班学习委员妥善解决,分组名单下星期二(6月7日)交给任课教师,以便下达课程设计任务书。2.设计时间2011年6月5日~2011年6月26日,为期3周。3.课程设计要求①完成相应课程设计题目的基本功能;②撰写课程设计报告③报告封面及内容要求见附1;④报告格式要求:㈠标题课程设计题目黑体小二(居中)㈢正文1、报告正文部分主要包括:问题要求及任务描述、解决问题的主要思路和方法、程序实现、测试和小结。2、报告正文打印要求第一层次题序和标题用小三号黑体字;第二层次题序和标题用四号黑体字;2第三层次题序和标题用小四号黑体字;正文用宋体小四号(英文用新罗马体12号);参考文献宋体五号。3、报告页面设置:页码一律用小5号字标明;正文采用23磅行距,标准字符间距,上边距25mm,下边距25mm,左边距28mm,右边距20mm。3附件1:荆楚理工学院课程设计成果学院:_________________班级:学生姓名:学号:设计地点(单位)__________________________设计题目:_______________________________________完成日期:年月日指导教师评语:_____________________________成绩(五级记分制):________________教师签名:_________________________4标题1问题要求及任务描述1.1题目要求在此填写你选择的题目。1.2主要任务具体细化,例如主要功能,注意:在此标识出自己的主要工作2解决问题的主要思路和方法2.1关键问题关键问题描述2.2拟采用解决问题的方法在此陈述解决问题的思路,准备使用的算法和数据结构等等2.3主要算法和处理流程图关键的数据流程图3程序实现3.1程序实现时应考虑的问题函数调用关系图3.2主要源代码及说明源代码(加注释)4测试4.1测试结果及分析5小结5.1本问题解决方法及程序实现小结总结系统的有缺点等等,对于程序中所参考的部分代码需要加以声明,并说明出处5.2尚未解决的问题及下一步工作思路对于程序中未能实现,或有待于进一步完善的部分需要加以说明。6参考文献例如:[1]严蔚敏.数据结构.清华大学.2004.115附2C语言课程设计参考题目计算机学院二零一一年六月6一、工资管理系统1、需求分析工资信息存放在文件中,提供文件的输入、输出等操作;要实现浏览功能,提供显示、排序操作;而查询功能要求实现查找操作;另外还应该提供键盘式选择菜单以实现功能选择。2、总体设计整个系统可以分为信息输入、信息添加、信息浏览、信息排序、信息查询和信息统计模块。3、详细设计工资信息采用结构体数组:StructSalary_Info{intCard_No;//工资卡号Charname[20];//姓名intmonth;//月份floatInit_Salary;//应发工资floatWater_Rate;//水费floatElectric_Rate;//电费floattax;//税金floatFinal_Salary;//实发工资}SI[MAX];//SI[MAX]中每个数组元素对应一个职工工资信息(1)主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。(2)输入模块按照工资卡号、姓名、月份、应发工资、水费、电费的顺序输入信息,税金和实发工资根据输入的信息进行计算得到,这些信息被录入到文件中。文件操作函数:fopen,fwrite,fclose.税金的计算:if(应发工资=800)税金=0;elseif(应发工资800&&应发工资=1400)税金=(应发工资-800)*5%;elseif(应发工资1400)税金=(应发工资-1400)*10%;实发工资=应发工资-水费-电费-税金。(3)添加模块增加新的职工工资信息,从键盘输入并逐条写到原来的输入文件中,采用追加而不是覆盖的方式(以”ab”方式打开文件)。(4)浏览模块分屏显示职工工资信息,可以指定10个1屏,按任意键显示下一屏。通过菜单选择按照工资卡号还是姓名浏览。如果按照卡号浏览,则显示的记录按照卡号升序输出;按照姓名浏览则按照字典序输出(调用排序模块的排序功能)。(5)排序模块排序模块提供菜单选择,实现按照工资卡号升序、实发工资降序以及姓名字典序排序。排序方法可以选择冒泡排序、插入排序、选择排序等。7(6)查询模块实现按照工资卡号和姓名的查询,采用基本的查找方法即可。(7)统计模块输入起止月份,按照职工卡号和月份查询记录,把起止月份之间的实发工资金额累加。附加:思考在数据输入及添加模块尾部添加排序功能,使得文件中的数据按照卡号排序。这样在查询模块和统计模块可以采用二分查找以提高效率。二、校际运动会管理系统1、需求分析要记录比赛结果,可以查看参赛学校的信息和比赛项目信息,因而要实现文件的输入和输出功能;用户可以查询各个学校的比赛成绩,查看参赛学校信息和比赛项目信息等,因而要提供查找和显示功能;另外还应该提供键盘式选择菜单以实现功能选择。2、总体设计系统被设计为信息输入模块、比赛结果录入模块和查询模块三个模块。3、详细设计数据结构采用结构体数组,包括学校、项目、运动员三个结构体。Structathlete{Charname[20];//姓名Intage;//年龄CharFrom[20];//来自学校}Athlete;//运动员结构体Structitem{Charname[20];//项目名Int*weight;//在运行时根据用户的输入动态分配空间(各项目名次取法不同,weight所指空间依次存放第一名得分、第二名得分等)Athlete*player;//指向获奖运动员信息的指针}Item;//项目结构体Structuniversity{Charname[20];//学校名Item*item;//竞赛项目指针,根据用户输入动态分配空间Intscore;//学校得分}Uni;//学校结构体ItemTotalItem[ItemNum];//项目结构体数组UniAllUni[UniNum];//学校结构体数组(1)主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。(2)信息输入模块输入参赛学校总数,M-男子参赛项目数,W-女子参赛项目数。把参赛学校信息和项目信息以及运动员信息录入文件(fwrite),建立三个文件。例如第i个项目:8Scanf(“%s”,TotalItem[i].name);//输入项目名Ch=Getchar();//通过输入1,2,3来选择项目名次取法Switch(ch){Case‘1’:n=5;break;Case‘2’:n=3;break;Case‘3’:printf(“取前几名?”,&n);break;Default:break;}TotalItem[i].weight=newint[n];TotalItem[i].athlete=NULL;//指向获奖运动员信息,初始化为空然后写入文件:fp=fopen(“item.txt”,”wb”);fwrite(&TotalItem[i],sizeof(Item),1,fp);学校信息和运动员信息的录入与此类似。(2)比赛结果录入模块通过菜单选择进入比赛结果录入模块,更改TotalItem[i].athlete的值,并把获奖名单保存到项目文件中。项目文件格式为:项目名项目权值(按照第一名、第二名…给出权值)获奖运动员信息(按照第一名、第二名…给出)(3)查找模块查找学校信息文件,生成团体总分报表;用基本查找算法查询参赛学校信息(按照校名查找)或者比赛项目信息(按照项目名)。三、学生学籍信息管理系统设计1、需求分析学生基本信息、学生成绩基本信息要存入文件当中,因而要提供文件的输入输出操作;查询功能要求提供查找和显示操作;删除功能要求实现删除操作;排序功能要求实现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。2、总体设计整个系统可以设计为数据录入模块、数据查询模块、数据删除模块和数据排序模块。3、详细设计设计学生基本信息和学生成绩基本信息结构体数组。Struct{intstuNo;//学号charname[20];//姓名charsex[2];//性别intdomNum;//宿舍号inttel;//电话号码}StuInfo;//学生基本信息结构体Struct{intstuNo;//学号charcourseNo;//课程编号charcourseName;//课程名称9intcreditHour;//学分InttriGrade;//平时成绩IntexperiGrade;//实验成绩IntexamGrade;//卷面成绩FloattotalGrade;//综合成绩FloatfinalCreHour;//实得学分}StuGraInfo;//学生成绩基本信息结构体(1)数据录入模块学生基本信息文件可以在磁盘建立,采用写文件方式录入学生成绩基本信息。综合成绩和实得学分通过计算得到。(2)查询模块通过菜单选择查询功能,再选择学生基本情况查询和成绩查询,若选择前者,再通过菜单选择学号、姓名或宿舍号码,按照基本查找算法查找A.TXT,然后把查找结果输出若选择后者,则先在A.TXT中查找学号对应的姓名,再在B.TXT中查找该学生的课程情况,并统计科目和实得总学分,输出结果。(fread和查找算法的应用)(3)删除模块通过菜单选择删除学生的功能,输入要删除学生的学号,则分别在A.TXT和B.TXT中查找该生信息,删除之;或者输入学生的姓名,先在A.TXT中得到该生的学号,删除该生信息,再在B.TXT中删除该学号对应的信息。注意:C语言中没有直接删除信息的函数,需要自己实现,可以采取读出数据,判断数据(如果不删除,则进入缓冲区,否则删除),写入数据(把缓冲区中的数据写入文件)的步骤进行。(4)排序模块通过菜单选择排序依据,采用排序算法(冒泡、插入、选择等)对数据进行排序并输出结果。首先要读文件(fread)。四、一种简单的英文词典排版系统实现1、需求分析运行结果以文本形式存储,因而要提供文件的输入输出操作;检查重复单词要提供查找操作;按A-Z的顺序排版,要提供排序操作;添加新单词并重新排版要提供插入操作。另外通过键盘式菜单实现功能选择。2、总体设计整个系统被设计为单词录入模块、文件存储模块和单词浏览模块。其中单词录入模块要完成输入单词、检查是否重复、排序操作。文件存储模块把存放单词的数组中的数据写入文件。单词浏览模块完成英文词典的输出,即文件的输出操作。3、详细设计数据结构采用指针数组或二维数组:char*dictionary[N];或chardictionary[N][20]。其中N是宏定义#defineN100(表示单词个数)(1)单词录入模块输入一个单词,存放在一个临时字符数组中,以空格或回车表示单词的结束(这也是默认操作),然后换行输出刚刚输入的单词。采用插入排序算法的思想把该单词插入单词数组中,不同的是如果两个单词相同则不插入。(2)文件存储模块采用fwrite或fprintf把单词数组输入到文件中。(3)单词浏览模块10采用fread或fscanf把单词从文件中读出,然后输出。五、一担挑游戏1、数据结构数据结构定义为二位数组:charchess_board[3][3];元素初始化为’’。2、算法流程Main(){charchess_board[3][3]={‘’};//定义棋盘,并初始化为空;while(未结束){输出棋盘;//用flag标志移动方,0表示计算机走棋,1表示对弈者走棋If(flag==0)//计算机走棋{扫描棋盘矩阵;If(存在空单元){置该单元为’O’;If(有三个’O’在一条线上){输出棋盘矩阵;输出“计算机赢!”;退出程序;}Flag=1;//下一步轮到对弈者走棋}Else报告
本文标题:C语言课程设计题目及相关要求
链接地址:https://www.777doc.com/doc-3818346 .html