c语言大作业

合集下载

黑河学院c语言大作业

黑河学院c语言大作业

黑河学院c语言大作业
题目:学生管理系统设计
功能:学生管理系统设计,每个学生信息作为一条记录,包括姓名、学号、性别、出生年月、专业、班级、家庭地址、宿舍号码等。

系统要求实现以下功能:
1、输入功能:录入学生信息(包括学生学号、姓名、性别、出生年月、专业等)。

2、显示功能:完成学生记录的显示。

3、查找功能:完成按学号或姓名查找学生的相关记录,并显示。

分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。

2、完成信息的录入和显示(即通过编程创建文件,输入学生信息并可将文件内容显示出来)。

3、完成修改功能,即输入学号,可修改该学生的信息。

4、进一步要求,在使用修改功能时要求输入密码,密码正确才能修改信息否则不行。

要求:
1、用C语言实现程序设计;
2、利用结构体数组、链表等实现学生信息表达、查询等,充分体现数据结构的知识;
3、系统的各个功能模块要求用函数的形式实现;
4、界面友好(良好的人机交互),程序要有注释;
5、程序中所用到的排序查找方法需采用数据结构中所学方法实现,要求方法实用效率高。

c语言大作业课程设计

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语言大作业综合第一章C语言简介及算法一.选择题1.一个C程序可以包含的函数。

A.一个B.多个C.若干D.任意2.下面不可以使用来编译和连接一个C 程序。

A.TurboCB.VC++C.C语言编译器D.BC3.C语言的程序一行写不下时,可以。

A.用逗号换行B.用分号换行C.在任意一空格处换行D.用回车符换行4.C控制语句有种。

A.6B.9C.32D.345.复合语句是用一对界定的语句块。

A.{}B.[]C.()D.”6.一个C程序的执行总是从该程序的函数开始,在函数最后结束。

A.第一个、最后一个B.main、mainC.主函数、最后一个D.第一个、第一个7.C语言提供的合法的数据类型关键字A.FloatB.ignedC.integerD.Char8.在以下各组标识符中,合法的标识符是(1)A.B01B.table_1C.0_tD.k%(2)A.Fat_B.voidC.pblD.(3)A.某y_B.longdoubleC.某pD.CHAR(4)A.jB.IntC._某yD.w_y239.C语言的标识符里不能有A.大小写字母B.数字C..D.下划线二.填空题1.C程序是由构成的,一个C程序中至少包含因此,是C程序的基本单位。

2.C程序注释是由和所界定的文字信息组成的。

3.函数体一般包括和4.算法是解决问题的和的描述。

5.C程序的注释部分可以出现在程序的位置,它对程序的编译和运行作用,但是可以增加程序的第二章C语言数据类型、基本运算及简单程序设计一.选择题1.不合法的字符常量是A.‘\\t’B.“A”C.‘a’D.’\\某32’2.逻辑运算符两侧运算对象的数据类型。

A.只能是0或1B.只能是0或非0正数C.只能是整型或字符型数据D.可以是任何类型的数据3.下列表达式中,不满足“当某的值为偶数时值为真,为奇数时值为假”的要求。

A.某%2==0B.!某%2!=0C.(某/2某2-某)==0D.!(某%2)4.下面选项中,不是合法整型常量的是A.160B.-0某cdgC.-01D.-0某48a5.能正确表示“当某的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是。

c语言大作业

c语言大作业

大作业:编写和调试一个具有能对用一维数组建立的顺序表进行各种操作的应用程序。

训练目的
1.提高综合应用流程控制语句的能力;
2.提高对复杂流程结构的程序的编写能力和调试能力;
3.掌握利用数组的组织存储数据以及一些实用的算法。

4.掌握对文件的操作。

步骤
1.写程序显示如下菜单
1. 插入 (插入一个数据)
2. 删除 (删除一个数据)
3. 排序 (排序)
4. 输出 (输出表中所数据)
0. 退出 (退出程序)
2. 用输入函数输入菜单选择的数字(0-4)对其他输入要提示错误信息流程控制结构如图1所示。

3.顺序表的数据类型自选,可以先使用基本类型,在此基础上修改使用结构体类型。

4.每个功能模块要求用函数实现。

5.在菜单中增加“写入文件”和“读取文件”选项,能将顺序表中的数据写入文件和从文件读取数据。

图1
作业提交内容:
1 解题思路
2 算法流程图
3 源代码
4 实验结果。

C语言程序设计大作业

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语言程序设计大作业题目

大学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语言大作业课程设计

c语言大作业课程设计

c语言大作业课程设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,能够运用C语言进行程序设计和开发。

具体来说,知识目标包括:掌握C语言的基本语法、数据结构、运算符、控制语句、函数等基本概念;了解C语言的编程环境和开发工具。

技能目标包括:能够使用C语言编写简单的程序,解决实际问题;能够阅读和理解C语言的程序代码。

情感态度价值观目标包括:培养学生的编程兴趣,提高学生解决问题的能力,培养学生的团队合作意识和创新精神。

二、教学内容教学内容主要包括C语言的基本语法、数据结构和算法。

具体安排如下:1.C语言的基本语法:包括变量、数据类型、运算符、控制语句、函数等,共4课时。

2.数据结构:包括数组、链表、栈、队列、树等,共6课时。

3.算法:包括排序算法、查找算法、递归算法等,共4课时。

三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法。

1.讲授法:通过讲解C语言的基本语法、数据结构和算法,使学生掌握相关知识。

2.讨论法:通过分组讨论,让学生共同探讨问题,培养学生的团队合作意识和创新精神。

3.案例分析法:通过分析实际案例,使学生更好地理解C语言的应用和编程技巧。

4.实验法:通过编写和调试程序,使学生掌握C语言的编程方法和技巧。

四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:《C程序设计语言》(K&R)、《C Primer Plus》等。

2.参考书:《C语言编程思想》、《C语言实战》等。

3.多媒体资料:教学PPT、视频教程、在线编程练习等。

4.实验设备:计算机、编程软件(如Visual Studio、Code::Blocks等)、网络等。

五、教学评估本课程的评估方式包括平时表现、作业、考试等。

平时表现主要评估学生的出勤、课堂参与度、提问和回答问题的情况,占总评的20%。

作业包括课后练习和编程任务,每两次作业计10分,占总评的30%。

考试包括期中和期末考试,各占总评的30%。

C语言大作业

C语言大作业

