课程设计用c++设计一个排课程序

课程设计用c++设计一个排课程序
课程设计用c++设计一个排课程序

课程设计论文

题目:用c++设计一个排课程序学院:

专业名称:电子科学与技术

班级学号:

学生姓名:

指导教师:

2013年 6月

目录

一、课题背景 (3)

1.1选题的意义 (4)

二、课题要求 (4)

2.1设计功能要求 (4)

2.2 报告要求 (5)

三、系统总体方案: (5)

3.1方案描述 (5)

3.3各功能模块: (6)

四、源程序代码 (7)

五、测试数据及结果 (24)

六、总结 (25)

参考书籍 (26)

致谢 (26)

摘要:随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。如何通过计算机为我们完成更多的事情,进而达到办公自动化和优化日常工作的目的,也就成了一个大众化的课题。作为计算机应用的一部分,使用计算机对信息进行管理,具有与手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

关键词:计算机c++程序语言排课系统

一、课题背景

1.1实际应用的需要

近几年来,随着各高校办公自动化工作的推进,教务管理自动化也被摆上了日程。在教务工作中占有很大比重的一项就是每学期的课程排定工作。由于教工、教室和设备的相对紧张,如何进行合理地安排和分配,从而充分利用教学资源是我们不得不面对的问题。而人工进行排课不仅任务重,效率低,而且易出错,难于维护,想要排出一张各方面都满意的课表非常困难。并且随着高校规模的扩大手工排课的难度和工作量呈几何级数增长。学校教务的管理作为高校教育信息化工作中的一项重要工作,如何构建一个具有开放性、实用性和灵活性的平台,是一个值得探讨

的课题。其中,作为学校教务重点环节之一的排课系统也尤为重要。

1.1选题的意义

排课系统正是为了减轻教务人员的工作量,实现教务工作自动化,解决排课这一老大难问题的教务办公软件。尤其针对高校的排课一直都没有很好的解决方法,但是此问题又是每个学校在每个学期都会碰到的必要行政作业。本文在相关理论的指导下,在分析以往一些排课软件的基础上,提出一个高校通用排课系统的设计方法,并对一些具体的问题给出相应解决方案。但是,由于技术、经验的有限和数据量过大,目前我们很难做出一个满足所有需要的排课系统。因为它不仅要考虑到教室冲突问题和教师冲突问题,还要考虑到分段课、单双周课时的资源利用问题;另外由于高校的教学特点,还要处理合班课、分班课、体育课与选修课等特殊课程。针对这些问题,在此专门对数据库设计作了一些探索,并于架构的选择和模块的划分上经过精心调整,在菜单的设计上也体现了人性化的操作。该设计贴近用户需求,功能完整,架构合理,并用大量的框图模型体现了系统的规划。该系统实现上机时间的安排,课程的安排,教室的安排,以及它们之间的不冲突和资源的高效利用;这更切合学院教学需要,降低了排课管理工作的工作量和节省了时间,同时课程安排完成后,学院可迅速获得课表情况信息,为教学工作带来方便。本系统界面友好,操作简单,使用方便。

二、课题要求

2.1设计功能要求

程序运行时,用户输入教师信息(姓名、教师号、工作量)、课程信息(课程名、课程号、周学时、总学时、优先级)、教师对所希望讲授课程的期望值以及教学工作量等相关信息,所有信息应保存在文件中,程序根据课程的优先级以及教师对课程的期望值进行排课。为了公平起见,程序随机分配课程,如果10门课

程都有优先级,程序以随机的顺序将这些课程分给教师,如果10位教师对某门课程的期望值为1,程序应从10位教师中随机选择一个。最后输出排课情况,即某位老师上某门课程,以及某位老师的工作量。

测试数据:程序应能实现对不少于20门课和10个教师的排课,并且使每个教师的满意度达到最大,不存在工作量不满的教师以及未分配的课等情况。

2.2 报告要求

1.封面

2.课程设计报告:

3.⑴系统总体方案

⑵设计思路和主要步骤

⑶各功能模块和流程图

⑷设计代码

⑸心得体会和参考资料

三、系统总体方案:

3.1方案描述

某学校每位教师都有教学工作量,教师对他所希望讲授的课程表达为一个期望值,1,2…,n,其中1是最高的期望值。课程也有优先级,1,2…,n,用来决定将课程分给教师的顺序,其中1是高的优先级。设计一个程序针对某些课程给某些教师进行排课。要求:

(一)程序运行时,用户输入教师信息(姓名、教师号、工作量)、课程信息(课程名、课程号、周学时、总学时、优先级),教师对所希望讲授课程的期望值以及教学工作量等相关信息,所有信息应保存在文件中。

(二)程序根据课程的优先级以及教师对课程的期望值进行排

课。最后输出排课情况,即某位老师上某门课程,以及某位老师的工作量。

(三)可以实现对文件的修改。

(四)可以在各个界面中实现退出以及进入的循环。

(五)可以退出本系统。

(六)程序应能实现对不少于20门课和10个教师的排课,并且使每个教师的满意度达到最大,不存在工作量不满的教师以及未分配的课等情况。

3.2系统设计框图:

3.3各功能模块:

命令对应函数功能描述

1 input_teacher 输入数据并写入文件

2 input_course 输入数据并写入文件

3 input_num 输入数据并写入文件

4 arranging 排课

5 print 输出排课结果

6 print_help 帮助

7 print_teacher 输出文件信息

8 print_course 输出文件信息

9 print_num 输出文件信息

10 change 修改文件信息

四、源程序代码

Teacher.h:

#include

#include

class teacher

