C语言实习报告

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

返回头指针
5) 求算各科平均值模块:
p=head,是 p 指向第一个结点 P 指向的是尾结点
True
p 指向下一个结点 当 p 指的是表尾结束 输出 a 平均分
6) 学生信息输出
Fa lse s+=p->sum 求总分 a=(float)s/i 得到平均分 i 是记录数
p=head,使 p 指向第一结点
/*定义结构体类型*/ struct student
{
环境学院
地信 0912 周文君
- 11 -
long id; char name[20]; char sex[10]; int chinese; int maths; int english; int total; struct student *next; };
环境学院
地信 0912 周文君
-3-
C 语言实习
目录
实习目标------------------------2 系统概况------------------------2 需求分析------------------------4
总体功能要求---------------------4 功能模块图、流程图---------------4 性能的要求-----------------------8
C 语言实习
C 语言实习报告
(用链表实现学生学籍管理)
姓名:周文君 班级:地信 0912 班 学号:0920209227 指导老师:史守正 实习内容:编写程序 实习地点:C1-学生机房 实习时间:2010/7/22 至 2010/7/26
环境学院
地信 0912 周文君
-1-
C 语言实习
绪言
C 语言使国内外广泛使用的一种计算机语言。C 语言功能丰富、
“找 不到” 的信

4) 学生信息排序
环境学院
地信 0912 周文君
-9-
C 语言实习
p=head,information=stud;STUDENT *p,*q,*t,*h1; (定义临时指针)
原来的表是否空表


输出 “空表”
当 strcmp(t->no(or total),p->no(or total))>0(进行学号比 较)以及 p!=NULL
int n;
C 语言实习
/*定义学生学号*/ /*定义学生姓名*/ /*定义学生性别*/ /*定义学生语文成绩,假设为整数*/ /*定义学生数学成绩,假设为整数*/ /*定义学生英语成绩,假设为整数*/ /*定义总分,假设为整数*/
/*n 为全局变量,定义为结点个数*/
/*创建链表函数,带回一个指向链表头的指针*/ struct student *create(void)
原来的链表是空表


将 p 所 指 的 当 information->no>p->no 以及 p1 所指的不是表尾结点
结点作为唯
Information 指向 p1 位置,p1 向后移一个结
一的结点

True
m<=p->num
False
q->num
P 指向头节点
p->next=informatio n
详细设计-----------------------8
程序代码-------------------------8 关键部分的注视和说明-------------17
设计心得总结-------------------19
环境学院
地信 0912 周文君
-4-
C 语言实习
实习目标
实习目的
(1) 巩固 C 语言所学基本课程; (2) 提高 C 语言编程的综合应用能力; (3) 学会 C 语言程序的编译、调试方法。 (4) 在编程的过程中提高自己各方面的能力,例如:自主思考,大胆实践,团 队合作等 (5) 要学会用正确心态且耐心的面对长篇的程序
程序代码
#include<stdio.h> #include<ctype.h> #include<string.h> #include<Malloc.h> #define NULL 0 #define LEN sizeof(struct student)
/*头文件*/ /*令 NULL 为 0,表示空地址*/ /*令 LEN 代表 struct student 类型数据的长 度,sizeof 是“求字节数运算符”*/
表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性
好。既具有高级语言的优点,又具有低级语言的许多特点,因此特别
适合编写系统软件。
在经过一整个学期的 C 语言理论学习,我们已经能够掌握其基本
语法,但是缺乏一定的实际运用的能力。为了让我们更好的理解和运
用其解决实际问题,并且对结构化程序有更进一步的认识,学校组织
环境学院
地信 0912 周文君
-6-
C 语言实习
需求分析
总体功能要求
1)链表的建立。每个节点包括:学号、姓名、性别、语文、数学、英语、 总分。
2)节点的插入。按学号的顺序插入。 3)删除链表中的节点。按学号或者姓名; 4)链表的输出。按学号排序、按总分排序
功能模块图、流程图
功能模块图
插入学生记录
创建学生记录
菜单的设计比较简洁,每一个执行命令都有相对应的编码,使用者根据需要 来选择,系统会自动执行相应操作,并且输出相关信息以供使用者参考。 主菜 单如下所示:1:创建学生信息记录
2:删除学生信息记录 3:插入学生信息记录 4:按学号将记录排序 5:按总份将记录排序 6:计算平均成绩 7:退出系统 8:输出须生信息记录
{ struct student *head; struct student *p1,*p2; n=0; p1=p2=(struct student*)malloc(LEN); printf("\ninput student's id: "); scanf("%ld",&p1->id); printf("input student's name: "); scanf("%s",p1->name); printf("input student's sex(f or m): "); scanf("%s",p1->sex); printf("input chinese score: "); scanf("%d",&p1->chinese); while(p1->chinese>100||p1->chinese<0) {printf("error,input again\n"); printf("input chinese score: "); scanf("%d",&p1->chinese);} printf("input maths score: "); scanf("%d",&p1->maths); while(p1->maths>100||p1->maths<0) {printf("error,input again\n"); printf("input maths score: "); scanf("%d",&p1->maths);} printf("input english score: "); scanf("%d",&p1->english); while(p1->english>100||p1->english<0) {printf("error,input again\n"); printf("input english score: "); scanf("%d",&p1->english);}
了这一次 C 语言实习。
实习中,我们将按要求完成一个较为复杂的程序编写——学生学
籍管理程序。
实习基本内容和要求:
1、总体功能要求
(1)链表的建立:每个节点包括:学号、姓名、性别、语文、
数学、英语、总分;
(2)节点的插入:按学号的顺序插入;
(3)删除链表中的节点:按学号或者姓名;
(4)链表的输出:按学号排序、按总分排序。
课程目标
(1) 掌握 C 语言中的基本数据输入、输出; (2) 熟练掌握 C 语言中的三种基本结构的使用; (3) 熟练使用 C 语言中的数组; (4) 熟练使用 C 语言中的函数; (5) 熟练使用 C 语言中的指针; (6) 熟练使用 C 语言中的结构体,尤其是链表。
系统概况
本系统就是运用 C 程序设计中的结构体、指针、函数(系统库函数、 自定义函数)、用指针处理链表、文件操作等知识编写的一个简单的方便查询和 管理学籍的应用系统。整个系统考虑到了系统的容错性和可操作性,严格遵守功

否 information->next=
head=p
Information->next=q NULL
p->next=informatio information->next=p (插到表尾之后)
n
n=n+1
环境学院
地信 0912 周文君
-8-
3) 学生信息删除模块
C 语言实习
链表是一个空表


