C语言课程设计报告范例

时间:2024.4.21

C语言课程设计报告

设计题目:

专 业:

班 级:

学 号:

姓 名:

任课老师:

时间:

目录

一、 课程设计题目及所涉及知识点

二、 课程设计思路及设计流程图

三、 课程设计中遇到的难点及解决办法

四、 小结

五、 附录原程序

2

一、 课程设计题目及所涉及知识点

(一).课程设计题目:

(1).基本内容:

学生信息包括学生号、姓名、性别、出生年月、数学、英语、计算机、体育(学生号不重复)。试设计一学生信息管理系统,使之能提供以下功能: 系统以菜单方式工作,密码登陆。

1.学生信息的录入(增加数据)。用数组数据类型赋初值的方法把学生信息送到 各个数组中(但要注意是合法数据),然后把它们输出显示。

2.学生信息的删除(删除数据)。任意输入一位学生号,将它所有的信息从 组数中删除。

3.学生信息的浏览(查找数据)。任意输入一位学生号,打印出他的所有数 据。要求能多次查找。

4.学生信息的修改(修改数据)。任意输入一位学生号,打印出所有相关 信息后,可对某一项信息进行修改并保存。

5.学生信息的计算并排序。计算所有学生的总分及平均分,将包括所有数据的数组元素按总分从高到低的顺序排序打印出来。

(2). 课程设计的要求与数据

1.编程时,设计函数来完成每个功能,通过main函数调用各函数。

2.程序中的输入输出要加提示说明。

3.打印出的程序清单,在各行后用中文加说明。

4.输出的结果要准确、清晰、美观。

(二).所涉及知识点:

结构体数组的定义与引用;函数的定义与调用;局部变量和全局变量;多函数的链接与编译;for循环语句;if语句;break语句;格式输入与输出;冒泡排序法;字符串处理函数;函数的定义;数组作为函数参数.

二、课程设计思路及设计流程图

1、课程设计思路

根据题目的要求,需要一个主程序main()和四个子程序:分别为add()、del()、sort()、change()、average();可以实现增加,删除,查找,修改,求和、平均值及排序。

3

2、课程设计流程图

流程图一

C语言课程设计报告范例

4

流程图二 Add()

C语言课程设计报告范例

5

流程图三

Sort()

C语言课程设计报告范例

6

流程表四

Del

C语言课程设计报告范例

7

流程表五

Change()

C语言课程设计报告范例

8

流程表六

Average()

C语言课程设计报告范例

9

三、课程设计中遇到的难点及解决办法

1 结构体数组的定义:

当在结构体中有float型数据时系统会提示错误。

解决方法:用其他变量代替然后再定义。

2密码不能隐藏:

用gets输入密码后,密码能够看到;

解决方法:用getch代替gets,再用for循环输入*号;

3在调试没运行完自动跳出到主界面;

解决方法:是由于系统问题,在遇到float型数据时会出现系统错误。 4变量未定义而先使用。

5不同类型的指针混用。

6不知道如何使型参于实参一一对应。

7在调试程序是出现死循环。

8在进行链接是出错;

解决方法:看变量是否一直,看型参以实参是否对应。

9不知道如何使用main函数调用其他子函数。

四、小结

通过对c语言的课程设计,我了解并发现了很多调试程序的方法,而且懂得了如何处理错误的方法。对C语言的使用得到了进一步的提高。针对顺序结构程序,选择结构程序的设计和函数等知识得到了进一步的巩固,具体化就是加深了我对程序的深层理解,清楚程序中每一步的功能,在程序的运行中是十分重要的,一个好的结构在运行中能够充分的发挥程序的功能。结构设计的合理性决定了这个程序的价值。在今后的学习中我要注意这方面,使得我的编程能力能有进一步的提高。

经历了这次课程设计,不仅对我的学习提供了帮助,而且在意志力方面也得到了锻炼。没有足够的耐力和信心就很难坚持对课程设计每一步的顺利进行。

10

五、附录原程序

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#include<math.h>

add();/*增加数据函数声明*/

del();/*删除数据函数声明*/

sort();/*查找数据函数声明*/

change();/*修改数据函数声明*/

average();/*计算及排序函数声明*/

struct dat

{ int year;

int month;

int date;};/*定义结构体*/

struct student

{char num[10];

char name[25];

char sex[1];

struct dat birthday;

int math;

int english;

int computer;

int physical;

}students[4];/*定义结构体*/

static int n=0;

int i=1;/*全局变量*/

menu()

{

int m;

printf("\t\t\t|__________________|\n"); printf("\t\t\t|1.add number |\n"); printf("\t\t\t|------------------|\n");

printf("\t\t\t|2.delect number |\n"); printf("\t\t\t|------------------|\n");

printf("\t\t\t|3.sort number |\n"); printf("\t\t\t|------------------|\n");

printf("\t\t\t|4.change number |\n"); printf("\t\t\t|------------------|\n");

printf("\t\t\t|5.average sum numb|\n"); printf("\t\t\t|------------------|\n");

printf("\t\t\t|6.out programe |\n");

printf("\t\t\t|__________________|\n");/*工作界面*/ 11

printf("please choose 1 or 2 or 3 or 4 or 5 or 6:\n");/*选 择功能*/

scanf("%d",&m);

if(m==1) add();

if(m==2) del();

if(m==3) sort();

if(m==4) change();

if(m==5) average();

if(m==6) return_confirm(); /*调用函数*/

}

