c语言课程设计报告大学论文

c语言课程设计报告大学论文
c语言课程设计报告大学论文

C语言课程设计报告

2010年11月26日

报告目录

一、课程设计目的 (3)

二、实习内容及要求 (3)

三、需求分析 (3)

四、总体分析 (3)

五、详细设计 (4)

5.0 头文件及结构体 (4)

5.1 主函数 (5)

5.2 菜单模块 (5)

5.3 添加模块 (6)

5.4 修改模块 (10)

5.5 浏览模块 (14)

5.6 查询模块 (15)

5.6.1 按学号查询 (15)

5.6.2 按名字查询 (16)

5.6.3 按班级查询 (17)

5.7 统计模块 (18)

5.7.1 男生信息 (19)

5.7.2 女生信息 (21)

5.7.3 全体学生信息 (23)

5.8 删除模块 (23)

六、上机操作 (26)

6.1 系统说明 (26)

6.2 系统测试 (26)

七、总结 (32)

八、源代码 (32)

一、课程设计目的

通过实践,学会编制结构清晰、风格良好、数据结构适当的C语言程序,加深对C语言基础知识的理解和掌握,进一步巩固C语言编程实践能力,锻炼思维逻辑和解决综合性实际问题的能力。

二、实习内容及要求

1、用C语言编写一个学生证管理系统,该系统具有以下功能:

(1)录入某位学生的学生证信息;

(2)给定学号,显示某位学生的学生证信息;

(3)给定某个班级的班号,显示该班所有学生的学生证信息;

(4)给定某位学生的学号,修改该学生的学生证信息;

(5)给定某位学生的学号,删除该学生的学生证信息;

(6)提供一些统计各类信息的功能;

(7)提供浏览所有学生的学生证信息的功能。

2、输入要求

应用程序运行后,在屏幕上显示一个菜单;用户可以根据要求,选定相应的操作项目;进入某个操作后,根据应用程序的提示,从键盘输入相应的信息。

3、输出要求

(1)应用程序运行后,要在屏幕上显示一个菜单;

