第一篇:c语言课程设计运动会比赛计分系统(含任务书)
一、课程设计目的
将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:
(1)进一步巩固、加深学生所学专业课程《C语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。
(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。
(3)利用所学知识,开发小型应用系统,掌握运用C语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。
(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方法。
(6)熟练掌握C语言的基本语法,灵活运用各种数据类型。
(7)进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。
二、课程设计名称及内容
课程设计名称:运动会比赛计分系统
设计内容:设计一个运动会比赛计分系统,该系统要求对运动会比赛得分进行管理和维护。
三、任务和要求
要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数 各项目名次取法有如下几种:
(1)取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;
(2)取前3名:第一名得分5,第二名得分3,第三名得分2;(3)用户自定义:各名次权值由用户指定。
四、设计方案提示
(1)界面
系统以菜单方式工作(2)输入数据并存入文件
使用到结构体变量和动态链表,由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。对输入的信息进行合法性判断,直到输入正确为止。都输入完成后,调用写文件函数对指定的文件进行写操作,把输入的信息写入到文件中。(3)显示所有记录
将文件中的所有记录以表格的形式输出。如果文件未打开会出现“文件打开失败!按任意键返回...”,关闭文件。(4)查询
所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。二:算法设计:
信息输入模块、比赛结果录入模块以及查询模 题目的总体要求是要建立三个模块:信息输入模块、建立三个模块 块。在建立完之后,要求该程序能够在用户将各种必要的信息记录之后,用户可以查询所 有学校的比赛成绩,而且也可以生成团体总分表,查看参赛学校信息和比赛项目信息等一切 录入的信息,为此,要示编程人员能通过一些具体的程序将以上的功能加以实现。在建立三个模块的大前提下,我们将采用结构体,循环体,指针和各种函数来实现这 种功能,在数据结构体中,要采用结构体数组,其中包括学校、项目、运动员三个结构体。学校结构体成员包括学校校名、竞赛项目、得分项目结构体成员包括项目名、权值。(1)在此程序中,包括几个头文件:mainfile.h;dos.h;conio.h;momery.h;接下来,定义全)局变量,其中包括“参赛学校项目数 N;男子项目数 M;女子项目数 W;参赛学校g_school;竞赛项目 g_sport;各名次链表指针 ptrHead,ptrThis,ptrNew;总体设计:系统设计为信息输入模块、比赛结果录入模块和查询模块三个模块。总
体设计:系统设计为信息输入模块、比赛结果录入模块和查询模块三个模块。
(2)各种结构的分析:)各种结构的分析: 静态存储方式: 它是指在程序运行期间由系统分配固定的存储空间的方式,全局变量全部存 静态存储方式: 放在静态存储区中,在程序开始执行时给全局变量分配存储区,程序执行完毕就释放,在程 序执行过程中它们占据固定的存储单元,而不是动态地进行分配和释放。用 static 声明局部变量:使用该变量可以使局部变量的值在函数调用结束后不消失而保留原 值,这即为静态局部变量的特点。静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不 释放。对静态局部变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。如在定义局部变 量时不赋初值的话,则对静态局部不说,编译时自动赋初值 0(对数值型变量)或空字符
总体设计 信息输入模块 比赛结果录入模块 查询模块 设置参赛信息 设置竞赛项目总数 主菜单 设置竞赛项目信息 设置项目名次取法 生成报表 打印竞赛项目信息 填充参赛信息 请输入您的选择 开始。而对自动变量来说,如果不赋初值则它的值是一个不确定的值。虽然静态局部 变量在函数调用结束后仍然存在,但其他函数是不能引用它的。Malloc 函数 函数的作用是在内存的动态存储区中分配一个长度为 size 的连续空间。此函数的值 是一个指向分配域起始地址的指针,如果此函数未能成功地执行,则返回空指针。链表是动态地进行存储分配的一种结构,所谓建立动态链表是指在程序执行过程中从无到有 地建立一个链表,即一个一个地开辟结点和输入各结点数据,并建立起前后相链的关系。循环结构是结构程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复 循环结构 杂程序的基本构造单元。通常用 while、do…while 语句实现循环,最常用的是 for 3
语句的循 环,夺循环中还有循环的嵌套,它是指一个循环体内又包含另一个完整的循环结构。用语句 来实现从循环体内跳出来,即提前结束循环,接着执行循环下面的语句,但 break 语句不能 用于循环语句和 swich 语句之外的任何其他语句中。另外一种就是 continue 语句,它的作用 是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判 定。Swich 语句 语句是多分支选择语句,它后面括号内的“表达式”,ANSI 标准允许它为任何类 型。当表达式的值与一个 case 后面的常量表达式的值相等时,就执行此 case 后面的语句,若所有的 case 中的常量表达式的值都没有与表达式的值匹配的,就执行 default 后面的语句,每一个 case 的常量表达式的值必须都不相同;否则就会出现相互矛盾的现象。各个 case 和 default 的出现次序不影响执行结果,执行完一个 case 后面的语句后,流程控制转移到下一 个 case 继续执行。“case 常量表达式”只是起语句标号作用,并不是在该处进行条件判断。在执行 swich 语句时,根据 swich 后面表达式的值找到匹配的入口标号,就从此标号开始执 行下去,不再进行判断程序流程图 开始 请输入您的选择 c s i p q 编号 n=0? i<=2 i=0 i=1 0 2 1 MAX—M MAX—W 男团总分 女团总分 r 团体总分 输出 t 生成报表 结束 HOU 第 6 页 2010/9/5 项目名次的取法及每一名次的分值 开始 请选择编号 0 1 2 0 7 输入名次 0 5 1 5 1 3 t=i 2 3 2 2 i=i+1 3 2 i>0 4 1 n<5 n<3 输出
****************************MENU1******************************* ****** 1.enter!!2.record!!3.search!!******************************************************************************* choice your number:()
二、课程设计体会 在此次的 C 语言的课程设计中,我不仅 学到了许多有庆这方面的专业知识,更重要的是我学会了如何在拿到一个题目时进行简单的 程序分析,并编译出一些相对简单的程序,当然了,对自己编译出的不对的程序,我也能 4
进 行一些分析,并对其进行完善。在此次的学习过程中,老师教给了我们很多的东西,从一开 始的不懂 VC++这种软件,到最后的我们可以进行较熟练的应用它,也许在这过程中,我们 无论是学生还是老师都遇到了一些小的困难,但是在我们师生的共同努力下,我们最终还是 克服了它,单从这一点来说,我们就学到了许多的东西,比如 teamwork,同学之间的相互 帮助以及与老师的配合,都证明了这一点,我相信这是我此次学习C 语言程序的最大收获。在我的程序设计的过程中,遇到了很大有难题,特别是在刚拿到我的题目时,头脑中 根本没有头绪,更不要说去编译程序了,当时真的很担心是否可以完成老师布置的任务,但 慢慢的在学习的过程中,我开始懂得了一些编译的方法,就尝试着去编译一些程序,结果还 是很好,最后我编出了我题目的程序,但是在程序的运行过程中,又遇到了新的难题,那就 是我所编的程序中有太多的错误,根本无法进行运行,没办法,只好硬着头皮修改,不过还好,在老师和同学们的帮助下,我最终将我的程序成功地进行了运行,在我自己的程序运行 时,心中有一种说不出的高兴,是的,自己这几天的努力总是没有白费。
五.附录:
源代码:
#include
}itemnode;typedef struct {
int schoolnum;
int score;
int mscore;
int wscore;
itemnode c[m+w];}headnode;headnode h[n];
void input(){
int i,j,k,s;
for(i=0;i { h[i].schoolnum=0; h[i].score=0; h[i].mscore=0; h[i].wscore=0; } for(i=0;i { printf(“n学 校 编 号:”); scanf(“%d”,&h[i].schoolnum); for(j=0;j { printf(“n项 目 编 号:”); scanf(“%d”,&h[i].c[j].itemnum); printf(“n取前3或前5名:”); scanf(“%d”,&h[i].c[j].top); while(h[i].c[j].top!=3&&h[i].c[j].top!=5) {printf(“n输入错误,请重新输入!:”); scanf(“%d”,&h[i].c[j].top);break;} printf(“n获得几个名次:”);6 scanf(“%d”,&k); for(s=0;s<5;s++) h[i].c[j].range[s]=0; for(s=0;s { l: printf(“n名 次:”); scanf(“%d”,&h[i].c[j].range[s]); if(h[i].c[j].top==3) switch(h[i].c[j].range[s]) { case 0:h[i].c[j].mark[s]=0; break; case 1:h[i].c[j].mark[s]=5; break; case 2:h[i].c[j].mark[s]=3; break; case 3:h[i].c[j].mark[s]=2; break; default:{puts(“输入错误!请重新输入!”); goto l;} } else switch(h[i].c[j].range[s]) { case 0:h[i].c[j].mark[s]=0; break; case 1:h[i].c[j].mark[s]=7; break; case 2:h[i].c[j].mark[s]=5; break; case 3:h[i].c[j].mark[s]=3; break; case 4:h[i].c[j].mark[s]=2; break; case 5:h[i].c[j].mark[s]=1; break; default:{puts(“输入错误!请重新输入!”); goto l;} } h[i].score=h[i].score+h[i].c[j].mark[s]; if(j<=m-1) h[i].mscore=h[i].mscore+h[i].c[j].mark[s]; else h[i].wscore=h[i].wscore+h[i].c[j].mark[s]; } printf(“n”); } } } void output(){ int choice,i,j,t; int a[n]; int sign; do { printf(“n***************************1.按学校编号****************************n”); printf(“*****************************2.按学校总分****************************n”); printf(“*****************************3.按男团总分****************************n”); printf(“*****************************4.按女团总分****************************n”); printf(“*****************************请根据提示进行操作!:”); scanf(“%d”,&choice); printf(“n”); switch(choice) { case 1:for(i=0;i { printf(“n学校编号:%dn”,h[i].schoolnum); printf(“学校总分:%dn”,h[i].score); 输出 输出 输出 输出 printf(“男团总分:%dn”,h[i].mscore); printf(“女团总分:%dn”,h[i].wscore); printf(“n”); } break; case 2:for(i=0;i a[i]=i; for(i=0;i { for(j=i+1;j if(h[a[i]].score { t=a[i]; a[i]=a[j]; a[j]=t; } } for(i=0;i { printf(“n学校编号:%dn”,h[a[i]].schoolnum); printf(“******************学校总分:%dn”,h[a[i]].score); printf(“******************男团总分:%dn”,h[a[i]].mscore); printf(“******************女团总分:%dn”,h[a[i]].wscore); printf(“n”); } break; case 3:for(i=0;i a[i]=i; for(i=0;i { for(j=i+1;j if(h[a[i]].mscore { t=a[i]; a[i]=a[j]; a[j]=t; } } for(i=0;i { printf(“n学校编号:%dn”,h[a[i]].schoolnum); printf(“******************学校总分:%dn”,h[a[i]].score); printf(“******************男团总分:%dn”,h[a[i]].mscore); printf(“******************女团总分:%dn”,h[a[i]].wscore); printf(“n”); } break; case 4:for(i=0;i a[i]=i; for(i=0;i { for(j=i+1;j if(h[i].wscore { t=a[i]; a[i]=a[j]; a[j]=t; } } for(i=0;i { printf(“n学校编号:%dn”,h[a[i]].schoolnum); printf(“******************学校总分:%dn”,h[a[i]].score); printf(“******************男团总分:%dn”,h[a[i]].mscore); printf(“******************女团总分:%dn”,h[a[i]].wscore); printf(“n”); } break; } printf(“是否继续操作(1/0)?:”); scanf(“%d”,&sign); printf(“n”); }while(sign==1); } void chaxun(){ int choice; int i,j,k,s; printf(“n*****1:按学校编号查询n”); printf(“n*****2:按项目编号查询n”); printf(“n*****请选择查询方式:”); scanf(“%d”,&choice); switch(choice) { case 1: do { printf(“要查询的学校编号:”); scanf(“%d”,&i); if((i>n)||(i<=0)) printf(“错误:这个学校没有参加此次运动会!n”); else { printf(“******************要查询的项目编号:”); scanf(“%d”,&j); if(j>m+w||j==0) printf(“******************此次运动会没有这个项目******************n”); else { printf(“这个项目取前 %d名,该学校的成绩如下:n”, 11 h[0].c[j-1].top); for(k=0;k<5;k++) if(h[i-1].c[j-1].range[k]!=0) printf(“名次:%dn”,h[i-1].c[j-1].range[k]); } } printf(“是否继续操作(1/0)?:”); scanf(“%d”,&s); printf(“n”); }while(s==1); break; case 2: do { printf(“要查询的项目编号:”); scanf(“%d”,&s); if(s>m+w||s==0) printf(“此次运动会不包括这个项目n”); else { printf(“该项目取前 %d名,取得名次的学校n”,h[0].c[s-1].top); for(i=0;i for(j=0;j<5;j++) if(h[i].c[s-1].range[j]!=0) printf(“ 学 校 编 号 :%d,名次:%dn”,h[i].schoolnum,h[i].c[s-1].range[j]); } printf(“是否继续操作(1/0)?:”); scanf(“%d”,&i); printf(“n”); }while(i==1); break; } } void write(){ int i,j,s; FILE *fp; if((fp=fopen(“sportsdata结果.txt”,“a+”))==NULL) { printf(“不能打开文件n”); exit(1); } fputs(“学校编号 学校总分 男子总分”,fp);fputs(“n”,fp); for(i=0;i { fprintf(fp,“%2dtt ”,h[i].schoolnum); fprintf(fp,“%2dtt”,h[i].score); fprintf(fp,“%2dtt”,h[i].mscore); fprintf(fp,“%2d ”,h[i].wscore); fputs(“n”,fp); } fclose(fp);} 女子总分 void read() { FILE *fp; int i,j,s; if((fp=fopen(“sportsdata.txt”,“r”))==NULL) { printf(“文件不存在,不能打开文件!n”); exit(1); } for(i=0;i { fscanf(fp,“%d”,&h[i].schoolnum); // for(j=0;j // { fscanf(fp,“%d”,&h[i].c[j].itemnum); fscanf(fp,“%d”,&h[i].c[j].top); // for(s=0;s<5;s++) // { fscanf(fp,“%d”,&h[i].c[j].range[s]); // } // } } fclose(fp);} int main(){ FILE *fp; int choice; int flag1=1,flag2=1; system(“cls”); do { printf(“n####***********************************************####n”); printf(“n####******************校级运动会分数统计系统*******************####n”); printf(“nn ####^^^^^^^^^^^^^^1.录入信息^^^^^^^^^^^^^^####n”); printf(“nn ####^^^^^^^^^^^^^^2.读取信息^^^^^^^^^^^^^^####n”); printf(“nn ####^^^^^^^^^^^^^^3.显示信息^^^^^^^^^^^^^^####n”); printf(“nn ####^^^^^^^^^^^^^^4.查询信息^^^^^^^^^^^^^^####n”); printf(“nn ####^^^^^^^^^^^^^^5.退出程序^^^^^^^^^^^^^^####n”); printf(“n####*************************************************************####n”); printf(“nn请根据提示选择操作!:”); scanf(“%d”,&choice); if(choice==1) flag1=0; else if((fp=fopen(“sportsdata.txt”,“r”))!=NULL) flag2=0; else { system(“cls”); printf(“没有信息,请你录入信息!n”); } }while(flag1&&flag2); switch(choice) { case 1: 欢迎使用程序 printf(“n==========请输入信息========n”); input(); write();printf(“==========信息已存入档=========”); main(); case 2: read(); write; break; case 3: printf(“===========输出信息==========n”); if(flag1) read(); output(); main(); case 4: printf(“===========查询信息==========n”); if(flag1) read(); chaxun(); main(); case 5: printf(“n退出系统!谢谢使用!nn”);exit(0); default: printf(“输入错误!n”);exit(0); } 六主要知识点 面向过程程序设计方法 界面制作,switch的应用。 数组或链表的实现与应用。 文件的读写。 七.其他 程序设计可在VC++、C++ Builder环境下进行。八.参考资料 [1] 黄明等编著《C语言课程设计》北京:电子工业出版社 [2] 郭翠英编著《C语言课程设计案例精编》北京:中国水利水电出版社 [3] 宁正元《数据结构(c语言)》 南京:东南大学出版社。2000年6月第1版 [4] 严蔚敏等 《数据结构(c语言版)》 北京:清华大学出版社,1997年4月第1版 [5] 谭浩强编著《C程序设计题解与上机指导(第3版)》北京:清华大学出版社 [6] 谭浩强编著《C程序设计(第3版)》北京:清华大学出版社 #include #include #define m 1//男子项目数目 #define w 1//女子项目数目 #define null 0 struct itemnode{ int itemnum;//项目编号 int top; //取名次的数目 int range[5];//名次 int mark[5];//分数 char name[8];}; //定义项目结点的类型 struct headnode{ int schoolnum; //学校编号 int score; //学校总分 int mscore; //男团体总分 int wscore; //女团体总分 itemnode c[m+w]; //项目数组 };//定义头结点类型 headnode h[n];//定义一个头结点数组 void inputinformation()//输入信息,建立系统 { int i,j,k,s;char ch; for(i=0;i { h[i].score=0; h[i].mscore=0; h[i].wscore=0; //初始化头结点 printf(“====参赛学校编号:”); scanf(“%d”,&h[i].schoolnum); for(j=0;j { printf(“ 参赛项目编号:”); scanf(“%d”,&h[i].c[j].itemnum); printf(“ 取前3名or前5名:”); scanf(“%d”,&h[i].c[j].top); printf(“ 所取名次数量:”); scanf(“%d”,&k); for(s=0;s //输入头结点信息//输入项目信息 { h[i].c[j].range[s]=0; h[i].c[j].mark[s]=0;//初始化排名和分数 printf(“ 所获得的名次:”); scanf(“%d”,&h[i].c[j].range[s]); //输入所获名次信息 printf(“ 该运动员姓名:”); getchar(ch); gets(h[i].c[j].name); if(h[i].c[j].top==3) switch(h[i].c[j].range[s]) { case 0: h[i].c[j].mark[s]=0;break; case 1: h[i].c[j].mark[s]=5;break; case 2: h[i].c[j].mark[s]=3;break; case 3: h[i].c[j].mark[s]=2;break; } else switch(h[i].c[j].range[s]) { case 0: h[i].c[j].mark[s]=0;break; case 1: h[i].c[j].mark[s]=7;break; case 2: h[i].c[j].mark[s]=5;break; case 3: h[i].c[j].mark[s]=3;break; case 4: h[i].c[j].mark[s]=2;break; case 5: h[i].c[j].mark[s]=1;break; } h[i].score=h[i].score+h[i].c[j].mark[s];//按取前三名还是取前五名分别记分 if(j<=m-1) h[i].mscore=h[i].mscore+h[i].c[j].mark[s];//是男子项目(取前三名)则记到男子分数里面去 else h[i].wscore=h[i].wscore+h[i].c[j].mark[s];//是女子项目(取前五名)则记到女子项目里面去 } printf(“n”); } } printf(“n”);} void output() //输出函数 { int choice,i,j,k;int remember[n];int sign; do { printf(“*******************1.按参赛学校编号输出.*******************n”); printf(“*******************2.按参赛学校总分输出.*******************n”); printf(“n*********************** 请选择编号*************************n:”); scanf(“%d”,&choice); switch(choice) { case 1: for(i=0;i { printf(“nn*****学校编号:%d”,h[i].schoolnum); printf(“*****学校总分:%d” ,h[i].score); printf(“*****男团总分:%d”,h[i].mscore); printf(“*****女团总分:%d ”,h[i].wscore); } //按编号顺序输出 break; case 2: for(i=0;i remember[i]=i; for(i=0;i { for(j=i+1;j if(h[remember[i]].score { k=remember[i]; remember[i]=remember[j]; remember[j]=k; } } // 用冒泡排序方法,用辅助数组记住头结点下标 for(i=0;i { printf(“nn*****学校总分:%d”,h[remember[i]].score); printf(“*****学校编号:%d” ,h[remember[i]].schoolnum); printf(“*****男团总分:%d”,h[remember[i]].mscore); printf(“*****女团总分:%d ”,h[remember[i]].wscore); //按所记下标顺序输出 } //按学校总分输出 break; } printf(“n”); printf(“请选择继续,0 跳出n”); scanf(“%d”,&sign);}while(sign==2);//循环执行输出语句 printf(“nnn”);} //查询函数 void inquiry() { int choice;int i,j,k,s; printf(“n*****按学校编号查询*****n”); do{ printf(“要查询的参赛学校编号:”); scanf(“%d”,&i); if(i>n) printf(“错误:这个学校没有参加此次运动会!”); else { printf(“所要查询的参赛项目编号:”); scanf(“%d”,&j); if(j>m+w||j==0) printf(“此次运动会没有这个项目nn”);//学校编号超出范围,则输出警告 else { printf(“n这个项目取前%d名,该学校的成绩如下:n”,h[0].c[j-1].top); for(k=0;k<5;k++) if(h[i-1].c[j-1].range[k]!=0) { printf(“所获得的名次:%dn”,h[i-1].c[j-1].range[k]);//输出要查询学校项目的成绩 } } } printf(“n”); printf(“请选择 2 继续 , 0 跳出n”); scanf(“%d”,&s); printf(“nn”); }while(s==2); //循环执行输出语句 } //把数据存储在文件中 void writedata() { FILE *report; int i; if((report=fopen(“sportsdata.txt”,“w”))==null){ printf(“不能打开文件n”); exit(1); } for(i=0;i fwrite(&h[i],sizeof(headnode),1,report); fclose(report);} //按头结点块写入 //读出文件中数据的函数 void readdata() { FILE *report; int i,j,k,s; if((report=fopen(“sportsdata.txt”,“r”))==null) { printf(“file can not be openedn”); exit(1); } for(i=0;i { printf(“学校编号:”); fread(&k,sizeof(int),1,report); printf(“%dn”,k); printf(“学校总分:”); fread(&k,sizeof(int),1,report); printf(“%dn”,k); printf(“男团总分:”); fread(&k,sizeof(int),1,report); printf(“%dn”,k); printf(“女团总分:”); fread(&k,sizeof(int),1,report); printf(“%dn”,k); printf(“nnn”); getch(); for(j=0;j { printf(“项目编号:”); fread(&k,sizeof(int),1,report); printf(“%dn”,k); printf(“所取得的名次数量:”); fread(&k,sizeof(int),1,report); printf(“%dn”,k); for(s=0;s<5;s++) { fread(&k,sizeof(int),1,report); if(k!=0) printf(“名次:”); printf(“%dn”,k); } for(s=0;s<5;s++) { fread(&k,sizeof(int),1,report); if(k!=0) printf(“分数:”); printf(“%dn”,k); } } printf(“nnn”); getch();} fclose(report);//关闭文件 } //按照读一个数据就输出一个数据的方式显示数据内容 void main(){ int choice; printf(“n ╔===================★ welcome ★======================╗n”); printf(“n ******************运动会比赛计分系统*******************n”); printf(“n ★★★★★★ Design by 陈雪芸 ★★★★★★ n”); printf(“nn ********************1.输入比赛信息*********************n”); printf(“ ********************2.输出比赛信息*********************n”); printf(“ ********************3.查询比赛信息*********************n”); printf(“ ********************4.退出系统 *********************nn”); printf(“ ╚========╝nnn”); printf(“请选择要实现步骤的编号:nn”); scanf(“%d”,&choice);switch(choice){ case 1: inputinformation(); writedata(); main(); case 2: output(); main(); case 3: inquiry(); main(); case 4: exit(0); default: exit(0); } } 河南工程学院 《汇编语言》 课程设计任务书 适用专业: 计算机科学与技术 适用班级: 本科 2014年12月20日 《汇编语言》课程设计任务书 一、课程设计目的与任务 汇编语言课程设计是本科教学过程中重要环节。通过课程设计,培养计算机专业学生,运用所学知识,进一步提高学生汇编语言综合编程能力和程序调试技能。并能够使学生更加熟练运用汇编程序设计语言,来解决计算机应用领域实际问题的能力,以及为设计其它应用软件提供帮助,进而提高学生的软件设计能力。 二、课程设计环境要求 1、硬件配置:586以上电脑 2、操作系统:WINDOWS 98/XP/2000等 3、软件需求:MASM 6.15 三、课程设计基本要求 要求通过查阅与设计课题相关的文献资料,自学与其相关内容,掌握MASM 6.15集成开发环境的使用。根据题目要求,自由分组,自选一个题目完成,根据各小组每个学生的出勤情况、负责部分完成情况、最后答辩情况及报告撰写是否规范,形成个人成绩。具体要求如下: 1、在整个设计期间,无违纪现象(迟到、早退、逃课),态度认真; 2、整体架构正确合理、流程图清晰无误; 3、设计尽可能完成题目所要求的功能; 4、程序代码清晰,便于阅读; 5、报告书写规范; 6、提供可运行的课程设计系统,并参加上机面试答辩; 7、在课程设计结束时,上交实习报告和程序清单。 四、课程设计内容 1、计算比赛成绩。编制一个程序,要求完成以下功能:(1)9名评委,每个评委给分范围为0~10(整数); (2)9名评委给分中,去掉一个最高分和一个最低分,剩余7名评委的平均分 即为参赛者的得分(精确到小数点后1位); (3)并将得分输出显示。 2、成绩评定。编制一个程序,要求完成以下功能:(1)以十进制形式从键盘随机输入成绩(不多于50个); (2)显示成绩评定的等级(90-100为优,80-90为良,70-80为中,60-70为及格,60分以下为不及格); (3)统计出各个等级的人数并以十进制形式显示输出;(4)当输入Q时,退出程序。 3、成绩排序。编制一个程序,要求完成以下功能: (1)以十进制形式从键盘随机输入成绩(不多于50个),并用逗号或空格分隔各学生成绩; (2)对该班的成绩进行递减排序,并以十进制形式显示排序结果并用逗号或空格分隔; (3)计算全班的平均分并以十进制形式显示输出;(4)当输入Q时,退出程序。 4、代码转换程序设计。编制一个程序,要求完成以下功能: 完成一个字母或数制之间的转化,主程序分别具有6种可选择的子功能,按相应的字符可分别进入相应的子功能并在屏幕上显示结果,按“Q”键退出。6种可选择的子功能分别为: (1)实现小写字母向大写字母的转换;(2)实现大写字母向小写字母的转换;(3)实现大写字母与小写字母的互换;(4)实现二进制数向十六进制数的转换;(5)实现十六进制数向二进制数的转换;(6)实现十六进制数向十进制数的转换。 5、信息检索。编制一个程序,要求完成以下功能: (1)完成一个信息检索系统,在数据区,有9个不同的信息,编号为0~8,每个信息包括50个字符; (2)从键盘输入0~8之间的一个编号,然后在屏幕上显示相应编号的信息内容;(3)当输入Q时,退出程序。、字符统计。编制一个程序,要求完成以下功能:(1)从键盘输入一个字符串(串长不大于100);(2)以十进制输出字符串中非字母字符的个数; (3)输出原字符串; (4)找出字符串中ASCII 码值最大的字符,在字符串中用红色显示;(5)字符串的输入和结果的输出都要有必要的提示,且提示独占一行。 7、奇偶数判断。编制一个程序,要求完成以下功能:(1)从键盘输入两个四位十六进制数;(2)将这两个数以二进制形式输出; (3)找出这两个数中的偶数,若有则以十进制输出,若无,输出“NO”;(4)计算这两个数的平方和,并以十进制形式输出; (5)数据的输入和结果的输出都要有必要的提示,且提示独占一行。 8、十进制数字串处理。编制一个程序,要求完成以下功能:(1)从键盘输入一个以回车结束的十进制数字串(不超过20 个)。(2)按 ASCII 码值降序显示这个数字串中最大和最小的两个数字。(3)以十进制形式显示数字串中所有数字的和。 (4)以十进制形式显示数字串中最大数与最小数的乘积。(5)对数字串进行处理,使每个字符在字符串中只出现一次。 (6)数据的输入和结果的输出都要有必要的提示,且提示独占一行。 五、课程设计报告 课程设计报告主要包含以下内容: 1、课程设计的题目,本设计所实现的功能简述; 2、主要的设计思想简述; 3、主要程序的框图; 4、源程序代码(要求在关键的位置注释,从而增加程序的可读性); 5、程序调试结果及分析; 6、课程设计的总结,主要包括以下内容:(1)课程设计中所遇到的主要问题和解决方法。(2)创新和得意之处。 (3)课程设计中存在的不足,需要进一步改进的设想。(4)课程设计的感想和心得体会。 7、参考文献(不少于5篇)。 六、课程设计时间、地点及辅导教师 1、时间:2014-2015学年第1学期第19周 2、班级:计算机科学与技术1241、1242 3、地点:计算机学院机房 4、辅导教师:王雪瑞 前4个题目,每组不超过两个人;第5个题目一人,6、7、8三个题目每组不超过3人。 《C语言程序设计》课程设计 任务书及指导书 自动化学院 2011年 C语言课程设计任务书及指导书1 题目:学院教学信息管理系统 功能:学院教学信息管理系统,每一条记录包括教师的职工号、姓名、职称、性别、3门讲授课程的名称,教学效果综合评分。系统要求实现以下功能: 1、输入:输入每一位教师记录,将其信息写入文件中。 2、显示:显示每位教师记录。 3、排序:按职工号或教学效果综合评分进行排序,并显示。 4、查找:完成按姓名或课程查找教师的相关记录,并显示。 5、保存:将相关数据写入磁盘文件,便于存、取操作。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。 2、完成信息的录入和显示(即通过编程创建文件,输入教师信息并可将文件内容显示出来) 3、完成排序功能。 4、完成查找功能(可按职工号、姓名、讲授课程进行查找)要求: 1、用C语言实现程序设计; 2、利用结构体来实现教师信息的处理; 3、系统的各个功能要求用函数实现; 4、界面友好(良好的人机交互),程序必须有注释。课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。 C语言课程设计任务书及指导书2 题目:酒店房间登记与计费管理系统 功能: 1、屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。 登记入住的信息主要有:客人姓名、房间号、入住时间、计费方式(按天或小时)、单价、押金 房间信息:房间号、是否有人入住、房间标准、每天单价、小时单价 2、对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。 3、在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。 4、保存:将相关数据写入磁盘文件,便于存、取操作。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:建立房间列表,完成登记入住、查询房间入住情况等功能。 3、进一步要求:完成计费和费用查询功能;每次登录时读取保存在磁盘文件中的入住情况。要求: 1、用C语言实现系统; 2、系统的各个功能模块要求用函数实现; 3、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。C语言课程设计任务书及指导书3 题目:学生成绩管理系统 功能:学生成绩管理系统,每个学生信息为一个记录,包括学号,姓名,性别,3门课程成绩。 系统要求实现以下功能: 1、信息录入:录入成绩学生信息(包括学生学号、姓名、性别、3门课程的成绩等); 2、信息查询:可以按照姓名或学号查询学生各门课程的成绩,并显示。 3、排序:按平均成绩或各门课程成绩按由高到低进行排序,并显示。 4、信息删除与修改——输入学号,可删除或修改该学生的成绩信息。 5、保存:将相关数据写入磁盘文件,便于存、取操作。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。 2、完成信息的录入和显示(即通过编程创建文件,输入学生信息并可将文件内容显示出来) 3、完成上述信息查询、排序、信息删除与修改功能。 要求: 1、用C语言实现程序设计; 2、利用结构体数组实现学生信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有必要的注释。课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。 C语言课程设计任务书及指导书4 题目:职工档案管理系统设计 功能:职工档案管理系统设计,每个职工信息是一条记录,包括编号,姓名,性别,出生年月,所在部门,职称,工资级别、电话等。系统可实现以下功能: 1、输入功能:输入每一位职工的信息并将信息存入文件中。 2、显示功能:完成全部职工记录的显示。 3、查找功能:完成按编号或姓名查找职工的相关信息,并显示。 4、保存:将相关数据写入磁盘文件,便于存、取操作。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。 2、完成信息的录入和显示(即通过编程创建文件,输入职工信息并可将文件内容显示出来) 3、完成上述查找功能 4、完成修改功能,即输入编号,可修改该职工的信息 5、进一步要求,在使用修改功能时要求输入密码,密码正确才能修改信息否则不行。 要求: 1、用C语言实现程序设计; 2、利用结构体进行职工信息的处理; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序必须加注释。课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。C语言课程设计任务书及指导书5 题目:学生管理系统设计 功能:学生管理系统设计,每个学生信息作为一条记录,包括姓名、学号、性别、出生年月、专业、班级、家庭地址、宿舍号码等。系统要求实现以下功能: 1、输入功能:录入学生信息(包括学生学号、姓名、性别、出生年月、专业等); 2、显示功能:完成学生记录的显示。 3、查找功能:完成按学号或姓名查找学生的相关记录,并显示。 4、保存:将相关数据写入磁盘文件,便于存、取操作。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。 2、完成信息的录入和显示(即通过编程创建文件,输入学生信息并可将文件内容显示出来) 3、完成修改功能,即输入学号,可修改该学生的信息 4、进一步要求,在使用修改功能时要求输入密码,密码正确才能修改信息否则不行。要求: 1、用C语言实现程序设计; 2、利用结构体数组实现学生信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有注释。课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。 C语言课程设计任务书及指导书6 题目:银行存取款管理设计 功能: 1、能够输入和查询客户存款取款记录。在客户文件中,每个客户信息是一条记录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额;在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。类别分为取款和存款两种。本系统能够输入客户存款或取款记录;根据客户姓名查询存款和取款记录。 2、保存:将相关数据写入磁盘文件,便于存、取操作。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数; 2、完成信息的录入(即通过编程创建文件,输入客户信息并可将文件内容显示出来) 3、完成存取款功能(即通过编程创建文件,用来记录存取款信息并可将文件内容显示出来) 4、完成修改功能,输入客户编号可以修改该客户的信息 5、进一步要求:完成客户姓名查询存款和取款记录,并可显示帐户余额。要求: 1、用C语言实现系统; 2、利用结构体进行相关信息处理; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有注释。课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。C语言课程设计任务书及指导书7 题目:院职工工资管理系统设计 功能: 1、院职工工资管理系统应包含职工的全部信息。每个职工信息是一条记录,包括编号、姓名、性别、出生年月、年龄、婚姻状况、家庭住址、职称、工资级别情况等。本系统重点进行工资管理,系统登陆后可计算职工工资总额和平均工资,可按工资进行排序,并能够找出工资级别相同的职工名单。 2、保存:将相关数据写入磁盘文件,便于存、取操作。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数; 2、完成信息的录入(即通过编程创建文件,输入职工信息并可将文件内容显示出来) 3、计算职工工资总额和平均工资,可按工资进行排序,并能够找出工资级别相同的职工名单。要求: 1、用C语言实现程序设计; 2、利用结构体进行相关信息处理; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有注释。课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。 C语言课程设计任务书及指导书8 题目:通讯录管理系统 功能:录入联系人信息(包括姓名、电话号码、地址、备注等);通讯录管理系统要求实现以下功能: 1、输入每一位联系人记录,将其信息存入文件中。 2、查询所有联系人的信息,并按可选的自定义规则进行排序; 3、记录修改,将修改的记录信息保存于文件中。 4、保存:将相关数据写入磁盘文件,便于存、取操作。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。 2、完成信息的录入和显示(即通过编程创建文件,输入学生信息并可将文件内容显示出来) 3、完成查询功能(可按姓名、电话号码等进行查询) 4、完成信息删除与修改功能,输入联系人姓名后可删除或修改该条信息。 5、进一步要求,在使用修改功能时要求输入密码,密码正确才能修改信息否则不行。要求: 1、用C语言实现程序设计; 2、利用结构体进行相关信息处理; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有注释。课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。 C语言课程设计任务书及指导书9 题目:计算机辅助教学(CAI)软件开发:教小学生学算术。 功能: 1、可做个位数,十位数的加,减,乘和除,减法不能得负数,除法要除尽,屏幕上随机出现两个数,提示小学生给出答案,答错了要提示重新输入,直到答对为止。要统计给分,且累计,够一定分数后可进级,即从个位进到十位。同样,也可降级。 (rand(),#include 2、保存:将相关数据写入磁盘文件,便于存、取操作。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成基本要求:能进行个位数的加法和减法,并有统计晋级功能,即一次答对的成功率为 90%上后可晋级,继续进行十位数的加减运算; 3、进一步要求:将当前晋级等级保存在磁盘文件,学生下次按这个等级开始做题。要求: 1、用C语言实现程序设计; 2、系统的各个功能模块要求用函数的形式实现; 3、界面友好(良好的人机交互),程序要有注释。课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。 C语言课程设计任务书及指导书10 题目:学生考勤系统设计 功能: 1、学生考勤系统应包含各班学生的全部信息。每个学生是一条记录,包括姓名、性别、学号、日期、节次、出勤情况等。本系统可模拟考勤过程,记录考勤结果,并能够在课程结束后按照设定的考勤评分标准自动给出每个学生的考勤分数。 2、保存:将相关数据写入磁盘文件,便于存、取操作。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数; 2、完成考勤录入功能(即通过编程创建文件,输入学生信息并可将文件内容显示出来) 3、完成查询功能(可以按照学号或姓名进行查询) 4、完成修改功能,输入学号、日期、节次信息后可修改该条信息的内容。 4、进一步要求:自动给出每个学生的考勤分数 要求: 1、用C语言实现程序设计; 2、利用结构体进行相关信息处理; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有注释。课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。 C语言课程设计任务书及指导书11 题目:学生选修课程系统设计 功能: 1、假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息。试设计一选修课程系统。 2、保存:将相关数据写入磁盘文件,便于存、取操作。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数; 2、完成课程信息的录入和显示(即通过编程创建文件,输入课程信息并可将文件内容显示出来) 3、完成查询功能(可以按照课程编号、课程名称、课程性质等进行查询) 4、完成修改功能输入课程编号后可以修改该课程信息。 5、进一步要求:实现学生选修课程功能 要求: 1、用C语言实现程序设计; 2、利用结构体进行相关信息处理; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有注释。 课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。 C语言课程设计任务书及指导书12 题目:商品订购系统设计。 功能: 1、屏幕上出现一个界面,让顾客或者输入商品名称,或者输入商品型号,或者给出商品选择列表供用户选择让用户输入所选商品编号,如查到所选商品,则列出商品编号、商品名称、商品型号、商品价格、商品产地、库存数量和已订购数量;然后给出选购流程:所选商品编号—列出对应商品的信息—要求顾客输入邮寄地址信息—确认订购,是否继续选购其它商品,列出所有选订商品,再次确认订购。建立两个文件,分别存放商品信息与订购信息。 2、保存:将相关数据写入磁盘文件,便于存、取操作。 分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:建立一个小系统,包括10种产品能供顾客选择。 3、进一步要求:完成全部功能的系统。要求: 1、用C语言实现程序设计; 2、利用结构体进行相关信息处理; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有注释。课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。C语言课程设计任务书及指导书13 题目:设备管理系统设计 功能: 1、设备管理系统应包含各种设备的全部信息,每台设备信息为一条记录,包括设备号、设备名称、领用人、所属部门、数量、购买时间、价格等。能够显示和统计各种设备的信息。 2、保存:将相关数据写入磁盘文件,便于存、取操作。 分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成信息的录入和显示(即通过编程创建文件,输入设备信息并可将文件内容显示出来) 2、能对文件进行追加、修改、删除,能统计所有设备的总价值。 3、进一步要求:完成设备按种类、按所属部门进行统计。 要求: 1、用C语言实现程序设计; 2、利用结构体进行相关信息处理; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有注释。 课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。 C语言课程设计任务书及指导书14 题目:学生计算机机房管理系统设计 功能: 1、该计算机房共有100台计算机,分为20排,每排5台。管理系统应包含每台计算机一周内的使用全部信息,包括计算机序号、配置、位置、状态、使用情况的历史记录(包括使用者姓名、学号、使用时间段)等。本系统可以模拟学生上机和离开的登记过程,查询机房计算机的使用情况。 2、保存:将相关数据写入磁盘文件,便于存、取操作。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成信息的录入和显示(即通过编程创建文件,输入计算机信息并可将文件内容显示出来) 3、能实现学生上机的登记过程模拟; 4、进一步要求:查询机房计算机的使用情况。要求: 1、用C语言实现程序设计; 2、利用结构体进行相关信息处理; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有注释。 课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。C语言课程设计任务书及指导书15 题目:商店销售管理系统。 功能: 1、屏幕上出现一个界面,让售货员输入商品编号或者商品名称,可以进货,进货后商品库存同时增加。顾客买走商品后,售货员输入商品编号或者商品名称,可以生成销售清单,统计本次销售总的价钱,同时库存数量相应减少。完成前面的基本功能后,还可以完成增加新的商品或删除不需要的商品的功能,以及每天销售统计功能等。 2、保存:将相关数据写入磁盘文件,便于存、取操作。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成信息的录入和显示(即通过编程创建文件,输入商品信息并可将文件内容显示出来) 3、能按商品编号进货和销售; 4、进一步要求:完成增加新的商品或删除不需要的商品的功能,以及每天销售统计功能等。要求: 1、用C语言实现程序设计; 2、利用结构体进行相关信息处理; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有注释。课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。 C语言课程设计任务书及指导书16 题目:计算机辅助教学(CAI)软件开发:教小学生学英语。 功能: 1、屏幕上随机出现一个汉语单词,英语单词,汉语词组,英语词组或一短句提示小学生给出相应答案,答错了要提示要求重新输入,直到答对为止。要统计给分,且累计,够一定分数后可进级,即从单词到词组,从词组到短句。同样,也可降级。起步阶段可各选30个,软件可扩充,即扩大词库的容量。 (rand(),#include 2、保存:将相关数据写入磁盘文件,便于存、取操作。 分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:能教单词,并有统计功能,即一次答对的成功率为90%以上后可晋级; 3、进一步要求:将词库、当前晋级等级保存在磁盘文件,每次登录时读取。要求: 1、用C语言实现程序设计; 2、利用结构体进行相关信息处理; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有注释。课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。 C语言课程设计任务书及指导书17 题目:飞机订票系统设计 功能: 1、本飞机共有80个坐位,分20排,每排4个位子。编号为A,B,C,D。如10D表示10排D座。A和D靠窗,19到20排为吸烟区。本系统可让乘客自己选座号和区域,直到乘客满意为止,无法满足的话,只能改乘另一个航班。定上票的乘客需给出姓名和身份证号,最后要打印出乘客清单。 2、保存:将相关数据写入磁盘文件,便于存、取操作。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:建立一个小系统,包括5排座位,两个区域,能供乘客选择; 3、进一步要求:每次登录时读取上次保存在磁盘文件中的订票记录。要求: 1、用C语言实现程序设计; 2、利用结构体进行相关信息处理; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有注释。课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。 C语言课程设计任务书及指导书18 题目:高速公路计费系统设计 功能: 1、在某高速公路出口收费处,对三种类型的车辆计费,大型车每公里0。5元,中型车每公里0。4元,小型车每公里0。3元,来车验条,乘公里数即得该收的款项。在交班时要统计出总金额数。 2、保存:将相关数据写入磁盘文件,便于存、取操作。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:建立一个只有三个入口的计费系统,并能进行统计计算,打印出报表; 3、进一步要求:1)每次登录时读取上次保存在磁盘文件中的收费总额。 2)完成任意多个入口的通用系统。 要求: 1、用C语言实现程序设计; 2、利用结构体进行相关信息处理; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有注释。课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据结构。 2、实验总结报告:按照模板的格式。(任务书和报告模板在http://3e.xaut.edu.cn/c下载)。 课程设计题目:简单的学生成绩管理的程序 要求: 一、由键盘输入原始数据。原始数据内容如下: 学号姓名C程序设计高等数学英语线性代数 1王..80808080 2张..90909090 注:要求至少有20个学生的原始数据 二、实现以下功能。 程序要求主函数是一个功能选择菜单,其它各功能用函数实现。功能要求如下: 1、原始数据的输入 2、计算每位同学的平均分 3、计算每门课程的平均分 4、计算各分数段(90-100、80-89、60-79、60以下)的人数 5、对这些同学的成绩按平均分排序,给出名次。 6、对原始数据可以进行增、删、改的编辑操作。 7、按学号查询学生。找到则显示该生信息,否则提示未找到。 8、原始数据可以保存为文件,也可以从文件载入。 注:程序统计输出结果如下: 学号姓名C程序设计高等数学英语线性代数平均分名次 1王..80808080802 2张..90909090901 … 各科平均分8585858585 C程序设计高等数学英语线性代数平均分 90-10011111 80-8911111 60-6900000 60以下00000第二篇:运动会比赛计分系统
第三篇:2012语言课程设计任务书
第四篇:C语言课程设计任务书
第五篇:C语言课程设计任务书(学生成绩管理系统)