C语言大作业设计-
C语言大作业设计-

CHANGZHOU INSTITUTE OF TECHNOLOGYC语言大作业设计说明书题目: 通讯录管理系统二级学院(直属学部):计算机信息工程学院专业: 软件工程(中英合作)班级: 12软件二: 学号:2013年7月目录1 概述 (1)1.2设计分析 (1)1.3开发工具 (1)1.4应用平台 (1)2 系统设计 (2)2.1功能模块设计 (2)2.2数据结构设计 (4)2.3函数功能设计 (4)3 实现与测试 (7)3.1关键技术实现 (7)3.2测试运行结果 (8)4 开发日志 (14)5 设计总结 (14)6 参考文献 (14)1 概述1.1 小组构成及分工1.2 设计分析本程序设计共包含六个函数模块,分别是添加记录、显示记录、删除记录、查询记录、修改记录、保存记录等信息模块,完成通讯录的功能。
在主函数中可以以1、2、3、4、 5、6数字键分别可以执行某个功能模块。
1.3 开发工具Visual C++ 6.0 和window321.4 应用平台Windows XP 32位2 系统设计2.1功能模块设计1.系统模块图本系统包括6个模块,分别是添加模块、显示模块、删除模块、查询模块、修改模块、保存模块等,各模块的功能如图2.1所示。
各个模块的功能描述如下:(1)添加模块:可以添加通讯录记录,依次输入、年龄、、地址、电子后,并会提示是否继续添加。
(2)显示模块:可以以表格形式输出所有通讯录里的记录。
(3)删除模块:输入欲删除的那个人的名字后,会自动删除他(她)的记录容。
(4)查询模块:可以选择用、、地址三种方式查询。
(5)修改模块:输入欲修改的那个人的名字后,再依次输入、年龄、、地址、电子完成修改。
(6)保存模块:输入文件名(带后缀名)后,即可将通讯录信息保存到文件。
图2.1 系统模块图2.任务执行流程图定义主函数main函数和一系列的功能函数,只有通过这些函数才可实现程序的功能。
每次使用都会调用主函数。
c语言大作业课程设计

c语言大作业课程设计一、课程目标知识目标:1. 学生能掌握C语言的基本语法,包括变量定义、数据类型、运算符、控制结构等;2. 学生能理解函数的定义和调用,灵活运用函数实现模块化编程;3. 学生能掌握数组、指针、结构体等C语言高级特性,并应用于实际编程中;4. 学生了解文件操作的基本方法,能够读写文件,实现数据的持久化存储。
技能目标:1. 学生能够运用C语言编程解决实际问题,具备独立分析和解决问题的能力;2. 学生能够运用所学知识,设计并实现一个小型的C语言项目;3. 学生能够通过编程实践,提高逻辑思维能力和编程技巧;4. 学生能够熟练使用集成开发环境(IDE),调试程序并优化代码。
情感态度价值观目标:1. 学生培养对编程的兴趣,激发学习计算机科学的热情;2. 学生养成合作、探究的学习习惯,培养团队协作能力;3. 学生通过编程实践,体验解决问题的成就感,增强自信心;4. 学生遵循编程规范,注重代码质量,培养良好的编程习惯。
课程性质:本课程为C语言大作业课程设计,旨在巩固和拓展学生对C语言知识的掌握,提高学生的编程能力和实践能力。
学生特点:学生已经掌握了C语言的基本知识,具备一定的编程基础,但缺乏实际项目经验。
教学要求:注重实践,引导学生通过动手编程解决问题,培养学生独立思考和解决问题的能力。
将课程目标分解为具体的学习成果,以便于后续教学设计和评估。
二、教学内容1. 复习C语言基础知识,包括变量、数据类型、运算符、控制结构等,参考教材第1-4章;2. 函数的定义、调用、参数传递及作用域,引用教材第5章;3. 数组、字符串、指针的概念及应用,深入讲解教材第6-7章;4. 结构体、联合体、枚举类型的使用,分析教材第8章;5. 文件操作,包括文件的打开、读写、关闭,依据教材第9章;6. 面向过程的编程思想,以实际项目为例,引导学生运用所学知识设计程序;7. 编程规范和调试技巧,培养学生的良好编程习惯;8. 小型项目实践,分组进行项目设计和开发,涵盖整个C语言知识体系。
C语言程序设计--大作业