{ private:

char name[11];

int id;

int work_load;

int total;

public:

teacher();

void set_teacher(char *pn,int i,int w);

void set_total(int t)

{ total=t; }

char *get_name()

{return name;}

int get_id()

{return id;}

int get_work_load()

{return work_load;}

int get_total()

{return total;}

void print();

};

teacher::teacher()

{ strcpy(name,"无");

id=0;

work_load=0;

total=0; }

void teacher::set_teacher(char *pn,int i,int w) { strcpy(name,pn);

id=i;

work_load=w; }

void teacher::print()

{ cout<<"姓名:"<

cout<<"编号:"<

cout<<"工作量:"<

}

Course.h:

#include

class course

{ private:

char course_name[15];

int course_id;

int week_hour;

int total_hour;

int N;

public:

course(void);

void set_course(char *pname,inti,int w,int t,intn) char *get_course_name()

{return course_name;}

int get_course_id()

{return course_id;}

int get_week_hour()

{return week_hour;}

int get_total_hour()

{return total_hour;}

int get_N()

{return N;}

void print();

};

course::course(void)

{ strcpy(course_name,"无");

course_id=0;

week_hour=0;

total_hour=0;

N=0; }

void course::set_course(char *pname,int i,int w,int t,in t n)

{ strcpy(course_name,pname);

course_id=i;

week_hour=w;

total_hour=t;

N=n; }

void course::print()

{ cout<<"课程名:"<

cout<<"编号:"<

cout<<"周学时:"<

cout<<"总学时:"<

cout<<"优先级:"<

void course::print()

{ cout<<"课程名:"<

cout<<"编号:"<

cout<<"周学时:"<

cout<<"总学时:"<

cout<<"优先级:"<

}

{ x=0;

y=0; }

void set_x(int a)

{ x=a; }

void set_y(int b)

{ y=b; }

int get_x()

{return x;}

int get_y()

{return y;}

};

排课.cpp:

#include

#include

#include

#include

#include

#include"teacher.h"

#include"course.h"

#include"arrange.h"

#include

//using namespace std;

void input_teacher(teacher *t,int n,int m);

void input_course(course *c,int m);

void input_num(int **num,int n,int m);

void arranging(int **num,teacher *t,course *c,arrange *a ,int n,int m);

void print(teacher *t,course *c,arrange *a,int m); void print_help();

void print_teacher();

void print_course();

void print_num();

void change(int **num,teacher *t,course *c,arrange *a,in t n,int m);

void change_teacher(teacher *t,int n);

void change_course(course *c,int m);

void change_num(teacher *t,course *c,int **num,int n,int m);

void main()

