文档库 最新最全的文档下载
当前位置:文档库 › c语言课程设计成绩记录簿

c语言课程设计成绩记录簿

c语言课程设计成绩记录簿
c语言课程设计成绩记录簿

合肥学院

计算机科学与技术系

课程设计报告

2012~2013学年第二学期

课程面向过程综合设计

课程设计名称C语言成绩簿

学生姓名

学号

专业班级

指导教师

2013年6月

第一章需求分析

1.1 任务要求:

编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:(1)创建信息链表并以磁盘文件保存;

(2)读取磁盘文件并显示输出所有学生的成绩;

(3)按学号或姓名查询成绩;

(4)添加成绩记录;

(5)修改指定姓名或学号的学生的成绩并可存盘;

(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息(可选项)。

1.2任务问题:

如何运用我们已学的c语言知识完成要求?如何制作相应界面?switch的应用该如何实现?如何完成相应的数组或链表的实现与应用?怎样进行相应的文件的读写?

1.3任务的解决步骤:

步骤:

1.建立一个主界面。

2.用switch语句进行分类讨论。

3.分别进入录入,查询,修改,学生分数段统计等子函数。

4.将子函数与主函数相连即可。

第二章算法设计

1、设计思想

2.1 程序结构(流程图)

2.2 重要的数据结构

2.3主要算法思想(文字描述)

本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、修改等。我设计的这个通讯录系统也初步实现了人员信息的显示、修改、查找、等必要的功能,并通过子函数与主函数相连来完成相应的功能。

2.设计表示

int Student_Insert( ); (添加学生成绩)

void edit( ); (修改)

void Student_Search( );(查找)

void WriteFile( ); (写入文件)

void ReadFile( ); (读取文件)

void Student_Select( );(分数段选择)

void PrintMark( );(打印学生分数)

void NameChange( );(按姓名修改)

void NumberChange( );(按学号修改)

3.实现注释

除了没有用链表进行实验的缺点外,基本可以实现任务要求,界面简洁,程序简单,易操作。

4.算法设计中一些新的想法:

本程序主要包含了结构体与动态变量的相关知识;

其中也多次用到了循环和判断结构;

本程序还可以通过子函数实现删除,排序等操作。用链表,指针也可以实现相应的任务要求。

第三章用户手册

3.1使用说明

主程序提供一个界面,允许用户选择。使用switch语句,用时直接输入数字即可。

增加函数,功能是插入学生成绩。使用一个无穷循环,直到录入”n”时结束。

修改函数,功能是修改,分为两步,先插入学生成绩后才能进行修改。修改用strcmp 函数来做。如果找到记录i值,反之记为-1;修改可以从i项开始将数组的后一项的新的数值赋值给前一项。前一项自动被替换。这样完成修改。

查询函数与之类似,用strcmp函数将修改变为输出即可;

求各分数段的学生的相应成绩数据时,引用if-else语句可进行有效筛选。

退出函数什么都不写,即可。

所有修改,添加程序都可以用姓名,学号两种方式实现,可以实际情况实现。输入的数据应按照固定的格式和顺序“姓名-学号-成绩”,否则会出现错误,无法输出。

注:

输入项:

char name[10] 定义学生名称为字符型

long number 定义学号为长整型

int score 定义学生成绩为整形

输出项:

int m1,m2,m3,score,xf; 定义整型

3.2限制条件

1.开始写程序时未使用链表,程序冗杂。长度较大,不灵活。

2.我的程序无法在文件中修改,必须在开始时修改,文件存取不灵活。

3.一个学生的各项数据必须按顺序输入,否则会出现错误。

4.学号必须都是数字,且是十位,不能有0。

5.读取的数据必须存在,不能读取空数据。

第四章、调试及测试1.开始

2.添加

3.修改

4.查学生成绩

5.写入文本文件

6.读取学生成绩

7.筛选各成绩段学生

对设计和编码的回顾讨论和分析:

短短的俩周已经过去了,在此我将交出我一周的成果,我真是百感交错。我有许多的原来不懂的问题在编写本程序得到解决,同时本次程序编写也暴露了我的许多的问题。

如:

1.原先写程序直接编,条理性太差。如果先做一个流程图就条理很多;

2.学会了将文件存入和读取,并学会在文件中加入信息和修改信息;

3.我在查找学生姓名时遇到困难,从课本上找到了一个函数strcmp,解决了问题

困难;

4.我在定义学生的学号时首先用整型%d。发现输出与录入不同。改用长整型%ld仍然不行,但是字符型%s却可以做到;

5.我发现多次使用结构体,子函数可以有效的缩短程序长度,方便实用。

第五章小结

与过去相比,我认为这短短的两周的编程时光给我的感悟更为强烈。

在此,首先我要感谢老师,是老师把我带进了这一门,俗话说的好“万丈高楼平地起”,所以说,基础很重要。而老师讲课认真,讲也很透彻,使我们能较好的理解这门课,可以跟紧课堂进度,是我们有机会能打下结实良好的基础。而且老师在平时也鼓励我们多提问,在我们遇到问题时,富有耐心地为我们解答。在此再次感谢老师对我们不辞操劳的讲解!谢谢!

一开始,当我第一眼看到这课程设计的时候,我感到十分的“痛苦”,老实说,在还未进行编程之前,我就感到这与我们之前的编程完全不一样,与这次相比,以前的上机实验就像是小孩子玩得,一点技术含量也没有。以前的那些实验只要看看书,花上一二个小时,基本就可以完成了,而且以前的小程序最多也不过二三十行,不像这次要百来行。从中可见它的难度,从而联想到那些专业编程员,我更深刻感到自己的不足。

由于之前从未进行过如此大的编程,所以一开始根本没头绪,后来只好用死办法,像写作文一样,首先先在纸上列出大致的提纲,然后再一个个慢慢延伸展开,最后再输入计算机,用它来运行。可惜不运行还好,一运行只见一片的红色错误提示。有些错误很简单,很好改,是由于自己的粗枝大叶引起的,比如:有些字符未定义,漏了一个“;”等。但也有些高深莫测的问题,例如:当我添加时是添加了三个同学的成绩,但当我查询全班成绩时,却只有两位同学的成绩。后来在百思不得其解之下,我只好向周围同学寻求帮助,最终在大家的帮助之下才解决的,诸如此类的问题还不少!有的已经解决,但有些还未,可惜时间不够,也只能如此。

经过这两周的课程设计,我发现我懂得了很多,它使我在编程时更仔细了,也使我学会了向周围人求教,培养了我自我学习,独立思考。并且,使我更体会到了和高中的不一样,一切靠自觉,没有人会跟在你后面一直催你,告诉你该怎样怎样。同时,我也更加了解到自己的不足,基础严重不扎实。虽然这门课快结束了,但我会努力在假期中把自己的基础补好,期待在下次的课程设计时能够得心应手!

第六章参考文献:

[1]黄明等编著《C语言课程设计》北京:电子工业出版社

[2]郭翠英编著《C语言课程设计案例精编》北京:中国水利水电出版社

[3] 宁正元《数据结构(c语言)》南京:东南大学出版社。2000年6月第1版

[4] 严蔚敏等《数据结构(c语言版)》北京:清华大学出版社,1997年4月第1版

[5] 谭浩强编著《C程序设计题解与上机指导(第3版) 》北京:清华大学出版社

[6] 谭浩强编著《C程序设计(第3版) 》北京:清华大学出版社

(附录)原代码解析:#include "stdio.h"

#include

#include

#define MAX 1000

struct Student

{

char Name[100];

char Number[100];

int LessonCount;

int LessonMark;

};

struct Student S[MAX];

int StudentCount = 0;

void PrintInterface();

int Student_Insert();

void edit();

void Student_Search();

void WriteFile();

void ReadFile();

void Student_Select();

void PrintMark();

void NameChange();

void NumberChange();

int main()

{

int n;

printf("欢迎进入学生成绩簿!");

{

PrintInterface();

scanf("%d", &n);

}

}

void PrintInterface()

{

int n;

while (1)

{

printf("\n -------------------------- ");

printf("\n| 1、添加|\n");

printf("\n| 2、修改|\n");

printf("\n| 3、查学生成绩|\n");

printf("\n| 4、写入文本文件|\n");

printf("\n| 5、读取文本文件|\n");

printf("\n| 6、筛选各分数段学生|\n");

printf("\n| 0、退出|\n");

printf("\n -------------------------- ");

printf("\n选择操作:");

scanf("%d",&n);

switch(n){

case 1:

if (Student_Insert())

printf("\n添加成功...回车继续\n");

else

printf("\n添加失败...回车继续\n");

break;

case 2:

edit();

break;

case 3:

Student_Search();

break;

case 4:

WriteFile();

break;

case 5:

ReadFile();

break;

case 6:

Student_Select();

break;

case 0:

exit(1);

break;

default:

printf("无此功能,请重新选择,按回车确定\n");

}

}

}

int Student_Insert()

{

int i,n;

printf("\n请输入所添加的学生人数:");

scanf("%d", &n);

if (StudentCount + n >= MAX)

return 0;

for (i = StudentCount; i < StudentCount + n; i++)

{

printf("\n\t第%d个学生:\n", i - StudentCount + 1);

printf("\n\t学生学号:");

scanf("%s", &S[i].Number);

if(strlen(S[i].Number)!=10)

{

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

return 0;

}

printf("\n\t学生姓名:");

scanf("%s", S[i].Name);

printf("\n\t\tc课程成绩:");

scanf("%d", &S[i].LessonMark);

if(S[i].LessonMark<0 || S[i].LessonMark>100)

{

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

return 0;

}

}

StudentCount += n ;

return 1;

}

void edit()

{

int way=0;

printf("请选择修改的方式:/n"); printf("1.按姓名修改"/n);

printf("2.按学号修改"/n);

scanf("%d",&way);

switch(way)

{

case 1:

NameChange();

break;

case 2:

NumberChange();

break;

default:printf("");

break;

}

}

void Student_Search()

{

int x;

char y[100];

C语言课程设计---通讯录管理系统

中国地质大学本科生课程论文封面 课程名称C语言程序设计 教师姓名 本科生姓名 本科生学号 本科生专业 所在院系 类别: 日期:

课程设计评语 注:1、无评阅人签名成绩无效; 2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效; 3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录 课程设计评语 (2) 目录 (3) 1.课程论文题目 (4) 2.程序设计思路 (4) 3.功能模块图 (5) 4.数据结构设计 (5) 5.算法设计 (5) 6.程序代码 (14) 7.程序运行结果 (14) 8.编程中遇到的困难及解决方法 (27) 9.总结心得及良好建议 (28) 10.致谢 (28)

1.课程论文题目 通讯录管理系统 要求:设计具有数据插入、修改、删除、显示和查询功能的电话簿管理系统。 ⑴数据包括:人名、工作单位、电话号码和E-mail地址。 ⑵可对记录中的姓名和电话号码进行修改。 ⑶可增加或删除记录。 ⑷可显示所有保存的记录。 ⑸可按人名或电话号码进行查询。 2.程序设计思路 根据题目的要求,程序应该采用结构体数组和文件系统实现。应该有动态的存储空间和文件输入、输出等操作功能;在程序中应该包括添加、显示、删除、查询和修改以及保存和退出的功能;另外还应提供键盘式选择菜单实现功能选择。

3.功能模块图 4.数据结构设计 整个程序中用到的数据主要是全局变量MAX 100和字符变量name[10]、addr[20]、phnum[20]、email[20]。 5.算法设计 1.主函数 主函数的设计一般比较的简单,只提供输入,功能处理和输出部分的函数调用。其中个功能模块用菜单方式选择。菜单部分也可以写成函数。 [流程图]

C语言课程设计-学生成绩管理系统-完整版

#include<> #include<> #include<> #include<> /* strcmp函数原型包含*/ #define N 100 /*定义最大学生人数为100*/ struct student /*学生结构体定义*/ { char no[11]; /*学号,10位*/ char name[10];/*姓名,3个汉字*/ char grade[10];/*班级*/ char pro[20];/*专业*/ float score[5];/*储存5门功课的成绩*/ float ave;/*储存平均分*/ int year;/*入学年*/ }stu[N]; int num; void panduani(int); /*通过i的值,判断信息要查找的信息是否存在*/ void output(); /*输出学生成绩函数(公共函数)*/ void init(); /*系统初始化函数*/ void newfile(); /*建立新的数据文件*/ void read1(); /*从数据文件中读取数据*/ void weihu(); /*维护界面函数*/ void new1(); /*新增一个学生成绩函数*/ void xiugai(); /*修改学生成绩*/ void xgcj(int); /*修改成绩*/

void delete1(); /*删除学生信息函数*/ void tongji(); /*统计界面函数*/ void tongji1(); /*计算每个学生平均分*/ void tongji2(); /*计算每门课程的平均分*/ void paixu1(); /*排序函数*/ void paino(); /*按学号排序*/ void paiave(); /*按平均分排序*/ void paidkcj(); /*按单科成绩排序*/ void change(int,int); /*交换结构体数组中的两个记录*/ void outputx(int); /*选择输出单科成绩*/ void find1(); /*查找界面函数*/ int find(char sno[]); /*按学号查找*/ int findname(char cname[]);/*按姓名查找*/ void findyear(int cyear); /*按入学年查找*/ void save(); /*保存文件*/ void stop(); /*停顿函数*/ void stop() /*停顿函数(公共函数)*/ { printf("Press Any Key To Continue...\n"); getchar(); } void output() /*输出学生成绩函数(公共函数)*/ { int i,j;

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

*题目七:学生成绩管理系统设计 学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。 主要功能: (1)能按学期、按班级完成对学生成绩的录入、修改 (2)能按班级统计学生的成绩,求学生的总分及平均分 (3)能查询学生成绩,不及格科目及学生名单 (4)能按班级输出学生的成绩单 要求:使用二进制文件方式存储数据,系统以菜单方式工作 源代码: #include #include #include #include struct Student { int cls; char nam[10]; char num[10]; int chinese; int english; int computer; int math; }stud1[100],stud2[100];

{ char a; while(a>'7'||a<'0') { system("cls"); printf(" 欢迎使用学生成绩管理系统\n"); printf(" 制作人:章建\n"); printf("********************** 学生成绩管理系统************************\n"); printf(" 1.输入学生成绩\n"); printf(" 2.输出学生成绩\n"); printf(" 3.查找并显示学生成绩\n"); printf(" 4.按姓名查找,修改学生资料\n"); printf(" 5.显示所有学生名单\n"); printf(" 6.查找并删除学生信息\n"); printf(" 7.从文件读取数据\n"); printf(" 0.储存学生资料并退出系统\n"); printf("********************************************************************* *\n"); printf("请选择(0-7)\n"); a=getchar(); } return(a-'0'); } /******************************************************************************

插画设计课程设计

动漫设计专业 《插画设计》 课程设计 商丘职业技术学院 二〇一五年七月 《插画设计》课程标准 一、课程定位 《插画设计》课程是装潢艺术设计专业的一门职业能力必修课程,也是获取《国际商业美术设计师》职业资格证书的课程。 《插画设计》课程在装潢艺术设计专业课程体系中占有重要地位,它以插画设计技法的训练为主,通过命题创作的实践训练使学生掌握插画设计的表现手段和技能技巧,强化学生的实践设计能力,提高学生的综合专业素质。该技能是从事装潢艺术设计的工作人员必须具备的职业技能。本课程是学生考取国际商业美术设计师资格证书必考的专业内容。 通过本课程的学习,为书籍装帧设计、招贴设计、包装设计等后续课程的学习奠定基础。为学生顶岗实习、毕业后能胜任设计岗位工作起到必要的支撑作用。

二、工作任务和课程目标 (一)工作任务及职业能力 通过本专业岗位需求分析,确定工作领域、工作任务和职业能力,并针对标志设计工作领域的标志投标、项目实践工作任务和对应的职业能力,按照基于工作过程、任务引领知识的教学思路整合课程内容,设计学习项目,采用案例教学、项目导向、任务驱动等教学方法,通过项目教学,使学生能够完成调研分析、创意设计、综合表现的设计流程工作任务,提交合格的设计稿。《插画设计》课程工作任务及职业能力分析见表1-1。 表1-1课程工作任务及职业能力分析 (二)课程目标 按照基于工作过程的“两个系统设计”来组织课程内容,即“系统的基础知识培养”和“系统的动手能力培养”。两个系统互为依托、相互递进,交叉融合。两个系统设计以“以德为先”思想为基础,强化对学生专业基本技能的培养。 该课程教学内容除知识和技能学习外,还包括:市场环境调研分析训练;教学活动中与人交流能力训练;工作态度、团队协作能力训练,逐步培养学生为人处事的态度和未来可持续发展的能力。

C语言程序设计课程设计-通讯录管理系统

通讯录信息管理系统设计计算机学院计算机科学与技术专业 1.课程设计的目的 学习了C语言程序设计这门课程之后,使我对程序设计有了一定的了解,为了熟练掌握C语言的语法特点、及其数据结构,提高自身编写程序的能力。通过课程设计实现理论知识与实际情况的结合,使所学知识能够在现实社会中起到一定的作用,防止所编写的程序脱离实际,让程序可以更好的发挥作用,以便减轻实际工作中所遇到的繁琐步骤,提高现实工作中的效率。此外通过课程设计提高逻辑思考能力和解决实际问题的能力。程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不挠品格的锻炼。 通讯录信息管理系统是生活中不可缺少的部分编写了一个通讯录信息管理系统是十分必要的。 本程序设计具有通讯信息的录入,进行保存、查找、删除等功能,操作界面简洁美观,易于操作。程序用了条件、循环、指针、结构体等知识点,综合了文件的打开和保存编写的。软件运用菜单实现交互式管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足的需要。 通过对通讯录管理系统的设计,进一步理解和掌握C语言这门课程的知识点,能够熟练的调用各种函数,把各种C语句有机的结合起来,提高自己C语言程序设计的能力,为今后解决实际问题打下良好基础。

2.设计方案论证 2.1设计思路 建立一个函数,用来添加、显示、删除、查询、修改、保存通讯录等信息,完成通讯录的功能。主函数可以调用六个子函数,分别完成添加记录、显示记录、删除记录、查询记录、修改记录、保存记录、退出系统等功能。在主函数中可以以1、2、3、4、5、6数字键分别可以执行某个功能模块。 2.2程序设计 2.2.1根据图1定义数据类型建立函数 typedef struct { char Num; //编号 char Name[10]; //姓名 char Tel[15]; //电话号码 char Email[20]; //邮箱 char age[8]; //年龄 char adds[20]; //住址 }Person; 2.2.2主函数及其流程图 定义主函数main()和一系列的功能函数,只有通过这些函数才可实现程序

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

信息技术工程学院 C语言课程设计报告 题目:学生成绩管理系统(student achievement management system)

目录 一设计目的 (3) 二课程设计的内容 (3) 三课程设计的要求与数据 (4) 四课程设计应完成的工作 (4) 五总体设计(包含几大功能模块) (5) 六详细设计 (6) 6.1各个模块的功能和实现 (6) 6.2 流程图 (7) (管理员模式流程图) (7) (来宾模式流程图) (8) (8) 七调试分析(各模块测试结果) (9)

7.1源代码 (9) 7.2 各模块测试结果 (23) 八总结 (26) 九参考资料 (27) 一设计目的 通过本课程设计巩固《C语言程序设计》课程的教学成果,深入理解结构体、指针、链表、动态分配内存和文件操作的等C程序设计中的中高级技术,通过课程设计的综合训练,培养学生实际分析问题、编程和动手能力、提高学生利用C 语言进行程序设计的能力,初步培养良好的编程习惯和编程风格,初步学习程序的文档的撰写方法。 二课程设计的内容 通过C语言程序系统,设计一个可以对学生的成绩信息进行管理的程序,其中学生的信息可以包括:学号、各科目的成绩的平均分排序等,其功能可以包括学生成绩的输入、输出、查询、排序、删除、统计、退出等。

三课程设计的要求与数据 1、用C语言实现系统; 2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出、显示,以及整个程序的切换登录模式和修改管理员的信息. 3、学生信息包括: (1)、每一条记录包括一个学生的学号、姓名、3门课成绩 (2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记录的输入。) (3)、成绩信息显示浏览功能:完成全部学生记录的显示。 (4)、查询功能:完成按姓名查找学生记录,并显示。 (5)、成绩信息的删除:按学号进行删除某学生的成绩. (6)、排序功能:按学生平均成绩进行排序。 (7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观! 四课程设计应完成的工作 (1)编写算法; (2)算法测试,并有具体的测试结果和结果分析; (3)撰写课程设计报告。内容包括:

课程设计成绩评定标准及评语

附件3: 《计算机控制技术》课程设计评分标准 (一)、课程设计成绩的评定应主要根据学生完成课程设计说明书质量及课程设计过程中的学习、工作态度。 (二)评分的参考标准 1、优秀 按期完成了课程设计任务。设计中所用的基础理论、基本知识、基本技能扎实熟练,在综合知识应用等方面有一定的见解,在整个设计过程中独立工作能力强,设计说明书质量高,系统方案、软硬件设计合理。 2、良好 按期完成了课程设计任务。设计中所用的基础理论、基本知识、基本技能比较扎实,在整个设计过程中独立工作能力较强,设计说明书质量较好,系统方案、软硬件设计较合理。 3、中等 能按期完成课程设计任务,设计中所用的基础理论、基本知识、基本技能掌握较好,在整个设计过程中,具有一定的独立工作能力,设计说明书质量符合要求,系统方案、软硬件设计较合理。 4、及格 基本完成课程设计任务,设计中所用的基础理论、基本知识、基本技能基本掌握,但设计中有较多非关键性错误,在整个设计过程中,表现独立工作能力不强,但经指导教师指导后,还能完成任务,设计说明书基本合格。 5、不及格 有下列情况之一者,为不及格。 (1)未能按期完成课程设计所规定任务的最低要求者。设计中所用的基础理论、基本知识、基本概念糊涂,反映出不能达到课程设计的基 本教学要求。 (2)在整个设计过程中,表现独立工作能力不强,设计说明书中有较多关键性错误,经指导教师再三指导,仍未改正,表明基本训练不合 格。 (3)抄袭他人设计说明书。 (三)、评分细则 计算机控制系统课程设计评分标准:

1、课程设计说明书格式规范,占20分; 2、系统整体控制方案,占20分; 3、系统硬件电路设计,占25分; 4、系统软件设计,占25分; 5、系统整体硬件电路图,占10分; (四)成绩评定 成绩计分按优、良、中、及格、不及格5级评定。 1、评分的参考标准为优秀评分细则为100-90分为优 2、评分的参考标准为良好评分细则为89-80分为良 3、评分的参考标准为中等评分细则为79-70分为中 4、评分的参考标准为及格评分细则为60-69分为及格 5、评分的参考标准为不及格评分细则为60分以下为不及格

C语言课程设计通讯录实验报告

太原学院计算机工程系 课程设计报告 课程名称:数据结构课程设计 姓名:苏建花 专业班级:计算机工程系网络三班 指导教师:翟婷婷 2015年12 月30日 计算机工程系课程设计报告 课程名称:C语言课程设计 课程设计题目:通讯录管理系统 班级:网络14-3班姓名:苏建花学号: 目录(参考) 1.设计目的与要求…………………………………………X 1.1题目与设计要求……………………………………X 1.2本程序涉及的知识点………………………………X 2.功能设计………………………………………………X 2.1总体设计……………………………………………X 2.2详细设计……………………………………………X 3.程序实现……………………………………………X 3.1程序实现时应考虑的问题…………………………X 3.2 XX模块核心代码…………………………………X 4.测试分析……………………………………………X 4.1 测试结果及分析…………………………………X 4.总结…………………………………………………X 参考文献………………………………………………X 1、设计目的与要求 这次课程设计的目的在于: 1.熟练的掌握C语言课程中所学的理论知识,并对其进行应用; 2.通过综合C语言的基本知识来解决实际问题; 3.加强分析和解决问题的能力; 4.提高实践动手能力,将知识化为实际成果

1.1 题目与设计要求 (1)题目:通讯录 (2)设计要求 a、建立通讯录信息,信息至少包含姓、名、电话号码、住址、分类(如同事、朋友、 同学、家人等)等。 b、该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修改,按姓名、 姓氏方式查找。 c、将通讯录保存在文件中。 d、能够输出通讯录中的信息。 1.2 本程序设计的知识点 (1)采用结构体数组。 struct Person { char a[16]; char s[16]; char d[16]; char f[24]; struct Person *next; }stu; (2)运用函数之间的调用 主函数可以调用子函数,子函数之间可以相互调用,子函数不能调用主函数,主函数可以多次调用一个子函数,也可以一次调用多个子函数。 (3)利用指针变量 struct Person *head; struct Person *p1,*p2 2 、功能设计 添加:添加通讯录记录 修改:修改通讯录记录 删除:删除通讯录记录 查找:查询通讯录记录 显示:显示通讯录记录 统计:统计通讯录数目 2.1需求分析 信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或姓氏进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。

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语言课程设计通讯录管理系统

C语言课程设计通讯录 管理系统 文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

***科技大学 本科生课程设计说明书 题目:C语言课程设计 ——通讯录管理系统 学生姓名:** 学号:*** 专业:软件工程 班级:1 指导教师:**

内蒙古科技大学课程设计任务书 一、教学要求 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言解决实际问题的能力 二、设计资料及参数 每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。 通讯录管理系统 现有一批通讯录的数椐,要求输入计算机并存放在内存中,然后增加若干个新通讯录的记录,并可输出通讯录清单,实现文件存盘和读入文件进行修改的功能。通讯录的基本信息包括编号,姓名,电话号码,QQ号码,电子邮件,通讯地址。要求设计菜单来调用其各功能模块: 新建文件、打开文件、保存信息到文件 输入记录、输出记录 查询记录(至少具有两种查询方式,例如以姓名查询和以电话号码查 询) 修改、插入和删除记录 三、设计要求及成果 1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目) 2. 写出详细设计说明(至少包括功能实现分析和模块流程图) 3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号) 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告(请严格按照模板进行排版) 四、进度安排 第一天? 选择课程设计题目,分析课题的要求 第二天? 编程 第三天? 编程及调试 第四天? 写课程设计报告

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() 菜单函数

软件综合课程设计教学大纲

珠海学院课程教学大纲 课程名称:计算机软件综合课程设计 适用专业: 2015级软件工程专业 课程类别:专业基础课 制订时间:2017年6月 计算机科学与技术系制

目录 1 《计算机软件综合课程设计》教学大纲 2 《计算机软件综合课程设计》(模板) 3 《计算机软件综合课程设计》成绩评定表

《计算机软件综合课程设计》教学大纲 一、课程设计基本信息 课程代码: 课程名称:计算机综合应用课程设计 课程学时:32学时 课程学分:2.0 适用对象:计算机科学与技术专业、软件工程专业 先修课程:高级语言程序设计、数据结构、操作系统、数据库原理与应用 二、课程设计目的和任务 本课程设计是检验计算机专业的学生在大学主干课程完成之后,为了加深和巩固学生对前两年所学理论和应用知识的理解,同时提高学生综合运用的能力和分析问题、解决的问题的能力而开设的一门实践课程。 通过本环节学生能够充分把前两年学到的知识综合应用到实际的编程实践中,可以进一步巩固所学到的理论。通过实现一个中等规模的应用软件,提高利用计算机系统解决实际问题的能力,为顺利毕业、进入社会打好基础;通过对程序的规范编写,可以培养学生良好的编程风格,包括程序结构形式,行文格式和程序正文格式等;并培养学生的上机调试能力。 三、课程设计方式 1、课程设计题目的选定 采用指导教师提供参考题目与学生自主命题相结合的办法选定课程设计题目。要求不多于4个人一个小组,不得重复,所涉及数据库的基本表至少在5张表以上,在尽量满足数据库设计原则的前提下,允许适当冗余以提高检索的速度。其中学生自主命题需要指导教师严格的审核,看是否满足课程要求,检查是否为重复课题。 2、课程设计任务的完成

通讯录管理系统 C语言课程设计

C语言课程设计:通讯录管理系统

目录 一、需求分析 (2) 二、概要设计 (2) 三、详细设计 (3) 四、上机操作 (14) 五、实习心得 (19) 六、源程序 (20)

一、需求分析 具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 (1)数据包括:人名、工作单位、电话号码和E-MAIL地址。(2)可对记录中的姓名和电话号码进行修改。 (3)可增加和删除记录。 (4)可显示所有的保存记录。 (5)可按人名或电话号码进行查询。 [提示] 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。 二、概要设计 根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。

三、详细设计 1、主函数; 主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。 流程图 N 【程序】 int main()

***********\n"); printf("\t\t**********************************************\n"); scanf("%d",&n); for(i=0;i

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

目录 ——学生成绩管理程序题目要求 (2) 设计目的 (2) 总体设计 (3) 详细设计 (3) 调试与测试 (12) 源程序 (14) 总结 (30) 学生成绩管理程序

一.题目要求 1.问题描述: 对在校学生几门课程的考试成绩进行统一管理.每个学生记录包括学号,姓名,年龄,数学,英语,物理成绩,默认以学号为序存放. 2.要求: (1)一个文件按以班为单位存储学生记录. (2)将允许的操作分为四种,以A,B ,C,D,E,F为标志: A:插入一个学生记录; B:修改学生记录; C:删除一个学生记录; D:查找一个学生记录; E:浏览学生成绩: F:退出 3.计算学生的总成绩. 4.按学号排序输出全班学生成绩表 . 二.设计目的 根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择. 三.总体设计 根据上面的需求分析,可以将这个系统分为以下模块:输入模块,修改模块,删除模块,查找模块,显示模块.

四.详细设计 1.主函数: 主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用,其中各功能模块用菜单方式选择. 流程图: Y [程序]: //#include "head.h" int menu_select() { char c; printf("\n\n"); printf(" | 1. 增加学生记录 5.统计信息 |\n"); printf(" | 2. 查询学生记录 6.打开文件 |\n"); printf(" | 3. 修改学生记录 7.保存文件 |\n"); printf(" | 4. 学生纪录排序 8.显示记录 |\n"); printf(" | 0. 退出系统 |\n"); printf("\n\n"); printf("请选择(0-8):"); c=getchar(); getchar(); return (c-'0'); } 2.输入模块:

田赛远度成绩记录表(新)19年秋季

田赛远度成绩记录表 初一年级男子实心球项目预、决赛 23人取6名 号码姓 名 班 级 预赛成绩预最 好成绩 号 码 姓 名 班 级 决赛成 绩 全最 优成 绩 名 次 备 注 10106滕天熠1 10206姜之耀2 10303卢以恒3 10407徐浩函4 10502陈科宇5 10604朱彦存6 10706刘思呈7 10803陆睿8 10907倪睿卿9 11004施何成10 11105奚博杰11 11201韩天杨12 10105沈宇阳1 10208黄思泉2 10302张颖培3 10408王天4 10607蔡欣非6 10702施杭岑7 10807张弛8 10903杨佳豪9 11006李嘉杰10 11104薛沈宇11

11203周庆庆12 记录员:跳部、掷部裁判长: 田赛远度成绩记录表初一年级男子跳远项目预、决赛24人取6名 号码姓 名 班 级 预赛成绩预最 好成绩 号 码 姓 名 班 级 决赛成 绩 全最 优成 绩 名 次 备 注 10108李柯铖1 10201俞经纬2 10308朱俊宇3 10401孙伟程4 10503俞豪亮5 10605许轩熠6 10704胡舒涵7 10805徐栋华8 10909施沈冬睿9 11002侯文想10 11106项将宇11 11201韩天杨12 10107邹雨洋1

10205王予2 10301沈嘉诚3 10402马翌博4 10502陈科宇5 10606姜轶群6 10701赵宸菲7 10810朱士杰8 10904张文俊9 11005许可10 11102喻威淋11 11206陈明祎12 记录员:跳部、掷部裁判长: 田赛远度成绩记录表初一年级男子三级蛙跳项目预、决赛 20 人取6名 号码姓 名 班 级 预赛成绩预最 好成绩 号 码 姓 名 班 级 决赛成 绩 全最 优成 绩 名 次 备 注 10104陆明韬1 10105李柯铖1 10207梁煜棋2 10208熊飞扬2

C语言通讯录程序课程设计报告书

3.6 实例6 通讯录程序 本实例希望设计一个通讯录程序,要求实现通讯录信息的录入,并具有添加、查询、删除、显示等功能;使用结构体存储通讯录中记录信息;使用链表来实现通讯录信息的添加、删除、查询及显示等操作;通讯录程序可实现文件读写,在通讯录信息录入结束之后,可存入文件中,在下次程序运行时可将通讯录中的记录读取到程序中。通讯录程序可采用基于Win32控制台程序构建或采用基于MFC应用向导.EXE的应用程序,下面对这两种方法进行详细介绍。 3.6.1. 设计目的 1、掌握结构体的基本工作原理和工作方式。 2、熟悉结构体与链表的使用方法。 3、熟悉C语言下数据的输入与输出。 4、掌握C语言下对TXT文件的读写操作。 5、熟悉函数的设计方法及调用方法。 3.6.2. 基本要求 1、本实例要求实现对通讯录信息的查找、添加、删除、显示等功能,每个功能模块均能实现随时从模块中退出,可以通过键盘对功能进行选择,完成一个通讯录管理系统的运行。

2、要使用结构体来实现对通讯录信息的存储。 3、使用链表来实现对通讯录信息的查找、添加、删除、浏览显示。 4、使用文件对记录进行存储,程序运行时还可以从文件中读取记录。 5、系统设计完成后应实现类似下图所示界面。 3.6.3 设计结构及算法分析 在进行程序设计时,选择一种合理的数据存储结构是非常关键的。本实例根据题目要求,采用结构体来存放通讯录中的信息,并采用文件存储通讯录中的信息。 1、存储结构 本实例存储数据时,除了采用最常用的基本类型存储外,采用结构体的方式来存储通讯录中的个人信息,结构体如下所

示: struct stu { char name[20]; /*人名*/ char telephone[20]; /*电话*/ char sex[4]; /*性别*/ char company[20]; /*单位*/ struct stu *next; /*链表节点*/ }; typedef struct stu STU; 2、main()主函数 采用模块化设计,功能放在各模块函数中实现。主函数是程序的入口,在其中采用循环结构,根据用户的键盘输入,依次调用各功能函数。 3、mycreate()函数------创建链表函数 函数根据用户输入的信息,存储到结构体中,并建立链表结构,函数返回链表的头指针。链表建立完成后,可根据链表的头指针来添加后续指针。 4、myadd()函数------添加学生信息记录函数 函数根据用户输入信息,分配内存,将数据存储到结构体中,并建立新的链表节点,链接到已经建立好的链表尾部。 5、mydelete()函数------删除链表节点

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

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

#include #include /* strcmp函数原型包含*/ #define N 100 /*定义最大学生人数为100*/ struct student /*学生结构体定义*/ { char no[11]; /*学号,10位*/ char name[10];/*姓名,3个汉字*/ float score[5];/*储存5门功课的成绩*/ float ave;/*储存平均分*/ int year;/*入学年*/ }stu[N]; int num; int panduani(int); /*通过i的值,判断信息要查找的信息是否存在*/ void output(); /*输出学生成绩函数(公共函数)*/ void init(); /*系统初始化函数*/ void newfile(); /*建立新的数据文件*/ void read1(); /*从数据文件中读取数据*/

void weihu(); /*维护界面函数*/ void new1(); /*新增一个学生成绩函数*/ void xiugai(); /*修改学生成绩*/ int xgcj(int); /*修改成绩*/ void delete1(); /*删除学生信息函数*/ void tongji(); /*统计界面函数*/ void tongji1(); /*计算每个学生平均分*/ void tongji2(); /*计算每门课程的平均分*/ void paixu1(); /*排序函数*/ void paino(); /*按学号排序*/ void paiave(); /*按平均分排序*/ void paidkcj(); /*按单科成绩排序*/ void change(int,int); /*交换结构体数组中的两个记录*/ void outputx(int); /*选择输出单科成绩徐修楼编*/ void find1(); /*查找界面函数*/ int find(char sno[]); /*按学号查找*/ int findname(char cname[]);/*按姓名查找*/ void findyear(int cyear); /*按入学年查找*/ void save(); /*保存文件*/ void stop(); /*停顿函数*/

学校田径运动会所需各表格(团体总分记录表_径赛检录表_径赛计时表_终点名次报告表_田赛远度表)等

团体总分记录表组别: 单位 径赛田赛 总分 名 次60 米 100 米 200 米 400 米 800 米 1500 米 100 米栏 4×100 米接力 跳 高 跳 远 标 枪 铅 球 垒 球 编排记录公告组主裁判:裁判员:

年级男(女)子组决赛径赛检录表 道次一二三四五六号码 姓名 班级 成绩 检录长: 年级男(女)子组决赛径赛检录表 道次一二三四五六号码 姓名 班级 成绩 检录长: 年级男(女)子组决赛径赛检录表 道次一二三四五六号码 姓名 班级 成绩 检录长: 年级男(女)子组决赛径赛检录表 道次一二三四五六

号码 姓名 班级 成绩 检录长: 径赛计时表 男、女子第组米赛 名次号码道次 成绩第一表 决定成绩第二表 第三表 计时主裁判:裁判员: 径赛计时表 男、女子第组米赛名次号码道次 成绩第一表 决定成绩第二表 第三表 计时主裁判:裁判员: 径赛计时表 男、女子第组米赛名次号码道次 成绩第一表 决定成绩第二表 第三表 计时主裁判:裁判员:

径赛计时表 男、女子第组米赛 名次号码道次 成绩第一表 决定成绩第二表 第三表 计时主裁判:裁判员: 终点名次报告表 男、女子组米赛第组 第名 号码道次 备注 终点名次报告表 男、女子组米赛第组 第名 号码道次 备注 终点名次报告表 男、女子组米赛第组 第名 号码道次 备注 终点名次报告表 男、女子组米赛第组

第名号码道次 备注 终点名次报告表 男、女子组米赛第组 第名号码道次 备注 田赛远度项目成绩记录表项目:组别:性别: 顺序号 码 姓 名 单 位 前三次成绩前三次 最优 成绩 后三次成绩六次中最 优 成绩 名 次 备注 一二三一二三

C语言课程设计通讯录管理系统

#include #include #include #include #define N 100 int M=5; struct student { char num[10];char name[10];char tel[10];}; void myprint(); void mycreat(struct student *p,int); void mydisplay(struct student *p,int); void mysearch(struct student *p,int); void mymodify(struct student *p,int); void mydelete(struct student *p,int); void myadd(struct student *p,int); void main() { char choose='\0',yes_no='\0'; struct student record[N]={0}; do { myprint(); printf("请选择(0-6):"); choose=getche(); switch(choose) { case '1':mycreat(record,M);break; case '2':mydisplay(record,M);break; case '3':mysearch(record,M);break; case '4':mymodify(record,M);break; case '5':myadd(record,M);break; case '6':mydelete(record,M);break; case '0':exit(0); default :printf("\nerror...\n"); } printf("\n继续选择吗(y/n)?\n"); do {yes_no=getch();} while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='Y'||yes_no=='y'); } void myprint() { system("cls");

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

C语言课程设计报告: 学生成绩管理系统 系统需求 一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息. 二、学生成绩查询: 输入一个学号, 在文件中查找此学生, 若找到则输出此学生的全部信息和成绩; 若找不到则输出查找失败的信息. 同时也可以全部把各科的平均成绩,最高和最低分输出。 三、新生插入:通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来。 四、输出全部学生信息和全部学生成绩。 五、退出系统. 六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。 总体设计 一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数) 1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。 2、查询模块:可用stu *lookdata(stu *p1) 来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。 3、插入模块:可用insert( )函数来实现。其中通过学号的大小来比较的,并且以此来排序。 4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage() 、maverage() 、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。 5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。 二、系统主模块结构图:

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