C语言课程设计报告书2——张倩

合集下载

C语言课程设计报告

C语言课程设计报告
Computer_low=i;
if(stud[i].m_puter < 60)
printf("\t\t\t%-10s%-15s%dComp\n",stud[i].num,stud[i].name,stud[i].m_puter);
}
printf("\t\t\tThere are %d records.\n",n*4);
str[j]=ch;}
printf("%s\n",str);
}
第3题:
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
typedef struct
{int Physics;
int Math;
int English;
display(Student stud[],int n)
三、编程实
程序的具体C语言代码如下:
第1题:
#include<stdio.h>
float average(float array[10])
{int i;
float aver,sum=array[0];
for(i=1;i<10;i++)
sum=sum+array[i];
aver=sum/10;
return aver;
}
main()
{float score[10],aver;
int i;
printf("Input 10 numbers:");
for(i=0;i<10;i++)

华北科技学院C语言程序设计综合实验报告

华北科技学院C语言程序设计综合实验报告

三、实验内容
1.设计主函数,在主函中应该有正确输入或调用每个学生的学号及各科成绩,并且正确的输出。 2.设计子函数,求每个学生的平均成绩,每门课的平均成绩、成绩的最大值、成绩的最大值,并 保存在数组中;
四、实验结果及分析
程序模块图
成绩计算程序
main(…) 输入数据; 调用函数计 算; 输出结果.
xaver(...) 主要求每 个学生的 平均成绩。 处理完输 出到数组 中。
程序代码及注释
一、 程序分析: (1)程序运用了一个主函数,它的作用是在整个程序中输入学生 的成绩以及在整个程序中调用子函数求每个学生平均分、每科的平均分、每科最高 分,程序的源代码如下: void main() /*主函数*/
{printf("请输入学生个数:"); scanf("%d",&n); /*输入学生个数*/
kaver(..) 主 要求每门 科的平均 成绩。 处理完输 出到数组 中。
kmax(..) 主要求每 门科中的 最大值;并 输出到数 组中。
kmin(…) 主要求每 门科中的 最小值;并 输出到数
第 1 页
华北科技学院计算机学院综合性实验报告
NS 图
主函数 NS 图
输入学生人数 n printf("请输入学生学号及各科成绩:\n") printf("学号 语文 数学 英语 \n"); For( i 从 0 到 n;i++) For(j 从 0 到 4; j++) 输入学号和成绩 a[i][j] 调用子函数 xaver 求每个学生的平均成绩 for( i 从 0 到 n;i++) For(j 从 0 到 5; j++) 输出 a[i][j] 换行 printf("\n") 调用子函数 kaver 求每门课程的平均成绩 提示语:输出每门课的平均成绩 for( i 从 0 到 3;i++) 输出 b[i] 换行 printf("\n") 提示语:输出每门课的最大值 调用子函数 kmax 求每门课程的最大值 for( i 从 0 到 3;i++) 输出 c[i] 换行 printf("\n") 提示语:输出每门课的最小值 调用子函数 kmin 求每门课程的最小值 for( i 从 0 到 3;i++) 输出 d[i] 换行 printf("\n")

《c语言课程设计》设计报告

《c语言课程设计》设计报告

《c语言课程设计》设计报告《c语言课程设计》设计报告河南城建学院《C语言课程设计》报告书指导教师:张娜课程名称:C语言程序设计班级:0124071 姓名:王者无疆学号:0070082011 河南城建学院、土木与材料工程系2011年1月目录一.课程设计目的二.课程设计要求 1. 分析课程设计题目的要求 2. 写出详细设计说明 3. 编写程序代码,调试程序使其能正确运行 4. 设计完成的软件要便于操作和使用 4. 设计完成后提交课程设计报告三.课程设计的基本过程1.程序的功能设计2.程序的数据设计3.程序的函数设计4.函数编程及调试5.整体调试6.设计总结四. 课程设计报告的内容五. 课程设计考核方式六. 进度计划第一天选择课程设计题目,分析课题的要求,编写详细设计说明第二天编程及调试第三天调试,修正,运行软件第四天写课程设计报告,检查程序及软件第五天提交课程设计报告(打印稿及电子稿)七、心得体会八、附一题一、课程设计目的课程设计是学习掌握C语言知识的重要实践环节,是在课程实验基础上进行的综合性实践教学活动。

课程设计围绕课程的整体教学目标进行,课程设计的题目具有一定的综合性和应用性,只靠个别单元的知识一般不能实现课程设计的目标,需要对课程知识进行综合运用。

要完成好课程设计,就要对课程知识进行系统学习、复习、总结、应用,达到在实践中学习知识、掌握知识、应用知识和培养能力的目的。

①通过课程设计,进一步熟悉掌握以下知识:数据类型、分支控制、循环控制、函数的定义及调用、结构体及数组、指针、文件操作、编译预处理等。

②通过课程设计,达到系统理解、综合运用课程知识的学习目标。

③通过课程设计,学会用C语言程序解决实际问题的方法。

④通过课程设计,掌握程序的局部测试、调试方法,建立程序系统调试、测试的基本概念和思想,学会较大程序的系统测试和调试方法。

二. 课程设计要求1. 分析课程设计题目的要求2. 写出详细设计说明 3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用 4. 设计完成后提交课程设计报告三.课程设计的基本过程C语言课程设计一般包括6个步骤,即程序的功能设计、程序的数据设计、程序的函数设计、函数编码及调试、程序整体调试和课程设计总结等,各个步骤都有其特定的任务。

(完整版)C语言课程设计报告书——张杉

(完整版)C语言课程设计报告书——张杉

西安郵電學院高级语言课程设计报告书系部名称电信系学生姓名张杉专业名称电子信息工程班级电子0701学号指导教师衡霞时间2008年06月09日至2008年06月20日实验题目学生成绩管理系统一、实验目的:(1)本课程设计为学生提供了一个既动手又动脑,自学,查资料,独立实践的机会。

将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力,使对C语言系统编程有一个大致的了解。

(2)C语言的实践。

掌握C语言函数的定义方法,函数的声明及函数的调用过程。

掌握结构体类型变量的定义和使用,综合应用C语言的知识,实现一个完整的系统,提高编程能力,体会软件程序的开发过程。

二、实验内容:(1)运用结构体数组编辑一个简单的学生成绩管理系统,使之能够完成学生成绩的创建、添加,查询、修改,删除、统计、排序等操作,并对文件进行保存和读取。

(2)执行编译操作,并根据提示调试此程序,排除所有的错误和警告。

直到编译成功为止。

(3)执行运行操作,逐一对每个模块进行调试。

直到全部程序运行成功为止。

(4)请老师检查,向老师演练此程序,并能回答老师提出的相关问题。

三、需求分析:(1)根据学生成绩管理的需要,建立一个“学生信息管理系统”,系统具有输入、查询、修改、删除、统计、排序等基本功能;以方便对成绩的各项管理操作。

每一条记录包括一个学生的学号、姓名、性别,年龄,生日,成绩。

系统的各个功能模块都用函数的形式来实现;可以将学生成绩信息保存在文件中,并从文件中读取出来。

有一个清晰美观界面来调用各个功能。

本程序是由C语言的基本单位—函数来设计实现与其功能的多次使用函数调用以及函数的嵌套调用。

本程序分为7个模块,分别为创建学生资料;添加学生的资料; 查询学生的成绩;修改学生的资料;删除学生的资料;统计学生的成绩;对学生的资料进行排序。

本程序可以处理多个学生的成绩的输入、添加、修改、排序等问题。

C语言程序设计报告

C语言程序设计报告

信息工程系课程设计报告书所属课程名称: C语言程序设计专业班级: 150311学生姓名:曾传凤学号:15031102长春工业大学人文信息学院2016年 9月 9日课程设计成绩评定表第一部分完成题目1、简单的数学计算。

编写程序,计算任意输入的3个数的和的平均值。

(1)截屏:(2)源代码://1. 简单的数学计算。

编写程序,计算任意输入的3个数的和的平均值。

#include "stdio.h"void main(){int a=0,b=0,c=0,s=0;float v;printf("三个数");scanf("%d%d%d",&a,&b,&c);printf("三个数的和为,三个数的和的平均值为");s=a+b+c;v=s/3;printf("三个数的和为%d,三个数的和的平均值为%f",s,v);}2. 题目:编写程序。

a为100,b为50,若a>b成立将a赋予给c,否则将b 赋予给c。

同时,若a<b成立将a赋予d,否则将b的三次方赋予d。

编程输出a,b,c,d的值。

(1)截屏:(2)源代码:#include "stdio.h"void main(){int a=100;int b=50;int c,d;if(a>b){c=a;d=b*b*b;}else{c=b;d=a;}printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);3.题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

(1)截屏:(2)源代码:#include "stdio.h"void main(){int a;printf("请输入学生成绩:\n ");scanf("%d",&a);if(a>=90){printf("A\n");}else if(a>60&&a<89){printf("B\n");}else{printf("C\n");}}4题目:构造一个一元二次方程,方程有两个不相等的实数解,将两个实数解输出出来。

C语言实训报告

C语言实训报告

C语言程序设计实训报告张冠森|杨磊团队|2016年12月29日目录一、设计项目 ............................................................... - 2 -二、设计目的 ............................................................... - 2 -三、程序设计框图 ....................................................... - 3 -四、各个程序模块的说明 ........................................... - 3 -五、主要函数的功能 ................................................... - 4 -六、源代码 ................................................................... - 5 -七.程序运行结果 ....................................................... - 6 -八、调试及错误解决 ................................................... - 7 -九、个人总结 ............................................................... - 7 -一、设计项目学生成绩管理系统二、设计目的为了巩固课堂所学内容,提高我的实际技能,在课程结束后进行为期一周的课程设计。

进一步加深、巩固所学专业课程(《C语言程序设计》)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。

掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。

portscan实验报告

portscan实验报告
return; } if ( LOBYTE( wsaData.wVersion ) != minorVer || HIBYTE( wsaData.wVersion ) != majorVer ) {
::WSACleanup(); return; } }
~CInitSock() {
::WSACleanup(); } };
实验环境:windows,C语言
实验内容:用C语言编写一个在linux下扫描局域网内主机的程序。要求可以显示局域
网内的主机名列表,IP地址列表,并可以显示哪些主机开放了哪些端口。
实验代码:
////////////////////////////////////////////////////////// //PortScan.cpp
//获得主机信息 void GetLocalDate( void );
//线程函数 DWORD WINAPI psProc(
LPVOID lpParameter );
// thread data
////////////////////////////////////////////////////////// //全局变量
};
//端口开放数量 int g_nOpenPorts;
////////////////////////////////////////////////////////// //类
//载入和释放Winsock2库的类 class CInitSock { public:
CInitSock( BYTE minorVer = 2, BYTE majorVer = 2) {
这种不能算是新方法,只是其它技术的变化。它并不是直接发送 TCP 探测数据包,是 将数据包分成两个较小的 IP 段。这样就将一个 TCP 头分成好几个数据包,从而过滤器就很 难探测到。但必须小心。一些程序在处理这些小数据包时会有些麻烦。

c语言程序设计第二版课程设计 (2)

c语言程序设计第二版课程设计 (2)

C语言程序设计第二版课程设计一、前言《C语言程序设计(第2版)》是我国首位以《C语言程序设计》为正式教材的大学生程序设计教材。

该教材以C89标准为基础,以软件工程为导向,全书由浅入深地介绍了C语言程序设计的基础知识、C语言流程控制、结构体和指针、函数、数组等难点,并详细讲解C语言在实际程序设计中的使用及方法。

本次课程设计旨在通过对该教材的实践应用,提高学生对C语言程序设计的理论和实践能力。

二、课程设计题目本次课程设计题目为《C语言程序设计实践——画一个简单的图形》。

三、课程设计目标1.掌握C语言的基本语法和流程控制语句;2.掌握C语言结构体和指针的使用方法;3.熟悉C语言函数和数组的定义和使用;4.了解C语言在图形化界面中的应用。

四、课程设计任务4.1 任务一:C语言基础1.学习《C语言程序设计(第2版)》第1章和第2章;2.熟悉C语言基础语法、变量类型及声明、数据的输入输出等基本概念。

4.2 任务二:流程控制语句1.学习《C语言程序设计(第2版)》第3章;2.熟悉C语言分支语句和循环语句的使用方法;3.理解控制语句在程序中的作用。

4.3 任务三:结构体和指针1.学习《C语言程序设计(第2版)》第4章和第5章;2.熟悉C语言结构体和指针的定义和使用方法;3.熟悉结构体和指针在程序中的应用。

4.4 任务四:函数1.学习《C语言程序设计(第2版)》第6章;2.掌握C语言函数的定义和调用方法;3.熟悉函数在程序设计中的作用。

4.5 任务五:数组1.学习《C语言程序设计(第2版)》第7章;2.掌握C语言数组的定义和使用方法;3.熟悉数组在程序设计中的应用。

4.6 任务六:图形化界面1.学习C语言图形库的使用方法;2.实现一个简单的图形界面;3.将前面学习到的知识应用到该图形界面中。

五、课程设计步骤1.学习前五个任务的内容;2.完成前五个任务对应的练习题;3.学习第六个任务的内容;4.完成第六个任务的练习题;5.实现一个简单的图形界面。

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

西安郵電學院C语言课程设计报告书系部名称电子信息与工程系学生姓名张倩专业名称电子信息工程班级电子0701班学号05071013指导教师衡霞2008年06月09日至时间2008年06月20日实验题目学生信息管理系统一、实验目的:(1)本课程设计为学生提供了一个既动手又动脑,自学,查资料,独立实践的机会。

将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力,使对C语言系统编程有一个大致的了解。

(2)C语言的实践。

掌握C语言函数的定义方法,函数的声明及函数的调用过程。

掌握结构体类型变量的定义和使用,综合应用C语言的知识,实现一个完整的系统,提高编程能力,体会软件程序的开发过程。

二、实验内容:(1)运用结构体数组编辑一个简单的学生管理系统,使之能够完成学生信息的创建、添加,查询、修改,删除、统计、排序等操作,并对文件进行保存和读取。

(2)执行编译操作,并根据提示调试此程序,排除所有的错误和警告。

直到编译成功为止。

(3)执行运行操作,逐一对每个模块进行调试。

直到全部程序运行成功为止。

(4)请老师检查,向老师演练此程序,并能回答老师提出的相关问题。

三、需求分析:(1)根据学生信息管理的需要,建立一个“学生信息管理系统”,系统具有输入、输出、查询、修改、删除、统计、排序等基本功能;以方便对信息的管理操作。

每一条记录包括一个学生的学号、姓名、成绩、性别,年龄,出生年月日,家庭住址.系统的各个功能模块都用函数的形式来实现;可以将学生成绩信息保存在文件中,并从文件中读取出来。

有一个清晰美观界面来调用各个功能。

本程序是由C语言的基本单位—函数来设计实现与其功能的多次使用函数调用以及函数的嵌套调用。

本程序分为7个模块,分别为创建学生资料;添加学生的资料; 查询学生的成绩;修改学生的资料;删除学生的资料;统计学生的成绩;对学生的资料进行排序。

本程序可以处理多个学生的成绩的输入、添加、修改、排序等问题。

本程序的使用特别方便,每做完一个模块,下面都有提示信息。

使用环境为Tc。

(2)创建该学生成绩管理系统目的就是能够对学生基本信息进行创建、追加、查询、修改、删除、统计、排序等功能,这样可以简化许多人工做起来很复杂的问题。

譬如:“排序”,有了此程序只需将信息输入,计算机就可自动执行,省时、省力。

另外,它还可以重复使用,方便、快捷。

(3)该学生基本信息管理系统是在WIN-TC中文简体环境下运行。

该系统要测试的数据如下:输入模块:(输入5个学生的信息)查询模块:(查询Jim的基本信息)A1024(按学号即可查询)或Jim(按姓名也可查询)修改模块:(修改Linda的信息)(输入)1(修改名字)(输入)2(修改学号)(输入)3(修改成绩)(输入)4(修改性别)(输入)5(修改年龄)(输入)6(修改家庭住址)(输入)7(修改出生年月日)删除模块:(删除King的基本信息)学号即可删除)统计模块:可统计男女人数,统计各分数段人数。