{ int i,n,m;

cout<<"==========================教师排课系统

==========================="<

cout<<"教师人数:";cin >>n;

cout<<"课程数:";cin>>m;

int** num=new int*[n];

for(i=0; i

{ num[i]=new int[m]; }

teacher *t;

course *c;

arrange *a;

t=new teacher[n];

c=new course[m];

a=new arrange[m];

if(t==NULL||c==NULL||a==NULL)

{ cout<<"内存分配失败"<

return

}

cout<<" 1. 输入教师基本数据\n";

cout<<" 2. 输入课程基本数据\n";

cout<<" 3. 输入教师对课程满意度\n";

cout<<" 4. 排课\n";

cout<<" 5. 输出排课结果\n";

cout<<" 6. 帮助\n";

cout<<" 7. 输出教师信息\n";

cout<<" 8. 输出课程信息\n";

cout<<" 9. 输出教师对课程满意度\n";

cout<<" 10.修改文件数据\n";

cout<<" 0. 退出\n";

cout<<"\n 输入你的选择:";

int ch;

Do

{ //cout<<"\n\n 请选择:\n";

//cout<<" 1. 输入教师基本数据\n";

//cout<<" 2. 输入课程基本数据\n";

//cout<<" 3. 输入教师对课程满意度\n";

//cout<<" 4. 排课\n";

//cout<<" 5. 输出排课结果\n";

//cout<<" 6. 帮助\n";

//cout<<" 0. 退出\n";

//cout<<"\n 输入你的选择:";

cin>>ch;

switch(ch)

{ case 1 : input_teacher(t,n,m);break;

case 2 : input_course(c,m);break;

case 3 : input_num(num,n,m);break;

case 4 : arranging(num,t,c,a,n,m);break; case 5 : print(t,c,a,m);break;

case 6 : print_help();break;

case 7 : print_teacher();break;

case 8 : print_course();break;

case 9 : print_num();break;

case 10: change(num,t,c,a,n,m);break;

case 0 : break;

}}

while(ch);

for(i=0; i

{ delete[] num[i]; }

delete[] num;

delete []t;

delete []c;

delete []a; }

void input_teacher(teacher *t,int n,int m)

{ fstream teachers("d:\\teachers.txt",ios::out);

teachers<<"姓名"<

int i,j,work,id;

char name[11],nn[11];

cout<<"\n 请输入教师基本数据:"<

while(1)

{ int total=0;

for(i=0;i

{ cout<<"第"<

cout<<"编号:";

while(1)

{ if (cin >> id) break;

else

{ cout<<"编号应为数字,请重新输入:"<

cin.clear();

cin.ignore();}}

cout<<"姓名:";

while(1)

{ cin>>name;

for(j=0;j<11;j++)

{ if

( ('!'<=name[j]&&name[j]<='@')||('['<=name[j]&&name[j]< ='`')||'{'<=name[j]&&name[j]<='~' )

nn[j]=0;

else

nn[j]=1; }

if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]*nn[6]*nn[7]*nn[8]

*nn[9]*nn[10]==1) break;

else

{cout<<"姓名应为字母,请重新输入”<

cin.clear();

cin.ignore();

} }

cout<<"工作量:";

while(1)

{ if (cin >> work) break;

else

{ cout<<"工作量应为数字,请重新输入:"<

cin.clear();

cin.ignore();

} }

total=total+work;

if(total>m) {cout<<"总工作量大于课程数,请重新输入:

"<

t[i].set_teacher(name,id,work);

teachers<

}

if(total==m) break;

if(total>m) continue;

}

teachers.close(); }

void input_course(course *c,int m)

{ fstream courses("d:\\courses.txt",ios::out);

courses<<"课程名"<

时"<

int week_hour,total_hour,d1,id,i,j;

char name[11];

char nn[11];

for(i=0;i

{ cout<<"第"<

cout<<"课程号:";

while(1)

{ if (cin >> id) break;

else

{ cout<<"课程号应为数字,请重新输入:"<

cin.clear();

cin.ignore();

} }

cout<<"课程名:";

while(1)

{ cin>>name;

for(j=0;j<11;j++)

{ if

( ('!'<=name[j]&&name[j]<='@')||('['<=name[j]&&name [j]<='`')||'{'<=name[j]&&name[j]<='~' )

nn[j]=0;

else

nn[j]=1;

}

if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]*nn[6]*nn[7]*n

n[8]*nn[9]*nn[10]==1) break;

else

{ cout<<"课程名应为字母,请重新输入:"<

cin.clear();

cin.ignore();

} }

cout<<"周学时:";

while(1)

{ if (cin >> week_hour ) break;

else

{ cout<<"周学时应为数字,请重新输入:"<

cin.clear();

cin.ignore();

} }

cout<<"总学时:";

while(1)

{ if (cin >> week_hour ) break;

else

{ cout<<"周学时应为数字,请重新输入:"<

cin.clear();

cin.ignore();

} }

cout<<"总学时:";

while(1)

{ if (cin >> total_hour ) break;

else

{ cout<<"总学时应为数字,请重新输入:"<

cin.clear();

cin.ignore();

} }

cout<<"优先级:";

while(1)

{ if (cin>>d1) break;

else

{ cout<<"优先级应为数字,请重新输入:"<

cin.clear();

cin.ignore();

} }

c[i].set_course(name,id,week_hour,total_hour,d1);

courses<

}

courses.close(); }

void input_num(int **num,int n,int m) //教师对课程满意度输入

{ fstream nums("d:\\hope.txt",ios::out);

nums<

int nu,i,j,k;

for(k=0;k

nums<<"第"<

}

nums<

for(i=0;i

{ nums<<"第"<

for(j=0;j

cout<<"第"<

//cin>>nu;

while(1)

{ if (cin >> nu) break; else { cout<<"满意度应为数字,请重新输入:"<

cin.clear();

cin.ignore();

}

}

num[i][j]=nu;

nums<

}

nums<

}

nums.close();

}

void arranging(int **num,teacher *t,course *c,arrang e *a,int n,int m) //排课

{ int h,s,i,j,b,k=1,min,min1,q=0;

min=c[0].get_N();

srand((unsigned)time(NULL));

for(s=0;s

{ if(c[s].get_N()

min=c[s].get_N();

}

while(h)

{

for(i=0;i

{

if(c[i].get_N()==min) //判断课程优先级

{ min1=num[0][i];

for(j=0;j

{ if

( num[j][i]

min1=num[j][i];

}

while(1>0)

{ b=rand()%n;

if(b>n)

continue;

else if(t[b].get_total()>t[b].get_work_load()) continue;

else if(num[b][i]!=min1)

continue;

else

{ a[q].set_x(b);a[q].set_y(i);q++;

int w=t[b].get_total()+1;

t[b].set_total(w);

//k=0;

cout<<"第"<

break; }

}

//if(i=m-1) min++;

}

min++;

if(q

else h=0;

} }

void print(teacher *t,course *c,arrange *a,int m) //输出排课结果

{ int i,a1,b1;

for(i=0;i

{ a1=a[i].get_x();

b1=a[i].get_y();

cout<<"第"<

"<

t[a1].print();

c[b1].print();

} }

void print_help() //帮助函数 {

cout<<" 1. 输入教师基本数据\n";

cout<<" 2. 输入课程基本数据\n";

cout<<" 3. 输入教师对课程满意度\n";

cout<<" 4. 排课\n";

cout<<" 5. 输出排课结果\n";

cout<<" 6. 帮助\n";

cout<<" 7. 输出教师信息\n";

cout<<" 8. 输出课程信息\n";

cout<<" 9. 输出教师对课程满意度\n";

cout<<" 10.修改文件数据\n";

cout<<" 0. 退出\n"; }

void print_teacher() //输出教师信息

{ ifstream fin("d:\\teachers.txt",ios::nocreate);

if(!fin)

{ cout<<"File open error!\n";

return;

}

char c[80];

while(!fin.eof()) //判断文件是否读结束

{ fin.read(c,80);

cout.write(c,fin.gcount());

}

fin.close();

}

void print_course() //输出课程信息

{ ifstream fin("d:\\courses.txt",ios::nocreate); if( !fin)

{ cout<<"File open error!\n";

return;

}

char c[80];

while(!fin.eof())

{ fin.read(c,80);

cout.write(c,fin.gcount());

}

fin.close(); }

void print_num() //输出教师对课程的满意度

{ ifstream fin("d:\\hope.txt",ios::nocreate); if(!fin)

{ if(!fin)

{ cout<<"File open error!\n";

return;

}

char c[80];

while(!fin.eof()) //判断文件是否读结束

}

fin.read(c,80);

cout.write(c,fin.gcount()); }

fin.close(); }

void change(int **num,teacher *t,course *c,arran

ge *a,int n,int m) //修改文件信息

{ int ch;

do {

cout<<"\n\n 请选择:\n";

cout<<" 1. 修改教师基本数据\n";

cout<<" 2. 修改课程基本数据\n";

cout<<" 3. 修改教师对课程满意度\n";

cout<<" 0. 退出\n";

cout<<"\n 输入你的选择:";

cin>>ch;

switch(ch)

{ case 1 : change_teacher(t,n);break;

case 2 : change_course(c,m);break;

case 3 : change_num(t,c,num,n,m);break; c ase 0 : break; } }

while(ch); }

void change_teacher(teacher *t,int n)

{ int i,aa,bb,k,j,ii;

char na[11];

char nn[11];

cout<<"请输入要修改教师编号:";

cin>>ii;

for(i=0;i

if(t[i].get_id()==ii)

{ cout<<"此教师原信息:"<

t[i].print();

k=i;

}

cout<<"请输入此教师新信息:"<

cout<<"编号:";

while(1)

{ if (cin >> aa) break;

else

{ cout<<"编号应为数字,请重新输入:"<

cin.clear();

cin.ignore(); }

}

cout<<"姓名:";

while(1)

{ cin>>na;

for(j=0;j<11;j++)

{ if

( ('!'<=na[j]&&na[j]<='@')||('['<=na[j]&&na[j]<='`') ||'{'<=na[j]&&na[j]<='~' )

nn[j]=0;

else

nn[j]=1; }

if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]*nn[6]*nn[7]* nn[8]*nn[9]*nn[10]==1) break;

else

{ cout<<"姓名应为字母,请重新输入:

"<

cin.clear();

cin.ignore();

} }

cout<<"工作量:";

while(1)

{ if (cin >> bb) break;

else

{ cout<<"工作量应为数字,请重新输入:"<

cin.clear();

cin.ignore();

} }

t[k].set_teacher(na,aa,bb);

fstream teachers("d:\\teachers.txt",ios::out);

teachers<<"姓名"<

for(j=0;j

{ if(j==k)

teachers<

else

山东建筑大学计算机网络课程设计基于Python的网络爬虫设计

山东建筑大学 课程设计成果报告 题目:基于Python的网络爬虫设计课程:计算机网络A 院(部):管理工程学院 专业:信息管理与信息系统 班级: 学生姓名: 学号: 指导教师: 完成日期:

目录 1 设计目的 0 2 设计任务内容 0 3 网络爬虫程序总体设计 0 4 网络爬虫程序详细设计 0 4.1 设计环境和目标分析 0 4.1.1 设计环境 0 4.1.2 目标分析 (1) 4.2 爬虫运行流程分析 (1) 4.3 控制模块详细设计 (2) 4.3 爬虫模块详细设计 (2) 4.3.1 URL管理器设计 (2) 4.3.2 网页下载器设计 (2) 4.3.3 网页解析器设计 (2) 4.4数据输出器详细设计 (3) 5 调试与测试 (3) 5.1 调试过程中遇到的问题 (3) 5.2测试数据及结果显示 (4) 6 课程设计心得与体会 (4) 7 参考文献 (5) 8 附录1 网络爬虫程序设计代码 (5) 9 附录2 网络爬虫爬取的数据文档 (8)

1 设计目的 本课程设计是信息管理与信息系统专业重要的实践性环节之一,是在学生学习完《计算机网络》课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1.巩固和加深学生对计算机网络基本知识的理解和掌握; 2.培养学生进行对网络规划、管理及配置的能力或加深对网络协议体系结构的理解或提高网络编程能力; 3.提高学生进行技术总结和撰写说明书的能力。 2 设计任务内容 网络爬虫是从web中发现,下载以及存储内容,是搜索引擎的核心部分。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。 参照开放源码分析网络爬虫实现方法,给出设计方案,画出设计流程图。 选择自己熟悉的开发环境,实现网络爬虫抓取页面、从而形成结构化数据的基本功能,界面适当美化。给出软件测试结果。 3 网络爬虫程序总体设计 在本爬虫程序中共有三个模块: 1、爬虫调度端:启动爬虫,停止爬虫,监视爬虫的运行情况 2、爬虫模块:包含三个小模块,URL管理器、网页下载器、网页解析器。 (1)URL管理器:对需要爬取的URL和已经爬取过的URL进行管理,可以从URL 管理器中取出一个待爬取的URL,传递给网页下载器。 (2)网页下载器:网页下载器将URL指定的网页下载下来,存储成一个字符串,传递给网页解析器。 (3)网页解析器:网页解析器解析传递的字符串,解析器不仅可以解析出需要爬取的数据,而且还可以解析出每一个网页指向其他网页的URL,这些URL被解析出来会补充进URL管理器 3、数据输出模块:存储爬取的数据 4 网络爬虫程序详细设计 4.1 设计环境和目标分析 4.1.1 设计环境

程序设计基础课程设计报告 内容样例

第一章目的与要求 书上有。 第二章需求分析 软件设计的一个重要的环节就是需求分析。本章在对ATM取款机管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。以下是ATM取款机管理系统所需要的需求分析。 ATM管理系统包括六个模块:登录,挂失功能,修改密码,取款功能,转账功能,查询功能。 ①登录: 输入银行卡的账号,密码,验证银行卡的卡号,密码是否正确,之后进入主界面 ②挂失功能: 确认是否对银行卡进行挂失,挂失后账户无法操作 ③修改密码: 用户可自由对其银行卡密码进行修改,修改之后的新密码将会覆盖其原密码 ④取款功能: 用户可自由取得所持银行卡内的存款,所取款数必须在其原有账户余额之内 ⑤转账功能: 用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账

号 ⑥查询功能: 用户可查询用户信息,其中包括用户姓名、用户身份证号码、银行卡号以及存款余额 模拟ATM取款机的操作: 首先录入账户信息,格式如下 ㈠、登录功能:输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 ㈡、查询功能:查询账户余额。 ㈢、取款功能:取款,更新余额。 ㈣、挂失功能:挂失后,该账户不能进行任何操作。 ㈤、修改密码:输入原密码和新设置密码。 ㈥、转账功能:输入转账的转出账户以及转账金额,进行转账。

第三章设计分析 3.1、ATM系统管理 3.1.1系统基本功能 首先,确定系统中存在两种用户,一种是ATM,可以进行信息录入和后台管理。另外一种是取款人,取款人主要是进行信息的查询,不能进行信息录入。所以在创建类的时候,先创建一个ATM类,然后创建取款人类,并与ATM 类形成有元,进而继承ATM的所有功能,并添加录入信息的功能。 基本功能: 登录功能---------输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 查询功能---------查询账户余额。 取款功能---------取款,更新余额。 挂失功能---------挂失后,该账户不能进行任何操作。 修改密码---------输入原密码和新设置密码。 转账功能---------输入转账的转出账户以及转账金额,进行转账。、

c语言实验心得体会

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

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

C语言程序设计课程设计题目

1一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n 是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进

行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

《.NET程序设计》课程设计报告

《.NET程序设计》课程设计报告 班级:计算机1403 学号:1411640305 姓名:黄世增

一、实验名称 作者信息管理系统 二、实验目的 1.进一步掌握并加深“.NET程序设计”课程的基本知识,理解“.NET程序设计”课程中重点讲解的https://www.360docs.net/doc/225544622.html,技术在项目开发中的应用。 2.培养正确的程序设计思想,提高分析问题、解决问题的能力。 3.提高学生进行技术总结和撰写说明书的能力。 三、系统设计描述 实验设计内容: 本次实验设计的内容是使用https://www.360docs.net/doc/225544622.html,技术为某出版社设计并实现一个小型作者信息管理系统。出版社的工作人员登录该系统后,可以查看该社出版的各类书籍的作者的信息,并可以对作者信息进行各类查询,便于工作人员对作者信息进行管理。 系统数据库设计: 在SQL Server Express中为作者信息管理系统建立一个名为作者信息管理系统的数据库,并设计以下2张数据表: 1.系统管理员表 该表用来记录使用本系统的管理员的基本信息,包括管理员账户及密码。 【思考题】 (1)数据库中的一条记录中有若干个属性,若其中某一个属性(注

意是组)能唯一标识一条记录,该属性组就可以成为一个主键。 统管理员表中用户名应设为主键。 (2)用户名和密码都设为varchar字符型。 2.作者个人信息表 该表用来记录作者个人的基本信息,包括作者编号、姓名、联系地址、电话、email。 【思考题】 (1)表中作者编号应设为主键。 (2)表中作者ID、电话号码和Email为nchar字符串型,姓名和联系人地址为nvarchar字符串型。 设计好数据库的两个表后,分别在两个表中输入数据,如下图所示:

c语言程序设计》课程设计报告

《C语言程序设计》课程设计报告 (2013—2014学年第3学期) 题目:C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号:1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 掷骰子游戏 (5) 射击游戏 (7) 计算存款本息之和 (8) 肇事逃逸 (10) 礼炮 (12) 汽车加油 (14) 大优惠 (16) 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;

2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式 ③必须上机调试通过 二、方案实现与调试 掷骰子游戏 2.1.1题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。 4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述 本算法的思路过程:首先要随机产生随机数,然后进行算法输出数值,执行条件判断输入结果,最后比较结果,判断胜利的一方。

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

C语言程序设计课程设计报告

C语言程序设计课程设 计报告 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目: C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 2.1 掷骰子游戏 (5) 2.2 射击游戏 (7) 2.3 计算存款本息之和 (8) 2.4肇事逃逸 (10) 2.5 礼炮 (12) 2.6 汽车加油 (14) 2.7 大优惠 (16) 2.8 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C 语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;

2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式 ③必须上机调试通过 二、方案实现与调试 2.1掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述

java网络编程课程设计终极版

枣庄学院 信息科学与工程学院课程设计任务书题目:基于UDP的聊天系统 小组成员:谭德鹏、崔浩、王珂、李洪康 成员学号:201212120221、201212120202 201212120224、201212120209 专业班级:网络工程、2012级本2班 课程:Java网络编程 指导教师:吕加国职称:副教授 完成时间:2015年4 月----2015年6 月 枣庄学院信息科学与工程学院制 2015年4 月15日

课程设计任务书及成绩评定 课程设计的任务和具体要求 任务:运用JDK和Eclipse开发环境,完成一个聊天或通讯系统的设计,初步掌握利用Java语言和JDK开发网络通信程序的基本方法。 具体要求: 1、需求分析:根据自己的选题,绘制用例图、功能结构图等。 2、系统设计:合理划分系统的功能结构,写清楚各个功能模块之间的关系。 3、详细设计:根据自己选题的业务逻辑,完成系统的界面设计、代码设计。 4、设计小结:总结课程设计的过程、体会及建议。 6、其他:参考文献等。 指导教师签字:吕加国日期: 2015-11-10 指导教师评语 成绩:____________指导教师签字:日期: 2015-1-10

课程设计所需软件、硬件等 ?硬件环境:Iterl(R) Core(TM)2 Duo CPU,主频2.31GHz;内存3G; 硬盘320G以上;1024×768显示分辨率 ?软件环境: JDK XXX、Eclipse XXX 课程设计进度计划 起至日期工作内容备注 6月10日~6月20日 我们小组根据所选的题目以及在这学期所学的软件工程的知识,严格按照软件生产的流程(使用的是瀑布模型)来完成此作品,小组成员各职其所,都完成了预期所做的工作! 参考文献、资料索引 序号文献、资料名称编著者出版单位[1]《Java网络编程基础》(第2版).作者:朱喜福戴舒樽王晓勇

Web程序设计课程设计报告模板

Web程序设计课程设计报告课程设计题目:某电子杂志网站 姓名:肖琴霞 专业:软件工程(国际教育) 班级:10211133 学号:1021113321 指导教师:吴光明 2013 年 3 月 10 日

一、设计目的 《Web应用开发课程设计》是实践性教学环节之一,是《Web程序设计》课程的辅助教学课程。通过课程设计,使学生掌握Web网站的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握软件开发的基本概念、原理和技术,将理论与实际相结合,应用现有的开发工具,规范、科学地完成一个完整地应用软件的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。 当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正使得计算机被广泛的应用于信息管理系统。计算机的最大好处在于利用它能够进行信息管理和查询。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。制作电子杂志网站可以方便读者阅读,且可以扩大读者的视野以及提高阅历。 二、设计解决方案 问题解决方案: 经过分析,我们决定利用ASP编程,使用Dreamweaver MX作前端开发工具,利用SQLServer2000作后台数据库管理,数据库驱动使用ADO。 前台功能模块:系统主界面与登录程序设计,杂志查询及订阅,读者服务模块,杂志分类设计等。 后台功能模块:管理主界面与登录程序设计,最新杂志信息管理模块,杂志订阅管理模块,在留言管理模块设计等。后台管理的建立,使管理员可以通过后台很容易的对杂志城进行管理,比如:对最畅销杂志,公告和杂志城注册用户进行添加,删除等管理工作,还可以对读者在线留言的处理。 三、电子杂志网需求分析 3.1 需求分析 需求分析是整个设计过程的基础,最困难、最消耗时间的一步。它的最终结果是提供

C语言课程设计总结

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

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

C语言程序设计课程设计

《C语言程序设计》课程设计 1课程设计目的 C语言课程设计是在“C语言程序设计”课程后集中安排的1周相关的实践技能训练环节。它的目的是通过实践环节的训练,培养学生查阅资料的能力、分析与解决问题的能力、应用C语言开发与设计程序的能力。 2课程设计选题 2.1 题目1 必做题目,其余题目任选一题完成 题目1:年历显示。 功能要求: (1)输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。 (2)输入年月,输出该月的日历。 (3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。 题目2:小学生测验 面向小学1-2年级学生,随机选择两个整数和加减法形成算式要求学生解答。 功能要求: (1)电脑随机出10道题,每题10分,程序结束时显示学生得分; (2)确保算式没有超出1-2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0-50的范围,负数更是不允许的; (3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案; (4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分; (5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN” 题目3:学生学籍管理系统(可以2人合作完成) 用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。 功能要求: (1)系统以菜单方式工作。 (2)登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息; (3)删除已知学号的学生信息; (4)查找已知学号的学生信息; (5)按学号,专业输出学生籍贯表。 (6)查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。 题目4:通讯录程序设计 设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能:(1)系统以菜单方式工作 (2)信息录入功能 (3)信息浏览功能

《网络应用程序设计》课程设计报告书

网络应用程序设计课程设计报告书 题目:局域网多人聊天室 班级:0991132 学号:1099113202 姓名:赵燃 指导教师:宋毅、王家宁、徐红梅、姚璐 周期:一周 成绩: 2011年12 月23 日

一、课程设计的目的与要求( (一)课程设计目的与任务 (1)课程设计的目的:《网络高级程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用vc++语言进行面向对象设计的基本方法。提高运用面向对象知识分析实际问题、解决实际问题的能力。 (2)课程设计任务:局域网多人聊天室 该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。 客户端程序:可连接到服务器,并将消息发送到服务器端和接受服务器端发送来的信息。 服务器端程序:可将消息发送到客户端和接受客户端发送来的消息。 (二)题目要求 该系统要求完成聊天室的全过程,包括客户端和服务器两大部分的编程及其连接。服务器端聊天程序负责接收和发送来自客户端的聊天信息,客户端聊天程序负责建立和维护与服务器端的连接,想服务器发送本客户的聊天内容。系统采用VISUAL C++语言程序设计编程实现。并且按要求编写程序设计报告书,能正确编写分析、设计、编码、测试等技术文档。 二、设计正文 1系统分析 (1)服务器聊天程序要在待定的端口上等待来自聊天客户的连接请求,并且需要维护一个客户连接表,以记录所有成功的连接。 (2)服务器聊天程序要及时接受从各个聊天客户发送过来的信息,然后把这些信息转发到一个或多个客户连接。对于公共聊天室,服务器将把接受到的信息除源端外的所有客户发送过去。 (3)服务器还要监控这些连接的状态。在客户主动离开或发生故障时从列表删除相应的表项,并及时更新连接表。 2功能详细描述及框图 用户首先启动客户端,登陆服务器并向服务器发送信息,启动服务器,服务器等待客户要求并向客户反馈在线用户信息,用户向服务器发送信息,服务器处理用户的数据,然后用户开始聊天,客户端的聊天分为对群聊天和私聊的信息,该信息应通过程序控制分别进行处理。

程序设计基础课程设计报告

课程设计(大作业)报告 课程名称:程序设计基础 设计题目:学生成绩记录薄设计 院系:信息技术学院 班级: 设计者: 学号: 指导教师: 设计时间:2013.7 8.-2013.7.13 信息技术学院

昆明学院课程设计(大作业)任务书

学生成绩记录薄设计 一、课程设计目的与要求 1.课程设计目的 (1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。 (2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。 2. 课程设计要求 设计一个简易学生成绩记录簿设计,其中包括:姓名,学号,C语言成绩; 具体功能: 1.系统以菜单方式工作 2. 创建学生成绩信息并以磁盘文件保存; 3. 读取磁盘文件并显示输出所有学生的成绩; 4. 查询学生成绩 (1)按学号查询成绩 (2)学号姓名查询成绩 5.添加成绩记录; 6.修改指定姓名或学号的学生的成绩并可存盘; 7.显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。 二、总体设计 图1 系统总体结构

三、详细设计 1、数据结构设计 #include #include #include #include int n=4; struct student { int num; /*学号*/ char name[10]; /*姓名*/ float score[3]; /*成绩*/ } 2.函数说明 1.主函数 main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。 2.其他部分功能函数包括 (1) 将学生成绩信息保存为文件void save(); 算法思想: ①定义指向文件的指针变量; ②输入保存路径及文件名,打开文件,若不能打开文件给出提示信息; ③将存有学生成绩信息的结构体数组信息依次保存到文件中。 (2)学生成绩信息录入函数void input() 算法思想: ①依次录入结构体数组中所包含的各个成员; ②直到输入的结构体成员中信息为4,数据输入结束; ③返回实际录入的学生成绩信息数。 (3)从文件中读出学生成绩信息void output(); 算法思想: ①定义指向结构体变量的指针和指向文件的指针; ②输入文件的路径,打开文件,若不能打开文件给出提示信息; ③将文件中的信息依次读出,最后结构体的指针为NULL。

c语言课程设计总结报告

附表2 C++(或C)语言课程设计总结报告

源代码: /* 学生通讯录管理系统,能够实现对通讯录的内容进行创建、显示、查询、删除以及修改等功能*/ # include # include # include

# include # define N 100 void myprint(); void mycreate(char num[N][12],char name[N][12],char tel[N][15],int *n); void mydisplay(char num[N][12],char name[N][12],char tel[N][15],int n); void mysearch(char num[N][12],char name[N][12],char tel[N][15],int n); void mydelete(char num[N][12],char name[N][12],char tel[N][15],int *n); void mymodify(char num[N][12],char name[N][12],char tel[N][15],int n); /* 主函数*/ void main() { char choose,yes_no,num[N][12],name[N][12],tel[N][15]; int n=0; do{ myprint(); choose=getch(); switch(choose) { case '1':mycreate(num,name,tel,&n); break; case '2':if(n==0) { printf("\n 无记录,请创建通讯录!\n"); break; } mydisplay(num,name,tel,n); break; case '3':if(n==0) { printf("\n 无记录,请创建通讯录!\n"); break; } mysearch(num,name,tel,n); break; case '4':if(n==0) { printf("\n 无记录,请创建通讯录!\n"); break; } mydelete(num,name,tel,&n);

网络编程课程设计

课程设计说明书 课程名称:Windows网络编程 设计题目:基于JA V A网络聊天室设计 学院:计算机科学与信息工程学院 专业班级:网络工程12级 指导教师: 小组成员: 2015年6月 目录 摘要 (1) 引言: (1) 1.需求分析 (1) 1.1需求分析 (1) 1.2系统简介 (2) 2. 系统开发技术 (2)

2.1 JAVA网络编程技术 (2) 2.2 Socket套接字 (3) 2.3 TCP三次握手 (3) 3. 系统总框图与功能分析 (4) 3.1系统总框图 (4) 3.2系统功能模块分析 (5) 4. 系统模块代码设计与分析 (6) 4.1系统流程分析 (6) 4.2类的设计与分析 (7) 4.3客户端模块部分代码 (7) 4.4服务器端模块部分代码: (9) 5.系统测试 (11) 6. 总结 (13) 7.成员分工 (13) 参考文献: (14)

网络聊天室 摘要:随着我国经济发展和网络的普及,网络技术也越来越多地被应用于日常工作之中。在程序设计领域,面向对象的编程技术正在逐步代替面向过程的程序设计技术,成为计算机应用设计开发的主流,对于人与人之间通过网络的沟通和交流,聊天室是人们最常见、最直接的交流的方式。本聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台,也是网络与现实最贴近的实用型应用。本文所介绍的网络聊天系统是基于JAVA应用程序开发设计的,其主要特性是简单、面向对象、分布式、解释执行、安全、体系结构中立、可移植、高性能、多线程以及动态性。 关键词:局域网、聊天室、JAVA、Socket、WindowsSocket 引言:目前,基于TCP/IP协议的网络得到了普及和飞速的发展,Windows下的网络程序越来越显得重要。利用TCP/IP协议提供的编程接口———Socket(套接字)可以开发出TCP/IP应用程序。正确的使用WindowsSocket,就可使得不同地址下的进程得以在Windows 环境下顺利进行各种网络通信,因此研究WinSock更有意义。而基于TCP/IP协议网络环境下的应用程序是通过客户机/服务器(C/S)作用方式模式在网络(应用)编程界面实现的。本次实验采用java语言设计一个基于C/S模式的TCP网络通讯程序。实现客户端与服务器端之间的数据传输。 1.需求分析 1.1需求分析 根据当前网络的需求,网络聊天越来越受到各种网民所青睐。因此开发网络聊天是相当有必要,而且在网站内增加聊天功能,它不仅可以提高网站的访问量,同时可以留着访客,更重要的是让访客透过聊天室实时的互相交流。而小组成员也都学习过JAVA 语言,对网络编程也较有兴趣,为了更好的考验自己对JAVA语言的掌握程度,小组成

C语言课程设计报告-模板

C语言课程设计报告 班级:16 物联网 一、题目说明 (1)读取输入信息,能正确进行数字运算

(2)拥有记忆功能,可查询最近几次计算结果并继续进行数字运算。 二、基本功能实现 (1)能实现两个数之间的加减,乘,除,乘方,开方等运算。 (2)实现记忆功能,可保留近十位结果,可用#键查看。(3)*键作为清0键,清除当前屏幕上的值为0表示重新开三、设计流程(可以画流程图,可以直接写说明)

四、代码 #include #include #include #include double yunsuan(double a, char operate, double b); //处理数值之间的运算void PutRes(double array[], double res, int *i); //保存该次运算结果 int main() { char str[40]; double a = 0; double b = 0; double res = 0; double history[10] = {0,0,0}; char opt; int i = 0; printf("欢迎进入计算功能(eg: 1 \n+ 1 ; '#':查询历史结果; 'q':退出程序)·\n"); while(1){

fgets(str,40,stdin); //将从键盘的一整行标准输入保存在字符串str中 if(sscanf(str,"%lf", &a) == 1){ //将str以长浮点型的格式放入a中,如果返回值为1,说明输入的是数值, scanf("%c %lf", &opt, &b); //获取操作符的值和另外一个操作数的值 res = yunsuan(a,opt,b); //调用yunsuan()函数计算,并将结果给res printf("%lf %c %lf = %lf\n\n",a, opt, b, res); PutRes(history, res, &i); //调用函数PutRes()将本次结果保存到数组history中(i用引用传递) // printf("%d\n", i); }else if(sscanf(str,"%c",&opt) == 1){ //将str以字符型的格式放入opt中,如果返回值为1,说明输入的是字符 if(opt == '#'){ //如果opt为‘#’,则显示history 中的数值 int j = 0; for(j = 0; j < i; ++j){ //i为history中存放的数值个数 printf(" %lf ", history[j]); } printf("\n");

C语言程序课程设计猜数字游戏

C语言程序设计课程设计 : 自 动 化 级 : 名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2015年07月21日

一.引言 设计目的 复习和巩固C语言基础知识,进一步加深对C语言的理解和掌握。提高同学将课本上的理论知识和实际结合的能力,锻炼同学的分析解决实际问题的能力,提高同学团队合作的能力。使同学们善于观察和思考,善于合作,具备实践编程的基础素质,和实际问题分析的思考方式。 设计要求 在设计时充分地分析和理解问题本身,综合考虑系统功能,怎样使系统结构清晰、合理、简单和易于调试。然后详细设计,确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。最后认真完成课程设计说明书,并对设计方法,结果等进行总结。 充分地分析和理解问题本身,弄清要求做什么(What to do)。在确定解决方案框架过程中(How to do),综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。 确定算法的主要流程,在此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。 上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。静态检查主要有两种途径:(1)用一组测试数据手工执行程序;(2)通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。 二.基础题 题目 用选择法对10个数进行排序。 有一个已排好序的数组。现输入一个数,要求按原来的规律插入到原数组中。解题思路 程序的主要功能是对数组元素用排序函数按从小到大的顺序进行排序。 先定义一个10个元素的一维数组a[10],然后从电脑输入10个数(也就是对数组赋值),然后使用一次fun()函数,对这10个数进行排序;然后再定义一个11个元素的一维数组b[11],同时再从电脑输入一个数同a[10]一起赋值给b[11],然后再使用fun()函数,重新排序的到最后的有顺序的一组数据。 流程图 子函数流程图如图1所示:

计算机网络课程设计题目和要求

计算机网络课程设计通过课程设计,使学生在对计算机网络技术与发展整体了解的基础上,掌握网络的主要种类和常用协议的概念及原理,初步掌握以TCP/IP协议族为主的网络协议结构,培养学生在TCP/IP协议和LAN、WAN上的实际工作能力;学会网络构建、网络日常维护以及网络管理的方法,使学生掌握在信息化社会建设过程中所必须具备的计算机网络组网和建设所需的基本知识与操作技能。运用网络工程和软件工程思想,按照需求分析、规划、设计、配置的基本流程,经历一个完整的网络工程过程,培养学生调查研究、查阅技术文献、资料、手册以及编写技术文档的能力,培养学生将理论知识应用于实践的能力。 一、格式要求及须知: (1)使用学院网站的课程设计模版,要求格式美观,字体及编号要求见表1。 表1 字体及编号要求

(2)参考文献:参考课本的参考文献格式(附录C)。但编号换成[1]、[2]……(3)附录:课程设计中的代码或得到的数据包等数据将作为该设计附件或附录,题目需要但没有的相应代码及数据包文件的将记整组不及格,需要重做。 (4)成绩记录:该设计成绩将记录到教务处成绩管理系统中。 (5)打印:经审查(发邮件到指导老师处或当面交流修改)后,方可打印、存档。打印后递送到指导老师的信箱。 (6)如发现两组设计雷同或抄袭互联网,该组重做! 二、任务完成形式: 交付课程设计说明书、设计作品(需要验收)。 设计作品指的是完整的源程序代码(对于第二类题目为仿真文件)。 课程设计说明书(纸质+电子版),内容包括:设计任务、需求分析、总体设计、详细设计(相应地给出关键的代码)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。 设计工作计划与进度安排: 根据所选题目,合理安排进度计划,总体上需要40个小时。以下仅供参考: 1. 原理知识 4小时 2. 程序设计技术 4小时 3. 开发环境与程序调试环境 4小时 4. 总体设计、关键环节的详细设计 8小时

相关文档
最新文档