《C程序设计》课程设计
【设计目的】全面深入理解高级语言程序设计思想,掌握程序设计知识和技巧,提高综合应用能力。

【设计题目】编制并调试学生成绩管理程序。

【基本要求】
1.功能要求
1)从磁盘读入学生成绩单文件(学生的原始成绩单可通过运行程序产生)。

2)按下列要求组织成绩单:
(1)按学号排序
(2)按姓名排序(用选择法)
(3)按成绩排序(用冒泡法)
(4)按成绩分段计数(每10分为一段)
(5)优秀成绩单(优秀线由宏定义给出)
(6)不及格成绩单
3)将各类学生成绩单输出到显示器上,同时以文件形式保存到磁盘上。

2.界面要求
1)允许用户输入成绩单的路径及文件名。

2)可选择成绩单排序规则:升序、降序。

3)可选择输出内容:原始成绩单、排序后的成绩单、分段后的成绩单、优秀成绩单、不
及格成绩单。

3.数据结构要求
一个学生的信息,至少包括:
1)学号:形如:54110115,其中“54”表示所在学院,“11”表示年级,“01”表示班级,
“15”表示班内序号
2)姓名
3)性别
4)考试科目(共3科)
5)各科目考试成绩
要求用结构体数组保存学生信息。

4.程序结构要求
体现模块化程序设计思想,用函数实现各模块功能。

【选作】
1)分别将优秀成绩单和不及格成绩单以链表形式组织。

2)读入若干班级成绩单,按班级完成以上【基本要求】所述功能。

西工大C语言大作业习题答案

西工大C语言大作业习题答案

童鞋们,快来呀!答案!答案!no1.绘制余弦曲线在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线*问题分析与算法设计如果在程序中使用数组,这个问题十分简单。

但若规定不能使用数组,问题就变得不容易了。

关键在于余弦曲线在0~360度的区间内,一行中要显示两个点,而对一般的显示器来说,只能按行输出,即:输出第一行信息后,只能向下一行输出,不能再返回到上一行。

为了获得本文要求的图形就必须在一行中一次输出两个“*”。

为了同时得到余弦函数cos(x)图形在一行上的两个点,考虑利用cos(x)的左右对称性。

将屏幕的行方向定义为x,列方向定义为y,则0~180度的图形与180~360度的图形是左右对称的,若定义图形的总宽度为62列,计算出x行0~180度时y点的坐标m,那么在同一行与之对称的180~360度的y点的坐标就应为62-m。

程序中利用反余弦函数acos计算坐标(x,y)的对应关系。

使用这种方法编出的程序短小精炼,体现了一定的技巧。

*程序说明与注释#include<stdio.h>#include<math.h>void main(){double y;int x,m;for(y=1;y>=-1;y-=0.1){m=acos(y)*10;for(x=1;x<m;x++) printf(" ");printf("*");for(;x<62-m;x++)printf(" ");printf("*\\n");}}no2.绘制余弦曲线和直线在屏幕上显示0~360度的cos(x)曲线与直线f(x)=45*(y-1)+31的迭加图形。

其中cos(x)图形用“*”表示,f(x)用“+”表示,在两个图形相交的点上则用f(x)图形的符号。

*问题分析与算法设计本题可以在上题的基础上进行修改。

图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的位置关系。

C语言大作业

C语言大作业

C语言大作业题目1电话簿管理程序存储的数据包括:人名、工作单位、电话号码和E-mail地址等。

程序要求具有如下功能:①加入一个新电话号码;②删除一个电话号码;③显示保存的所有电话号码。

④修改功能;⑤排序功能,包括按照电话号码排序和按照姓名字母序排列;⑥查询功能,包括按人名查询电话号码和按电话号码查询人名。

⑦保存信息到文件。

⑧从文件读取信息。

课程设计要求:程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。

用户选用哪条功能,就调用哪项功能。

2班级同学信息管理程序存储的数据包括:姓名,学号,宿舍,QQ号码和电话号码等。

程序要求具有以下功能:①加入一个同学的记录;②删除一个同学的记录;③显示所有同学的记录。

④排序功能,包括按照学号排序和按照姓名字母序排序显示所有同学的纪录。

⑤查询功能,包括按学号查询同学的信息或者其他。

⑥修改功能。

⑦保存信息到文件。

⑧从文件读取信息。

课程设计要求:程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。

用户选用哪条命令,就调用哪项功能。

3职工信息管理系统职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

提供以下功能:①加入一个职工的记录;②删除一个职工的记录;③显示所有职工的记录。

④排序功能,包括按照学号排序和按照姓名字母序排序显示所有职工的纪录。

⑤查询功能,包括按工号或姓名查询职工的信息或者其他。

⑥修改功能。

⑦保存信息到文件。

⑧从文件读取信息。

课程设计要求:程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。

用户选用哪条命令,就调用哪项功能。

4图书信息管理系统图书信息包括:图书号、书名、作者名、分类号、出版单位、出版时间、价格等。

提供以下功能:①加入一本图书;②删除一本图书;③显示所有图书。

④排序功能,包括按照书名排序所有图书。

⑤查询功能,包括按书名查询图书。

⑥修改功能⑦保存信息到文件。

⑧从文件读取信息。

课程设计要求:程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。

C语言大作业全

C语言大作业全

