




免费预览已结束,剩余17页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计基础课程设计报告题目:学院教学信息管理系统 日期:2012.5.21班级:计算机应用技术1102班 学号:姓名: 一 设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完程序设计基础(C语言)课程后进行的一次全面的综合练习。本课程设计的目的:1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二课程设计任务书题目:学院教学信息管理系统学院教学信息管理系统,每一条记录包括一位教师的职工号、姓名、职称、性别、3门课程教学效果、综合评分。系统要求实现以下功能:1、输入:输入每一位教师记录,将其信息写入文件中。2、显示:显示每位教师记录。3、排序:按职工号或教学效果综合评分进行排序,并显示。4、查找:完成按姓名或职工号查找教师的相关记录,并显示。分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。2、建立一个文件,将每位教师的相关(教学)信息写入文件中并能显示于屏幕上。3、完成排序(按职工号、姓名、职称等)、查找等功能。要求:1、用C语言实现程序设计;2、利用结构体数组或者链表实现教师信息的数据结构设计;3、系统的各个功能模块要求用函数实现;4、界面友好(良好的人机交互),程序加必要的注释。三系统设计方案用到数据结构的定义:在此程序中用到了结构体的定义,结构体数组的定义以及变量的申明,还用到了外部函数的申明及调用。在主函数中,输出教师信息的函数是贯穿在程序始终的,例如要实现教师的排序这一模块时,排完序后就需要用输出信息的函数来输出排序后的信息。这就得需要多个函数共同实现这一个模块。此程序的流程:由于系统需要实现返回主界面的功能,那么在程序的开头就需要使用do.while语句,在do.while语句内首先将系统的主界面写下来,然后又要根据不同的按键实现排序、查找、结束等功能,这就必须使用switch语句来实现,由于实现一个功能后,还需要跳出此功能进入下一个功能,这样就要需要使用while语句来循环,直到用户需要返回主界面时就设定一个条件跳出while语句。程序流程图 : 四调试分析(1)遇到的问题如何解决:在调试程序的过程中,遇到的问题有些是我和老师交流过才解决的,但大部分都是自己通过思考并仔细推敲书本的程序后才解决了调试过程中出现的问题。(2)程序算法的改进设想;我觉得在两个数进行交换的算法中,应该有更简便的算法。(3)经验:通过这次课程设计,我知道了读写文件的方法,还知道了一些细节问题,如:如果要在键盘中输入一个字符时,需要以%1s的格式进行输入,这样就避免了输入多个字符。 体会:在调试程序的过程中,我觉得自己要善于分析程序的问题所在,尽量做到自己独立处理问题的能力。同时在调试程序的过程中,要有不厌其烦的精神,出现问题后不要感到失落,要相信自己一定能攻破难关。五 用户使用说明操作步骤:一、 开始此时要按下Y或y键才能进入系统,如果输入错误时,系统会有提示,并要求重新输入。二、输入信息进入此界面时,系统首先提示要输入教师的个数,输入后再输入教师的具体信息,此时的界面如下图:三、具体信息 进入此界面后,系统会提示用户需要按下哪些键才能执行相应的功能,如果输入错误时,系统会有提示,并要求重新输入,此时的界面如下:四、排序 在进入此界面之前,系统会提示用户想要用哪种方式对教师进行排序,如果选择y或Y时就会出现以下的界面(即以总分的方式对教师进行排序),当排序完成后,系统会提示用户是否继续执行此功能,用户按系统要求按下指定的键后,系统就会出现相应的功能。五、查找在进入此界面之前,系统会提示用户想要用哪种方式对教师进行查找,如果选择y或Y时就会出现以下的界面(即以姓名的方式来查找教师的相关信息),当查找完成后,系统会提示用户是否继续执行此功能,用户按系统要求按下指定的键后,系统就会出现相应的功能。六、结束 这是结束系统的界面,按下系统指定的键后就可以进入此界面。六测试结果(1).输入n个教师的信息(n由用户输入):(2).输出n个教师的信息(n由用户输入): (3).根据教学效果综合评分排序:(4).根据职工号进行排序:(5).根据姓名进行查找,而且如果当姓名输入错误时会有提示!(6).根据职工号进行查找,而且如果当职工号输入错误时会有提示!(7).如果在系统开始后,没有按指定的键输入数据时,系统就不会去实现相应的功能此时系统会有提示!并要求重新输入。七附录(1).主函数#include#include#includestruct teacherint num;char name30;char competent30;char sex4;float score3;float sum;extern void InPut(struct teacher *p,int n);extern void SumofScores(struct teacher *p,int n);extern void OutPut(struct teacher *p,int n);extern void ReorderbyScore(struct teacher *p,int n);extern void ReorderbyNum(struct teacher *p,int n);extern char InputInformation(void);extern void SeacherbyName(struct teacher *p,char teacher,int n);extern void SeacherbyNum(struct teacher *p,int teacher2,int n);extern void FoutPut(struct teacher *p,int n);int main()int flag,n;int teacher2;char c,selectnum,teacher10;struct teacher tea80;doflag=1; /*以下的一部分是系统开始的界面*/printf(nnnnn);printf(tt*n);printf(tt*);printf(tttttt*n);printf(tt*);printf(tttttt*n);printf(tt*);printf(tttttt*n);printf(tt* welcome to the teachers educational systemt*n);printf(tt*);printf(tttttt*n);printf(tt*);printf(tttttt*n);printf(tt*);printf(tttttt*n);printf(tt*n);printf(tttplease input y or Y to continue.);doscanf(%1s,&c);if(c!=y&c!=Y) /*输入Y或y才能进入系统*/printf(You put error!Please input again!n);while(c!=y&c!=Y);system(cls); /*清屏*/ printf(Please input the number of Teachers:n);scanf(%d,&n);printf(Please input %d teachers informationn,n);printf(NumtNametCompetent SextMath English Computern);InPut(tea,n); /*调用输入数据的函数,用来输入数据并保存在文件中*/SumofScores(tea,n); /*调用计算综合评分的函数,用来计算每个教师的综合评分*/system(cls); /*清屏*/ printf(tt THE TEACHERS INFORMATION n);printf(*n);FoutPut(tea,n);/*调用输出的函数,用来读出文件的信息来把每个教师的信息都显示在屏幕上*/printf(*nn);selectnum=InputInformation(); /*用来提示用户,系统需要按哪些键才能实现相应的功能*/while(flag)switch(selectnum) case a:system(cls);/*清屏*/ doprintf(Do you want to order teachers information by scores?Yes,please input y or Y.else order it by course.n); /*提示用户,想要用哪种方法对教师进行排序*/scanf(%1s,&c); if(c=y|c=Y)system(cls); /*清屏*/ printf(ttt ORDERED BY SUM n);printf(*n);ReorderbyScore(tea,n);/*调用用综合评分排序的函数,用来给教师排序*/OutPut(tea,n); /*调用输出的函数,用来把教师的信息显示出来*/printf(*nn);elsesystem(cls); /*清屏*/ printf(ttt ORDERED BY NUM n);printf(*n);ReorderbyNum(tea,n);/* 调用用职工号来排序的函数,用来给教师排序*/OutPut(tea,n); /*调用输出的函数,用来把教师的信息显示出来*/printf(*nn);printf(Do you want to continue.Yes,please input y or Y.else,input n or N.n); /*提示用户,是否还要继续执行此功能*/scanf(%1s,&c); while(c=y|c=Y);selectnum=InputInformation(); /*调用此函数用来提示用户,系统需要按哪些键才能实现相应的功能*/break;case b:system(cls); /*清屏*/ doprintf(Do you want to seacher teachers information by name?Yes,please input y or Y.else seacher it by course.n);/*提示用户,想要用哪种方法来查找教师的相关信息*/scanf(%1s,&c); if(c=y|c=Y)printf(Please input the name who you want to find:n);scanf(%s,teacher);SeacherbyName(tea,teacher,n); /*调用此函数,通过用姓名的方式来查找相应的教师*/elseprintf(Please input the teachers num that you want to know:n);scanf(%d,&teacher2);SeacherbyNum(tea,teacher2,n); /*调用此函数,通过用职工号的方式来查找相应的教师*/printf(Do you want to continun?Yes,please input Y or y.No,please input N.n);/*提示用户,是否还要继续执行此功能*/scanf(%s,&c); printf(*nn);printf(*nn);while(c=y|c=Y);selectnum=InputInformation(); /*调用此函数用来提示用户,系统需要按哪些键才能实现相应的功能*/break;case c:system(cls); /*清屏*/ flag=0; selectnum=c;break;case d:system(cls); /*清屏*/ /*以下的一部分是系统结束的界面*/printf(nnn);printf(t n);printf(t ttttttt n);printf(t t* Thanking for you useing my system! *t n);printf(t t *ttttt*t n);printf(t t *tttt *t n);printf(t t *tttt *tt n);printf(t t *t GOOD BYE!t *t t n);printf(t tt *ttt *tt n);printf(t tt *tt *tt t n);printf(t ttt*t *ttt n);printf(t ttt *tttt n);printf(t tttt made by LiYan!t n);printf(t ttttttt n);printf(t n);flag=0;break;default:doprintf(You has input an invalid select!Please input again!n);/*提示用户,输入错误,需要重新输入*/scanf(%1s,&selectnum); while(selectnum!=a&selectnum!=b&selectnum!=c&selectnum!=d); while(selectnum=c); return 0;(2).调用用来输入数据并写入文件的函数:#include#includestruct teacherint num;char name30;char competent30;char sex4;float score3;float sum;void InPut(struct teacher *p,int n)int i;FILE *fp;for(i=0;in;i+)scanf(%d%s%s%s%f%f%f,&pi.num,,petent,pi.sex,&pi.score0,&pi.score1,&pi.score2);if(fp=fopen(score.txt,w)=NULL)printf(Cants open file.);exit(0);for(i=0;in;i+)fprintf(fp,%d %s %s %s %.1f %.1f %.1f ,pi.num,,petent,pi.sex,pi.score0,pi.score1,pi.score2);fclose(fp);(3).调用用来输出数据的函数: #includestruct teacherint num;char name30;char competent30;char sex4;float score3;float sum;void OutPut(struct teacher *p,int n)int i;printf(NumtNametCompetenttSextMathtEnglishtComputertSumn);for(i=0;in;i+)printf(%dt%st%stt%st%.1ft%.1ft%.1ftt%.1fn,pi.num,,petent,pi.sex,pi.score0,pi.score1,pi.score2,pi.sum); (4).调用用来计算教师综合评分的函数:struct teacherint num;char name30;char competent30;char sex4;float score3;float sum;void SumofScores(struct teacher *p,int n)int i;for(i=0;in;i+)pi.sum=pi.score0+pi.score1+pi.score2; (5).调用用教师的综合评分来排序的函数:struct teacherint num;char name30;char competent30;char sex4;float score3;float sum;void ReorderbyScore(struct teacher *p,int n)int i,j;struct teacher t;for(i=0;in-1;i+)for(j=0;jn-1-i;j+)if(pj.sumpj+1.sum)t=pj;pj=pj+1;pj+1=t; (6).调用用教师的职工号来排序的函数:struct teacherint num;char name30;char competent30;char sex4;float score3;float sum;void ReorderbyNum(struct teacher *p,int n)int i,j;struct teacher t;for(i=0;in-1;i+)for(j=0;jpj+1.num)t=pj;pj=pj+1;pj+1=t; (7).调用用教师的姓名来查找相应信息的函数:struct teacherint num;char name30;char competent30;char sex4;float score3;float sum;void SeacherbyName(struct teacher *p,char teacher,int n)int i,flag=1,t;for(i=0;in&flag;i+)if(strcmp(,teacher)=0)flag=0;t=i;if(!flag)printf(NumtNametCompetenttSextMathtEnglishtComputertSumn);printf(%dt%st%stt%st%.1ft%.1ft%.1ftt%.1fn,pt.num,,petent,pt.sex,pt.score0,pt.score1,pt.score2,pt.sum);elseprintf(You put error!my system cant find!n); (8).调用用教师的职工号来查找相应信息的函数:struct teacherint num;char name30;char competent30;char sex4;float score3;float sum;void SeacherbyNum(struct teacher *p,int teacher2,int n)int i,flag=1,t;for(i=0;in&flag;i+)if(pi.num=teacher2)flag=0;t=i;if(!flag)printf(NumtNametCompetenttSextMathtEnglishtComputertSumn);printf(%dt%st%stt%st%.1ft%.1ft%.1ftt%.1fn,pt.num,,petent,pt.sex,pt.score0,pt.score1,pt.score2,pt.sum);elseprintf(You put error!my system cant find!n); (9).调用用来提示用户,系统需要按哪些键才能实现相应功能的函数:#includestruct teacherint num;char name30;char competent30;char sex4;float score3;float sum;char InputInformati
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年机械设计工程师考试要点与模拟题
- 2025年社交媒体营销专家招聘笔试模拟题及答案
- 2025年会务经理招聘考试热点机关事务管理知识与实战案例分析
- 2025年游戏开发行业求职指南面试模拟题及答题技巧
- 2026届贵州省六盘水市第二十三中学化学高一上期末教学质量检测试题含解析
- 2025注册验船师考试(C级船舶检验专业综合能力)全真冲刺试题及答案一
- 2025年慈善机构招录工作预测试题与参考解答发布
- 2025年道路交通考试试题及答案
- 2025年绿色经济与可持续发展考试卷及答案
- 2025注册验船师资格考试(A级船舶检验专业能力)综合试题及答案一
- 读书分享读书交流会《中国民间故事》
- 婚礼准备清单(仅供参考)
- 八年级下册美术提纲
- 2023年单螺杆泵的结构设计与性能分析全套图纸
- 无创正压通气护理
- GB/T 20481-2017气象干旱等级
- 医疗质量管理工具课件
- 急性上呼吸道感染病人的护理
- 小学教师量化考核表
- 房建监理平行检查记录表格模板(参考版)
- 计算机操作系统(第四版)-汤小丹-课后习题答案
评论
0/150
提交评论