p1=head
环境学院
地信 0912 周文君
-5-
C 语言实习
能要求进行创建,操作简单、查询方便,是一个简单而实用的方便管理和查阅学 籍的应用系统。
系统名称:用链表实现简单的学籍管理系统 软件要求:Turbo c 2.0 硬件要求: PC 机 程序的功能:对 N 个学生,通过该系统完成对这些学生的学籍信息进行录 入、显示、插入、修改、删除、保存等操作,且是要按照一定顺序的,从而达到 对其进行方便管理的目的。整个系统运用模块来组建该学生学籍管理,可分为信 息输入,输出模块,信息查询模块,排序模块,求总分模块。 主界面:
删除学生记录
排序(按学号) 计算平均分
学生学籍 管理系统
输出记录
排序(按总分) 退出系统
源自文库
环境学院
地信 0912 周文君
-7-
C 语言实习
流程图
1) 创建动态链表
开辟一个新的结点,并使 p1,p2 指向它 读入一个学生数据给 p1 所指的结点
head=NULL,n=0 当读入的 p1->num 不是零
输 当 num 不等于 p1->num 以及 p1 所指的结点不是表尾结点

p2=p1(p2 后移一个位置)

p1=p1->next (p1 后移一个位置)

p1 是要删除的结点


p1 所指是头结点


输出
head=p1->next (删除头结点)
p2->next=p1->next (删除一个结点)
p 指向的不是尾结点


输出 p 所指向的结点
P 指向下一结点
当 p 指的不是表尾
环境学院
地信 0912 周文君
- 10 -
C 语言实习
性能的要求
1)各个功能分别用函数实现; 2)节点信息让用户通过键盘输入; 3)总分通过计算获得; 4)有简单的操作界面; 5)尽可能考虑程序的容错性、可操作性。
详细设计
q=p
待排序点值大,往后插,所以新表指针后
p=p->next

if(p==q)
True
False
t->next=p 待排序点的后继为 P
t->next=p (t=p+1)
h=t 新头结点为待排序点
q->next=t(q=t+1)
printf("Finish sorting\n"); (排序成功)
return (h)
2、性能的要求:
(1)各个功能分别用函数实现;
环境学院
地信 0912 周文君
-2-
C 语言实习
(2)节点信息让用户通过键盘输入 (3)总分通过计算获得; (4)有简单的操作界面; 尽可能考虑程序的容错性、可操作性。 教材和主要参考书目: (1)教材:《C 程序设计》,谭浩强编著,清华大学出版社 (2)主要参考书目: ①《C 程序设计教程》,谭浩强编著,清华大学出版社; ②《C 语言程序设计——习题与实验指导》,谭浩强编著,清华 大学出版社。实习过程: 我们将有 5 天的时间完成一个程序和一份实习报告。 1、 我们要根据题目的要求进行需求分析和资料整理;(1 天) 2、 我们利用资料、教材和寻求他人帮助完成详细设计;(注: 关键部分解释说明)(3 天) 3、 完成一份对自己程序详细描述与解释的报告。(1 天)
n=n+1
n 等于 1?


head=p1 (把 p1 所指向的 结点作为第一个
节点)
p2->next=p1 (把 p1 所指向的结 点连接到表尾)
p2=p1(p2 移到表尾) 再开辟一个新的结点,使 p1 指向它 再读入一个学生数据给 p1 所指结点
表尾结点的指针变量置
2) 插入学生信息
p=head,information=stud
/*指向表头的指针*/ /*条件运用*/ /*开辟一个新单元*/ /*输入学生学号*/ /*输入学生姓名*/ /*输入学生性别*/ /*输入学生语文成绩*/ /*判断成绩是否超出范围*/
相关文档
最新文档