C语言大作业全 Document number:PBGCG-0857-BTDO-0089-PTT1998#include ""#include ""#include ""#include ""#include ""#define LEN sizeof(struct student)#define NULL 0int n,m;int k=1;struct student{char num[20];char name[20];int age;char profession[50];int maths;int english;int C_program;float ave;struct student * next;};float ave(struct student * p1){float ave;ave=(float)(p1->maths+p1->english+p1->C_program)/3;return ave;}void save(struct student *head){struct student *p1 = head;FILE *outFile;outFile = fopen("", "wb");if (outFile == NULL) {printf("\nFile error.");}else {while(p1 != NULL){fwrite(p1, sizeof(struct student), 1, outFile);p1 = p1->next;}fclose(outFile);}};}else {head = (struct student *)malloc(sizeof(struct student));fread(head, sizeof(*head), 1, infile);p2 = head;while(fread(&record, sizeof(record), 1, infile));}fwrite(p1, sizeof(struct student), 1, outFile);fclose(outFile);}void sta(struct student * head,char array[20],int max,int min) {struct student *p1=head;int k=0;if(strcmp(array,"maths")==0){while(p1!=NULL){if(p1->maths>=min&&p1->maths<=max)k++;p1=p1->next;}printf("数学科目在%d到%d之间的人数为:%d\n",min,max,k); }else if(strcmp(array,"english")==0){while(p1!=NULL){if(p1->english>=min&&p1->english<=max)k++;p1=p1->next;}printf("英语科目在%d到%d之间的人数为:%d\n",min,max,k);}else if(strcmp(array,"C_program")==0){while(p1!=NULL){if(p1->C_program>=min&&p1->C_program<=max)k++;p1=p1->next;}printf("C语言科目在%d到%d之间的人数为:%d\n",min,max,k); }}void exit(){printf("\t\t");printf("**********************\n");printf("\t\t");printf("*******感谢使用*******\n");printf("\t\t");printf("**********************\n");k=0;}void Chooseproject(int i){ struct student * head=NULL;if(i==1){head = read();print(head);}else if(i==2){int p=1 ;printf("请选择按学号查询(1)还是按姓名查询(0):");scanf("%d",&p);while(p!=1&&p!=0){printf("输入错误!");printf("请选择学号查询(1)还是姓名查询(0)");scanf("%d",&p);}if(p==1){head = read();char num[20];printf("请输入查询的学号:\n");scanf("%s",num);head=search_num(head,num);while(strcmp(num,"0")!=0){printf("是否继续查询(是就输学号,否就输0):\n"); scanf("%s",num);if(strcmp(num,"0")==0)break;head=search_num(head,num);}}else if(p==0){head = read();char name[20];printf("请输入查询的学号:\n");scanf("%s",name);head=search_name(head,name);while(strcmp(name,"0")!=0){printf("是否继续查询(是就输学号,否就输0):\n"); scanf("%s",name);if(strcmp(name,"0")==0)break;head=search_name(head,name);}}}else if(i==3){ head = read();char num[20];printf("请输入要更改的学号:\n");scanf("%s",num);getchar();head=change(head,num);print(head);while(strcmp(num,"0")!=0){printf("是否继续更改(是就输学号,否就输0):\n");scanf("%s",num);getchar();if(strcmp(num,"0")==0)break;head=change(head,num);print(head);}}else if(i==4){head=read();add(head);}else if(i==5){char num[20];head=read();printf("请输入要删除的学号:\n");scanf("%s",num);getchar();head=del(head,num);print(head);}else if(i==6){head = read();int i;printf("\t\t");printf("************1.学号排序;********************\n");printf("\t\t");printf("************2.平均成绩排序;****************\n");printf("\t\t");printf("************3.数学成绩排序;****************\n");printf("\t\t");printf("************4.英语成绩排序;****************\n");printf("\t\t");printf("************语言成绩排序;***************\n");printf("请输入相应的排序代号:");scanf("%d",&i);sort_down(head,i);}else if(i==7){head=read();int min,max;char subject[20];printf("\t\t");printf("************数学(maths);***************\n");printf("\t\t");printf("************英语(english);*************\n");printf("\t\t");printf("***********C语言(C_program);***********\n");printf("请选择要统计的项目:\n");scanf("%s",subject);getchar();while((strcmp(subject,"maths")!=0&&strcmp(subject,"english")!=0&&strcmp(subject,"C_ program")!=0)){printf("输入错误!");printf("\t\t");printf("************数学(maths);***********\n");printf("\t\t");printf("************英语(english);***********\n");printf("\t\t");printf("***********C语言(C_program);***********\n");printf("请选择要统计的项目:\n");scanf("%s",subject);getchar();}printf("请输入分数段的区间:");printf("区间上限:");scanf("%d",&max);printf("区间下限:");scanf("%d",&min);while(min>=max){printf("输入的下限大于等于上限,错误!");printf("请重新输入分数段的区间:");printf("区间上限:");scanf("%d",max);printf("区间下限:");scanf("%d",min);}sta(head,subject,max,min);}else if(i==8){printf("\t\t");printf("************************************\n");printf("\t\t");printf("**************感谢使用**************\n");printf("\t\t");printf("************************************\n");k=0;}}息浏览;***********\n");printf("\t\t");printf("***********2.信息查询;***********\n");printf("\t\t");printf("***********3.信息修改;***********\n");printf("\t\t");printf("***********4.信息添加;***********\n");printf("\t\t");printf("***********5.信息删除;***********\n");printf("\t\t");printf("***********6.信息排序;***********\n");printf("\t\t");printf("***********7.信息统计;***********\n");printf("\t\t");printf("***********8,退出系统;***********\n");printf("请选择项目:");scanf("%d",&i);while(i<1||i>8){printf("输入错误,请重新输入:\n");printf("\t\t");printf("***********1.信息浏览;***********\n");printf("\t\t");printf("***********2.信息查询;***********\n");printf("\t\t");printf("***********3.信息修改;***********\n");printf("\t\t");printf("***********4.信息添加;***********\n");printf("\t\t");printf("***********5.信息删除;***********\n");printf("\t\t");printf("***********6.信息统计;***********\n");printf("\t\t");printf("***********7,退出系统;***********\n");printf("请重新选择项目:");scanf("%d",&i);}Chooseproject(i);}int _tmain(int argc, _TCHAR* argv[]){ struct student *head = NULL;printf("\t\t");printf("************************************************************\n");printf("\t\t");printf("*********************学生管理系***************************\n");printf("\t\t");printf("************************************************************ \n");printf("是否已经录入信息\n");char c;printf("请输入 'y' 或 'n':");c=getchar();getchar();while(c!='n'&&c!='y'){printf("输入错误,请重新输入( 'y' 或 'n'):\n"); c=getchar();getchar();}if(c=='n'){printf("请输入学生成绩:\n");head=creat();}while(k!=0){menu();}system("pause");return 0;}。

C语言程序大作业

C语言程序大作业

C语言程序大作业
大连理工大学C程序设计(大作业)总结报告学生成绩录入处理系统
学生姓名:罗________________
专业班级:__________________________
学号:
联系电话:__________________________
Email : ________________________
完成日期: 2015年5月29日
设计任务
我的程序设计是一个学生成绩录入及处理的程序,该程序包括多种功能,能够满足大多数的学生成绩管理处理。

主要能够实现的目的主要有:
第一.学生姓名学号既包括三门成绩等信息的录入,并保存到文件d://score.txt 第二.对每个学生的成绩进行求平均分及按平均分排序的数字处理。

第三.对输入错误的学生信息加以修改重新排序保存。

第四.增加学生信息,重新排序,加以保存。

第五.按每个学生的平均分进行表格化和图形化处理。