C语言程序设计大作业编写程序,实现单链表的插入、删除、输出、查找、统计以及销毁功能。
单链表的每个结点存储一名学生的信息,包括:学号、姓名、性别、年龄、三门课程(高数、英语、C语言)的成绩、三门功课的平均分。
结构体类型声明如下:typedef struct student{char sno[8];char name[20];char sex;int age;double score[3];double avg;struct student *next;} STUDENT, *PSTUDENT;要求:⑴一律使用STUDENT 声明学生结构体的变量,一律使用PSTUDENT 声明指向学生结构体的指针变量⑵程序运行过程中要有菜单提示,菜单如下:**************************************************************** 1.Insert a student ** 2.Delete a student ** 3.Display the link list ** 4.Display excellent students ** 5.Search a student by the name ** 6.Display the average score of three courses ** 0.Exit the program ****************************************************************“Insert a student”:插入一个学生记录,要求按平均分从高到低插入“Delete a student”:删除指定学号的学生“Display the link list”:输出单链表中所有学生的信息“Display excellent students”:输出链表中三门功课平均成绩高于85分(含85分)的学生信息“Search a student by the name”:根据输入的姓名,输出链表中相应学生的信息“Display the average score of three courses”:输出链表中所有学生的高数平均分、英语平均分以及C语言平均分“Exit the program”:销毁单链表,结束程序运行。
C语言课程设计大作业

