高级语言程序设计报告Word下载.docx

上传人:b****5 文档编号:16507715 上传时间:2022-11-24 格式:DOCX 页数:25 大小:60.12KB
下载 相关 举报
高级语言程序设计报告Word下载.docx_第1页
第1页 / 共25页
高级语言程序设计报告Word下载.docx_第2页
第2页 / 共25页
高级语言程序设计报告Word下载.docx_第3页
第3页 / 共25页
高级语言程序设计报告Word下载.docx_第4页
第4页 / 共25页
高级语言程序设计报告Word下载.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

高级语言程序设计报告Word下载.docx

《高级语言程序设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计报告Word下载.docx(25页珍藏版)》请在冰豆网上搜索。

高级语言程序设计报告Word下载.docx

//从磁盘读入到内存

voidsort(structstus[],intn);

//按卷面分数排序

voidmodify(structstus[],intn);

//按学号修改记录信息

intmenu();

//菜单函数

【模块流程图】

main函数

【程序使用方法】

(1)执行程序,按照界面提示进行选择。

输入“1”,进入信息录入。

(2)按照程序提示,先选择要录入信息人的个数,具体信息分别为:

学号、姓名、出生日期、性别、民族、院系、专业、省份、卷面分数、加分。

(3)输入成功后,自动返回主界面。

输入“2”,显示录入所有信息记录,程序自动将总分也输出到屏幕上。

(4)自动返回主界面。

输入“4”,将记录的信息保存到磁盘中,按照提示进行输入。

(5)输入成功后自动返回主界面。

输入“5”,将磁盘文件中的记录信息读入到内存中,按照提示进行输入。

(6)输入“6”,对已保存文件信息根据卷面分数排序。

(7)输入“7”,进入信息修改,按提示操作。

(8)输入“8”,退出程序。

2、程序上机调试报告

【语法错误及其排除】

1、主函数之前应该输入各自定义函数的声明。

2、宏定义时在末尾处加上了分号,应该不加分号。

3、对字符数组进行比较和赋值时用了“==”号。

【算法错误及其排除】

1、调用exit(0)时必须有#include"

stdlib.h"

做头文件。

3、程序测试结果

【测试数据】

2010张三91/01/06女汉理学院数学内蒙5050

2011小李92/10/18男汉理学院数学吉林5100

【输出结果】

~(^o^)~欢迎使用~(^o^)~

菜单

**********************

1.输入个人信息

2.显示记录

3.按姓名查找

4.记录到磁盘

5.保存到文件

6.排名情况

7.修改个人信息

8.退出

请选择<

1--8>

:

1

请输入记录个数:

2

***请输入记录数据***

学号:

2010

姓名:

张三

出生日期:

91/01/06

性别:

民族:

院系:

理学院

专业:

数学

省份:

内蒙

卷面分数:

505

加分:

2011

小李

92/10/18

吉林

510

学生信息

**********************************************************************

|学号|姓名|出生日期|性别|民族|院系|专业|省份|卷面成绩|加分|总分|

|---------|---------|---------------|---------|---------|---------|---------|-------|------------|-------|------|

|2010|张三|91/01/06|女|汉|理学院|数学|内蒙|505|0|505|

|2012|小李|92/10/18|男|汉|理学院|数学|吉林|510|0|510|

3

请输入要查找姓名:

找到的记录信息

************************************************************************

************************************end*********************************

4

输入文件名格式信息<

例如e:

\\file.tex>

e:

\\file.tex

-----------保存成功!

------------

5

输入文件名<

------已成功读入数据!

-----

6

排序成功!

7

请输入要修改学号记录:

修改学号(y/n)?

n

修改姓名(y/n)?

修改出生日期(y/n)?

y

输入出生日期:

92/09/23

修改性别(y/n)?

修改民族(y/n)?

修改院系(y/n)?

修改专业(y/n)?

修改省份(y/n)?

修改卷面分数(y/n)?

修改加分(y/n)?

8

O(∩_∩)O谢谢使用O(∩_∩)O

Pressanykeytocontinue

【收获及体会】

任务书的设计想了很久,根据自己理解到的内容只能想到输入、查询、修改、排序还有读写文件。

对自己的这个程序比较满意,基本上把自己学到的知识全部用到了。

因为之前只编写过简单的函数和程序,所以在编写开始时无从下手。

于是在图书馆看了很多程序设计的书及例题,才豁然开朗。

不过真正编写还是有些困难重重,尤其是无法将信息写入文件或者写入文件的是一堆乱码,这个问题困扰了我很久!

最后通过自己的认真检查、调试和查阅资料,终于皇天不负有心人。

从编写这个程序的过程中不但发现了许多自己没有学明白的地方,而且有助于期末考试的复习,很珍惜这次编写程序的过程。

4、源程序代码

#defineNULL0

#defineM100//数组元素个数

/*程序中用到的头文件*/

#include"

stdio.h"

//输入输出函数

string.h"

//字符和字符串的函数

//动态分配函数和随机函数

structstu//定义结构体类型