第六.实现某位同学的信息查找,包括姓名,学号,每科成绩及平均分。

以上功能全都可以实现,但是注意录入信息的要求,下面会有注释。

二、程序设计与实现
1.结构框图
下图描述预期实现题目的设计方案或功能设计的组成结构。

绘制成框图,如图所示是我设计的成绩信息管理程序设计的结构图示:
学生成绩信息管理
2.功能模块设计及其流程图
(1)数据描述与存储
该学生信息统计系统设计一个全局结构体变量,将学生的姓名,学号,各科成绩及。

C语言大作业全

C语言大作业全

#include "stdafx.h"#include "stdio.h"#include "stdlib.h"#include "string.h"#include "malloc.h"#define LEN sizeof(struct student) #define NULL 0int n,m;int k=1;struct student{char num[20];char name[20];int age;char profession[50];int maths;int english;int C_program;float ave;struct student * next;};float ave(struct student * p1){float ave;ave=(float)(p1->maths+p1->english+p1->C_program)/3;return ave;}void save(struct student *head){struct student *p1 = head;FILE *outFile;outFile = fopen("stu.bin", "wb");if (outFile == NULL) {printf("\nFile error.");}else {while(p1 != NULL){fwrite(p1, sizeof(struct student), 1, outFile);p1 = p1->next;}fclose(outFile);}}//将数据存入文档中void check(struct student * head,struct student * p1) {struct student *h=head;for(m=0;m<n;m++,h=h->next ){if(strcmp( h->num,p1->num)==0){printf("输入号码重复\n");printf("请重新输入学号:");scanf("%s",p1->num);getchar();check(head,p1);}}}//检验学号是否重复struct student * creat(){struct student * head;struct student *p1,*p2;n=0;p1=p2=(struct student *)malloc(LEN); printf("学号:\n");scanf("%s",p1->num);getchar();printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);head=NULL;while(strcmp(p1->num,"0")!=0){n=n+1;if(n==1)head=p1;else p2->next=p1;p2=p1;p1=(struct student *)malloc(LEN);printf("学号:\n");scanf("%s",p1->num);getchar();check(head,p1);//检查输入的学号是不是重复且是不是重复输错 printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);}p2->next=NULL;save(head);return(head);}//录入数据并将其保存至文档void print(struct student *head){struct student * p;printf("\n这%d个学生的成绩为:\n",n);printf("学号姓名年龄专业数学英语 C语言平均成绩\n");p=head;if(head==NULL)printf("The info error\n");if(head!=NULL)while(p!=NULL){p->ave=ave(p);printf("%s%8s%8d%13s%9d%10d%9d%10.2f",p->num,p->name,p->age,p->profession,p->maths,p->engl ish,p->C_program,p->ave);printf("\n");p=p->next;}}//输出链表//struct student* read(){struct student *head = NULL;struct student *p2 = head;struct student record;FILE *infile;infile = fopen("stu.bin", "rb");n=1;if(infile == NULL){printf("\nFile error.");}else {head = (struct student *)malloc(sizeof(struct student));fread(head, sizeof(*head), 1, infile);p2 = head;while(fread(&record, sizeof(record), 1, infile))//fread返回数据个数,结束和出错返回0;{p2->next = (struct student *)malloc(sizeof(struct student));memcpy(p2->next, &record, sizeof(record)); //复制结构体数据p2 = p2->next;n=n+1;}p2->next=NULL;fclose(infile);}return head;}//从文件中读取数据struct student * search_num(struct student * head,char array[20]){struct student * p1;p1=head;if(head==NULL){printf("打开错误");return(head);}while((strcmp(array,p1->num)!=0)&&(p1->next!=NULL)){p1=p1->next;}//找到相应的学号if(strcmp(array,p1->num)==0){printf("学号姓名年龄专业数学英语 C语言\n");printf("%s%10s%10d%15s%11d%12d%11d",p1->num,p1->name,p1->age,p1->profession,p1->maths,p1-> english,p1->C_program);printf("\n");}else printf("此学号不存在\n");return(head);}//按学号查询数据//]struct student * search_name(struct student * head,char array[20]){struct student * p1;p1=head;if(head==NULL){printf("打开错误");return(head);}while((strcmp(array,p1->name)!=0)&&(p1->next!=NULL)){p1=p1->next;}//找到相应的学号if(strcmp(array,p1->name)==0){printf("学号姓名年龄专业数学英语 C语言\n");printf("%s%10s%10d%15s%11d%12d%11d",p1->num,p1->name,p1->age,p1->profession,p1->maths,p1-> english,p1->C_program);printf("\n");}else printf("此姓名不存在\n");return(head);}//按姓名查询数据//struct student * change(struct student * head,char array[20]){struct student *p1;p1=head;if(head==NULL){printf("打开错误!");return(head);}while((strcmp(array,p1->num)!=0)&&(p1->next!=NULL)) {p1=p1->next;} //找到相应的学号if(strcmp(array,p1->num)==0){printf("请输入更改的学号:\n");printf("学号:\n");scanf("%s",p1->num);getchar();printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);save(head);}else printf("所查学号不存在\n");return(head);}//修改数据//struct student * del(struct student * head,char array[20]) {struct student * p1,* p2;if(head==NULL){printf("\nlist null!\n");return head;}p1=head;while((strcmp(array,p1->num)!=0)&&(p1->next!=NULL)){p2=p1;p1=p1->next;}//找到相应的学号、if((strcmp(array,p1->num)==0)){if(strcmp(array,head->num)==0)head=p1->next;elsep2->next=p1->next;}elseprintf("你查询的学号(%s)不存在!",p1->num);save(head);return(head);}void add(struct student * head){struct student *p1;printf("\n请输入添加学生的信息:\n");p1=(struct student *)malloc(LEN);printf("学号:\n");scanf("%s",p1->num);getchar();check(head,p1);printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);FILE *outFile;outFile = fopen("stu.bin", "ab");if (outFile == NULL) {printf("\n打开错误.");}fwrite(p1, sizeof(struct student), 1, outFile);fclose(outFile);}void sta(struct student * head,char array[20],int max,int min) {struct student *p1=head;int k=0;if(strcmp(array,"maths")==0){while(p1!=NULL){if(p1->maths>=min&&p1->maths<=max)k++;p1=p1->next;}printf("数学科目在%d到%d之间的人数为:%d\n",min,max,k);}else if(strcmp(array,"english")==0){while(p1!=NULL){if(p1->english>=min&&p1->english<=max)k++;p1=p1->next;}printf("英语科目在%d到%d之间的人数为:%d\n",min,max,k); }else if(strcmp(array,"C_program")==0){while(p1!=NULL)if(p1->C_program>=min&&p1->C_program<=max)k++;p1=p1->next;}printf("C语言科目在%d到%d之间的人数为:%d\n",min,max,k); }}void exit(){printf("\t\t");printf("**********************\n");printf("\t\t");printf("*******感谢使用*******\n");printf("\t\t");printf("**********************\n");k=0;}void Chooseproject(int i){ struct student * head=NULL;if(i==1){head = read();print(head);else if(i==2){int p=1 ;printf("请选择按学号查询(1)还是按姓名查询(0):");scanf("%d",&p);while(p!=1&&p!=0){printf("输入错误!");printf("请选择学号查询(1)还是姓名查询(0)");scanf("%d",&p);}if(p==1){head = read();char num[20];printf("请输入查询的学号:\n");scanf("%s",num);head=search_num(head,num);while(strcmp(num,"0")!=0){printf("是否继续查询(是就输学号,否就输0):\n");scanf("%s",num);if(strcmp(num,"0")==0)break;head=search_num(head,num);}}else if(p==0){head = read();char name[20];printf("请输入查询的学号:\n");scanf("%s",name);head=search_name(head,name);while(strcmp(name,"0")!=0){printf("是否继续查询(是就输学号,否就输0):\n"); scanf("%s",name);if(strcmp(name,"0")==0)break;head=search_name(head,name);}}}else if(i==3){ head = read();char num[20];printf("请输入要更改的学号:\n");scanf("%s",num);getchar();head=change(head,num);print(head);while(strcmp(num,"0")!=0){printf("是否继续更改(是就输学号,否就输0):\n"); scanf("%s",num);getchar();if(strcmp(num,"0")==0)break;head=change(head,num);print(head);}}else if(i==4){head=read();add(head);}else if(i==5){char num[20];head=read();printf("请输入要删除的学号:\n");scanf("%s",num);getchar();head=del(head,num);print(head);}else if(i==6){head = read();int i;printf("\t\t");printf("************1.学号排序;********************\n");printf("\t\t");printf("************2.平均成绩排序;****************\n");printf("\t\t");printf("************3.数学成绩排序;****************\n"); printf("\t\t");printf("************4.英语成绩排序;****************\n"); printf("\t\t");printf("************5.C语言成绩排序;***************\n");printf("请输入相应的排序代号:");scanf("%d",&i);sort_down(head,i);}else if(i==7){head=read();int min,max;char subject[20];printf("\t\t");printf("************数学(maths);***************\n");printf("\t\t");printf("************英语(english);*************\n");printf("\t\t");printf("***********C语言(C_program);***********\n");printf("请选择要统计的项目:\n");scanf("%s",subject);getchar();while((strcmp(subject,"maths")!=0&&strcmp(subject,"english")!=0&&strcmp(subject,"C_pro gram")!=0)){printf("输入错误!");printf("\t\t");printf("************数学(maths);***********\n");printf("\t\t");printf("************英语(english);***********\n");printf("\t\t");printf("***********C语言(C_program);***********\n");printf("请选择要统计的项目:\n");scanf("%s",subject);getchar();}printf("请输入分数段的区间:");printf("区间上限:");scanf("%d",&max);printf("区间下限:");scanf("%d",&min);while(min>=max){printf("输入的下限大于等于上限,错误!");printf("请重新输入分数段的区间:");printf("区间上限:");scanf("%d",max);printf("区间下限:");scanf("%d",min);}sta(head,subject,max,min);}else if(i==8){printf("\t\t");printf("************************************\n");printf("\t\t");printf("**************感谢使用**************\n");printf("\t\t");printf("************************************\n");k=0;}}//选择功能void menu(){int i;printf("\t\t");printf("***********1.信息浏览;***********\n");printf("\t\t");printf("***********2.信息查询;***********\n");printf("\t\t");printf("***********3.信息修改;***********\n");printf("\t\t");printf("***********4.信息添加;***********\n");printf("\t\t");printf("***********5.信息删除;***********\n");printf("\t\t");printf("***********6.信息排序;***********\n");printf("\t\t");printf("***********7.信息统计;***********\n");printf("\t\t");printf("***********8,退出系统;***********\n");printf("请选择项目:");scanf("%d",&i);while(i<1||i>8){printf("输入错误,请重新输入:\n");printf("\t\t");printf("***********1.信息浏览;***********\n");printf("\t\t");printf("***********2.信息查询;***********\n");printf("\t\t");printf("***********3.信息修改;***********\n");printf("\t\t");printf("***********4.信息添加;***********\n");printf("\t\t");printf("***********5.信息删除;***********\n");printf("\t\t");printf("***********6.信息统计;***********\n");printf("\t\t");printf("***********7,退出系统;***********\n");printf("请重新选择项目:");scanf("%d",&i);}Chooseproject(i);}int _tmain(int argc, _TCHAR* argv[]){ struct student *head = NULL;printf("\t\t");printf("************************************************************\n");printf("\t\t");printf("*********************学生管理系***************************\n");printf("\t\t");printf("************************************************************\n" );printf("是否已经录入信息?\n");char c;printf("请输入 'y' 或 'n':");c=getchar();getchar();while(c!='n'&&c!='y'){printf("输入错误,请重新输入( 'y' 或 'n'):\n");c=getchar();getchar();}if(c=='n'){printf("请输入学生成绩:\n");head=creat();}while(k!=0){menu();}system("pause");return 0;}。

