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