{

charno[10];

//学号

charname[10];

//姓名

charbirthday[10];

//出生日期

charsex[3];

//性别

charnation[10];

//名族

chardepartment[20];

//院系

charmajor[20];

//专业

charprovince[20];

//省份

intscore;

//卷面成绩

intadd;

//加分

inttotal;

//高考总分=卷面成绩+加分

};

/*函数声明*/

//保存记录到文件

//从文件中读记录

/*主函数*/

voidmain()

structstustudent[M];

//定义结构体数组

intlength;

//保存记录个数

for(;

;

)//无限循环

switch(menu())//调用主菜单函数,返回值为整数,作为语句的条件

{

case1:

length=enter(student);

break;

case2:

print(student,length);

//显示全部记录

case3:

search(student,length);

//查找记录

case4:

save(student,length);

//记录到磁盘

case5:

length=load(student);

//保存到文件

case6:

sort(student,length);

//排序

case7:

modify(student,length);

//修改记录信息

case8:

return;

//如果菜单返回值为8,则程序结束

}

}

/*菜单函数,返回值为整型数*/

intmenu()

intchoice;

printf("

~(^o^)~欢迎使用~(^o^)~\n"

);

菜单\n"

**************************\n"

1.输入个人信息\n"

2.显示记录\n"

3.按姓名查找\n"

4.记录到磁盘\n"

//将记录信息保存到磁盘文件中

5.保存到文件\n"

//将磁盘文件张的记录信息读入到内存中

6.排名情况\n"

7.修改个人信息\n"

8.退出\n"

//退出

do

printf("

\n请选择<

"

scanf("

%d"

&

choice);

//以整型数的形式保存选择号

\n"

while(choice<

1||choice>

8);

//选择项不在1--8之间,请重新选择

if(choice==8)

O(∩_∩)O谢谢使用O(∩_∩)O\n\n"

"

returnchoice;

//返回选择项,主程序根据该返回值调用相应的函数

/*输入记录,返回值为记录长度*/

intenter(structstus[])

inti,n;

//n用来存放记录的个数

\n请输入记录个数:

scanf("

n);

//输入记录个数

\n***请输入数据***\n"

for(i=0;

i<

n;

i++)

do//输入学号并检验

{printf("

学号:

//显示提示信息

%s"

s[i].no);

//输入学号

if(strlen(s[i].no)>

10)//进行长度检验,超过10个字符,请重新输入

printf("

\n请重新输入!

}

while(strlen(s[i].no)>

10);

do//输入姓名并检验

{

printf("

姓名:

scanf("

s[i].name);

if(strlen(s[i].name)>

10)

\n请重新输入\n"

}while(strlen(s[i].name)>

出生日期(91/01/01):

//提示输入出生日期

s[i].birthday);

//输入出生日期

性别:

s[i].sex);

//输入性别

民族:

s[i].nation);

//输入民族

院系:

s[i].department);

//输入院系

专业:

s[i].major);

//输入专业

省份:

s[i].province);

//输入省份

do//输入卷面分数并检验

卷面分数:

s[i].score);

if(s[i].score<

0||s[i].score>

750)

无效数据!

请重新输入\n"

//进行校验

while(s[i].score<

750);

加分:

s[i].add);

//输入加分

s[i].total=s[i].score+s[i].add;

//计算高考总分

returnn;

/*显示记录信息*/

voidprint(structstus[],intn)

inti;

学生信息"

\n*************************************************************************\n"

|学号|姓名|出生日期|性别|民族|院系|专业|省份|卷面成绩|加分|总分|\n"

|------|------|--------|----|----|------|------|------|--------|----|----|\n"

|%-6s|%-6s|%-8s|%-4s|%-4s|"

s[i].no,s[i].name,s[i].birthday,s[i].sex,s[i].nation);

%-6s|%-6s|%-6s|%8d|%4d|%4d|\n"

s[i].department,s[i].major,s[i].province,s[i].score,s[i].add,s[i].total);

*************************************************************************\n"

getchar();

/*按姓名查找记录信息*/

voidsearch(structstus[],intn)

//存放姓名的字符数组

请输入要查找姓名:

name);

//输入待查找的姓名

i++)//查找从第一条记录开始,直到最后一条记录为止

if(strcmp(name,s[i].name)==0)

\n找到的记录信息"

\n**************************************************************************\n"

|%-6s|%-6s|%-8s|%-4s|%-4s|%-6s|%-6s|%-6s|%8d|%4d|%4d|\n"

s[i].no,s[i].name,s[i].birthday,s[i].sex,s[i].nation,

s[i].department,s[i].major,s[i].province,s[i].score,s[i].add,s[i].total);

*********************************end**************************************\n"

if(i>

n)//i>

n-1,说明没有找到

\n没有该学生信息\"

%s\"

student\n"

//显示没有该学生

/*将记录信息保存到磁盘文件中*/

voidsave(structstus[],intn)

voidmain();

//对主函数进行声明

FILE*fp;

//定义指向文件的指针

charoutfile[20];

//保存输出文件名

输入文件名格式信息(例如e:

\\file.tex):

outfile);

if((fp=fopen(outfile,"

wb"

))==NULL)//为输出打开一个二进制文件,如果没有则建立

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1