《C语言程序设计基础》课程设计报告(包含源文件和源代码)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1为了更好的帮助同学们学习,此文档还包含全部的源文件和源代码,有需要的同学请进本作者的百度空间!《程序设计基础》课程设计报告题目:学院教学信息管理系统日期:2013.5.21班级:计算机科学与技术1202班学号:************姓名:******一.设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计基础(C语言)》课程后进行的一次全面的综合练习。本课程设计的目的:1.巩固和加深学生对C语言课程的基本知识的理解和掌握2.掌握C语言编程和程序调试的基本技能3.利用C语言进行基本的软件设计4.掌握书写程序设计说明文档的能力5.提高运用C语言解决实际问题的能力二.课程设计任务书题目:学院教学信息管理系统学院教学信息管理系统,每一条记录包括一位教师的职工号、姓名、职称、性别、3门课程教学效果、综合评分。系统要求实现以下功能:1、输入:输入每一位教师记录,将其信息写入文件中。2、显示:显示每位教师记录。3、排序:按职工号或教学效果综合评分进行排序,并显示。4、查找:完成按姓名或职工号查找教师的相关记录,并显示。分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。2、建立一个文件,将每位教师的相关(教学)信息写入文件中并能显示于屏幕上。23、完成排序(按职工号、姓名、职称等)、查找等功能。要求:1、用C语言实现程序设计;2、利用结构体数组或者链表实现教师信息的数据结构设计;3、系统的各个功能模块要求用函数实现;4、界面友好(良好的人机交互),程序加必要的注释。三.系统设计方案用到数据结构的定义:在此程序中用到了结构体的定义,结构体数组的定义以及变量的申明,还用到了外部函数的申明及调用。在主函数中,输出教师信息的函数是贯穿在程序始终的,例如要实现教师的排序这一模块时,排完序后就需要用输出信息的函数来输出排序后的信息。这就得需要多个函数共同实现这一个模块。此程序的流程:由于系统需要实现返回主界面的功能,那么在程序的开头就需要使用do....while语句,在do....while语句内首先将系统的主界面写下来,然后又要根据不同的按键实现排序、查找、结束等功能,这就必须使用switch语句来实现,由于实现一个功能后,还需要跳出此功能进入下一个功能,这样就要需要使用while语句来循环,直到用户需要返回主界面时就设定一个条件跳出while语句。程序流程图:3四.调试分析(1)遇到的问题如何解决:在调试程序的过程中,遇到的问题有些是我和老师交流过才解决的,但大部分都是自己通过思考并仔细推敲书本的程序后才解决了调试过程中出现的问题。(2)程序算法的改进设想;我觉得在两个数进行交换的算法中,应该有更简便的算法。(3)经验:通过这次课程设计,我知道了读写文件的方法,还知道了一些细节问题,如:如果要在键盘中输入一个字符时,需要以%1s的格式进行输入,这样就避免了输入多个字符。体会:在调试程序的过程中,我觉得自己要善于分析程序的问题所在,尽量做到自己独立处理问题的能力。同时在调试程序的过程中,要有不厌其烦的精神,出现问题后不要感到失落,要相信自己一定能攻破难关。五.用户使用说明操作步骤:一、开始此时要按下Y或y键才能进入系统,如果输入错误时,系统会有提示,并要求重新输入。4二、输入信息进入此界面时,系统首先提示要输入教师的个数,输入后再输入教师的具体信息,此时的界面如下图:三、具体信息进入此界面后,系统会提示用户需要按下哪些键才能执行相应的功能,如果输入错误时,系统会有提示,并要求重新输入,此时的界面如下:5四、排序在进入此界面之前,系统会提示用户想要用哪种方式对教师进行排序,如果选择y或Y时就会出现以下的界面(即以总分的方式对教师进行排序),当排序完成后,系统会提示用户是否继续执行此功能,用户按系统要求按下指定的键后,系统就会出现相应的功能。6五、查找在进入此界面之前,系统会提示用户想要用哪种方式对教师进行查找,如果选择y或Y时就会出现以下的界面(即以姓名的方式来查找教师的相关信息),当查找完成后,系统会提示用户是否继续执行此功能,用户按系统要求按下指定的键后,系统就会出现相应的功能。六、结束7这是结束系统的界面,按下系统指定的键后就可以进入此界面。六.测试结果(1).输入n个教师的信息(n由用户输入):(2).输出n个教师的信息(n由用户输入):8(3).根据教学效果综合评分排序:(4).根据职工号进行排序:9(5).根据姓名进行查找,而且如果当姓名输入错误时会有提示!(6).根据职工号进行查找,而且如果当职工号输入错误时会有提示!10(7).如果在系统开始后,没有按指定的键输入数据时,系统就不会去实现相应的功能此时系统会有提示!并要求重新输入。11七.附录(1).主函数#includestdio.h#includeconio.h#includestring.hstructteacher{intnum;charname[30];charcompetent[30];charsex[4];floatscore[3];floatsum;};externvoidInPut(structteacher*p,intn);12externvoidSumofScores(structteacher*p,intn);externvoidOutPut(structteacher*p,intn);externvoidReorderbyScore(structteacher*p,intn);externvoidReorderbyNum(structteacher*p,intn);externcharInputInformation(void);externvoidSeacherbyName(structteacher*p,charteacher[],intn);externvoidSeacherbyNum(structteacher*p,intteacher2,intn);externvoidFoutPut(structteacher*p,intn);intmain(){intflag,n;intteacher2;charc,selectnum,teacher[10];structteachertea[80];do{flag=1;/*以下的一部分是系统开始的界面*/printf(\n\n\n\n\n);printf(\t\t*************************************************\n);printf(\t\t*);printf(\t\t\t\t\t\t*\n);printf(\t\t*);printf(\t\t\t\t\t\t*\n);printf(\t\t*);printf(\t\t\t\t\t\t*\n);printf(\t\t*welcometotheteachers'educationalsystem\t*\n);printf(\t\t*);printf(\t\t\t\t\t\t*\n);printf(\t\t*);printf(\t\t\t\t\t\t*\n);printf(\t\t*);printf(\t\t\t\t\t\t*\n);printf(\t\t*************************************************\n);printf(\t\t\tpleaseinputyorYtocontinue....);do{scanf(%1s,&c);if(c!='y'&&c!='Y')/*输入Y或y才能进入系统*/{printf(Youputerror!Pleaseinputagain!\n);}}while(c!='y'&&c!='Y');system(cls);/*清屏*/13printf(PleaseinputthenumberofTeachers:\n);scanf(%d,&n);printf(Pleaseinput%dteachers'information\n,n);printf(Num\tName\tCompetentSex\tMathEnglishComputer\n);InPut(tea,n);/*调用输入数据的函数,用来输入数据并保存在文件中*/SumofScores(tea,n);/*调用计算综合评分的函数,用来计算每个教师的综合评分*/system(cls);/*清屏*/printf(\t\t@@@THETEACHERS'INFORMATION@@@\n);printf(******************************************************************************\n);FoutPut(tea,n);/*调用输出的函数,用来读出文件的信息来把每个教师的信息都显示在屏幕上*/printf(******************************************************************************\n\n);selectnum=InputInformation();/*用来提示用户,系统需要按哪些键才能实现相应的功能*/while(flag){switch(selectnum){case'a':{system(cls);/*清屏*/do{printf(Doyouwanttoorderteachers'informationbyscores?Yes,pleaseinputyorY.elseorderitbycourse.\n);/*提示用户,想要用哪种方法对教师进行排序*/scanf(%1s,&c);if(c=='y'||c=='Y'){system(cls);/*清屏*/printf(\t\t\t@@@@ORDEREDBYSUM@@@\n);printf(******************************************************************************\n);ReorderbyScore(tea,n);/*调用用综合评分排序的函数,用来给教师排序*/OutPut(tea,n);/*调用输出的函数,用来把教师的信息显示出来*/14printf(******************************************************************************\n\n);}else{system(cls);/*清屏*/printf(\t\t\t@@@@ORDEREDBYNUM@@@\n);printf(******************************************************************************\n);ReorderbyNum(tea,n);/*调用用职工号来排序的函数,用来给教师排序*/OutPut(tea,n);/*调用输出的函数,用来把教师的信息显示出来*/printf(******************************************************************************\n\n);}printf(Doyouwanttocontinue.Yes,pleaseinputyorY.else,inputnorN.\n);/*提示用户,是否还要继续执行此功能*/scanf(%1s,&c);}while(c=='y'||c=='Y');selectnum=InputInformation();/*调用此函数用来提示用户,系统需要按哪些键才能实现相应的功能*/break;}case'b':{system(cls);/*清屏*/do{printf(Doyouwanttoseacherteachers'informationbyname?Yes,pleaseinputyorY.

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功