page_title(char *menu_item)/*定义函数*/

{

clrscr();

printf(">>> 学 生 管 理 系 统 <<<\n\n- %s -\n\n",menu_item); }/*显示功能标题*/

return_confirm(void)/*定义函数*/

{

printf("\n按任意键返回??\n");

getch();/*键入任意键*/

}

add()/*定义函数*/

{

int n,m;/*定义局部变量*/

page_title("录入学生基本信息");/*调用函数*/

for(n=0;n<4;n++)

{

printf("学号:");

scanf("%s",students[n].num);

printf("\n姓名:");

scanf("%s",students[n].name);

printf("\n性别:");

scanf("%s",students[n].sex);

printf("\n年:");

scanf("%d",&students[n].birthday.year);

printf("\n月:");

scanf("%d",&students [n].birthday.month);

printf("\n日:");

scanf("%d",&students[n].birthday.date);

printf("\n数学:");

scanf("%d",&students[n].math);

printf("\n英语:");

scanf("%d",&students[n].english);

12

printf("\n计算机:");

scanf("%d",&students[n].computer);

printf("\n体育:");

scanf("%d",&students[n].physical);/*输入数据*/

}

for(n=0;n<4;n++)

{ printf("学号,姓名,性别,年,月,日,数学,英语,计算机,体育\n"); printf(" %s %s %s %d %d %d %d %d %d %d\n",students[n].num,students[n].name,students[n].sex,

students[n].birthday.year,students[n].birthday.month,students[n].birthday.date,

students[n].math,students[n].english,students[n].computer,students[n].physical); }

menu();

}

del()/*定义函数*/

{

int n,k,m;/*定义局部变量*/

scanf("%d\n",&n);

page_title("删除学生基本信息");

if((n=sort())!=-1)/*调用并调用*/

strcpy(students[n].num,"");/*清空*/

printf("\n!该学生已删除.\n");

k=n;

for(n=k;n<4;n++)

strcpy(students[n].num,students[n+1].num);

for(n=0;n<4;n++)

{ printf("学号,姓名,性别,年,月,日,数学,英语,计算机,体育\n"); printf("%s %s %s %d %d %d %d %d %d %d \n",students[n].num,students[n].name,students[n].sex,

students[n].birthday.year,students[n].birthday.month,students[n].birthday.date,students

[n].math,students[n].english,

students[n].computer,students[n].physical);

}

menu();

}

int sort()/*定义函数*/

{

int n;/*定义局部变量*/

char i[10];/*定义局部变量*/

13

page_title("查找学生基本信息");/*调用函数*/

printf("请输入学生学号:");

fflush(stdin);

gets(i);

for(n=0;n<32;n++)

{

if(strcmp(students[n].num,i)==0)

{

printf("学号:%s\n",students[n].num);

printf("姓名:%s\n",students[n].name);

printf("出生年月:%d%d%d\n",students[n].birthday.year,students[n].birthday.month,students[n].birthday.date);

printf("性别:%c\n",students[n].sex);

printf("数学,英语,计算机,体育:%d,%d,%d,%d\n",students[n].math,students[n].english,

students[n].computer,students[n].physical);

return n;

}

}

printf("\n输入错误或学号不存在.\n");

return -1;

menu();

}

int change()

{

int n;

int m;

page_title("修改学生基本信息");

printf("\n请输入要修改的学生号:");

scanf("%s",&n);

if((n=sort())!=-1)

{

printf("\n请重新输入新信息:");

printf("\n学号:");

scanf("%s",students[n].num);

printf("\n姓名:");

scanf("%s",students[n].name);

printf("\n性别:");

14

scanf("%s",students[n].sex);

printf("\n年:");

scanf("%d",&students[n].birthday.year);

printf("\n月:");

scanf("%d",&students [n].birthday.month);

printf("\n日:");

scanf("%d",&students[n].birthday.date);

printf("\n数学:");

scanf("%d",&students[n].math);

printf("\n英语:");

scanf("%d",&students[n].english);

printf("\n计算机:");

scanf("%d",&students[n].computer);

printf("\n体育:");

scanf("%d",&students[n].physical);/*输入数据*/

}

for(n=0;n<4;n++)

{ printf("学号,姓名,性别,年,月,日,数学,英语,计算机,体育\n"); printf(" %s %s %s %d %d %d %d %d %d %d\n",students

[n].num,students[n].name,students[n].sex,

students[n].birthday.year,students[n].birthday.month,students[n].birthday.date,

students[n].math,students[n].english,students[n].computer,students[n].physical); }

menu();

}

average()