(2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。

三、需求分析

根据题目要求,学生信息要从文本文件中存取,所以本程序应该提供读写文件,显示、统计、查询、修改记录,保存文件等操作,此外,还应该提供键盘式选择菜单实现功能。

四、总体设计

根据需求分析,可以把这个系统的设计分为添加、修改、查询、浏览、统计、删除六大模块,其中查询模块可以分为三个子模块,统计模块可以分为三个子模块,子模块下面还有子函数;系统功能模块图如下所示:

五、详细设计

5.0 头文件及结构体

#include

#include

#include

#define N 100

struct Class //班级

{

char Cname[20]; //班名

char Cno[20]; //班号

};

struct Student //学生

{

char Sname[20]; //姓名

char Sex[10]; //性别

char Sno[20]; //学号

int Age; //年龄

struct Class CInfo; //嵌套结构体,表示班级信息

}StuInfo[N]; //结构体数组,用作读取和存放临时数据

5.1 主函数

void main()

{

menu(); //菜单

getchar();

}

5.2 菜单

void menu()

{

int chose;

int right;

do

{

printf("\n\t\t\t\t学生证管理系统\n");

printf("········································");

printf(" 菜单:\t1-添加\t2-修改\t3-浏览全部\t4-查询\t5-统计\t6-删除\t7-退出\n");

printf("········································");

printf("请输入数字选择:");

scanf("%d",&chose);

if(chose<1||chose>8)

{

right=1;

printf("输入错误,请重新输入!\n");

getchar();

}

else right=0;

}while(right==1);

switch(chose)

{

case 1:add(); break; //添加模块

case 2:modify(); break; //修改模块

case 3:browse(); break; //浏览模块

case 4:quiry(); break; //查询模块

case 5:stastic(); break; //统计模块

case 6:Delete(); break; //删除模块 case 7:exit(0); //退出

}

}

5.3 添加模块

void add()

首先要判断文件

StuInfo.txt 是否存在,如

果存在就以读写(r+)的方

式打开,如果不存在,就以

写(w )的方式创建文件

StuInfo.txt 。输入格式要

求:性别为男或女,学号为

11位且不能重复,年龄在

0-100之间,班级号为6位,

程序提供了完善的验证机

制,输入错误时将提示重新

输入直到正确为止。此外,

如果以读写的方式打开,还

要判断记录数num

成立,因为结构体数组的大

小为N ,当num=N 时,表示

已满,不能再存储数据,需

要修改N 的值。

{

int num; //表示记录数

int i;

int age; //临时变量,用于验证输入的性别是否满足条件

char sno[20]; //临时变量,用于验证输入的学号是否满足条件

char sex[20]; //临时变量,用于验证输入的性别是否满足条件

char cno[20]; //临时变量,用于验证输入的班号是否满足条件

int right;

FILE*fp;

if((fp=fopen("StuInfo.txt","r+"))==NULL) //以读写方式打开

{

if((fp=fopen("StuInfo.txt","w"))==NULL) //文件不存在就创建文件{

printf("\n文件不存在且创建失败,返回!\n");

menu();

}

printf("\n请按照提示输入学生信息:\n\n");

printf("姓名:");

scanf("%s",&StuInfo[0].Sname);

do

{

printf("\n性别(男或女):");

scanf("%s",sex);

if((strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0))

{

printf("输入错误,请输入男或女!\n");

right=1;

getchar();

}

else right=0;

}while(right==1);

strcpy(StuInfo[0].Sex,sex);

do

{

printf("\n学号(11位):");

scanf("%s",sno);

if(strlen(sno)!=11)

{

printf("输入错误,学号长度应为11位数!\n");

right=1;

getchar();

}

else right=0;

}while(right==1);

strcpy(StuInfo[0].Sno,sno);

do

{

printf("\n年龄:");

scanf("%d",&age);

if(age<=0||age>100)

{

printf("年龄应在0-100之间,请重新输入年龄!\n");

right=1;

getchar();

}

else right=0;

}while(right==1);

StuInfo[0].Age=age;

do

{

printf("\n班号(6位):");

scanf("%s",cno);

if(strlen(cno)!=6)

{

printf("输入错误,班号长度应为6位数!\n");

right=1;

getchar();

}

else right=0;

}while(right==1);

strcpy(StuInfo[0]https://www.360docs.net/doc/d49641326.html,o,cno);

printf("\n班名:");

scanf("%s",&StuInfo[0]https://www.360docs.net/doc/d49641326.html,ame);

fprintf(fp,"\n%s\t%s\t%s\t%d\t%s\t%s",StuInfo[0].Sname,StuInfo[0].Sex,StuInfo[0].Sno,StuInfo[0].Age,Stu Info[0]https://www.360docs.net/doc/d49641326.html,o,StuInfo[0]https://www.360docs.net/doc/d49641326.html,ame);

fclose(fp);

printf("\n保存成功!\n");

printf("\n请按enter键返回主菜单!\n");

getchar();

getchar();

menu();

} //以上的输入是以写的方式输入,下面是以读写的方式输入数据

for(i=0;!feof(fp);i++)

{

fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].Age,&StuI nfo[i]https://www.360docs.net/doc/d49641326.html,o,&StuInfo[i]https://www.360docs.net/doc/d49641326.html,ame);

}

num=i; //记录数

if(num==N)

{

printf("\n保存记录数超出结构体数组数的大小,请先修改N的值!\n");

printf("\n请按enter键返回主菜单!\n");

getchar();

getchar();

menu();

}

printf("\n请按照提示输入学生信息:\n\n");

printf("姓名:");

scanf("%s",&StuInfo[num].Sname);

do

{

printf("\n性别(男或女):");

scanf("%s",sex);

if((strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0))

{

printf("输入错误,请输入男或女!\n");

right=1;

getchar();

}

else right=0;

}while(right==1);

strcpy(StuInfo[num].Sex,sex);

do

{

printf("\n学号(11位):");

scanf("%s",sno);

if(strlen(sno)!=11)

{

printf("输入错误,学号长度应为11位数!\n");

right=1;

getchar();

}

else right=0;

for(i=0;i

{

if(strcmp(sno,StuInfo[i].Sno)==0)

{

printf("该学号已经存在,请重新输入!\n");

right=1;

getchar();

}

}

}while(right==1);

strcpy(StuInfo[num].Sno,sno);

do

{

printf("\n年龄:");

scanf("%d",&age);

if(age<=0||age>100)

{

printf("年龄应在0-100之间,请重新输入年龄!\n");

right=1;

getchar();

}

else right=0;

}while(right==1);

StuInfo[num].Age=age;

do

{

printf("\n班号(6位):");

scanf("%s",cno);

if(strlen(cno)!=6)

{

printf("输入错误,班号长度应为6位数!\n");

right=1;

getchar();

}

else right=0;

}while(right==1);

strcpy(StuInfo[num]https://www.360docs.net/doc/d49641326.html,o,cno);

printf("\n班名:");

scanf("%s",&StuInfo[num]https://www.360docs.net/doc/d49641326.html,ame);

//把该记录写到文件末尾

fprintf(fp,"\n%s\t%s\t%s\t%d\t%s\t%s",StuInfo[num].Sname,StuInfo[num].Sex,StuInfo[num].Sno,StuInfo[nu m].Age,StuInfo[num]https://www.360docs.net/doc/d49641326.html,o,StuInfo[num]https://www.360docs.net/doc/d49641326.html,ame);

fclose(fp);

printf("\n保存成功!\n");

printf("\n请按enter键返回主菜单!\n");

getchar();

getchar();

menu();

}

5.4 修改模块

void modify()

{

int num; int i; int right;

int age; char sex[20];

char cno[20];

char sno[20]; int found=-1;

char StuNO[20];

FILE*fpr,*fpw;

if((fpr=fopen("StuInfo.txt","r"))==NULL)

{

printf("文件打不开!\n");

menu();

}

for(i=0;!feof(fpr);i++) /

{

fscanf(fpr,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].Age,&StuI nfo[i]https://www.360docs.net/doc/d49641326.html,o,&StuInfo[i]https://www.360docs.net/doc/d49641326.html,ame);

}

num=i;

fclose(fpr);

printf("\n 请输入学号选择要修改的记录:");

scanf("%s",StuNO);

先判断文件StuInfo.txt 以读(r )的方式能否打开,不能就返回,可以就读入记录;然后输入学号查找记录,没找到就返回,找到就按照提示修改该记录,与输入模块一样,输入的格式要求:性别为男或女,学号为11位且不能与除当前修改的记录的学号外的记录的学号重复,年龄在0-100之间,班级号为6位,程序提供了完善的验证机制,输入错误时将提示重新输入直到正确为止。输入完成后,再以写(w )的方式创建文件,不能创建就返回,可以就将结构体数组中的所有记录保存到文件中,这与添加稍有差别,最后返回主菜单。

for(i=0;i

{

if(strcmp(StuNO,StuInfo[i].Sno)==0)

{

found=i;

printf("\n你要修改的学生信息为:\n\n");

printf("姓名性别学号年龄班号班名\n");

printf("%s\t%s\t%s\t%d\t%s\t%s\n",StuInfo[i].Sname,StuInfo[i].Sex,StuInfo[i].Sno,StuInfo[i].Age,StuInfo[i ]https://www.360docs.net/doc/d49641326.html,o,StuInfo[i]https://www.360docs.net/doc/d49641326.html,ame);

printf("\n请按照提示输入学生的新信息:\n");

printf("姓名:");

scanf("%s",&StuInfo[found].Sname);

do

{

printf("\n性别(男或女):");

scanf("%s",sex);

if((strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0))

{

printf("输入错误,请输入男或女!\n");

right=1;

getchar();

}

else right=0;

}while(right==1);

strcpy(StuInfo[found].Sex,sex);

do

{

printf("\n学号(11位):");

scanf("%s",sno);

if(strlen(sno)!=11)

{

printf("输入错误,学号长度应为11位数!\n");

right=1;

getchar();

}

else right=0;

for(i=0;i

{

if((i!=found)&&(strcmp(sno,StuInfo[i].Sno)==0))

{

printf("该学号已经存在,请重新输入!\n");

right=1;

getchar();

}

}

}while(right==1);

strcpy(StuInfo[found].Sno,sno);

do

{

printf("\n年龄:");

scanf("%d",&age);

if(age<=0||age>100)

{

printf("年龄应在0-100之间,请重新输入年龄!\n");

right=1;

getchar();

}

else right=0;

}while(right==1);

StuInfo[found].Age=age;

do

{

printf("\n班号(6位):");

scanf("%s",cno);

if(strlen(cno)!=6)

{

printf("输入错误,班号长度应为6位数!\n");

right=1;

getchar();

}

else right=0;

}while(right==1);

strcpy(StuInfo[found]https://www.360docs.net/doc/d49641326.html,o,cno);

printf("\n班名:");

scanf("%s",&StuInfo[found]https://www.360docs.net/doc/d49641326.html,ame);

if((fpw=fopen("StuInfo.txt","w"))==NULL)

{

printf("文件打不开,保存失败!\n");

menu();

}

for(i=0;i

{

fprintf(fpw,"\n%s\t%s\t%s\t%d\t%s\t%s",StuInfo[i].Sname,StuInfo[i].Sex,StuInfo[i].Sno,StuInfo[i].Age,S tuInfo[i]https://www.360docs.net/doc/d49641326.html,o,StuInfo[i]https://www.360docs.net/doc/d49641326.html,ame);

}

fclose(fpw);

printf("\n修改成功!\n");

printf("\n请按enter键返回主菜单!\n");

getchar();

menu();

}

}

if(found<0)

{

printf("\n 没有找到该学号的记录:\n");

printf("\n 请按enter 键返回主菜单!\n");

getchar();

getchar();

menu();

}

}

5.5 浏览模块

void browse()

{

int num;

int i;

FILE*fp;

if((fp=fopen("StuInfo.txt","r"))==NULL)

{

printf("文件打不开!\n");

menu();

}

for(i=0;!feof(fp);i++)

{

fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].Age,&St uInfo[i]https://www.360docs.net/doc/d49641326.html,o,&StuInfo[i]https://www.360docs.net/doc/d49641326.html,ame);

}

fclose(fp);

num=i;

printf("\n 已添加%d 个学生信息\n\n",num);

printf("姓名 性别 学号 年龄 班号 班名\n");

for(i=0;i

{

printf("%s\t%s\t%s\t%d\t%s%s\n",StuInfo[i].Sname,StuInfo[i].Sex,StuInfo[i].Sno,StuInfo[i].Age,StuInfo[i ]https://www.360docs.net/doc/d49641326.html,o,StuInfo[i]https://www.360docs.net/doc/d49641326.html,ame);

}

printf("\n 请按enter 键返回主菜单!\n");

getchar();

menu();

}

5.6 查询模块

void quiry()

{

int chose;

int right;

do

{

printf("\n1-按学号查询\t2-按姓名

查询\t3-某班学生信息\t4-返回\n");

printf("\n请输入数字选择:");

scanf("%d",&chose);

if(chose<1||chose>4)

{

right=1;

getchar();

}

else right=0;

}while(right==1);

switch(chose)

{

case 1:bySno();break;

case 2:bySname();break;

case 3:byCno();break;

case 4:menu();

}

}

5.6.1 根据学号查找某学生的学生证信息:void bySno()

{

int found=-1;

int num;

int i;

char no[20];

FILE*fp;

if((fp=fopen("StuInfo.txt","r"))==NULL)

{

printf("文件打不开!\n");

menu();

}

c语言课程设计论文

《C语言程序设计》 项目设计报告 项目名称:学生成绩信息管理系统 2016年 1月 13日

目录 1 项目分析 0 1.1 问题描述 0 1.2 功能需求分析 0 2 系统设计 (1) 2.1 数据结构设计 (1) 2.3部分功能设计 (2) 3 系统实现源程序 (2) 3.1 主函数设计 (2) 3.2 添加学生信息 (5) 3.3 姓名学号查询 (18) 3.4 成绩查询 (22) 3.5 删除学生成绩信息 (24) 3.6 修改学生成绩信息 (29) 4 功能测试 (33) 4.1 菜单测试 (33) 4.2 系统功能测试 (33)

5 系统设计遇到的问题及解决方法 (35) 6 项目设计总结 (37)

1 项目分析 1.1 问题描述 信息储存与查询是计算机处理数据的优势之一,目前,学生信息的管理系统已经完全走进了校园,其中成绩信息的储存是主要部分,本课题使用C语言实现学生成绩的储存,查询,修改,以及删除等操作。程序中涉及到数据块和文件指针的操作,包括结构体数据定义,使用及文件的读写,定位,修改等。 1.2 功能需求分析 学生成绩信息管理系统的主要功能如下: ①添加学生信息:录入学生的基本信息,如姓名,学号,成绩。 ②显示所有学生成绩信息:直接显示已经全部录入学生的成绩信息。 ③学号或姓名查询:可以根据学生的姓名和学号直接查询该名学生的成绩。 ④成绩查询:可以根据一个特定的分数来查询学生的信息。 ⑤删除学生成绩信息:可以直接根据学号确定是否删除对应学生的成绩信息。 ⑥修改学生成绩信息:直接根据学生学号来修改学生的姓名,学号,成绩。

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

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

C语言课程设计报告-游戏2048

东华理工大学C语言课程设计报告 学院:国际教育学院学院专业:电子信息工程 班级:1420606 学号:201420060638 姓名:钟天运

一、课程设计题目:游戏2048 二、课程设计要求: a)使用C语言编写2048这款游戏 b)能够正常运行,拥有游戏界面。 c)能正常进行游戏从开始到结束。 d)用户操作方便 三、设计思路: a)游戏介绍: i.2048是一款简单的数字类游戏,界面是一个 4*4的方形格子。每个格子里可以为空或者有 一个2^n的数值。 ii.用户可以输入4种指令,分别是:上下左右,游戏会根据用户的指定的方向,将格子中 的数值向对应方向进行移动,直至移动到最边 上的格子或者有其他数值占用,如果碰到等大 数值,将会进行合并。此外,成功移动后,会 在一个空格子随机生成一个2或者4 iii.游戏目标是合成2048这个数值或者更大的数值。 b)实现思路: i.可以使用二维数组来保存4*4格子中的数值 ii.指令,可以通过输入字符函数,读取用户

在键盘上的方向键,进行判断执行对应的代 码。 iii.游戏界面,可以使用简单的特殊制表符,来实现,并通过清屏函数来进行反复同位置打 印界面。 iv.需要判断游戏结束的函数,以及记录游戏分数和步骤的变量 v.当游戏结束时,能够询问用户是否重新开始。 vi.随机生成一个新数,可以调用随机函数,使用时间做种子。 c)实现难点: i.打印游戏界面,要实现灵活能根据棋盘数组里 面的数据灵活打印。 ii.执行操作时,数值的移动和合并。

四、流程图

五、C语言源代码 // 游戏2048.c #include "windows.h" #include "time.h" #include "stdio.h" #include "conio.h" #include "string.h" //宏定义常量方向键值 //const int LEFT = 75, UP = 72, RIGHT = 77, DOWN = 80; #define LEFT 75 #define UP 72 #define RIGHT 77 #define DOWN 80 const char error_str[] = "您上次输入的指令无法识别,请重新输入。"; struct board { int place[4][4]; long int stepn; long int num; //存储游戏分数 long int time; int dtk; //direction key 记录方向键,及操作方向 int over; int zeronum; }; //该函数为游戏运行函数,当只是玩游戏的时候。进入该函数,游戏控制函数。int main() { //place数组为棋盘,其中为零代表空,-1代表不能合并的牌,其他2的倍数值为本身含义,初始化为全0。 struct board board1, board_backup; int newgame(struct board *, int), show(struct board *), operate(struct board *); char str[100] = "首次运行游戏"; //用于记录系统返回给用户的信息,例如:上一步执行向左合并,按键有误等 newgame(&board1, 0); //调用函数为新局初始化,第二个

心得体会 c语言课程设计心得体会

c语言课程设计心得体会 在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到了大家的喜爱,在每次的简报中都得到了较好的成绩。 虽然在上个学期中,我们已经学习了《c 语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。 c语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。 在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我们在上课时不注重对文件的运用,所以在这方面有较大的困难。我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己

的理解,终于,经过我们的不懈努力,我们小组的程序有了突破,成功地实现了用文件来保存并查看学生的信息。 这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快而准确的画出来。 在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了! 当然,我们的程序还有一些不完善的地方,比如说,当输入的数据不符合我们定义的数据的格式的时候,程序会出现一些错误,有时会出现主菜单的死循环;在一次程序运行中,只能行使一种权限,要想再行使另一种权限,就只能退出程序,然后再运行程序。 三周的小学期即将结束,时间虽短,但是我收获了很多。最后,谢谢老师和同学们的指导,更要感谢我们小组成员之间的合作与交

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

《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主要模块的算法描述 本算法的思路过程:首先要随机产生随机数,然后进行算法输出数值,执行条件判断输入结果,最后比较结果,判断胜利的一方。 程序流程图 图1 掷骰子游戏 2.1.4调试过程及实验结果

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)输出结点信息。 以上各个函数的流程图如下:

c语言课程设计报告学生成绩信息管理系统源代码

实验报告 一、问题陈述及其需求分析 (一)问题陈述 学生信息管理系统是对学生信息的基本管理,其中包括以下及模块: (1)增加一个学生的信息(需输入要增加学生的所有信息); (2)统计本班学生总人数及男女生人数。 (3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。 (4)按学号对所有学生信息排序,并输出结果; (5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。( 二) 功能需求分析 学生信息管理系统设计 学生信息包括:学号,姓名,性别,出生年月,电话 使之提供以下功能: 1、系统以菜单方式工作 2、建立链表并显示 3、插入新的学生信息 4、删除某学号的学生信息 5、查找某学号的学生信息 6、对学生信息排序 7、统计学生人数 8、输出学生信息 二总体设计 (一)模块 依据程序的数据结构,描述该程序的层次结构,如下图:

1、建立链表并显示 void createlist(struct stucode **r); 2、插入新的学生信息 void insert(struct stucode **r); 3、删除某学号的学生信息 void del(struct stucode **r); 4、查找某学号的学生信息 void search1(struct stucode *r); 5、对学生信息排序 void sort(struct stucode **r); 6、统计学生人数 void search2(struct stucode *r); 7、输出学生信息 void out(struct stucode *r); 1 建立链表并显示 2 添加学生信息 3 删除学生信息 息 4 按学号查找学生信 5 对学生信息排序 6统计学生人数 7输出学员信息 8 学生信息写入文件 0退出 main() 菜单函数

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语句,实现语句的循环,从而将一个字符串拷贝到一个空数组中。

c语言课程设计报告

C语言程序设计B 课程设计报告 设计题目:学生成绩管理系统年级班级: 学号: 姓名: 指导教师: 2020 年 6 月 18 日

目录 一、设计目的 (3) 二、课程设计内容和要求 (4) 三、总体设计 (5) 四、主要步骤 (12) 五、功能实现 (13) 六、功能测试 (64) 七、评价程序 (83) 八、课程设计体会 (84)

一、设计目的 程序设计能力是当代理工类大学生的必备能力,当学生学习了C语言之后,编程能力远远不能达到开发实际应用程序的要求,特备是对其中的指针、结构体、链表和文件部分的理解和应用都比较弱。 程序设计的目的是通过对面向过程的学习,将C语言的主要知识点进行综合,针对提高学生C语言程序设计能力,强化编写较大的应用软件能力,熟练运用已掌握的知识解决实际需要解决的问题,以达到更加熟知指针、链表、结构体、文件读取、标准库的使用。 主要目的为以下几点: 1、熟练掌握面向过程(结构化)程序设计基本知识; 2、综合运用所学知识解决实际问题; 3、受到面向过程(结构化)程序设计的基本训练; 4、体会面向过程(结构化)开发程序的过程。

二、课程设计内容和要求 1.课程设计内容: 学生通过使用C语言进行编写算法,开发学生成绩管理系统,以实现对学生成绩的管理。 2.课程设计要求 1)具有菜单,可以在菜单上进行选择; 2)能实现学生数据录入、修改、删除、查询; 3)能实现数据排序; 4)有数据输出功能; 5)有数据读取与存储功能; 6)一个学生的数据(称为:每条记录)包含姓名、学号、语文、数 学、英语、总分、名次等信息; 7)以结构方式存储每条记录; 8)多条记录以链表方式存储到内存; 9)随时可将全部数据存储到磁盘文件中,方便下次从磁盘读取数据。

c语言实验心得体会

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

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

C语言程序设计论文

C语言程序设计论文学校:天津电子信息职业技术学院 系别:电子技术系 专业:通信技术 班级:通信S13-26 学号:89757 姓名:王磊

C语言课程设计报告 一、设计题目:计算器 二、设计目标:进一步加深、巩固学生所学专业课程(《C语言》)的基本理论知识,理论 联系实际,进一步培养学生综合分析问题和解决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能,充分发挥广大同学的潜力,使他们通过本次课程设计而得到全面的锻炼。 三、设计内容: 1.设计系统的功能框图、流程图; 2.编写计算器的源程序代码; 3.上机调试; 4.答辩; 5.书写实习报告。 四、课程设计所用设备:每人一台计算机。 五、课程设计系统组成及模块功能: (1)主函数模块 (2)设置系统进入图形模块 (3)初始化图形系统模块 (4)计算器计算函数模块 (5)窗口函数模块 (6)设计鼠标图形函数模块 (7)获取特殊键函数模块 六、软件环境:Visual c++6.0 七、课程设计要求:在计算机上操作,通过Visual c++6.0,设计出“计算器”程序。 八、应提交的材料:实习报告一份,内容包含“计算器”程序代码。 设计报告: 程序代码:#include #include #include #include #include #include #include

#include #include #define UP 0x48 #define DOWN 0x50 #define LEFT 0x4b #define RIGHT 0x4d #define ENTER 0x0d void *rar; struct palettetype palette; int GraphDriver; int GraphMode; int ErrorCode; int MaxColors; int MaxX, MaxY; double AspectRatio; void drawboder(void); void initialize(void); void computer(void); void changetextstyle(int font, int direction, int charsize); void mwindow(char *header); int specialkey(void) ; int arrow(); int main() { initialize(); computer(); closegraph(); return(0); }

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);这个函数为顺序表的输出函数,把顺序表的头传给函数后,可输出整个顺序表的所有信息。、

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语言课程设计心得体会文档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语言语言课程设计报告

