文档库 最新最全的文档下载
当前位置:文档库 › C语言课程设计实验报告

C语言课程设计实验报告

C语言课程设计实验报告
C语言课程设计实验报告

中南大学

二○一三~二○一四学年第一学期

信息科学与工程学院程序设计基础实践

设计报告

课程名称:程序设计基础实践

班级:2013级信息安全1302 班

学号:0906130221

姓名:张振宇

指导教师:杨希

二○一三年十二月

目录

一、需求分析 (3)

二、总体设计 (4)

1.设计环境 (4)

2.基本要求 (4)

3.设计步骤 (4)

三、详细设计 (5)

1.算法分析 (5)

2.设计流程图 (5)

3.我的任务 (5)

四、调试与测试 (8)

五、本次课程设计的心得体会 (12)

六、附录 (12)

一、需求分析

通过课程设计使学生综合使用所学过的C语言程序设计知识,掌握结构化程序设计的基本思路和方法,在所掌握的基本知识和技能的基础上,进一步提高自学能力和查找资料的能力,解决一定程度的复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。

课程设计的目的和要求:

1、使学生巩固和加强《C语言程序设计》课程的理论知识。

2、使学生掌握C语言的基本概念、语法、语义和数据类型的使用特点。

3、使学生掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。

4、进一步理解和运用结构化程序设计的思想和方法;学会利用传统流程图或N-S 图表示算法。

5、使学生掌握调试程序的基本方法及上机操作方法。

6、掌握书写程序设计开发文档的能力,使学生学会撰写课程设计总结报告。课程设计的思想和方法还可以作为学生做毕业论文时的参考资料。

7、通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。为学生做毕业设计打好基础。

8、初步掌握开发一个小型实用系统的基本方法:结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。

9、培养学生的创新能力和创新思维。学生可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。

10、培养学生良好的程序设计风格。在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。学生在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。

11、课程设计题目及内容

员工通讯管理系统:

通讯录信息为:姓名、地址、单位、固定电话、移动手机、分类(包括同事、朋友、同学、家人等)、EMAIL、QQ等。

1.通讯录的增加;

2.通讯录的修改、删除;

3.按姓名、电话、QQ查询;

4.通讯录的排序;

5.分类统计;

6.通讯录输出。

1.设计环境

⑴硬件:一般PC机。

⑵软件:操作系统为WindowsXP或Windows2000,设计语言为Visual C++或Turbo C2.0。

2.基本要求

⑴课程设计题目可以协商合作,但每名同学必须完成每个功能函数,甚至每条语句的作用。只有了解了整个程序设计思路,每个函数、设置每条语句的作用,才达到开“计算机与程序设计语言”这门课的目的。

⑵由于上机时间有限,要求在没上机时事先写好代码,再在上机时进行调试。

⑶要求利用结构化程序设计方法以及C的编程思想来完成系统的设计;

⑷要求有欢迎界面、命令选择菜单、录入的数据保存在文件中,对数据的操作通过链表(每条记录保存在一个节点中(每个节点是一个结构体类型的数据),将节点链接在一起构成链表)、数组、结构体等数据结构实现;

⑸模块化程序设计:要求在设计的过程中,按功能定义函数或书写多个源程序文件,按照从顶向下逐步细化的模块化原则进行程序设计,各个功能模块用函数的形式来实现;

⑹学生所选课题必须上机通过,并获得满意的结果;

3.设计步骤

⑴根据问题描述,设计数据存储方式;

⑵分析系统功能,划分功能模块,确定各模块函数名称;

⑶主程序算法设计和各模块算法设计;

⑷编程实现;

⑸调试和测试;

1.算法分析

以上所给的课程设计的题目,每一个对象都包括多个属性。所以要考虑数据的存储形式要用结构体类型来实现。首先,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。

对于菜单的实现,首先我们用printf 函数把程序的功能列出来,然后等待用户选择而执行不同的函数,执行完了一个功能后又回到菜单。保存数据要通过文件来实现。

2.设计流程图

3.我的任务

在简单的分工之后,我的任务是完成通讯录的排序,因为主题是用链表来实现通讯录之间的连接,而链表是不好直接进行排序的,所以我想到了数组。即把链表中指针指向的内容赋给一个数组,利用我们学到的冒泡排序法对其进行排序,排序结束之后重新主页面

创建联系人

按照名字排序

删除

打开

退出

保存

查找

综合操作

显示

修改

增加

退出

思路虽然听起来很简单,但是在实际操作起来总存在这样那样的错误,比如说变量名不统一等合作性问题,而由于链表不是授课内容,不能很好的掌握,在写的过程中总是出现考虑不周全的情况。但是在百度的帮助下和不懈的努力下,在预期时间完成了我的任务并且还参与了最终程序的合并调试。

struct address_list *paixu(struct address_list *head)