排序模块:按成绩,学号,分别进行排序。

四、概要设计(2)模块功能详细说明:A、输入模块:此模块可以连续输入30个学生的资料,若学生数少于30,则可以在输入序号处输入0便可退出此模块,并把输入的信息保存到c:\\students文件中。

B、输出模块:此模块中先打开c:\\students文件中的学生信息,后输出要学生信息.c.更新模块:此模块包括添加,修改,删除模块.修改模块:此模块中可以修改学生的任何一个信息。

修改完毕后输入y可以继续修改,输入n则退出此模块。

删除模块:此模块中用到的删除原理为覆盖要删除的学生的资料。

过程简述,先输入要删除的学生的学号,系统找到此学生的信息后给它复制下一个学生的信息,给下一个学生的纪录复制下下一个学生的信息,一直到最后一个学生的信息复制给倒数第二个学生的信息为止。

然后文件中的学生总数减一含了三个小模块.添加模块:此模块中先打开c:\\students统计文件中的学生,后输入要添加的学生的学号,系统确认此学号在c:\\students不存在时开始纪录新学生的资料,便清楚使用者。

D. 查询模块:此模块中使用者可以用三种方式查询学生成绩。

分别为(1)按学号查询(2)按姓名查询。

在这里以按学号查询为列:先选择按学号查询,输入要查询的学生的学号,系统确认此学号在c:\\stud存在后读取信息并在屏幕上输出学生纪录。

