高级语言程序设计实训报告

  • 格式:pdf
  • 大小:264.88 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.平均值计算:平均值计算的主要功能是求平均值,再对其进行排序,实 现:用公式进行计算求平均值,之后便是排序问题,求最大值,然后依次输出 各最大值,即实现了排序功能。
(3)函数功能描述 1. Meu函数 是定义一个菜单函数,其功能在于输出菜单界面供使用者选择。 2.input 是定义用于输入学生信息 3 . void print data ()
指导老师:
第页
江西科技师范大学实验报告
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
n 待打印的学生在数组中的下标。 4.void count score
计算平均成绩和总成绩 5.void search infor
查询学生成绩信息 6. Int search num (char numbet [8])
指导老师:
第页
江西科技师范大学实验报告
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
{ char *menu[]={"***************MENU***************", /*定义菜单字符串数组*/ " 0. init list", /*初始化*/ " 1. Enter list", /*输入记录*/ " 2. Delete a record from list", /*从表中删除记录*/ " 3. print list ", /*显示单链表中所有记录*/ " 4. Search record on name", /*按照姓名查找记录*/ " 5. Save the file", /*将单链表中记录保存到文件中*/ " 6. Load the file", /*从文件中读入记录*/ " 7. compute the score", /*计算所有学生的总分和均分*/ " 8. insert record to list ", /*插入记录到表中*/ " 9. copy the file to new file", /*复制文件*/ " 10. sort to make new file", /*排序*/ " 11. append record to file", /*追加记录到文件中*/ " 12. index on nomber", /*索引*/ " 13. total on nomber", /*分类合计*/ " 14. Quit"}; /*退出*/ char s[3]; /*以字符形式保存选择号*/ int c,i; /*定义整形变量*/ gotoxy(1,25); /*移动光标*/ printf("press any key enter menu......\n"); /*压任一键进入主菜单*/ getch(); /*输入任一键*/ clrscr(); /*清屏幕*/ gotoxy(1,1); /*移动光标*/ textcolor(YELLOW); /*设置文本显示颜色为黄色*/ textbackground(BLUE); /*设置背景颜色为蓝色*/
按学生的学号查询学生的基本信息。 7. void sort date ()
按学生的不同成绩进行排序操作 8. Void delete data ()
删除某个学生的基本信息 9. Void modify data()
修改学生的基本信息 10. Void save data()
保存更新过的数据 3、程序实现 (1)源码分析
}while(c<0||c>14); /*选择项不在0~14之间重输*/
return c; /*返回选择项,主程序根据该数调用相应的函数*/ } STUDENT *init() { return NULL; }
/*创建链表*/ STUDENT *create() { int i; int s; STUDENT *h=NULL,*info; /* STUDENT 指向结构体的指针*/ for(;;) { info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/ if(!info) /*如果指针 info 为空*/ { printf("\nout of memory"); /*输出内存溢出*/
#include "alloc.h" /*动态地址分配函数*/
#define N 3 /*定义常数*/
typedef struct z1 /*定义数据结构*/ { char no[11]; char name[15]; int score[N]; float sum; float average; int order; struct z1 *next; }STUDENT; /*以下是函数原型*/
指导老师:
第页
江西科技师范大学实验报告
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
for(i=0;i<16;i++) /*输出主菜单数组*/ { gotoxy(10,i+1); cprintf("%s",menu[i]); } textbackground(BLACK); /*设置背景颜色为黑色*/
江西科技师范大学
实验报告
课 程 高级语言程序 系 别 数计学院 班 级 计算机(职教) 学 号 20122071 姓 名 乐四芳
报告规格
一、实验目的
四、实验方法及步骤
二、实验原理
五、实验记录及数据处理
三、实验仪器
六、误差分析及问题讨论
目录
1. 实训一 学生管理系统
2. 3. 4. 5. 6. 7. 8. 9.
#include "stdio.h" /*I/O 函数*/
#include "stdlib.h" /*其它说明*/
#include "string.h" /*字符串函数*/
#include "conio.h" /*屏幕操作函数*/
#include "mem.h" /*内存操作函数*/
#include "ctype.h" /*字符操作函数*/
gotoxy(10,2); /*移动光标*/ putch(0xc9); /*输出左上角边框┏*/ for(i=1;i<44;i++) putch(0xcd); /*输出上边框水平线*/ putch(0xbb); /*输出右上角边框 ┓*/ for(i=3;i<20;i++) { gotoxy(10,i);putch(0xba); /*输出左垂直线*/ gotoxy(54,i);putch(0xba); } /*输出右垂直线*/ gotoxy(10,20);putch(0xc8); /*输出左上角边框┗*/ for(i=1;i<44;i++) putch(0xcd); /*输出下边框水平线*/ putch(0xbc); /*输出右下角边框┛*/ window(11,3,53,19); /* 制作显示菜单的窗口,大小根据菜单条数设计*/ clrscr(); /*清屏*/
STUDENT *init(); /*初始化函数*/
STUDENT *create(); /*创建链表*/
STUDENT *delete(STUDENT *h); /*删除记录*/
指导老师:
第页
江西科技师范大学实验报告
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
void print(STUDENT *h); /* 显示所有记录*/ void search(STUDENT *h); /*查找*/ void save(STUDENT *h); /*保存*/ STUDENT *load(); /*读入记录*/ void computer(STUDENT *h); /*计算总分和均分*/ STUDENT *insert(STUDENT *h); /*插入记录*/ void append(); /*追加记录*/ void copy(); /*复制文件*/ STUDENT *sort(STUDENT *h); /*排序*/ STUDENT *index(STUDENT *h); /*索引*/ void total(STUDENT *h); /*分类合计*/ int menu_select(); /*菜单函数*/ /******主函数开始*******/ main() { int i; STUDENT *head; /*链表定义头指针*/ head=init(); /*初始化链表*/ clrscr(); /*清屏*/ for(;;) /*无限循环*/ { switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/ { /*值不同,执行的函数不同,break 不能省略*/ case 0:head=init();break; /*执行初始化*/ case 1:head=create();break; /*创建链表*/ case 2:head=delete(head);break; /*删除记录*/ case 3:print(head);break; /*显示全部记录*/ case 4:search(head);break; /*查找记录*/ case 5:save(head);break; /*保存文件*/ case 6:head=load(); break; /*读文件*/ case 7:computer(head);break; /*计算总分和均分*/ case 8:head=insert(head); break; /*插入记录*/ case 9:copy();break; /*复制文件*/ case 10:head=sort(head);break; /*排序*/ case 11:append();break; /*追加记录*/ case 12:head=index(head);break; /*索引*/ case 13:total(head);break; /*分类合计*/ case 14:exit(0); /*如菜单返回值为14程序结束*/ } } } /*菜单函数,返回值为整数*/ menu_select()
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
2、总体设计 (1)功能模块设计
(2)数据结构设计
1.数据录入:数据录入的功能是将需要的数据进行录入,用于后面的 各 项操作。实现:用输入函数对数据进行录入,先确定学生的个数,再用一个循 环进行输入,选修课程数量亦然。
2.数据插入:数据插入的主要功能是在数据录入之后,为防止数据输入的 遗漏,实现:分为两个部分,第一个是插入第一个位置,第二是插入第一个位 置之后,把当前的位置赋给后面的加以实现。
二、主要仪器设备
安装了 Windows 操作系统、Leabharlann Baiduurbo C 或 Visual C++的计算机。
三、实训内容和原理
设计一个学生成绩管理系统,该系统使用单链表结构管理学生成绩,具有输入记录、 查询记录、更新记录、统计记录及输出记录等功能。
四、实训小结
1、功能描述如下图:
指导老师:
第页
江西科技师范大学实验报告
3.数据查询: 数据查询的主要功能是在数据输入之后进行分类再现,实 现:分为输出所有数据,按学号查询,按姓名查询,当输入的数据满足条件时 即输出所要求的。
4.数据删除:数据删除的主要功能是在数据录入、数据插入和数据修改完 成之后对无用数据进行删除,实现:输入学号,满足条件时即把后一个数值赋 给前一个数值,达到删除的目的。
10.
11. 12. 13. 14. 15.
每次实验课必须带上此本子,以便教师检查预习情况和记录实验原始数据。 实验时必须遵守实验规则。用正确的理论指导实践袁必须人人亲自动手实验,但反 对盲目乱动,更不能无故损坏仪器设备。 这是一份重要的不可多得的自我学习资料袁它将记录着你在大学生涯中的学习和学 习成果。请你保留下来,若干年后再翻阅仍将感到十分新鲜,记忆犹新。它将推动你在 人生奋斗的道路上永往直前
实训一 学生成绩管理系统
一、实训目的和要求
江西科技师范大学实验报告
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
利用单链表结构实现学生成绩管理,了解数据库管理的基本功能,掌握 C 语言中的结 构体、指针、函数、文件操作等知识,是一个 C 语言知识的综合应用。注意其中的难点, 指针变量作函数参数、函数值为指向结构体的指针及单链表机构的应用等知识。
window(1,1,80,25); /*恢复原窗口大小*/
gotoxy(10,21); /*移动光标*/ do{ printf("\n Enter you choice(0~14):"); /*在菜单窗口外显示提示信息*/
scanf("%s",s); /*输入选择项*/
c=atoi(s); /*将输入的字符串转化为整形数*/