上海应用技术学院 课程设计 2011~ 2012学年第二学期 设计题目成绩记录簿 院(系)计算机科学与信息工程学院 专业计算机应用技术 班级 11104114 学号 1110411414 学生姓名蒋佳琴 设计时间 2012.06.25 -2012.07.06 指导教师马智娴 提交日期 2012.07.06

上海应用技术学院课程设计任务书 指导教师(签名):马智娴教研室主任(签名):马智娴2012年6 月25日2012年6月25日

目录 1 设计目的 (5) 2 功能描述 (5) 2.1模块功能 (5) 2.2流程图 (6) 3 总体设计 (13) 3.1 功能模块设计 (13) 3.2 数据结构设计 (13) 3.3 函数功能描述 (13) 4 程序实现 (14) 4.2 运行结果 (25) 5课程设计总结 (28)

成绩记录簿 1. 设计要求: 基本功能 a) 添加成绩 b) 删除成绩 c) 查询学生成绩 d) 查询班级成绩 e) 退出 拓展功能 a) 写入文件 b) 读取文件 创新(自拟)功能: 程序实现的其它功能由个人自拟。 2. 设计要求具体说明 基本功能: 成绩记录簿中记录以下数据: 学号、姓名、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分; 输入信息时要检查数据项学号、课程编号、成绩、学分的合法性,学号:8位数字;课程编号:5位数字;成绩:0 ~ 100 之间的整数,学分: 1~ 5之间的实型数。 添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示; 查询(班级或个人)成绩: a) 查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成 的总学分。 b) 查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同 学不同课程在不同分数段分布的人数及百分比。 拓展功能: a) 程序启动时先从文件读入数据,如果文件中没有数据则给出提示; b) 每次修改的数据写入文件。 3. 提示 定义合适的结构体类型,使用链表或数组的方式组织数据。