F、排序模块:此模块用的为指针。

在此模块中可以按两种方法进行排序,分别为(1)按成绩排序(2)按学号排序(3)按序号排序输出时分别以从大到小和从小到大从小到大的循序进行输出。

G、此模块较简单,统计文件c:\\students中的男和女的学生个数和各成绩段的人数。

五、详细设计及运行结果(1)各个模块的程序流程图添加模块:.排序模块:(3)主要函数之间相互调用如下:主函数的调用:main(){int choice;sum=read_message();bioskey(0);printf("press any key to continue:\n");getch();do{system("cls");printf("\n\n\n ************** student manage system **************\n\n");printf(" 1.input message\n\n");printf(" 2.output message\n\n");printf(" 3.renew message\n\n");printf(" 4.inquire message\n\n");printf(" 5.sort message\n\n");printf(" 6.count message\n\n");printf(" 0.exit the system\n\n");printf(" please select the choice");scanf("%d",&choice);switch(choice){case 1: input_message();break;case 2: output_message();break;case 3: renew_message();break;case 4: inquire_message();break;case 5: sort_message();break;case 6: count_message();break;case 0: break;}}while(choice!=0);save_message(sum);printf("\n- message has saved!-(file name:students.txt) \n");}六、调试情况,设计技巧及体会( 1 )、调试中的问题:a. 刚开始没有那个初始化函数,程序运行后没有输入任何数据就试得去执行显示功能,结果output_message显示的是一些乱码!加入初始化函数后,这种现象也随之消失。