c程序设计大作业

c程序设计大作业

c程序设计大作业C程序设计大作业C程序设计是一门实践性很强的课程,大作业是检验学生对C语言掌握程度的重要方式。

本次大作业的目的在于通过实际编程练习,加深对C 语言基础语法、数据结构、算法设计和程序调试等方面的理解,同时培养学生的编程思维和解决实际问题的能力。

一、大作业要求1. 题目选择:学生可以从以下题目中任选一题完成:- 学生信息管理系统- 图书馆管理系统- 简易计算器- 字符串处理工具- 图形界面的五子棋游戏2. 功能实现:每个题目都应实现基本功能,例如:- 学生信息管理系统:添加、删除、修改、查询学生信息。

- 图书馆管理系统:图书借阅、归还、查询等。

- 简易计算器:实现基本的加减乘除运算。

- 字符串处理工具:实现字符串的复制、连接、查找、替换等操作。

- 图形界面的五子棋游戏:实现基本的下棋逻辑和胜负判断。

3. 代码规范:代码应遵循良好的编程规范,包括但不限于:- 明确的函数分工,每个函数应有简短的注释说明其功能。

- 变量命名应清晰,避免使用无意义的缩写。

- 代码结构清晰,逻辑性强。

4. 文档编写:提交的作业应包括:- 程序设计说明书:介绍程序的功能、设计思路、实现过程等。