{

int sum[10],averge[10],n,m,t,j;

char a[10],b[25];

page_title("求和及平均值");

for(n=0;n<4;n++)

{

sum[n]=students[n].math+students[n].english+students[n].computer+students[n].physical;

averge[n]=sum[n]/(n+1);

printf("\n总分,平均分:%d,%d",sum[n],averge[n]);

}

15

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

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

if(sum[n]<sum[n+1])

{t=sum[n];sum[n]=sum[n+1];sum[n+1]=t;

strcpy(b,students[n].num);

strcpy(students[n].num,students[n+1].num);

strcpy(students[n+1].num,b);

};

for(n=0;n<4;n++)

{ printf("学号:%s\n",students[n].num);

printf("姓名:%s\n",students[n].name);

printf("出生年

月:%d%d%d\n",students[n].birthday.year,students[n].birthday.month,students

[n].birthday.date);

printf("性别:%c\n",students[n].sex);

printf("数学,英语,计算机,体

育:%d%d%d\n",students[n].math,students[n].english,students

[n].computer,students[n].physical);

}

menu();

}

void main()/*主函数*/

{ int m,x,h=123456;/*定义局部变量*/

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

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

printf("\t\t\t* welcome entry student squart systerm*\n");

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

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

printf("\t\t\tplease enter secret:\n");

scanf("%d",&x);/*输入密码*/

system("cls");/*清空*/

if(x!=h)/*判断密码是否正确*/

printf("secret error:\n");

else

{

menu();

}

}

16

? 17

更多相关推荐:
《C语言程序设计》课程设计报告(小组)

东莞理工学院《C语言程序设计》课程设计题目:图书信息管理系统院系:电子工程学院专业:电子信息工程年级:20##班别:2班指导教师:##组长:##同组成员:##目录一、目的....................…

c语言课程设计报告

C语言程序设计课程设计学生姓名学号系院专业设计论文题目学生选课系统管理完成日期20xx年6月指导教师目录一实验目的二实验内容三总体设计四详细设计五运行结果六课程设计体会一实验目的1通过课程设计加深对结构化程序设...

C语言课程设计报告

河南理工大学计算机科学与技术学院课程设计报告20XX20XX学年第一学期课程名称C语言课程设计设计题目《小学算术运算测试》学生姓名学号专业班级计算机07-2班指导教师20XX年9月12日目录1.设计任务书21.…

厦门理工学院11级C语言C语言程序设计课程设计报告

C语言程序设计课程设计报告20xx20xx学年第1学期题目专业班级姓名学号指导教师成绩计算机科学与技术系20xx年12月31日目录一课程设计的目的与要求1二方案实现与调试221掷骰子游戏222射击游戏323汽车...

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

C语言程序设计课程设计报告20xx20xx学年第1学期专业计算机科学与技术班级姓名学号指导教师成绩计算机科学与技术系20xx年12月31日目录一课程设计的目的与要求3二方案实现与调试321掷骰子游戏322汽车加...

c语言程序贪吃蛇课程设计报告

山东工商学院信电学院自动111班第一组贪吃蛇课程设计报告高级语言程序设计课程设计报告ExperimentDesigningreporter课程名称高级语言程序设计英文名称CProgramExperimentDe...

C语言课程信息管理系统课程设计报告

《C语言程序设计》课程设计报告专业:班级:姓名:指导教师:二零##年十二月二十六日目录一、设计题目2二、设计目的2三、设计内容23.1需求分析23.2概要设计33.3详细设计63.5编写过程中遇到的问题及解决办…

C语言课程设计报告(约瑟夫环)胡存夫

沈阳航空航天大学课程设计报告课程设计名称C语言课程设计课程设计题目约瑟夫环院系计算机学院专业计算机科学与技术班级3410301学号20xx040103023姓名胡存夫指导教师丁一军沈阳航空航天大学课程设计报告目...

c语言程序设计报告

课程设计报告课程名称C语言程序设计课题名称运动会分数统计系统专业机械设计及其自动化班级1185班学号***姓名**指导教师**20XX年6月22日湖南工程学院课程设计任务书课程名称C语言程序设计课题运动会分数统…

C语言程序设计报告—学生选修课程系统

C语言程序设计学校:中国地址大学学院:工程学院班级序号:学号:姓名:指导老师:C语言程序设计报告一、C语言课程设计的目的:高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。其目的…

C语言程序设计报告

二一一年九月设计要求题目三通讯录管理系统任务自学C语言中相关知识设计出通讯录管理系统要求如下所述建立通讯录信息信息至少包含编号姓名年龄电话通讯地址电子邮箱等能够提供添加删除和修改通讯录信息的功能并给出确认是否保...

c语言程序设计报告

江南大学物联网工程学院课程名称设计题目班级姓名指导教师课程设计报告C语言课程设计学生成绩管理系统自动化1003班孙海洋学号赵芝璞评分20xx年11月20日目录1设计题目及要求2总体设计程序设计组成框图流程图3详...

c语言程序设计课程设计报告(34篇)