b. 在输入函数中设了最大值,可以输入30个学生的成绩信息,当输入数字‘0’时停止,并保存信息。

c. 在没有输入任何信息的情况下,不能执行查询、修改、删除、统计、排序功能。

d. 有时候,忘记定义就直接调用,使得出错。

e. 定义的成绩是浮点型的,但输入数据的时候却忘记输成整型,导致输入和输出均错误。

最后,将定义的成绩改为整型才正确。

我这时候才真正体会到了一致性的重要。

检查程序很多遍但却始终不知道输入的数据有错,很令人头疼。

( 2 )对自己程序的总结与评价:本程序是由C语言的基本单位—函数来设计实现与其功能的多次使用函数调用以及函数的嵌套调用。

本程序分为7个模块,分别为(1)输入学生资料。

(2)输出学生的资料(3)更新学生的成绩(4)查询学生的资料(5)排序学生的资料(6)统计学生的成绩(7)退出信息管理系统。

本程序可以处理多个学生的信息的输入、添加、修改、排序等问题。

本程序的使用特别方便,每做完一个模块,下面都有提示信息。

使用环境为Tc。

此程序的不足之处在学生基本信息方面还不够完善, 另一方面就是在运行此程序时,需要执行操作的提示语不够具体和完善.改进方法: 可以在学生基本信息的结构体中添加更多的学生信息,像是多输入几门课的成绩,删除的时候,应多加一个按照序号删除,查询时也应加入一个按照序号查询,使得学生信息更加完善,应用的时候更加的方便,快捷。