{

struct address_list *p1,*p2;

int i,j;

struct address_list1

{

char name[30]; //名字

char work[50]; //单位

char handset[30]; //手机

char phone[30]; //固定电话

char email[30]; //电子邮件

char address[30]; //通讯地址

char QQ[20]; //QQ

int t; //类别标记

char fenlei[30]; //分类

};

struct address_list1 px[200];

struct address_list1 temp;

if(head==NULL)

{

printf("通讯录为空,无法排序!\n");

return(head);

}

p1=head;

for(i=0;i

{

strcpy(px[i].name,p1->name);

strcpy(px[i].work,p1->work);

strcpy(px[i].handset,p1->handset);

strcpy(px[i].phone,p1->phone);

strcpy(px[i].email,p1->email);

strcpy(px[i].address,p1->address);

strcpy(px[i].QQ,p1->QQ);

px[i].t=p1->t;

strcpy(px[i].fenlei,p1->fenlei);

p2=p1;

p1=p1->next;

}

head=shifang(head);

for(j=0;j

{

{

if(strcmp(px[i].name,px[j].name)<0)

{

temp=px[i];

px[i]=px[j];

px[j]=temp;

}

}

}

p1=(struct address_list *)malloc(LEN);

p2=p1;

strcpy(p1->name,px[0].name);

strcpy(p1->work,px[0].work);

strcpy(p1->handset,px[0].handset);

strcpy(p1->phone,px[0].phone);

strcpy(p1->email,px[0].email);

strcpy(p1->address,px[0].address);

strcpy(p1->QQ,px[0].QQ);

p1->t=px[0].t;

strcpy(p1->fenlei,px[0].fenlei);

head=p1;

for(i=1;i

{

p1=(struct address_list *)malloc(LEN);

strcpy(p1->name,px[i].name);

strcpy(p1->name,px[i].name);

strcpy(p1->work,px[i].work);

strcpy(p1->handset,px[i].handset);

strcpy(p1->phone,px[i].phone);

strcpy(p1->email,px[i].email);

strcpy(p1->address,px[i].address);

strcpy(p1->QQ,px[i].QQ);

p1->t=px[i].t;

strcpy(p1->fenlei,px[i].fenlei);

p2->next=p1;

p2=p1;

}

p2->next=NULL;

printf("按姓名排序后为:\n");

print(head);

return(head);

}

四、调试与测试

一、主页面

二、创建通讯录

1、输入信息

三、按照名字排序

四、综合操作

1、综合操作主页面

五、保存

六、打开

七、删除

五、本次课程设计的心得体会

该程序的新颖性在于结构体和文件的使用上,这两个章节都是老师在课堂上没有讲过的,因此也是在不断的实践,不断的调试中实现的。结构体和文本的使用保证了这个程序可以存储大量的信息。该程序具备一个基本的员工通讯录所需要的功能。我不仅巩固《C语言程序设计》课程学习的内容,掌握设计的基本方法,强化上机动手能力,还进一步掌握以下了知识:数据类型、分支控制、循环控制、函数的定义及调用、结构体及数组、指针、文件操作、编译预处理等;通过课程设计,掌握了程序的局部测试、调试方法,建立程序系统调试、测试的基本概念和思想,学会较大程序的系统测试和调试方法。

团队精神不可少,分工合作也是必须的,身为组长就要以身作则,带领好小组,做好各项工作。在开始,对本组人员进行整理,分析其特点,再分配任务,然后进行综合应用,最后对所需资料及要编的程序进行整理得出最后程序。

通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

六、附录

【源程序】

#include

#include //得到指向大小为Size的内存区域的首字节的指针//

#include

#include //标准库函数//

#define NULL 0

#define LEN sizeof(struct address_list) //计算字节//

int n;

struct address_list

{

char name[30]; //名字

char work[50]; //单位

char handset[30]; //手机

char phone[30]; //固定电话

char email[30]; //电子邮件

char address[30]; //通讯地址

char QQ[20]; //QQ

int t; //类别标记

char fenlei[30]; //分类

struct address_list *next;

};

struct address_list *shifang(struct address_list *head); // 释放内存函数声明

//创建函数,不带头结点的链表

struct address_list *creat(void)

{

struct address_list *head,*p1,*p2;

n=0;

p1=(struct address_list *)malloc(LEN);

p2=p1; //强制内存转换

printf("请输入通讯录的内容!\n姓名输入为0时表示创建完毕!\n");

printf("请输入姓名:");

gets(name);

if(strcmp(name,"0")!=0)

{

strcpy(p1->name,name);

printf("请输入单位:"); gets(p1->work);

printf("请输入手机:"); gets(p1->handset);

printf("请输入固定电话:"); gets(p1->phone);

printf("请输入电子邮件:"); gets(p1->email);

printf("请输入QQ号码:"); gets(p1->QQ);

printf("请输入通讯地址:"); gets(p1->address);

printf("请输入分类(1.同事 2.朋友 3.同学 4.家人5.其他):"); scanf("%d",&p1->t);

switch(p1->t)

{

case 1:strcpy(p1->fenlei,"同事"); break;

case 2:strcpy(p1->fenlei,"朋友"); break;

case 3:strcpy(p1->fenlei,"同学"); break;

case 4:strcpy(p1->fenlei,"家人"); break;

case 5:strcpy(p1->fenlei,"其他"); break;

}

head=NULL;

while(1)

{

n=n+1; //记录通讯录人数个数

if(n==1)

head=p1;

else

p2->next=p1;

p2=p1;

printf("请输入姓名:"); scanf("%s",name);

if(strcmp(name,"0")==0)

{

break;

}

else

{

p1=(struct address_list *)malloc(LEN);

strcpy(p1->name,name);

printf("请输入单位:"); scanf("%s",&p1->work);

printf("请输入手机:"); scanf("%s",&p1->handset);

printf("请输入固定电话:"); scanf("%s",&p1->phone);

printf("请输入QQ号码:"); scanf("%s",&p1->QQ);

printf("请输入通讯地址:"); scanf("%s",&p1->address);

printf("请输入分类(1.同事 2.朋友 3.同学 4.家人 5.其他):");

scanf("%d",&p1->t);

switch(p1->t)

{

case 1:strcpy(p1->fenlei,"同事"); break;

case 2:strcpy(p1->fenlei,"朋友"); break;

case 3:strcpy(p1->fenlei,"同学"); break;

case 4:strcpy(p1->fenlei,"家人"); break;

case 5:strcpy(p1->fenlei,"其他"); break;

}

}

}

p2->next=NULL;

return head;

}

else

return 0;

}

//输出函数

void print(struct address_list *head)

{

struct address_list *p;

if(head!=NULL)

{

p=head;

printf("本通讯录现在共有%d人:\n",n);

printf("---姓名-------单位--------手机-------固定电话-------Email--------QQ--------通讯地址--------类别--\n");

printf("==================================\n");

do

{

printf("== %s",p->name); printf(" ");

printf("%s",p->work); printf(" ");

printf("%s",p->handset); printf(" ");

printf("%s",p->phone); printf(" ");

printf("%s",p->email); printf(" ");

printf("%s",p->QQ); printf(" ");

printf("%s",p->address); printf(" ");

printf("%s",p->fenlei); printf(" \n");

p=p->next;

}while(p!=NULL);

printf("==================================\n");

}

printf("通讯录为空,无法输出!\n");

}

//增加函数

struct address_list *insert(struct address_list *head)

{

struct address_list *p0,*p1,*p2;

char name[20];

p1=head;

printf("请输入增加的内容:\n");

printf("请输入姓名:"); gets(name);

if(strcmp(name,"0")==0)

{

printf("姓名不能为0,增加失败!\n");

return(head);

}

else

{

p0=(struct address_list *)malloc(LEN);

strcpy(p0->name,name);

printf("请输入单位:"); gets(p0->work);

printf("请输入手机:"); gets(p0->handset);

printf("请输入固定电话:"); gets(p0->phone);

printf("请输入电子邮件:"); gets(p0->email);

printf("请输入QQ号码:"); gets(p0->QQ);

printf("请输入通讯地址:"); gets(p0->address);

printf("请输入分类(1.同事 2.朋友 3.同学 4.家人5.其他):"); scanf("%d",&p0->t);

switch(p0->t)

{

case 1:strcpy(p0->fenlei,"同事"); break;

case 2:strcpy(p0->fenlei,"朋友"); break;

case 3:strcpy(p0->fenlei,"同学"); break;

case 4:strcpy(p0->fenlei,"家人"); break;

case 5:strcpy(p0->fenlei,"其他"); break;

}

n=n+1;

if(head==NULL)

{

head=p0;

p0->next=NULL;

return head;

}

else

{

while(strcmp(p0->name,p1->name)>0&&(p1->next!=NULL))

{

p1=p1->next;

}

if(strcmp(p0->name,p1->name)<0 || strcmp(p0->name,p1->name)==0)

{

if(head==p1)

{

head=p0;

}

else

{

p2->next=p0;

}

p0->next=p1;

}

else

{

p1->next=p0;

p0->next=NULL;

}

return head;

}

}

}

struct address_list* delete_txl(struct address_list *head)

{

struct address_list *p,*q;

char name[30];

if(head==NULL)

{

printf("通讯录为空,无法显示!\n");

return head;

}

p=head;

printf("请输入需要删除的人的姓名:");

gets(name);

if(strcmp(head->name,name)==0)

{

head=head->next;

free(p);

printf("删除操作成功!\n");

return head;

}

else

{

q=head,p=head->next;

{

if(strcmp(p->name,name)==0)

{

q->next=p->next;

free(p);

printf("删除操作成功!\n");

return head;

}

p=p->next;

q=q->next;

}

}

}

//显示函数

struct address_list *display(struct address_list *head)

{

struct address_list *p1,*p2;

char name[30];

int m;

if(head==NULL)

{

printf("通讯录为空,无法显示!\n");

return head;

}

p1=head;

m=0;

printf("请输入需要显示人的姓名:");

gets(name);

while(p1!=NULL)

{

while((strcmp(p1->name,name))!=0 && p1->next!=NULL)

{

p2=p1;

p1=p1->next;

}

if(strcmp(p1->name,name)==0)

{

m++;

printf("%s的通讯内容如下:\n",name);

printf("---姓名---- 单位----手机----固定电话----Email----QQ----通讯地址----类别--\n");

printf("==================================\n");

printf("== %s",p1->name); printf(" ");

printf("%s",p1->work); printf(" ");

printf("%s",p1->handset); printf(" ");

printf("%s",p1->phone); printf(" ");

printf("%s",p1->QQ); printf(" ");

printf("%s",p1->address); printf(" ");

printf("%s",p1->fenlei); printf(" ");

printf("==================================\n");

}

p1=p1->next;

}

if(m==0)

{

printf("此人未在本通讯录中!\n");

}

return(head);

}

//排序函数

struct address_list *paixu(struct address_list *head)

{

struct address_list *p1,*p2;

int i,j;

struct address_list1

{

char name[30]; //名字

char work[50]; //单位

char handset[30]; //手机

char phone[30]; //固定电话

char email[30]; //电子邮件

char address[30]; //通讯地址

char QQ[20]; //QQ

int t; //类别标记

char fenlei[30]; //分类

};

struct address_list1 px[200];

struct address_list1 temp;

if(head==NULL)

{

printf("通讯录为空,无法排序!\n");

return(head);

}

p1=head;

for(i=0;i

{

strcpy(px[i].name,p1->name);

strcpy(px[i].work,p1->work);

strcpy(px[i].handset,p1->handset);

strcpy(px[i].phone,p1->phone);

strcpy(px[i].address,p1->address);

strcpy(px[i].QQ,p1->QQ);

px[i].t=p1->t;

strcpy(px[i].fenlei,p1->fenlei);

p2=p1;

p1=p1->next;

}

head=shifang(head);

for(j=0;j

{

for(i=j+1;i

{

if(strcmp(px[i].name,px[j].name)<0)

{

temp=px[i];

px[i]=px[j];

px[j]=temp;

}

}

}

p1=(struct address_list *)malloc(LEN);

p2=p1;

strcpy(p1->name,px[0].name);

strcpy(p1->work,px[0].work);

strcpy(p1->handset,px[0].handset);

strcpy(p1->phone,px[0].phone);

strcpy(p1->email,px[0].email);

strcpy(p1->address,px[0].address);

strcpy(p1->QQ,px[0].QQ);

p1->t=px[0].t;

strcpy(p1->fenlei,px[0].fenlei);

head=p1;

for(i=1;i

{

p1=(struct address_list *)malloc(LEN);

strcpy(p1->name,px[i].name);

strcpy(p1->name,px[i].name);

strcpy(p1->work,px[i].work);

strcpy(p1->handset,px[i].handset);

strcpy(p1->phone,px[i].phone);

strcpy(p1->email,px[i].email);

strcpy(p1->address,px[i].address);

strcpy(p1->QQ,px[i].QQ);

p1->t=px[i].t;

strcpy(p1->fenlei,px[i].fenlei);

p2=p1;

}

p2->next=NULL;

printf("按姓名排序后为:\n");

print(head);

return(head);

}

//姓名查找函数

struct address_list *search(struct address_list *head)

{

struct address_list *p1,*p2;

int m;

char name[30];

if(head==NULL)

{

printf("通讯录为空,无法分类查找!\n");

return(head);

}

p1=head;

printf("********************\n");

printf("** 请输入需要查找的姓名**\n");

printf("********************\n");

m=0;

gets(name);

while(p1!=NULL)

{

while(strcmp(p1->name,name)!=0&&p1->next!=NULL)

{

p2=p1;

p1=p1->next;

}

if(strcmp(p1->name,name)==0)

{

m++;

printf("你查找的内容是:\n");

printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");

printf("---姓名---- 单位----手机----固定电话----Email----QQ----通讯地址----类别--\n");

printf(" %s %s %s %s %s %s %s %s\n",p1->name,p1->work,p1->handset,p1->phone,p1->email,p1->QQ,p1->address,p1->fenlei);

printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");

}

p1=p1->next;

if(m==0)

会计信息系统(含课程设计)随堂练习

第一章 1.系统的核心部分是()。 A.输入 B.处理 C.输出 D.反馈. 参考答案:B 2.系统的特点包括()。 A. 目的性 B. 关联性 C. 层次性 D. 集合性 E. 环境适应性 参考答案:ABCDE 3.按系统与外界环境的关系分类,分为()。 A.封闭系统 B.半封闭系统 C.开放系统 D.人工系统 E. 自然系统 参考答案:ABC 4.信息的质量要求包括()。 A. 完整性 B. 相关性 C. 可靠性 D. 及时性 E. 可理解性 参考答案:ABCDE 5.企业的结构包括()。 A. 战略决策层 B. 战术管理层 C. 运作管理层 D. 执行者 E.战术决策层 参考答案:ABCD 6.电算化会计信息系统是一个人机结合系统,该系统的组成包括()。A.会计人员 B.计算机硬件 C.软件 D.操作规程 E.数据 参考答案:ABCDE

7.常见的会计数据处理方式有()。 A.批处理 B.实时处理 C.不间断处理 D.间歇处理 参考答案:AB 8.会计信息的输出方式有()。 A.显示输出 B.打印输出 C.软盘输出 D.格式输出 参考答案:ABC 9.信息和数据是同一概念。 参考答案:× 10.信息的一致性是指要使同一主体不同使其的信息可以进行比较。 参考答案:√ 11.在信息的各个质量要求之间存在着冲突,我们在判断具体信息的质量时,是有所侧重的。 参考答案:√ 12.所谓决策中的非结构化的问题,是指问题可以客观地加以解决,解决方法是清楚的,最后可以得到一个正确的答案。 参考答案:× 13.管理信息系统是一个以人为主导,利用计算机硬件、软件、通讯网络、其他办公设备,进行信息的收集、传输、加工、储存、更新和维护,以企业取得竞竞争优势、提高效益和效率为目的,支持企业的高层决策、中层控制、基层运作的集成化的人机系统。 参考答案:√ 14.企业的信息系统由硬件系统、软件系统、数据资源、系统工作规程和人员组成。 参考答案:√ 15. 1954年10月,美国通用电气公司(GE)第一次在UNIVC-1计算机上计算职工的工资,从而引发了会计处理设备的变革,这被认为是会计电算化产生的标志。 参考答案:√ 16.电算化会计信息处理流程中仍然有账账核对这一流程。 参考答案:× 17.电算化会计信息系统与手工会计信息系统完全不同。 参考答案:× 18.电算化与手工方式下会计档案的存储发生了很大变化,从会计信息的安全性角度而言,磁性介质保存的会计档案比纸质会计档案安全。 参考答案:× 19.电算化会计信息系统中,无论凭证、账簿、还是会计报表都根据需要,以多种方式供信息使用者使用。 参考答案:√ 20.电算化会计信息系统与手工会计信息系统基本工作步骤相同。 参考答案:√ 21.电算化会计信息系统与手工会计信息系统遵循不同的基本会计理论和方法。

c语言课程设计报告·图书管理系统

第一章 §题目描述 图书管理系统设计: 【要求】图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。试设计一图书管理系统,使之能提供以下功能: (1)新图书基本信息的输入; (2)图书基本信息的查询; (3)对撤销图书信息的删除; (4)办理借书手续; (5)办理还书手续; 【提示】建立图书馆里信息结构体,结构体成员包括图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号。存在状态设为整型,可用不同数字代表借还状态。借书和还书手续要注意修改结构体的成员变量存在状态的值。 §算法设计 1.设计思想: 在整个系统编写的过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。由此进一步加深、巩固了所学的课程的基本理论知识,培养了综合分析问题、解决问题的能力。在设计程序时,参考了学校图书馆的图书管理系统,实现了程序的模块化、结构化。在主函数中调用各种函数,操作界面简单,易操作,人机互动性较强。 2.实现注释: 这个实用的小型图书管理系统程序以结构体数组指针操作完成,并实现文件信息的录入、修改和保存等功能,所有信息以磁盘文件方式保存,方便用户使用。本图书管理系统分为管理员和学生两个部分,其基本功能包括了对图书信息的存储、查询、添加、删除和借书、还书手续办理等。查询时可按书名、编号等方式查询,找到后输出这本书的所有信息。可查询图书的在库状态,方便用户进行借书、还书操作。在借书还书成功后图书的在库状态自动改变,并更新信息到数据库。系统中主要的数据结构就是图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。在处理过程中各项可以作为一本图书的不同属性来进行处理。 3.结构体系设计 图:主函数结构;图:新书信息录入流程;图:图书信息查询(管理员)流程;图:图书信息查询(学生)流程;图:图书信息删除流程;图:办理借书手续流程;图:办理还书手续流程; §程序设计及代码分析 1.程序设计: 下面,我大致介绍一下我的系统的主要功能和注意事项: 当运行此程序时,首先进入系统主界面,然后可以选择[1].管理员登陆(密码:123),[2].学生登陆,[0].退出系统; 选择[1]后进入管理员系统,验证密码成功后显示管理员功能菜单,按数字键选择所需服务。管理员功能菜单中,[1].新书信息录入,[2].图书信息查询,[3].图书信息删除,[4].返回主菜单,[0].退出系统;当出现“请选择”时,输入选项前的数字,输完之后按回车(下同)。首次运行系统需要先选择[1]录入库存书籍信息,图书各信息项须用空格键隔开,输入完毕后信息自动储存并更新至数据库,然后再选择其他操作。当选择[3]时会进入图书信息删除,在这里可以选择删除图书信息等操

课程设计心得体会5篇【精选】

最近发表了一篇名为《课程设计心得体会5篇》的,觉得应该跟大家分享,为了方便大家的阅读。 课程设计是一个有目的、有计划、有结构的产生课程计划、课程标准以及教材等系统化活动。以下是课程设计心得体会,欢迎大家阅读! 历时三个星期的课程设计终于在今天完成了。这次课程设计让我学到了很多东西,首先对自己所做的系统进行了一系列的分析和论证。在得出了此系统完全可运行的基础上,再次进行了各种可行性分析,最终确定了这套公司考勤管理系统。 在开始做的阶段,首先运用软件工程所学的东西,画出了系统流程图,物理流程图,E —R图等。这为我后来的系统提供了很大的帮助。在做系统的时候我选择了在大二时学过的VB,这是面向对象的程序设计方法。经过一段时间的努力之后,终于做出了这套系统。 在主体框架完成的情况下,依据老师的要求,将上述所做东西以报告的形式做成文档。 回想自己所经过的日子,有欢笑有泪水,引用一句歌词“阳光总在风雨后”。成功之后的喜悦是无法用语言来形容的。虽然在此前被老师无情的退了回来,但老师的良苦用心总是很容易被网我们这些做学子的理解。究其原因主要是自己不认真,对这一课程设计没有整体的认识,总是存在侥幸心理能混过去就混过去,现在我认识到了这不是一个人应该有的想法。由小见大,在离开学校走像社会的时候,做任何事情都不能马马虎虎。 通过这次课程设计让我认识到自己的不足,让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。 以前从没有学过关于汇编语言的知识,起初学起来感觉很有难度。当知道要做课程设计的时候心里面感觉有些害怕和担心,担心自己不会或者做不好。但是当真的要做的时候也只好进自己作大的努力去做,做到自己最好的。 我们在这个过程中有很多自己的感受,我想很多同学都会和我有一样的感受,那就是感觉汇编语言真的是很神奇,很有意思。我们从开始的担心和害怕渐渐变成了享受,享受着汇编带给我们的快乐。看着自己做出来的东西,心里面的感觉真的很好。虽然我们做的东西都还很简单,但是毕竟是我们自己亲手,呵呵,应该是自己亲闹做出来的。很有成就感。 我想微机原理课程设计和其他课程设计有共同的地方,那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。但是我想他也有它的独特指出,那就是让我们进入一个神奇的世界,那就是编程。对于很多学过汇编或者其他的类似程序的同学来说,这不算新奇,但是对于我来说真的新奇,很有趣,也是我有更多的兴趣学习微机原理和其他的汇编。 微机原理与接口技术是一门很有趣的课程,手机版任何一个计算机系统都是一个复杂的整体,学习计算机原理是要整体的每一部分。讨论某一部分原理时又要其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知

《C语言课程设计》实验报告

《C语言课程设计》报告 学院:信息工程学院 专业:信息管理与信息系统设计题目:通讯录程序设计班级:2016级一班 学号:201601510138 姓名:张进步 指导教师:杨菲菲 时间:12.24

学生通讯管理系统 1.1 设计目的 学习如何实现一个复杂的信息管理系统——学生通讯管理系统,能够实现老师对学生基本信息的记录、查询、修改。 通过本次学习,读者能够掌握: (1)如何设计主菜单和子菜单,以及各级菜单的响应与返回操作; (2)如何合理设计不同的结构体对系统中多个实体进行封装; (3)如何合理设计多个结构体数组管理不同实体对应的数据; (4)如何对复杂的函数过程进行拆分,用多个子函数进行封装; (5)进一步熟悉文件读取的相关操作。 1.2需求分析 本章的学生信息管理系统的主要功能面向老师,能够实现对学生信息进行录入、修改、查询。 学生信息方面的功能需求如下。 (1)新增学生信息,包括姓名、籍贯、电话号码(2)、电子邮箱。 (2)修改学生信息,可以选择对某个学生的某个属性值进行修改。 (3)查找学生信息,即输入要查找的学生学号,实现学生信息查询。 (4)显示所有学生信息,并以列表的形式清晰呈现。 1.3总体设计 系统功能结构图如图所示;学生信息管理系统 学生信息管理模块:包括4个子模块,分别是学生信息的录入,学生信息的修改,学生信息的查询,学生信息的浏览。

1.4详细设计与实现 1.4.1 预处理及数据结构 1.头文件 本项目涉及4个头文件,其中#include使用字符串的函数的时候需要添加此头文件,#include #include /*system使用的函数*/ #include /*getchar、getch函数使用的头文件*/ #include /*strcmp比较2个字符串是否一样*/ 2.宏定义 LEN sizeof(struct student)表示struct student的长度。DATA是按格式输出结构体的各项数据,能够方便输出操作,减少代码量。 #define_CRT_SECURE_NO_W ARNINGS #include #include #include #include #define LEN sizeof(struct student) #define FORMAT "%-8d%-15s%-15s%-15d%-15d%-15s\n" #define DATA stu[i].numb,stu[i].name,stu[i].nat,stu[i].num1,stu[i].num2,stu[i].mail 3.结构体 利用一个结构体struct student struct student/*定义学生信息结构体*/ { int numb;/*学号*/ char name[15];/*姓名*/ char nat[16];/*籍贯*/ int num1;/*电话号码1*/ int num2;/*电话号码2*/ char mail[40];/*邮箱*/ }; 4.全局变量 分别利用全局变量结构体数组struct student stu[50];来记录所有学生的基本信息,避免程序运行过程中多次初始化,方便各个式子函数调用。 struct student stu[50];

c语言实验心得体会

c语言实验心得体会 篇一:C语言上机实验心得 C语言上机实验心得 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而C语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好C语言,这对我们以后的发展是十分重要的。 说到这,上机实验当然就是一个必不可少的环节了,C 语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。为了更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们必须实际上机、编写程序。 通过实验我也发现了自己不少的问题,这都是只看书上的程序而没有自己亲身上机编写程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了C语言那就大错特错了。 我主要存在以下的这些缺点: 1、学习耐心与细心不足,如scanf(“%d”,n);中的“”有时候会忘了。而在最后 输出时又错写成printf(“%d”,n);从而错误得输出了地址而不是我原来想要的答案。 2、编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解

题了。 3、 4、基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够 深刻。 5、 6、有时候不够精简,有一点用处不大或者说没有也可以的文字存在。英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在 一点问题。 为了能更好地学好C语言,在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。 实验中我深刻意识到完成程序的编写,决不意味着万事大吉。认为万无一失的程序,实际上机运行时可能会出现很多意想不到的问题。有时编译程序检测出一大堆错误,有时程序能够顺利运行,但是运行结果并不是你预期中想要的。因为开发环境所提供的编译系统无法发现程序逻辑错误,或者是你原来所设计时的理论错误,这就只能靠自己的上机经验来分析判断错误的所在了。所以程序的调试是一个技巧性很强的工作,它可能比编一个程序耗时更

编程导论课程设计题目

西南大学 计算机与信息科学学院 2015级计算机科学与技术大类专业 《编程导论》课程设计A案 1 课程设计的基本要求 1.1能从实际应用问题出发,合理选择数据结构,设计算法形成完整的设计方案。 1.2使用Python实现算法,合理添加注释以保证程序的可读性。 1.3针对项目认真撰写课程设计报告。 2 课程设计主要内容 课程设计题目由教师提供(见第5节),内容可以是一个具体的数据处理问题、字符串处理问题、统计问题和数据挖掘问题。允许学生自拟题目,但需经过教师审核。教师可根据教学实际情况增加题目。 3 课程设计考核方法及成绩评定 3.1考核方式:考查。 3.2成绩评定:课程设计成绩采用100分制,从以下几个评级指标进行评定:

4课程设计报告主要内容和要求 4.1 课程设计报告主要内容 封面 主要内容 4.2 课程设计报告编写的基本要求 (1)采用A4纸书写或打印; (2)如为打印,题目采用宋体3号字加重,正文小标体采用宋体四号,正文采用宋体五号字。 5、课程设计选题 5.1题目:数据挖掘:股票价格 数据挖掘是通过对大量的数据进行排序,挑选出相关信息的过程。商业情报结构和金融分析师会用到它,而且正日益被用在科学领域中,从现代实验和观测方法所产生的巨大数据

集中提取信息。 在这个项目中,我们想要对一些公司的股票价格进行初步的数据挖掘。以Google公司为对象。程序将计算出2010-2015年间Google股票的每月平均价格,并得出Google公司最好和最坏的6个月。提供读取函数的数据,请编写下面几个函数和调用这些函数的主程序。(a)首先需要股票历史价格。访问https://www.wendangku.net/doc/d63549186.html,,在搜索字段中输入Google,选择“Historical Prices”(目前在页面左侧),并找到“Download to Spreadsheet”选项。 将文件保存在Python程序所在文件夹中。默认名称是“table.csv”,将使用该名称。 文件格式由文件前几行给出: Date, Open, High, Low, Close, V olume, Adj Close 2015-10-11, 461.00, 462.07, 443.28, 449.15, 10006000, 449.15 2015-10-10, 422.64, 439.18, 410.50, 439.08, 8589400, 439.08 (b)getDataList (FileName) “CSV”文件是“用逗号分隔的文件”,所以可以在逗号处分割数据。下面的函数将读取一个文件,从逗号处分隔文件中每行,并把数据放到返回的列表中。结果是二维列表,列表的每行又是一个列表。此外,每个项都是一个字符串。读文件需要使用文件名进行调用:get DataList(‘table.csv’),在shell中应用此函数,了解函数的返回值是什么。 def getDataList(fileName): dataFile = open(fileN ame, ‘r’) dataList = [ ] # start with an empty list for line in dataFile: # strip end-of-line, split on commas, and append items to list dataList. append (line.strip().split(‘,’)) return dataList (c)getMonthlyAverages (dataList) 在这个函数中,将使用getDataList函数产生的dataList作为参数。使用Date,Volume, Adj Close计算每月平均价格。下面是一个计算月平均价格的公式,其中Vi代表V olume,Ci是当天调整收盘价(Adj Close)。

c语言课程设计报告书--学生成绩管理

C 语言程序设计报告 课题:学生成绩管理 时间:

一、需求分析 任务要求: 自学C语言中有关链表及外部文件的内容,设计出学生成绩管理。具体要求如下: 1.主要功能: (1)能按学期、按班级完成对学生成绩的录入、修改 (2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序 (3)能查询学生成绩,不及格科目及学生名单 (4)能按班级输出学生的成绩单 系统功能需求分析: 1、定义一个结构体类型,成员包括学期、班级、各科成绩、建立链表,定义该结构体类型的指针,用于指向各结点; 2、分别建立具有添输入、修改、查询、总分及平均分、排序等功能的子函数,完成相应功能,对程序实现模块化。 二、概要设计 系统总体设计框架: 对程序进行模块化,建立输入、修改、查询、查找和显示功能的子函数,各子函数中运用链表存储数据。 系统功能模块图:

三、详细设计 主要功能模块的算法设计思路如下: 1、输入信息函数 (1)定义指向结构体变量的指针; (2)移动指针,找到插入结点; (3)在要插入的结点输入信息; (4)返回头指针。 2、修改信息 (1)定义指向结构体变量的指针; (2)用指针检验链表中是否有记录,若没记录,出现报错,然后要求重新输入; (3)根据要修改的编号查找对应结点; (4)修改信息;

(5)修改成功。 3、排序函数 (1)定义所要排序的班级和链表的头指针为形参; (2)调用排序函数,把班级和链表的头指针赋给形参; (3)在子函数中进行排序; (4)输出排序结果。 4、显示学生成绩信息(void Disp(Link l)) (1)选择想要查询的项目(学生各科成绩、不及格科目、班级成员);(2)用指针检验是否有记录; (3)若无记录,输出提示信息,返回主函数; 若有记录,移动指针,依次输出记录; 5、查询班级成绩信息(void Find(Link l)) (1)选择所要查询的班级; (2)输入班级: (3)在链表中寻找相应结点; (4)输出结点信息。 以上各个函数的流程图如下:

语言教学课程设计原理》第六章翻译

6.语言教师与语言学家 在前面的章节里中,我大概叙述了一个关于语言教师职责的方法,有助于语言教学法的学科最近的变化启发了这一方法。在这一节中,我将探索一个更深的语言学和课堂实践以及语言学家、教师、学习者之间的关系的领域。我也将简单地讨论一个标准,这个标准可能会帮助老师去做一个关于用若干当代的方法去进行课程设计和课堂教学的决定。 一方面构成第二语言教育学基础的学科之间的相互影响,另一方面在任意特定的教学情景中发生的事,构成一了个迅速发展的研究领域。当然,这个基本学科是理论语言学、描写语言学、心理语言学和社会语言学。当第二语言教学在学校背景进行时,教育学理论也会明显地考虑在内。这些学科以不同的方式比例与课堂教学相互作用,取决于对语言的性质、语言的教与学的认识。 语言学家占主导 20世纪40年代到60年代,基本学科和课堂实践的相互作用倾向于产生不同的第二语言学教学方法。在发展方法时,运用到课堂时间中的理论被认为是从描写语言学到教学的技巧转换的过程,这就导致了从语言学家到老师的一个关系,这种关系让人联系起家族谱系树。我们以听说教学法为例。 在这个特定的家族中,像Leonard Bloomfield和Charles Fries这样的语言学家扮演了祖父的角色。他们的著作被第二代应用语言学家转变为教学材料:英语模式训练(Lado和Fries,1958)是这个过程中的一个明显的例子,拉多英语系列(Lado1970)和现代西班牙语(Bolinger, Ciruti和Montero 1966)。在这期间,老师通过出版课程、语言实验材料的巨大影响以及正式的项目训练得到训练。这一点也不新鲜。然而,应该提一下的是,在我描述的时候,课堂教师需要训练和材料,把这些材料更好更直接地运用到课堂互动中去。一个生成第二语言项目的完善的模式产生了。在这个模式中,教师是第三代语言学家—或是隔三代语言学家—忠实地执行这些聪慧的前辈传下来的技巧。 第二语言教学方法论的观点源于语言学理论,坚持应用语言学的许多模式。其中最著名的一个模式是Corder模式(1973:156),虽然它也包括来自于社会

华中科技大学计算机学院C语言课设实验报告

华中科技大学计算机科学与技术学院 《C语言程序设计》课程设计 实验报告 题目:科研项目信息管理系统 专业:计算机 班级: 学号: 姓名: 成绩: 指导教师:李开 完成日期:2009年10 月20 日

科研项目信息管理系统一、系统功能结构模块图 二、数据结构设计及其用法说明 typedef struct lakey{ char name[30];/*团队名称*/ int total;/*自然科学基金的科研项目数*/ float dudu;/*经费数*/ struct lakey *next; }*plakey;/*统计3中用到的数据结构*/ typedef struct emmey{ char name[30];/*团队名称*/ int teacher;/*老师人数*/ int harden;/*项目数*/ float bizhi;/*比值*/ struct emmey *next; }*pemmey;/*统计4中用到的数据结构*/ typedef struct kPro{ char code[15];/*项目编号*/ char sort;/*项目种类*/ int aking1; char time[8];/*项目时间*/ float dudu;/*项目经费*/ int aking2;

char beiler[15];/*负责人*/ int aking3; char keynoName[30];/*所在团队名称*/ struct kPro *next; }harden,*pHarden; typedef struct Komo{ int teacher;/*老师人数*/ char name[20];/*院系名称*/ int student;/*学生人数*/ float bizhi;/*二者比值*/ struct Komo *next; }*pKomo;/*统计1中用到的数据结构,统计结果放在这个数据结构中*/ typedef struct kTea{ char name[30];/*团队名称*/ char beiler[15];/*负责人*/ int stuNum;/*学生人数*/ int aking2; int coco;/*老师人数*/ char colName[20];/*所在院系的名称*/ int aking1; struct kTea *next; pHarden child; }keyno,*pKeyno; typedef struct edward{ char name[20];/*院系名称*/ int totalnum;/*项目总数*/ int num973;/*973项目数*/ int num863;/*863项目数*/ float amount;/*经费数*/ struct edward *next; }*pedward;/*统计2中用到的数据结构*/ typedef struct kCol{ char name[20];/*院系名称*/ int aking; char beiler[15];/*院系负责人*/ struct kCol *next; char call[15];/*负责人电话号码*/ pKeyno child; }kekey,*pKekey;

c语言课程设计心得体会文档2篇

c语言课程设计心得体会文档2篇C language course design experience document 编订:JinTai College

c语言课程设计心得体会文档2篇 小泰温馨提示:心得体会是指一种读书、实践后所写的感受性文字。语言类读书心得同数学札记相近;体会是指将学习的东西运用到实践中去,通过实践反思学习内容并记录下来的文字,近似于经验总结。本文档根据主题的心得体会内容要求展开说明,具有实践指导意义,便于学习和使用,本文下载后内容可随意修改调整及打印。 本文简要目录如下:【下载该文档后使用Word打开,按住键盘Ctrl键且鼠标单击目录内容即可跳转到对应篇章】 1、篇章1:c语言课程设计心得体会文档 2、篇章2:c语言课程设计的心得体会文档 篇章1:c语言课程设计心得体会文档 在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到了大家的喜爱,在每次的简报中都得到了较好的成绩。 虽然在上个学期中,我们已经学习了《c 语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通

过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。 c语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。 在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我们在上课时不注重对文件的运用,所以在这方面有较大的困难。我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我们小组的程序有了突破,成功地实现了用文件来保存并查看学生的信息。 这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自

人工智能课程设计报告-n皇后问题解读

人工智能课程设计报告 课班姓学程:人工智能课程设计报告级 : 名: 号: 指导教师:赵曼 2015年11月

人工智能课程设计报告 人工智能课程设计报告 课程背景 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。 人工智能是对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。 人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种“复杂工作”的理解是不同的。 人工智能是计算机学科的一个分支,二十世纪七十年代以来被称为世界三大尖端技术之一(空间技术、能源技术、人工智能)。也被认为是二十一世纪三大尖端技术(基因工程、纳米科学、人工智能)之一。这是因为近三十年来它获得了迅速的发展,在很多学科领域都获得了广泛应用,并取得了丰硕的成果,人工智能已逐步成为一个独立的分支,无论在理论和实践上都已自成一个系统。 人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。人工智能将涉及到计算机科学、心理学、哲学和语言学等学科。可以说几乎是自然科学和社会科学的所有学科,其范围已远远超出了计算机科学的范畴,人工智能与思维科学的关系是实践和理论的关系,人工智能是处于思维科学的技术应用层次,是它的一个应用分支。从思维观点看,人工智能不仅限于逻辑思维,要考虑形象思维、灵感思维才能促进人工智能的突破性的发展,数学常被认为是多种学科的基础科学,数学也进入语言、思维领域,人工智能学科也必须借用数学工具,数学不仅在标准逻辑、模糊数学等范围发挥作用,数学进入人工智能学科,它们将互相促进而更快地发展。

c语言课程设计报告书

课程设计报告书 所属课程:c语言 项目:库函数模拟系统 指导老师:邹姝稚 班级:软件1401 姓名:江闯 学号:141403107 分数:

1.任务描述: 本系统开发的代码模拟了下列库函数的功能: (1).模拟gets和puts的功能:能接收一个字符串,将其写入ASCII文件,并且可以读出显示。 (2).在不使用字符串库函数的条件下,编程实现字符串的拷贝,连接,求长,倒置功能。 (3).字符串加密功能:将一段明文建立到一个ASCII文件中,按加密的算法加密后写入密文文件,最终实现将明文和密文文件都显示出来。 (4).编程实现字符串与对应数字的相互转换功能。 2.总体设计: 模块调用图: 图1

函数调用图: 图2 函数功能: (1)函数gp( ):模拟gets和puts的功能 (2)函数kaobei( ):实现字符串的拷贝 (3)函数lianjie( ):实现字符串的连接 (4)函数qiuchang( ):实现字符串的求长 (5)函数daozhi( ):实现字符串的倒置 (6)函数jiami( ):实现字符串的加密功能,最后将明文和密文文件都显示出来 (7)函数zhuanhuan1( ):将数字字符串转换为对应的数字 (8)函数zhuanhuan2( ):将数字转换为对应的数字字符串 3.详细设计: (1).模仿gets和puts功能: gets和puts功能与scanf和printf函数的功能相似,但是也不是完全相同,本系统模拟功能的程序总共运用了两次函数调用技术,模拟gets运用了一次,模拟puts运用了一次。 (2)..字符串的拷贝功能: 字符串的拷贝功能程序设计源于strcpy的功能,其中运用了字符串数组和指针的相关技术,还运用了一组while语句,实现语句的循环,从而将一个字符串拷贝到一个空数组中。

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

C语言课程设计总结

C语言课程设计总结 一、设计题目: 猜数字和贪吃蛇小游戏。 专业:09电气工程及其自动化 组号:第十组 组员:马邢(组长)、王维、毛亮、汪小成、魏坤波、陈维康、高裴石、石峰、葛良志、冯鑫源 指导教师:黄莉莉 二、任务分配: 我们组分为两队,一对制作贪吃蛇游戏,另一对制作猜数字游戏。制作贪吃蛇的人员是马邢,葛良志,高裴石,石峰,陈维康。石峰和高裴石负责收集程序材料,马邢和葛良志负责整理和编写程序,陈维康辅助我们工作。制作猜数字的是魏坤波,王维,毛亮,汪小成,冯鑫源。魏坤波和王维负责编写程序,其他三人收集材料并帮助他们人编写和调试程序。 三、心得体会: 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。 回顾起此次课程设计,至今让我我们仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,几个星期的日子里,可以学

到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,也懂得集体团队的重要性。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。 这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在黄老师的辛勤指导下,终于游逆而解。同时,在黄老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢

Altium Designer课程设计

徐州师范大学 课程报告 课程名称:Altium Designer教程 题目: 专业班级:08电信 学生姓名: 学生学号: 日期: 2011/1/08 指导教师: 物电学院教务部印制

目录 (以下章节名称为参考) 摘要...................................................................................................II Abstract................................................................................................ II 1 课题背景(或绪论、概述) (1) 1.1 XXXX (1) 1.2 XXXX (x) 2 设计方案简述 (x) 2.1 XXXX (x) 2.2 XXXX (x) 2.3 XXXX (x) 3 详细设计 (x) 3.1 XXXX (x) 3.1 XXXX (x) 4 设计结果及分析 (x) 4.1 XXXX (x) 4.2 XXXX (x) 4.3 XXXX (x) 5总结 (x) 参考文献 (x) 附录主要程序代码 (x)

摘要 电子线路CAD是从实用角度出发,详细介绍了Altium Designe的实用功能,可以引导读者轻松入门,快速提高。全面介绍了Altium Designe的界面、基本组成及使用环境等,并详细讲解了电路原理图的绘制、元件设计、印制电路板图的基本知识、印制电路板图设计方法及操作步骤等,详细讲解了电路从电路原理图设计到印制电路板图输出的整个过程。 关键词:Altium Designe软件;电路原理图设计;电路板; Abstract Electronic circuit from a practical point of CAD is presented in detail Altium Designe practical function, can lead readers to get started, to rapidly improve. A comprehensive introduction to Altium Designe interface, basic composition and the use of the environment, and gave a detailed schematic drawing, component design, printed circuit board diagram of the basic knowledge of Design Method for printed circuit boards and other steps in detail explained from the circuit diagram of the circuit design to printed circuit board map out the entire process. Keywords:Altium Designe software; circuit schematic design; circuit board

C语言课程设计图书管理系统课程设计报告

C语言课程设计 图书管理系统 Books Management System 学生姓名张朝柱 学院名称徐州工程学院学号140 班级13计转本 专业名称计算机科学与技术 指导教师李子龙 2016年5月10日

一、需求分析 为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。使用c语言编写了图书管理系统。本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。图书信息包括编号、书名、作者、数量、在库状态等。图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、借阅、还书等基本操作。整个程序实现顺序表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。 二、算法设计: 1.设计思想: 整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。在设计程序时,实现了程序的模块化、结构化。在主函数中调用各种子函数,操作界面简单,易操作。 2,设计表示: (1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。主要实现了图书的录入、存储、查询、借书、还书、显示库存等功能。 (2)、void Book_Entering(struct SqList &SL);这是一个录入图书信息的函数,它主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其他函数的操作。它引用了一个顺序表SL。其他函数调用时只需传入顺序表头即可。 (3)、int main(void);这五个函数时整个图书管理系统的全部菜单函数,Book_Entering();为系统主界面,进入时可选择进入程序和退出程序。menu1();为进入程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。Book_Inquire();此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书等操作。cxmenu();为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书。jhmenu();为借书还书的子菜单,在此可以选择借书还书操作。操作完成后按提示信息进行文件的保存操作。 (4)、void Book_Inquire(struct SqList &SL);这个函数为顺序表的输出函数,把顺序表的头传给函数后,可输出整个顺序表的所有信息。、

相关文档
相关文档 最新文档