C语言课程设计总结

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

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

C语言课程设计报告学生成绩管理系统

机电工程学院 中南大学 本科生C语言课程设计题目学生成绩管理系统

一、课程设计 题目:学生成绩管理系统 给出n个学生的4门考试的成绩表,每个学生的信息由学号、姓名以及各科成绩组成。对学生的考试成绩进行有关统计:按某一科分数或平均分数高低次序,列出名次表,分数相同的为同一名次;按名次打印出每个学生的学号、姓名、总分以及各科成绩,并打印统计表。 三、概要设计 程序要有的功能: 1. 输入学生成绩 2. 保存成绩 3. 学生成绩排序 4. 学生成绩查询 5. 学生成绩清单 6. 退出管理系统 程序运行当中,通过选择对应的功能序号来实现所需功能。对输入的数据要有事先的分析,如果用户输入的数据与实际不相符如输入成绩的数值为负,则程序应输出相应的提示:“数据不存在”。再者就是,当再输入完相应的数据后,程序作出相应的提示,询问用户是否要继续输入。在排列学生成绩时候,如果出现成绩相同的情况,程序自动作出处理。 四、设计任务 将程序分为六个方面:1. 输入学生成绩、2. 保存成绩、3. 学生成绩排序、4. 学生成绩查询、5. 学生成绩清单、6. 退出管理系统。每个人负责两个方面的程序,其中侯蒙召负责1、2两个程序,杨天静负责3、4两个,张振陆负责5、6两个,最后交由组长侯蒙召组合整理,形成现在的总的程序。

