《信管课设报告模板 .doc》由会员分享,可在线阅读,更多相关《信管课设报告模板 .doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、铜 陵 学 院 C 语 言 课程设计报告设计题目: 职工工资管理系统设计 系 别 数学与计算机科学系 班级 12信管本 学生姓名 裴文亲 学号 李晓东 李长安 课程设计进行地点: 逸夫楼 指导教师 杨 凡 职称 讲师 起止日期: 2013年6月17日起至 2013 年6 月21日止 课程设计任务书一、课程设计的目的课程设计比教学实验复杂一些,涉及的深度广些并更加接近实用。目的一方面是通过课程设计的综合训练,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务;另一方面,通过课程设计使学生进一步加深对课程内容的理解,利用程序设计的基本思想进行程序的开发,进一步掌握编程方法和技巧,培养学生的实际
2、分析问题、编程和动手能力,提高学生用程序的思想来解决实际问题的能力。二、课程设计要求1、遵守课程设计时间安排,按时上机。2、认真查找相关的资料,理解相关的知识内容。3、认真调试程序,组员之间应加强团队合作,取长补短,共同分析问题解决问题。4、根据设计题目规定的具体要求进行具体规范操作。5、认真撰写课程设计报告,避免相互抄袭。三、对课程设计报告撰写内容、格式、字数的要求1课程设计报告是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、实验器材、设计原理及内容、设计具体步骤、遇到的问题及解决方法、设计总结、参考文献等。一般不应少于3000字。2在适当位置配合相应的实验原理图、实验数据
3、表、问题分析流程图等图表进行说明。应做到文理通顺,内容正确完整,书写工整,装订整齐。3设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。4课程设计报告打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距20磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。5课程设计报告装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。四、成绩评定评定成绩根据系统功能、界面效果,系统操作的方便性、灵活性等方面进行,主要从三个方面进行考虑:1、对问题的理解
4、程度;2、成果的好坏;3、设计报告。五、时间进度安排顺序阶段日期计 划 完 成 内 容备注12013.06.17查阅资料,撰写读书笔记22013.06.18系统设计,结构设计,算法设计32013.06.19编程并上机调试42013.06.20撰写报告52013.06.21验收程序,提交设计报告书 铜 陵 学 院 数 学 与 计 算 机 科 学 系 C 语 言 课程设计成绩评定表 教研室: 信管教研室 班级: 12信管本 学生姓名: 李长安,李晓东,裴文琴 指 导 教 师 评 审 意 见评价内容具 体 要 求分数类别评分调 研论 证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。1086
5、4工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作。2016128工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。2016128课程设计报告的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。50403020课程设计成绩指 导 教 师 签 名: 目录(一) 职工工资管理系统. 1.问题第一章 文本编译器的系统的任务与要求1.1 文本编译器的系统的任务例如问题描述:已知某学生成绩表中现有N位同学的成绩(要求各人数据不同),如:知识点提示: 在线性表中删除某个指定元素,并在规定位置插入一个新元素,要求操
6、作后的结果按元素(姓名)升序的方式显示出来。学号姓名成绩01101李平7501202王露7001205张强8501118曹雨90现需要删除已转学的某位同学的成绩,同时添加某位同学的成绩(学号、姓名、成绩自定),插入位置按姓名升序排列。 请根据所学过的线性表知识用C/C+编程实现此操作。程序要求: (1)现有N位同学的数据要求从数据文件中读入,不用交互方式录入;(2)拟删除同学的姓名及新添加同学的数据采用交互方式输入;(3)删除及插入操作完毕,需将成绩表中的所有记录按姓名升序方式显示出来;(4)将更新后的成绩表保存到另一个数据文件中1.2 文本编译器的系统的要求1、在处理每个题目时,要求从分析题
7、目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。 2、设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。3、程序设计语言推荐使用C/C+,程序书写规范,源程序需加必要的注释;4、每组同学需提交可独立运行的程序和提交一份设计报告书。 第二章 需求分析要求用到数据结构课上学到的线性表的知识,所以就要充分而清晰的理解关于线性表的知识。要求实现的基本功能很简单,只有删除和插入,增加
8、功能也不过是加上修改。这些在数据结构课上已经讲过,只要能够理解关于线性表的几个相关的基本算法就可以了。问题是将输入的信息保存入文件和从文件输出。这里基本是自学的内容,而且要考虑到是否要自行选择保存的磁盘。综上,做这个课题,要具备的知识就是线性表的基本算法,文件的保存和读取算法,必要的C或者C+知识(本次我将使用C实现),以及丰富的程序调试经验。 第三章 概要设计 首先由于程序中要有对学生信息的增加和减少,定义一个全局变量n,在此程序的任意的模块中均可以使用。宏定义,用LEN来代替开辟地址空间,定义三个结构体变量,学号num,姓名name,分数marks. 设计实现主要功能的函数有:创建文本信息
9、的子函数CreatWord();显示的函数PrintWord();查找的函数SearchWord();文件保存的子函数StorageWord();文件读取的子函数ReadWord() ;插入信息的 函数InsertWord(); 删除文本信息的函数DeleteWord();然后在menu ()函数中使用一个switch()语句实现对各个子函数的调用。 为了直观的看到操作以后的文本的信息, 我们设计了显示文本字数的函数CountWord()。程序运行中,为了保持屏幕的清楚和美观,时刻进行清屏也是必要的。 第四章 详细设计1、宏定义,定义全局变量、结构体:#define LEN sizeof(st
10、ruct student)/*宏定义*/int NUM,C,N;/*全局变量*/typedef struct list/1、定义链表结点 char data50; int length; struct list *next; struct list *prior; int row; LinkList;LinkList *head;2、主函数的算法如下:void main()head=(LinkList *)malloc(sizeof(LinkList);LinkList *temp;menu(temp);/*结束main函数*/3、创建文本信息的算法如下:LinkList *CreatWord
11、()/编辑文本内容 LinkList *temp; char ch; int i,j; head-next=(LinkList *)malloc(sizeof(LinkList); head-prior=NULL; temp=head-next; temp-prior=NULL; temp-length=0; for(i=0;idatai=0;printf(开始创建文本,请输入文章(输入#号结束):n);for(j=0;jLink_Size;j+) / 控制一页 for(i=0;idatai=ch; temp-length+; if(ch=#) NUM=j; break; /文章结束时,Num
12、来记录整个文章的行数 4、显示文本的算法如下:void PrintWord()/显示当前文章内容 int i,j; /定义文本行数变量j,每行字符数i LinkList *p;p=head-next;system(cls); printf(n当前文章的内容是:);5、查找的算法如下:void SearchWord(char *str1,LinkList* temp) /查找文章中的字符或者字符串 char Data20 ; /记录需要查找的字符内容 int i,j,k=0,sum=0;int l=1; temp=head-next; strcpy(Data,str1); for(i=0;i=N
13、UM;i+) for(j=0;jdataj)=Datak) k+;/将输入的查找字符与链表中信息比较,找到第一个相同的字符 else if(Datak!=0)j=j-k;k=0; if(Datak=0) sum+;j=j-k+1; /从主串第j-k个位置重新查找printf(tt第%d次出现在第%d行第%d列n,l,i+1,j+1);l+;k=0;continue; temp=temp-next; 6、插入的算法如下:LinkList * InsertWord(LinkList *temp) / 向文章中插入字符或者字符串char Data20; int h,l; printf(ntt请输入要
14、插入的字符或字符串:);getchar();gets(Data);printf(ntt当前文章内容为:);PrintWord();printf(ntt请输入要插入的行:);scanf(%d,&h);printf(ntt请输入要插入的列:);scanf(%d,&l); int i=(h-1)*50+l;LinkList *a;int n=strlen(Data);int m ;int insertRow=i/50+1;/确定插入位置的行数int row=temp-row; /将全局变量记录的行数赋值给rowint j;if(insertRow=row)for(m=temp-length-1;m=
15、(i%50)&n0;m-)temp-datam+n=temp-datam;for(m=(i%50),j=0;mdatam=Dataj; 7、显示文本字数的算法如下:int CountWord(LinkList *temp)/文章中所有字数char ch;int i,j;int sum=0;temp=head-next;for(j=0;jdatai)!=#;i+)ch=temp-datai;sum+;return (sum-1) ; 8、存入文本信息的算法如下: void StorageWord()/存盘LinkList *t;char ch;t=head-next;int i,j; ofstr
16、eam outFile(b.txt,ios:out);if(!outFile)cerrOpen file or create file error.endl;else for(j=0;j=NUM;j+) for(i=0;(idatai)!=#;i+) ch=t-datai; outFilech; coutendl;9、取入函数的算法如下:void ReadWord()/取盘 ifstream inFile; inFile.open(b.txt); if(!inFile) couterror!endl; abort(); char ch; while(inFile.get(ch) coutch;
17、 inFile.close(); coutendl;10、各个模块之间的调用关系如下: 第五章 设计与调试分析 从上面的算法和调用关系可以看出,这个程序的基本样子已经非常的清楚,但是真正的程序中还要考虑各种限制条件。例如在查找的过程中,可能要查找的信息有误,显示的信息与输入的信息不符等。还有就是涉及到返回值得问题和程序中所要用到的变量的问题。在调试的过程中所遇到的问题很多,其中最难的两个问题是给出的六个警告错误,在5.0的版本下就是两个使得程序无法运行的错误。其中五个是因为在变量的声明中因为使用了浮点型和双精度型两种而造成在某些模块中两个变量相互赋值时类型不匹配。另一个是在查找的函数中忘记了需
18、要的返回语句,return 1. 第六章 用户手册1、本程序可以在vc+5.0和vc+6.0 的环境下运行。2、在vc中创建一个工程,将源程序复制到.cpp中,编译链接就可以。3、选择编译、运行以后会出现运行界面,选择相应的选项,根据提示即可进行演示。界面如下:4、创建信息就是把最开始要输入的信息输入到系统里。界面如下:5、浏览信息就是按照要求的顺序浏览已经输入的信息。界面如下:6、保存信息就是把输入的信息保存如指定的磁盘。界面如下: 7、打开文件就是把保存的信息从磁盘读取保存的信息。界面如下:8、插入,修改,删除分别是对指定的某信息进行相应的操作。界面如下: 第七章 课程设计心得体会参考文献 1谭浩强.C程序设计.北京:清华大学出版社,20052谭浩强.C程序设计题解与上机指导.北京:清华大学出版社,2005 3严蔚敏.吴伟民等编著数据结构(C语言版).北京:清华大学出版社,20114候风巍.杨永田等编著数据结构要点分析.北京:北京航空航天大学出版社,20075郑阿奇.Visual C+实用教程.北京:电子工业出版社,20106Frank M.Carrano 等著.数据结构与+高级教程.北京:清华大学出版社,2009 7严蔚敏.数据结构习题集(C 语言版).北京:清华大学出版社, 20098李春葆.数据结构教程(第二版).北京:清华大学出版, 2010附录(源程序清单)