课程报告课程名称:C语言程序设计专业班级:学生姓名:学号:任课教师:学期:课程报告任务书开发一个通讯录管理系统,基本信息包括:编号、姓名、性别、出生年月、固定电话、手机号、电子邮件等基本信息(也可以根据自己情况进行扩充)。
使之能提供以下基本功能:(1)通讯录等信息录入功能(注:数据等要求用文件保存)--输入(2)通讯录信息的浏览功能--输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):①按电话号码进行查询②按姓名查询等③按照年龄排序④按姓名排序等(4)通讯录条目的删除与修改等扩展功能:可以按照自己的程度进行扩展。
比如(1)简单的权限处理(2)报表打印功能(3)模糊查询,如姓张的人员等;或者给定电子邮件的部分进行查询等(4)给定指定年龄范围之内的查询等等。
总之,可以根据自己需求进行分析功能,成绩评定按照难度进行区分。
成绩评定教师:一. 需求分析1,具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。
2,数据包括:人名、工作单位、电话号码和E-MAIL地址。
3,可对记录中的姓名和电话号码进行修改。
4,可增加和删除记录。
5,可显示所有的保存记录。
6,可按人名或电话号码进行查询。
分析建议采用结构体数组和文件系统实现。
结构体成员包括人名、工作单位、电话号码和E-MAIL地址。
根据题目的要求程序应该采用结构体数组和文件系统实现。
应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。
二、概要设计(1).程序的模块组成及各个函数的功能:程序的模块组成:主函数:main();输出数据函数:printf();读取数据函数:scanf();显示记录函数:Display();删除记录函数:shanchu();查找记录函数:chaxun();自定义清屏函数:system(“cls”);自定义输入函数:input();字符输入函数:getchar();修改数据函数:xiugai();保存数据函数:baocun();排序数据函数:paixu();各函数的主要功能:输出数据函数:随时输出数据;读取数据函数:读取输入的数据信息;显示菜单函数:显示可供选择的主菜单;显示记录函数:显示通讯录所有输入的信息;删除记录函数:显示要删除的通讯录所有输入的信息;查找记录函数:显示要查询的通讯录所有输入的信息;自定义清屏函数:清除前面运行留下的信息;自定义输入函数:输入通讯录的成员;;字符输入函数:从终端输入一个字符,遇回车键返回;修改数据函数:修改通讯录的成员信息;保存数据函数:保存通讯录的成员信息;排序数据函数:排序通讯录的成员信息;(2)程序中的抽象数据类型的定义:用户的状态结构用户{编号:姓名:电话;年龄;邮箱:地址;(3)总体流程图根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。
C语言程序设计大作业

学年学期:20xx - 20xx 学年 1 学期课程名称:C语言程序设计综合训练课程学分:2分考核形式:大作业任课教师:xx题目:学生成绩统计程序学院:xx学院__________________________________ 专业班级:xx_______________________________________ 学号:_______ 学生姓名:提交日期:目录目录 (2)引言 (3)1. 学生成绩管理系统 (4)1.1系统简介 (4)1.2相关代码及知识点介绍 (4)2. 添加学生成绩功能 (5)3. 查找学生成绩功能 (6)4. 排序学生成绩功能 (7)5. 展示学生成绩功能 (9)6. 删除学生成绩功能 (10)7. 附页代码 (11)引言C语言是一种比较常见的计算机语言,许多大型应用软件都是用C语言编写而成的。
其简洁紧凑,灵活方便,数据结构丰富。
在一定程度上,C语言比汇编语言更实用,具有结构化语句,实现了结构化编程,使程序编写变得更容易、更快捷,可以编写出各种类型的程序。
同时,C语言是一门实践性强的学科,在学习的过程中,利用所学知识,编写一些与生活、学习相关的应用程序来提高程序编写能力,增强学习兴趣。
本次使用C语言设计一个学生成绩管理系统,可以实现学生成绩的添加,查找,排序及展示。
在作业中使用的是函数的模块化设计,将四个程序使用四个函数来实现。
与此同时,增加用户界面的交互,可供用户选择想要的功能,实现增删查排等操作。
1. 学生成绩管理系统1.1系统简介该系统主要实现学生成绩的添加,查找,排序,展示和删除五个功能,添加学生成绩主要有6个输入值组成,其中包括学号,姓名,语文,数学,英语,政治等。
查找学生成绩主要通过学号查询。
对学生成绩进行排序,可以分别通过学号,语文,数学,英语,政治,平均分,总分等进行排序。
第四项功能是对学生成绩以表格的形式进行展示。
删除学生成绩是按照学号对表格中的数据进行删除。
大学C语言程序设计大作业题目

1数据处理系统一、软件开发目的该软件主要是使用C语言设计开发数据处理程序,实现对数据的排序、查找、插入、计算、输出等功能。
二、数据结构定义一个11*10的二维数组。
三、软件功能说明1.生成100个随机数:调用库函数rand()或random()产生100个随机数,并存储在二维数组中的前十行。
2.选择法排序:用选择法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。
3.冒泡法排序:用冒泡法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。
4.插入法排序:用插入法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。
5.查找数据:输入待查找数据, 在二维数组中逐个查找,若找到输出数据所在位置的行列号,若无该数值则输出“无此数”。
6.转换二进制:将数组中数据转换为二进制并转存到另一数组中输出。
7.转换为素数之和:对于原数组中的数进行判断:若为偶数,则表示成两个素数的和,并输出。
8.插入数据:输入一个数,将该数插入原数组中,使数组中的数仍然按从小到大排序,将数组中数据按从小到大顺序输出。
9.删除数据输入一个数,若原数组中存在该数,则删除该数,使数组中的数仍然按从小到大排序,将数组中数据按从小到大顺序输出。
10.退出系统,结束任务。
四、软件验收标准1.有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。
系统菜单功能项:1生成100个随机数2选择法排序3冒泡法排序4插入法排序5查找数据6转换二进制7转换为素数之和8插入数据9删除数据10退出系统注意:要求每执行一个具体的功能之后,程序将重新显示菜单。
2.系统要有一定的可靠性、稳定性,能够实现各功能模块。
2图书借阅管理系统一、软件开发目的该软件主要是使用C语言设计开发一个简单的图书借阅管理系统,实现对图书的借书,还书的管理和数据统计。
C语言程序设计大作业设计说明书-简单计算器

高级语言程序设计大作业设计说明书简单计算器学院电子信息工程学院专业班级级通信工程班学生姓名xxxx学号*********指导老师xxxxxx1.概述:本程序是在C++6.0环境下开发的一款集整数与小数的四则运算和求余运算为一体的简单计算器。
主要运用了赋值、计算、选择结构(switch语句实现多分支选择结构)、条件运算、循环计算、函数调用等原理。
2.程序概要设计:前实现的功能:程序已经可以完成整数、小数的基本加减乘除;整数基本求余运算;二进制,八进制,十进制,十六进制的相互转换,并可以对输入者的输入错误提出错误警告;程序可以循环运行,也可以自我实现退出菜单的功能(需要按2次回车)。
目前发现的BUG有:1、在整数输入数字的时候,如果输入的是小数的话会一直循环菜单,不会出现结果,也不会提示输入者输入错误,也不会有结果。
2、在整数求余功能中,如果输入的是小数或者输入不合理也会出现一直循环菜单的情况,同样不会提示输入者输入错误,也不会有结果。
目前没有实现的功能有:1.给出一个二进制数,不可以计算它的原码、补码和反码。
2.整数,小数的基本运算和整数求余的运算出现错误无法提示,函数不是十分完整。
3.全部进制的函数输入的数字个数都是有限制(数字个数不能大于100),超范围就会输出错误结果,无法实现无限制的输入而得出正确结果。
4.每次算完第一次不能按回车,只能按其他按键,否则会退出,因为按两次回车就会退出程序。
5.每次算完,按非回车键都会出现一级菜单,有点繁琐,再次选择整数、小数、进制运算。
流程图:3.程序详细设计:在主函数中设置了全局变量,以实现功能选择,并用char函数实现循环输入。
运用do while语句控制结束程序,即在运算过后,如由键盘输入回车键则结束程序。
之后进入功能选择菜单,先调用写好的menu函数(回车2次可退出程序)。
输入提示及输入控制:若输入的数字不是1-3,则提示输入错误,重新输入:(运用选择结构进行判断)其中,整数、小数、及进制转换计算功能分别使用了另一个switch语句嵌套,实现选择功能。
c语言设计大作业

学院航空学院目录1 摘要 (3)1.1设计题目 (3)1.2设计内容 (3)1.3开发工具 (3)1.4应用平台 (3)2 详细设计 (3)2.1程序结构 (3)2.2主要功能 (4)2.3函数实现 (4)2.4开发日志 (5)3 程序调试及运行 (6)3.1程序运行结果 (6)3.2程序使用说明 (10)3.3程序开发总结 (10)4 附件(源程序) (11)1 摘要1.1 设计题目编写七种排序算法的演示程序/快速排序;插入排序;选择排序;冒泡排序;堆排序;归并排序;基数排序。
1.2 设计内容先建立具有输入、输出和循环选择子程序功能的主函数,并在主函数中声明每个子函数,再为每一种排序算法建立一个或几个子函数。
这个程序就基本完成了。
子函数中直接定义了数组原型,通过七种算法,利用循环语句和自定义函数调用把数组a[10]按升序重新排列。
1.3 开发工具/*Visual C++ 6.0和Win32。
*/1.4 应用平台Windows XP/7 32位2 详细设计2.1 程序结构先建立具有输入、输出和循环选择子程序功能的主函数,并在主函数中声明每个子函数,接着再用一个switch分支选择对各个子函数进行引用。
再为每一种排序算法建立一个或几个子函数。
参数基本都是传递排序数组的个数和数组的头指针,没有返回值。
2.2 主要功能/*这七道程序的作用是把数组中的数从小到大排序。
他们分别使用了不同的算法,对数组a进行排列。
这七个程序能实现对一些常见的排序算法的演示,使我们对这些排序算法的原理和算法的实现过程更加熟悉,对C语言的语法结构和数据结构更加清晰。
*/2.3 函数实现1. 快速排序:就是你从数组中任取一个元素p (可随机取,现在以取第一个为例),以P作为主元,对数组进行划分,前一部分小于P,后一部分大于p,划分处理存储p ,然后分别对划分后的前一部分和后一部分使用递归调用。
最后将数组划分为小数组,通过局部的有序合并,解决问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CHANGZHOU INSTITUTE OF TECHNOLOGYC语言大作业设计说明书题目: 通讯录管理系统二级学院(直属学部):计算机信息工程学院专业: 软件工程(中英合作)班级: 12软件二: 学号:2013年7月目录1 概述 (1)1.2设计分析 (1)1.3开发工具 (1)1.4应用平台 (1)2 系统设计 (2)2.1功能模块设计 (2)2.2数据结构设计 (4)2.3函数功能设计 (4)3 实现与测试 (7)3.1关键技术实现 (7)3.2测试运行结果 (8)4 开发日志 (14)5 设计总结 (14)6 参考文献 (14)1 概述1.1 小组构成及分工1.2 设计分析本程序设计共包含六个函数模块,分别是添加记录、显示记录、删除记录、查询记录、修改记录、保存记录等信息模块,完成通讯录的功能。
在主函数中可以以1、2、3、4、 5、6数字键分别可以执行某个功能模块。
1.3 开发工具Visual C++ 6.0 和window321.4 应用平台Windows XP 32位2 系统设计2.1功能模块设计1.系统模块图本系统包括6个模块,分别是添加模块、显示模块、删除模块、查询模块、修改模块、保存模块等,各模块的功能如图2.1所示。
各个模块的功能描述如下:(1)添加模块:可以添加通讯录记录,依次输入、年龄、、地址、电子后,并会提示是否继续添加。
(2)显示模块:可以以表格形式输出所有通讯录里的记录。
(3)删除模块:输入欲删除的那个人的名字后,会自动删除他(她)的记录容。
(4)查询模块:可以选择用、、地址三种方式查询。
(5)修改模块:输入欲修改的那个人的名字后,再依次输入、年龄、、地址、电子完成修改。
(6)保存模块:输入文件名(带后缀名)后,即可将通讯录信息保存到文件。
图2.1 系统模块图2.任务执行流程图定义主函数main函数和一系列的功能函数,只有通过这些函数才可实现程序的功能。
每次使用都会调用主函数。
流程图如图2.2所示:图2.2 系统流程图2.2数据结构设计1.根据描述的基本信息含有多个属性,其中包括、年龄、、地址、,为此可根据信息建立结构体,类型定义如下:typedef struct{char name[10]; /**/char num[15]; /**/char email[20]; /**/char age[8]; /*年龄*/char adds[20]; /*住址*/}Person;2.Person结构体数组Person pe[80];2.3函数功能描述1.Input( )函数原型int Input(Person per[ ], int n)选择添加联系人,程序在Input( )函数下输入添加联系人的信息。
其中,n表示存储的n条记录,Person per[ ]是结构体数组变量。
2.Display( )函数原型void Display(Person per[ ], int n)Display( )函数显示所有联系人的信息到屏幕上。
其中,n表示存储的n条记录,Person per[ ]是结构体数组变量。
3.Delete_a_record( )函数原型int Delete_a_record(Person per[ ], int n)Delete_a_record( )函数输入删除的联系人的。
其中,n表示存储的n条记录,Person per[ ]是结构体数组变量。
如图2.3所示:图2.3 删除记录流程图4.Query_a_record( )函数原型void Query_a_record(Person per[ ], int n)在void Query_a_record( )函数中查找联系人,根据输入要查联系人的、或地址,程序输出此人的信息。
其中,n表示存储的n条记录,Person per[ ]是结构体数组变量。
如图2.4所示,以查询为例:图2.4 查询记录流程图5.Change( )函数原型void Change(Person per[ ], int n)void Change( )函数输入欲修改的联系人,重新输入联系人信息即可完成联系人的修改,其中,n表示存储的n条记录,Person per[ ]是结构体数组变量。
6.WritetoText( )函数原型void WritetoText(Person per[ ], int n)void WritetoText( )函数保存经过一系列操作之后的联系人的信息。
其中,n表示存储的n条记录,Person per[ ]是结构体数组变量。
3 实现与测试3.1关键技术实现通过switch函数来控制主菜单,进行操作选择各项功能,从而完成通讯录系统的操作。
switch(menu_select()){case 1:printf("\n\t添加记录到通讯录\n");n=Input(pe,n); break;case 2:printf("\n\t\t\t 通讯录记录表\n"); Display(pe,n); break;case 3:printf("\n\t从通讯录中删除记录\n");n=Delete_a_record(pe,n);printf("\t");system("pause"); break;case 4:printf("\n\t在通讯录中查找记录\n");Query_a_record(pe,n);printf("\t");system("pause"); break;case 5:printf("\n\t修改通讯录中的记录\n");Change(pe,n);printf("\t");system("pause"); break;case 6:printf("\n\t保存功能\n");WritetoText(pe,n);printf("\t");system("pause");break;case 0:printf("\n\t\t使用,再见!\n"); printf("\n\t\t");system("pause");exit(0); }3.2测试运行结果1.显示主菜单界面:程序开始运行时,显示通讯录主菜单,通过输入0-6来操作通讯录的各个功能。
如图3.2.1所示:图3.2.1 显示主菜单界面2.添加记录界面:在输入1后,显示添加记录的界面,依次输入、年龄、、通讯地址、电子。
如图3.2.2所示:图3.2.2 添加记录界面3. 显示记录界面:在输入2后,界面显示通讯录记录表,如图3.2.3所示:图3.2.3 显示记录界面在输入3后,显示删除记录界面,输入想删除的:王小斌,即可删除该人的信息。
如图3.2.4.1所示:图3.2.4.1 删除记录界面删除后,通讯录里的显示记录。
如图3.2.4.2所示:图3.2.4.2 删除后的显示记录界面在输入4后,显示查询记录界面,选择你想查询的方式。
如图3.2.5.1所示:图3.2.5.1 查询记录界面以查询为例,输入玥,则显示玥的信息。
如图3.2.5.2所示:图3.2.5.2 查询记录界面在输入5后,显示修改记录界面,输入想修改的:玥,重新输入信息,完成修改通讯录。
如图3.2.6所示:图3.2.6 修改记录界面7.保存记录界面:在输入6后,显示保存记录界面,输入所保存的文件名,如tongxunlu.txt.如图3.2.7.1所示:图3.2.7.1保存记录界面tongxunlu.txt文件截图,如图3.2.7.2所示:图3.2.7.2 通讯录系统文件界面4 开发日志第一天,确定课题,对所选系统进行分析,小组成员进行分工。
第二天,对系统总体设计,各自完成自己的任务,并交流沟通。
第三天,对程序模块设计,程序调试与测试,成员互相讨论。
第四天,对程序综合测试,然后系统改进完善,完成程序并写好设计总结和说明书报告。
5 设计总结这次的程序课程设计让我进步很大。
自己动手,自己发现和解决问题。
发现了自己的许多不足,平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其部分问题,当然还存在一些问题没有解决。
我相信在以后的学习能够解决好它们。
但是,我不仅对C的操作有了进一步的掌握,还了解到程序设计的书写风格及其注释的格式。
总之,通过这一次课程设计我学习到了很多,深刻的体会到了,复杂的系统是一个个简单构建的统一协作。
6 参考文献[1].贾宗璞、许合利,C语言程序设计[M].人民邮电,2012年9月[2].鲁沐浴,C语言最新编程技巧200例[M].电子工业,2010年5月[3].王小科、王军,visual C++编程宝典[M].人民邮电,2011年1月。