- 源代码:按照题目要求编写的C语言代码。

- 用户手册:简要说明如何使用程序。

5. 提交方式:所有材料应以电子文档形式提交,包括设计说明书、源代码和用户手册。

二、大作业流程1. 选题:学生在教师的指导下选择适合自己能力的题目。

2. 需求分析:明确程序需要实现的功能和性能要求。

3. 设计:设计程序的总体结构和各个模块的详细设计。

4. 编码:根据设计文档编写程序代码。

5. 测试:对编写的程序进行测试,确保功能正确无误。

6. 调试:根据测试结果进行必要的调试,修正程序中的错误。

7. 文档编写:编写程序设计说明书和用户手册。

8. 提交:按照要求提交所有材料。

三、评分标准1. 功能实现:程序是否实现了题目要求的所有功能。

2. 代码质量:代码是否规范、清晰、易读。

c语言大作业课程设计

c语言大作业课程设计

c语言大作业 课程设计一、课程目标知识目标:1. 理解C语言中数组、函数、指针等基本概念,掌握其应用方法;2. 学会使用C语言编程解决实际问题,如数值计算、数据处理等;3. 了解C语言程序设计中常用的算法与数据结构,如排序、查找等;4. 掌握C语言编程规范,提高代码质量。

技能目标:1. 能够独立设计并编写具有实际意义的C语言程序,具备一定的编程能力;2. 学会运用调试工具,如GDB,对程序进行调试,找出并解决程序中的错误;3. 能够阅读和理解C语言源代码,具备一定的代码阅读能力;4. 具备团队协作能力,与他人共同完成复杂的编程任务。

情感态度价值观目标:1. 培养学生对C语言编程的兴趣,激发学习热情,树立编程自信心;2. 培养学生严谨、认真的学习态度,养成良好的编程习惯;3. 培养学生面对编程难题时的耐心与毅力,具备解决问题的决心;4. 培养学生的创新意识,鼓励尝试新方法,勇于挑战自我。

本课程针对高年级学生,课程性质为实践性较强的编程课程。

在教学过程中,要求学生具备一定的C语言基础,能够通过本课程的学习,将所学的理论知识运用到实际编程中,提高解决实际问题的能力。

课程目标的设定旨在使学生能够通过本课程的学习,掌握C语言的核心知识,培养编程技能,同时注重情感态度价值观的培养,全面提高学生的综合素质。

后续教学设计和评估将围绕这些具体学习成果展开。

二、教学内容本章节教学内容主要包括以下几部分:1. C语言基础回顾:数组、函数、指针等基本概念及其应用;- 数组:一维数组、二维数组、字符数组;- 函数:函数定义、调用、传值与传址;- 指针:指针的概念、指针与数组、指针与函数。

2. 算法与数据结构:排序、查找等常用算法;- 排序:冒泡排序、选择排序、插入排序;- 查找:顺序查找、二分查找。

3. 编程规范与调试技巧:C语言编程规范、GDB调试工具的使用;- 编程规范:命名规则、代码格式、注释;- 调试技巧:设置断点、单步执行、查看变量值。

C语言大作业报告书

C语言大作业报告书

C语言大作业报告书一、目的1)巩固练习C语言的基础知识2)综合运用C语言的编程方法3)针对抽象的解题思路,设计程序结构4)基于VC6调试、测试与修改程序二、内容2.1、阅读程序,推导结果。

1、#include<iostream>using namespace std;int a = 200;int main(){int s=0;for(int i=1; i<=5; i++)s+=++a;cout<<s<<endl;return 0;}运行结果:10152、#include<iostream>using namespace std;int a[3][3]={{1},{2},{3}};int b[3][3]={1,2,3};void main(){cout<<a[0][1] + b[1][0] << ' ';cout<<a[1][0] + b[0][1] << endl;}运行结果:0 43、#include<iostream>using namespace std;void main(){int num=0,i=10;do{i--;num+=i;}while(--i);cout<<num<<endl;}运行结果:252.2、应用编程1、由键盘输入5个整数,输出其中最大、最小的数与它们的平均值。

提示:设置2个指示变量,分别记录最大、最小的数的下标;指示变量先设置为0,然后遍历数组,刷新指示。

解:#include <iostream>void main(){int a[5],i,s=0;float arry;for(i=0;i<5;i++)cin>>a[i];for(i=0;i<5;i++){for(int j=i+1;j<5;j++){if(a[i]>a[j]){int t=a[j];a[j]=a[i];a[i]=t;}}}cout<<"最小数="<<a[0]<<endl;cout<<"最大数="<<a[4]<<endl;for(i=0;i<5;i++){s=s+a[i];}arry=s/5;cout<<"平均值="<<arry<<endl;}输入:3 4 5 7 16输出:最小数=3最大数=16平均值=72、输出以下图案。

c语言课程设计大作业

c语言课程设计大作业

c语言课程设计大作业一、课程目标知识目标:1. 理解C语言中数组、函数、指针等基本概念,掌握其应用方法。

2. 学会运用结构体、文件操作等C语言高级特性进行程序设计。

3. 掌握程序调试与优化的基本方法,提高代码质量。

技能目标:1. 能够根据需求,设计并实现具有实用价值的C语言程序。

2. 培养良好的编程习惯,编写规范、可读性强的代码。

3. 提高问题分析能力,能够针对实际问题设计合适的算法和数据结构。

情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发自主学习动力。

2. 培养学生面对困难和挑战时,保持积极心态,勇于尝试,善于合作,克服困难。

3. 增强学生的创新意识,鼓励学生敢于发表自己的观点,尊重他人的意见。

课程性质:本课程为C语言课程设计大作业,旨在巩固和拓展学生所学知识,提高实际编程能力。

学生特点:学生已具备一定的C语言基础,对编程有一定兴趣,但在实际应用中可能存在编程思路不清晰、代码规范意识不足等问题。

教学要求:结合学生特点,注重实践,引导学生从实际问题出发,培养解决复杂问题的能力。