此外,还可以在编程时加一些必要的提示语,用printf(“”); 语句直接可输入.(3)、在设计过程中的感受:首先经过两周的编程实习,并在后一段的报告总结,我对C语言这门科有新的认识,本人实在是获益不浅!要想编写一个准确、高效并有使用价值的程序,一定先要对课本知识熟悉,还要掌握必要的上机操作能力,写程序其实很容易而关键在于调试程序。

这次设计,让我重新掌握了C语言,而且还得到了用C语言解决实际问题的宝贵经验。

其次, 通过此次编程我也发现了自己在学习中的错误和不足,复习了以前学过的知识。

同时也学到了一些没学过的知识,让我从中收益非浅,也为期末考试准备了一下!更重要的是培养了独立思考问题和解决问题的能力,熟悉了一些基本操作和解决问题的方法!再则, 因为初次接触等原因此次设计遇到了许多问题,我深刻体会到老师发挥的重要作用,C语言程序对我们来说比较难,在匆忙的学习中更是难上加难,似乎觉得自己仅是个匆匆过客,但在老师的帮助下我学会了如何调试,如何查找系统没有提示的错误,最后终于排除万难把程序搞定,体会到原来编程也挺有意思的快感.我想没有老师的帮助我很难在短期内把程序设计做的这样好,在此特地感谢老师的帮助。