流程图:

四、详细设计 源程序: #include #include #include #include struct Student {char name[20]; int no; int math; int program; int english; int chinese; int aver; }stu[100],t; int num=0; int menu() { int a; char s[20]; system("cls"); /*程序介绍*/ printf(" 欢迎使用学生成绩管理系统,该系统包括以下几项功能,请根据提示做相应操作\n"); printf(" 1->输入学生成绩\n"); printf(" 2->保存成绩\n"); printf(" 3->学生成绩排序\n"); printf(" 4->学生成绩查询\n"); printf(" 5->学生成绩清单\n"); printf(" 6->退出管理系统\n");/*选择操作*/ printf("\n"); printf(" 请选择要进行操作的编号:\n"); do{ printf("Enter you choice(0~6):"); scanf("%s",s); a=atoi(s); }

C语言课程设计报告烟花绽放

课程设计报告书设计题目烟花绽放 系别计算机工程系 专业计算机科学与技术 班级 姓名 指导教师 设计任务下达日期2011年 12 月 24 日 设计时间2011年12月26日至 2010年12月30日 课程设计任务书

一、目的和意义 本课程设计是《C语言程序设计》课程的后继教学环节, 通过研究C语言中图形编程技术或者声音控制等其它方面的多媒体编程技术,一方面拓展学生在这些领域的C语言知识,另一方面使学生在运用所学理论知识进行实践开发,更好的培养学生综合学习能力和实践能力。本次课程设计学生可以根据喜好,可以利用复杂的数据类型实现成绩管理系统等小型的综合应用程序。 二、题目(可从下面题目中任选一个) 1、C语言的图形编程应用 设计实现如菜单、图形的显示,再如动画和小游戏。 2、简易电子琴模拟程序的实现 为实现在键盘模拟电子琴设计的程序。由学生自行设计并且实现。 3、成绩管理程序 学生本人设计具体方案,然后改进和编码实现。 三、课程设计报告书应包括的主要内容 1、介绍概要的思路和设计方案,程序的总体功能和模块划分。 2、主要算法的介绍及流程图,主要功能的实现手段的说明文档。 3、对于有设想但最终未实现的功能的大致编程思路的阐述和设计过程中的启发。 四、进度要求 1、设计时间:2011年12月19日至2011年12月25日 2、编写课程设计报告书:2011年12月26日至2011年12月29日 3、提交报告及答辩时间:2011年12月30日 专科 四、进度要求 1、设计时间:2011年12月26日至2011年12月28日 2、编写课程设计报告书:2011年12月29日 3、提交报告及答辩时间:2011年12月30日 目录

相关文档
最新文档