教学过程中,注重激发学生兴趣,培养良好的编程习惯,提高团队协作能力。

通过本课程的学习,使学生在知识、技能和情感态度价值观等方面取得具体的学习成果。

二、教学内容1. 复习C语言基础知识:数组、函数、指针、控制结构等。

教材章节:第二章、第三章、第四章内容:数组的应用、函数的定义与调用、指针的概念与用法、程序流程控制。

2. C语言高级特性学习:结构体、文件操作、动态内存分配等。

教材章节:第六章、第七章、第十章内容:结构体的定义与使用、文件读写操作、动态内存分配与释放。

3. 程序设计与实现:根据实际需求,设计并实现具有实用价值的C语言程序。

教材章节:全书内容:综合运用所学知识,进行程序设计、编写代码、调试与优化。

4. 编程规范与调试技巧:培养良好的编程习惯,提高代码质量。

教材章节:附录内容:代码规范、调试方法、性能优化。

c语言程序设计大作业

c语言程序设计大作业

C语言程序设计大作业一、引言C语言是一种高级编程语言,广泛应用于计算机科学和软件开发领域。

在C语言程序设计大作业中,学生需要设计和实现一个完整的C语言程序,以展示对C语言的理解和掌握程度。

本文将深入探讨C语言程序设计大作业的要求和技巧,帮助读者更好地完成这一任务。

二、任务要求C语言程序设计大作业有以下要求:1.设计和实现一个功能完整的C语言程序。

2.程序应具备良好的用户交互性。

3.程序应包括错误处理和异常处理机制。

4.程序代码应遵循良好的编程规范和代码风格。

三、程序设计思路完成C语言程序设计大作业需要进行以下步骤:1. 确定程序主题首先,需要确定程序的主题和功能。

可以根据个人兴趣和实际需求选择一个合适的主题,如学生管理系统、图书管理系统等。

2. 分析需求在确定程序主题后,需要详细分析程序的需求,包括功能需求和性能需求。

功能需求指程序需要实现的功能,性能需求指程序需要满足的性能指标,如响应时间、并发处理等。

3. 设计程序架构在分析需求后,需要设计程序的架构。

程序架构应包括模块组织结构、数据结构和算法等。

可以使用面向对象的方法进行设计,将程序拆分为多个模块,并建立模块之间的关联关系。

4. 实现程序根据程序设计思路,开始编写程序代码。

编写过程中应注意代码的可读性和可维护性,遵循良好的编程规范和代码风格。

5. 测试和调试完成程序编写后,需要进行测试和调试工作。

通过测试,确保程序能够正常运行,并满足需求。

四、关键技巧完成C语言程序设计大作业需要掌握以下关键技巧:1. 理解C语言基础知识在C语言程序设计中,需要掌握C语言的基础知识,包括数据类型、流程控制、函数等。

只有理解这些基础知识,才能进行程序设计和实现。

2. 熟悉常用库函数C语言提供了丰富的库函数,如输入输出函数、字符串处理函数等。

熟悉常用库函数的使用方法,可以提高程序的开发效率。

3. 错误处理和异常处理在程序设计过程中,要考虑错误处理和异常处理机制。

《C语言实训》大作业2

《C语言实训》大作业2

大连海事大学本科课程实验、实践教学大纲
1.基于链表的“学生信息管理系统”
实验内容:编写并调试程序,实现学校各专业班级学生信息的管理。

定义学生信息的链表结点类型,包括:学号、姓名、班级、专业、3门成绩。

实验要求:
(1)main函数:以菜单形式将各项功能提供给用户,根据用户的选择,调用相应的函数。

(2)定义函数CreateList:按学号由小到大,建立有序的链表。

逆序输入n 个学生信息(调用n
次input),学号大的先输入,建立带头结点的单链表。

(3)定义函数Output:以指向某个学生结点的指针为参数,将学生信息格式化输出。

(4)定义函数Save:将某个学生信息存入文件。

(5)定义函数Fetch:从文件中随机读取某个学生的信息。

(6)定义函数Search_num:查找指定学号的学生,返回指向该学生结点的指针。

(7)定义函数InsertList:在函数中输入一个学生的信息,将该学生信息插入到链表中的相应位
置,并保持此链表按学号的有序性。

(8)定义函数Delete_num:从链表中删除指定学号的学生。

(9)定义函数Search_major _subject_score:查找某个专业的、某门课程的成绩小于某个分数的
学生,返回指向该学生结点的指针。

(10)定义函数Delete_ major _subject:从链表中删除某个专业的、某门课程的成绩小于某个分数
的学生。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c 语言大作业《面向对象技术课程大作业》设计报告书题目:指导教师: 姓名:学号: 日期:管理科学与工程学院2011-2012 学年第1 学期一、需求分析:随着小型超市规模的发展不断扩大,商品数量急剧增加,商品的各种信息量也成倍增长。

超市在时时刻刻需要对商品各种信息进行统计分析。

而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。

超市管理系统是市场上最流行的超市上常用的系统之一,它主要包含以下几个模块: 登入、原始数据录入、数据的汇总及查询等。

从而,实现对进货、库存和销售全面、动态、及时的管理。

超市管理系统是一个多部门、多任务的信息管理系统,包含人事部、采购部、销售部、财务部和总经理。

对于不同的部门必须有独立的功能。

数据的可靠性是信息管理的必要保证,所以不同部门的员工在执行各自权限功能时对其它部门数据的影响必须降到最低,因此超市管理系统也同样是通过权限来实现数据的更新和行为的操作。

用户权限分为: 各部门普通员工权限、各部门经理权限、各部门管理员权限和总经理权限。

计算机作为一种高效的管理工具,对现代企业的管理发挥了及其重要的作用。

商业超市是当今最重要的商业经营形式之一,为了进一步提高商业超市的管理水平和竞争力,管理信息系统在商业超市中的趋势已是大势所趋。

随着小超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息也成倍增长。

所以,计算机管理超市的模式,是一种很有必要的管理模式,不但能提高工作效率,还能减少工作人员的工作量。

是一种非常有潜力的市场经营模式。

二、系统的主要功能功能需求:1、超市员工管理2、进货管理3、销售管理4、销售额管理具体如下:(1) 登入模块员工可通过该功能登入本系统,执行其权限范围内的所有功能。

(2) 新进职员登记模块新入职员工通过该功能,添加该员工信息入员工信息表。

(3) 员工信息修改模块员工通过该功能,修改其住址、联系电话、银行卡号。