(4)测试数据:输入模块:序号:01姓名:mary学号:a1005成绩:89年龄:19性别:女家庭住址fangdong:出生年月日:1988-9-16序号:02姓名:jim学号:a1021成绩:76年龄:18性别:男家庭住址linhe:出生年月日:1989-6-12序号:03姓名:ham学号:a1012成绩:68年龄:18性别:男家庭住址kongtou:出生年月日:1989-1-23序号:04姓名:susan学号:a1025成绩:78年龄:18性别:女家庭住址kongtou:出生年月日:1989-6-30 输出:输入要修改的学号:a1021 你想修改哪一项?1.姓名2.学号3.成绩4.年龄5.性别6.家庭住址7.出生年月日:请选择(1~7)3按学号查询:1.统计男女人数:男的:2女的:2统计成功!按任意键返回!2.统计各分数段人数:90分以上:080分以上:170分以上:260分以上:360分以下:无统计成功!按任意键返回!排序模块:程序运行:主函数1.输入模块:2.输出模块:3.更新模块:1).插入模块:3).修改模块:1)按学号查询:2)按姓名查询:5.排序模块:1)按学号排序:2)按成绩排序:3)按序号排序:6.统计模块:1)统计男女:2)统计成绩:7.退出模块七、源程序清单:#include<stdio.h>#include<string.h>#define MAX 30#define PAGE 5#define PRINT1 printf("-------------------------------------------------------------\n")#define PRINT2 printf("num--name--number--score--age--sex--address--birthday(year-m onth-day)\n")#define PRINT3 printf("%d,%s,%s,%d,%d,%s,%s,%d-%d-%d\n",stud[i].num,stud[i].name,st ud[i].number,stud[i].score,stud[i].age,stud[i].sex,stud[i].address,s tud[i].birthday.year,stud[i].birthday.month,stud[i].birthday.day)int sum;struct DATE{int year;int month;int day;};struct stud{int num;char name[21];char number[10];int score;int age;char sex[11];char address[27];struct DATE birthday;}stud[MAX];save_message(int sum){ FILE *fp;int i;if((fp=fopen("students.txt","wb"))==NULL){printf( "read file wrong!\n");return;}for(i=0;i<sum;i++)if(fwrite(&stud[i],sizeof(struct stud),1,fp)!=1)printf("write file wrong!\n");fclose(fp);}input_message(){int i=0,s=MAX;system("cls");printf("\n\n enter the students' messages (not more than %d)\n",s);printf("----------------------------------------------------------\n");do{printf("\n the %dth student ",i+1);printf("\n student's num:");scanf("%d",&stud[i].num);if(stud[i].num==0) break;printf("\n student's name:");scanf("%s",stud[i].name);printf("\n student's number:");scanf("%s",stud[i].number);printf("\n student's score:");scanf("%d",&stud[i].score);printf("\n student's age:");scanf("%d",&stud[i].age);printf("\n student's sex:");scanf("%s",stud[i].sex);printf("\n student's address:");scanf("%s",stud[i].address);printf("\n student's birthday:");scanf("%d-%d-%d",&stud[i].birthday.year,&stud[i].birthday.month,&stu d[i].birthday.day);i++;}while(i<MAX);printf("\n --%d students message have been input!--\n",i);sum=i;printf("\n press any key return to menu!");bioskey(0);}int read_message(){ FILE *fp;int i=0;if((fp=fopen("students.txt","rb"))==NULL){printf("\n\n**there is no message,press any key to menu and input message!*****\n");return;}while(feof(fp)!=1){fread(&stud[i],sizeof(struct stud),1,fp);if(stud[i].num==0) break;else i++;}fclose(fp);return ;}output_message(){int i=0,j=0,page=1;system("cls");printf("\n\n ------student message list------ the %dth page\n\n",page);PRINT2;PRINT1;do{if(stud[i].num!=0){j++;if(j%PAGE!=0){PRINT3;PRINT1;}else{PRINT3;PRINT1;if(stud[i+1].num!=0){printf("press any key to continue!");bioskey(0);system("cls");printf("\n\n ----------students message list--------- the %dth pages\n\n",++page);PRINT2;PRINT1;}}}i++;}while(stud[i].num!=0);printf("press any key to menu!");bioskey(0);}insert_message(){int i=sum,j,flag=0;char choice;system("cls");printf("\n\n add a new student\n");printf("--------------------------------------------------\n");do{stud[i].num=++sum;printf("\n the new student's num:%d",stud[i].num); printf("\n the new student's name :");scanf("%s",stud[i].name);printf("\n the new student's number:");scanf("%s",stud[i].number);printf("\n the new student's score:");scanf("%d",&stud[i].score);printf("\n the new student's age:");scanf("%d",&stud[i].age);printf("\n the new student's sex:");scanf("%s",stud[i].sex);printf("\n the new student's address:");scanf("%s",stud[i].address);printf("\n the new student's birthday:");scanf("%d %d %d", &stud[i].birthday.year,&stud[i].birthday.month,&stud[i].birthday.day );printf("\n Do you want to continue? (Y/N)");choice=getch();if (choice=='y'||choice=='Y'){ printf("\n continue!\n");i++;flag=1;}else flag=0;}while(flag==1);printf("\n press any key to menu!");bioskey(0);}delete_message(){ char delete_number[10];int i;system("cls");printf(" please input the number you want to delete:");scanf("%s",delete_number);for(i=0;i<sum;i++){if(strcmp(stud[i].number,delete_number)==0){ for(;i<sum;i++)stud[i]=stud[i+1];sum=sum-1;printf(" the message has been deleted!");}else printf("the student is not exist!");}}revise_message(){int i=0;int choice,flag;char revise_number[10];do{system("cls");printf("\n input the student's number you want to revise:");scanf("%s",revise_number);for(i=0;i<sum;i++)if(strcmp(stud[i].number,revise_number)==0){printf("\n --students message--\n");PRINT1;PRINT2;PRINT3;printf("\n which one do you want to revise?\n");printf("\n \n");printf("\n 2.number\n");printf("\n 3.score\n");printf("\n 4.sex\n");printf("\n 5.age\n");printf("\n 6.address\n");printf("\n 7.birthday\n");printf("\n please select your choice:");scanf("%d",&choice);switch(choice){ case 1:printf("\n revised name:");scanf("%s",stud[i].name);break;case 2:printf("\n revised number:");scanf("%s",stud[i].number);break;case 3:printf("\n revised score:");scanf("%d",&stud[i].score);break;case 4:printf("\n revised age:");scanf("%d",&stud[i].age);break;case 5:printf("\n revised sex:");scanf("%s",stud[i].sex);break;case 6:printf("\n revised address:");scanf("%s",stud[i].address);break;case 7:printf("\n revised birthday:");scanf("%d %d %d",&stud[i].birthday.year,&stud[i].birthday.month,&stu d[i].birthday.day);}PRINT1;PRINT2;PRINT3;break;}if(i ==sum){printf("\n the student is not exist!");bioskey(0);}printf("\n\n Do you want to continue to revise? (Y/N)"); choice=getch();if(choice=='Y'||choice=='y'){flag=1;printf("\n continue!\n");}else flag=0;}while(flag==1);printf("\n press any key return to menu!");bioskey(0);}renew_message(){ int choice;do{system("cls");printf("\n\n\n ******************renew the student message***************\n\n");printf(" 1.insert message\n\n");printf(" 2.delete message\n\n");printf(" 3.revise message\n\n");printf(" 0.return to menu\n\n");printf(" please select your choice:");scanf("%d",&choice);switch(choice){case 1: insert_message();break;case 2: delete_message();break;case 3: revise_message();break;case 0:break;}}while(choice!=0);}inquire_number(){int i,choice,j=0;char inquire_number[10];system("cls");printf("\n input required number :");scanf("%s",inquire_number);for(i=0;i<sum;i++)if(strcmp(stud[i].number,inquire_number)==0){printf("\n --students message--\n");PRINT1;PRINT2;PRINT3;}else j++;if(j==sum) printf("\n the student not exist!");bioskey(0);}inquire_name(){int i,choice,j=0;char inquire_name[10];system("cls");printf("\n input the inquired name:");scanf("%s",inquire_name);for(i=0;i<sum;i++)if(strcmp(stud[i].name,inquire_name)==0 && stud[i].num!=0){printf("\n --students message--\n");PRINT1;PRINT2;PRINT3;}else j++;if(j==sum) printf("\n the student not exist!");bioskey(0);}inquire_message(){ int choice;do{system("cls");printf("\n\n\n **************inquire the students' message****************\n\n");printf(" 1.inquire number\n\n");printf(" 2.inquire name\n\n");printf(" 0.return to menu\n\n");printf(" please select your choice:");scanf("%d",&choice);switch(choice){case 1: inquire_number();break;case 2: inquire_name();break;case 0: break;}}while(choice!=0);}count_sex(){ struct stud *p,*q[MAX];int m_num=0,f_num=0,i;system("cls");p=stud;for(i=0;i<sum;i++)q[i]=p++;for(i=0;i<sum;i++){if(strcmp(q[i]->sex,"male")==0||strcmp(q[i]->sex,"MALE")==0)m_num++;elsef_num++;}printf("\n the male:%d",m_num);printf("\n the female:%d",f_num);printf("count successfully .press any key to menu\n");bioskey(0);}count_score(){ struct stud *p,*q[MAX];int a=0,b=0,c=0,d=0,e=0;int i;system("cls");p=stud;for(i=0;i<sum;i++)q[i]=p++;for(i=0;i<sum;i++){ if(q[i]->score>=90) a++;if(q[i]->score>=80) b++;if(q[i]->score>=70) c++;if(q[i]->score>=60) d++;else e++;}printf("\nthe more than 90 students:%d\n",a);printf("\nthe more than 80 students:%d\n",b);printf("\nthe more than 70 students:%d\n",c);printf("\nthe more than 60 students:%d\n",d);printf("\nnot passed students:%d\n",e);printf("count successfully. press any key to menu!");bioskey(0);}count_message(){ int choice;do{system("cls");printf("\n\n\n *******************count the students' message**************\n\n");printf(" 1.count sex\n\n");printf(" 2.count score\n\n");printf(" 0.return to menu\n\n");printf(" please select your choice:"); scanf("%d",&choice);switch(choice){case 1: count_sex();break;case 2: count_score();break;case 0: break;}}while(choice!=0);}sort_number(){struct stud *p,*q[MAX];int i,j,k;system("cls");printf("\n sort number\n");printf("----------------------------------------------------------------\n");printf("\n sort num name number score age sex address birthday\n");p=stud;for(i=0;i<sum;i++)q[i]=p++;for(i=0;i<sum;i++){k=i;for(j=i+1;j<sum;j++)if(strcmp(q[k]->number,q[j]->number)>0)k=j;if(k!=i){p=q[i];q[i]=q[k];q[k]=p;}}for(i=0;i<sum;i++)printf("\n%d %d %s %s %d %d %s %s %d %d %d\n",i+1,q[i]->num,q[i]->na me,q[i]->number,q[i]->score,q[i]->age,q[i]->sex,q[i]->address,q[i]->birthday.year,q[i]->birthday.month,q[i]->birthday.day);bioskey(0);}sort_score(){struct stud *p,*q[MAX];int i,j,k;system("cls");printf("\n sort score\n");printf("-----------------------------------------------------------------\n");printf("\n sort num name number score age sex address birthday\n");p=stud;for(i=0;i<sum;i++)q[i]=p++;for(i=0;i<sum;i++){k=i;for(j=i+1;j<sum;j++)if(q[k]->score<q[j]->score)k=j;if(k!=i){ p=q[i];q[i]=q[k];q[k]=p;}}for(i=0;i<sum;i++)printf("\n%d %d %s %s %d %d %s %s %d %d %d\n",i+1,q[i]->num,q[i]->na me,q[i]->number,q[i]->score,q[i]->age,q[i]->sex,q[i]->address,q[i]->birthday.year,q[i]->birthday.month,q[i]->birthday.day);bioskey(0);}sort_num(){struct stud *p,*q[MAX];int i,j,k;system("cls");printf("\n sort num\n");printf("----------------------------------------------------------------\n");printf("\n sort num name number score age sex address birthday\n");p=stud;for(i=0;i<sum;i++)q[i]=p++;for(i=0;i<sum;i++){k=i;for(j=i+1;j<sum;j++)if(q[k]->num>q[j]->num )k=j;if(k!=i){p=q[i];q[i]=q[k];q[k]=p;}}for(i=0;i<sum;i++)printf("\n%d %d %s %s %d %d %s %s %d %d %d\n",i+1,q[i]->num,q[i]->na me,q[i]->number,q[i]->score,q[i]->age,q[i]->sex,q[i]->address,q[i]->birthday.year,q[i]->birthday.month,q[i]->birthday.day);bioskey(0);}sort_message(){ int choice ;do{system("cls");printf("\n\n\n *****************student sort message**************\n\n");printf(" 1.sort number\n\n");printf(" 2.sort score\n\n");printf(" 3.sort num\n\n");printf(" 0.return to menu\n\n");printf(" please select your choice:");scanf("%d",&choice);switch(choice){case 1: sort_number();break;case 2: sort_score();break;case 3: sort_num();break;case 0: break;}}while(choice!=0);}main(){int choice;sum=read_message();bioskey(0);printf("press any key to continue:\n");getch();do{system("cls");printf("\n\n\n ************** student manage system **************\n\n");printf(" 1.input message\n\n");printf(" 2.output message\n\n");printf(" 3.renew message\n\n");printf(" 4.inquire message\n\n");printf(" 5.sort message\n\n");printf(" 6.count message\n\n");printf(" 0.exit the system\n\n");printf(" please select the choice");scanf("%d",&choice);switch(choice){case 1: input_message();break;case 2: output_message();break;case 3: renew_message();break;case 4: inquire_message();break;case 5: sort_message();break;case 6: count_message();break;case 0: break;}}while(choice!=0);save_message(sum);printf("\n- message has saved!-(file name:students.txt) \n");}。

相关文档
最新文档