(4) 职员离职登记模块员工通过该功能,添加职员离职信息。

(5) 修改员工登入密码模块员工通过该功能,修改登入密码。

(6) 员工考勤登记模块员工通过该功能,添加考勤记录。

(7) 添加采购信息模块员工通过该功能,添加采购记录。

(8) 修改商品单价模块员工通过该功能,修改商品单价(9) 按商品编号查看采购信息模块员工通过该功能,查看某一商品的采购信息。

(10) 按月份查看采购信息模块员工通过该功能,查看某月的采购信息。

(11) 查看供应商信息模块员工通过该功能,查看所有供应商信息。

(12) 查看采购部行为记录模块员工通过该功能,查看采购部行为信息。

(13) 按商品编号查看已售信息模块员工通过该功能,查看某一商品的已售信息。

(14) 按月份查看已售信息模块员工通过该功能,查看某月的已售信息。

(15) 查看全部已售信息模块员工通过该功能,查看所有已售信息。

(16) 查看商品库存量信息模块员工通过该功能,查看所有商品库存信息(17) 按商品编号查看商品信息模员工通过该功能,查看某一商品的信息。

(18) 查看所有商品信息模块员工通过该功能,查看所有商品的信息。

(19) 查看业绩分析模块员工通过该功能,查看所有已售商品的分析信息。

(20) 查看销售部行为记录模块员工通过该功能,查看销售部行为信息。

(21) 查看财务信息模块员工通过该功能,查看所有财务的信息。

(22) 查看财务部行为记录模块员工通过该功能,查看财务部行为信息。

(23) 查看所有数据库信息模块员工通过该功能,查看所有数据库数据信目标:实现营业额的最大化三、流程图超市商品系统流程图添删显查销加除示询售额息丿111、四、数据结构设计考虑到一种商品属性一般有:名称、件数、进价、售价、生产日期、保质期、条形码、所在货架等信息。

在本系统设计中,为了节省工作量,只实现名称、件数、保质期、利润的保存,其它数据类似可以简单的添加从而实现更全面的功能。

基于C++勺面向对象性,本系统采用类设计,用对象来保存数据。

从而可以体现C++勺封装、继承与多态的特点。

超市业务流程图息丿息丿息丿息丿-------- 门击Li—m 习E3b, t1 V抽i呦摩驴3耳亦加ph ■ M3 5「尸跡k五、类设计系统中设计勺类,分条目介绍这些类勺数据成员和函数成员。

为了实现不同商品勺保存和函数实现,在本系统中用到了虚基类(抽象类),从而很好地使商品这个类族发挥多态性。

主要类设计:class XuShangpin{public:virtual void Show()const=0;// 打印商品信息virtual void Add()=0;// 添加商品};class Shipin : public XuShangpin {private: int num;// 商品件数int date;// 商品生产日期string name;// 商品名称static long S_lirun;// 商品(食品)利润, 设置为静态变量,记录该种商品当前勺销售利润public:Shipin();// 构造函数~Shipin();// 析构函数void Add();// 添加商品void Xiaoshou();// 销售商品,在本函数里更改原有数据bool IsGuoqi();// 判断商品是否过期friend ostream & operator<<(ostream & output,const Shipin &);// 运算符重载void Show();// 打印商品信息};class Zahuo : public XuShangpin {private:int num;// 商品件数string name;// 商品名称static long Z_lirun;// 商品(杂货)利润, 设置为静态变量,记录该种商品当前的销售利润public:Zahuo();// 构造函数~Zahuo();// 析构函数void Add();// 添加商品void Xiaoshou();// 销售商品,在本函数里更改原有数据friend ostream & operator<<(ostream & output,const Zahuo &);// 运算符重载void Show();// 打印商品信息};class Manager{private:string Name;// 售货员姓名string Id;// 售货员ID 号string Mima;// 进入系统密码,() 初始化为123public:Manager(string name,string id,string mima){Name=name;Id=id;Mima=mima;}string GetName(){return Name;}string GetMima(){return Mima;}void ADD(Shipin s[],int m,Zahuo z[],int n);// 添加void XIAOSHOU(Shipin s[],int m,Zahuo z[],int n);// 销售void CHAKAN(Shipin s[],int m,Zahuo z[],int n);// 查看};六、主要算法设计系统中用到的关键算法和对应函数的设计,用到的知识点、难点及解决办法用静态变量保存一类商品的销售额,静态变量是类的成员,不属于某一特定对象;Ma nager 的函数GUANLI()主要进行程序的检测。

七、主要代码食品类主要成员函数实现double Shipin::S_lirun=0.0;// 静态变量初始化void Shipin::ShowS_lirun(){cout<<S_lirun<<endl;}Shipin::Shipin(string na,int num,double li){name=na;num=0;lirun=li;}void Shipin::Add(string na1,int nu1,double li1){name=na1;num=nu1;lirun=li1;}void Shipin::Xiaoshou(int n) {if(num>-1){S_lirun+=lirun*n;num-=n;}}void Shipin::Show()const{cout<<" 商品名称:"<<name<<'\t'<<" 剩余数量:"<<num<<'\t'<<"已赚利润:"<<S_liru *<en dl;售货员类主要函数实现void Manager::XIAOSHOU(Shipin s[],int m,Zahuo z[],int n){int i;string na;int nu;cout<<" 请您输入刚才卖掉的商品信息( 商品名,件数)"<<endl; cin>>na>>nu;for(i=0;i<m;i++)if(s[i].Getname()==na){s[i].Xiaoshou(nu);return ;}for(i=0;i<n;i++)if(z[i].Getname()==na){z[i].Xiaoshou(nu);}}void GUANLI(Manager a,Shipin s[],int m,Zahuo z[],int n){int i;cout<<" 请输入您要进行的业务管理编号:"<<endl;cout<<" 添加商品键入1,销售商品键入2,查看销售情况键入3, 退出键入0"<<endl;cin>>i;while(i!=0){switch(i){case 1:a.ADD(s,m,z,n);break;case 2:a.XIAOSHOU(s,m,z,n);break;case 3:a.CHAKAN(s,m,z,n);break;default:cout<<" 您按键不符合要求,请重新选择:"<<endl;cin>>n;}cout<<" 添加商品键入1,销售商品键入2,查看销售情况键入3, 退出键入0"<<endl; cin>>i;八、系统运行结果样例九、结束语通过这个系统的编写,让我对 C++编程有更深的了解。

相关文档
最新文档