c语言 上机实习 程序 长江大学
- 格式:doc
- 大小:91.50 KB
- 文档页数:12
长江大学工程技术学院计算机上机实习报告个人通讯录管理系统的设计学生姓名:钟智豪学号:XXXXX 序号:XX专业班级:资工61202班指导老师:方静报告日期:2013-6-26第一部分课程设计的题目与要求1、问题的提出这次课程设计的内容是个人通讯录管理管理系统,对于这个题目,要将一个比较复杂的问题分解成若干相对容易的小问题去做。
通过书写代码,实现对一些数据的简单处理。
例如,数据的修改、数据的添加、删除等等。
2、功能要求1)、实现添加功能:能通过相应控件和操作录入新数据。
当要录入新数据的时候,首先判断该姓名是否存在,如果不存在,则提示可进行数据录入并可依次输入地址、邮编等信息。
2)、实现修改功能:选中某个人的姓名时,可以对此人的相应数据进行修改并保存。
3)、实现删除功能:选中某个人的姓名时,可将此人的相应数据进行删除并保存。
4)、实现查询显示:①按姓名查询②显示全部信息。
通过组合框选择查询内容,将满足查询条件的通讯记录显示在文本框上。
5)、实现拨号功能:能显示通讯录中所有人的姓名和此人对应的电话,当选中某个人的姓名和电话号码时,屏幕上可以模拟打字机的效果,依次显示出电话号码中的各个数字。
第二部分课程设计题目功能1、系统功能模块框图设计2、数据结构说明内容:包括数据类型的定义,程序中使用的各变量的类型及应用。
首先说明结构体,对结构体进行说明在其中直接定义了整体变量address_book, address_book变量里面由6个成员构成其中有为字符串数组成员的分别有name(姓名)、 address(地址)、 youbian(邮编)、ema(Email)、qq(QQ)、mobile(手机号码)这6个数组构成。
利用变量存储将文件“ZG61202.dat”里面的东西读到其中或输出,为后面使用数据提供了方便。
Public()通用过程,在模块中输入,可以在整个程序设计中使用。
Sub()进行过程的书写,为以后的调用做准备工作。
大一C语言上机实验实验报告
本次实验的主要内容是学习使用C语言编程实现简单的数据结构算法。
首先,我们学
习了C语言的基础知识,比如变量定义、函数、控制语句等,然后学习了链表、栈、队列
等数据结构的知识,了解了它们在实际应用中的用法。
紧接着,我们利用所学知识实现了数据结构与算法中的一些经典题目,像是递归求阶乘,折半查找,冒泡排序和合并排序等。
我们先是用自己熟悉的编程语言来实现俩种算法
的比较,然后才运用C语言来实现它们。
在实现的过程中,一方面要熟悉C语言语法,另
一方面又要理解并发挥现有算法所蕴含的思想,这样才能够把算法翻译成准确有效的代码。
随着编程经验的积累,我们加深了对C语言的掌握,最后收获良多。
在本次实验的过
程中,我们学会了在C语言环境下开发程序,学会了使用它来创造数据结构和算法;并且
掌握了如何用它编写、测试和调试程序的技巧,以便更好地编程。
整个实验过程也帮助我
们加深理解了数据结构以及它们在解决实际问题中的意义。
Visual C++程序设计学生实验指导书长江大学计算机科学与技术学院计算机应用与技术系刘波涛2012年8月目录试验1:类与对象的设计与实现 (3)试验2:继承与多态性 (4)实验3:MFC的消息和命令实验 (6)实验4:设备环境与屏幕绘图实验 (6)实验5:对话框实验 (9)实验6:通用控件实验 (11)试验1:类与对象的设计与实现一、试验目的1、学习类的申明与使用,掌握类和对象的申明及使用;2、复习具有不同访问属性的类成员的访问方式3、学会利用VC++平台的Debug观察类构造函数、析构函数、成员函数的执行顺序4、学习多文件结构在C++中的使用二、试验任务(要求用C++语言实现)1、运行下列函数:#include<iostream.h>class A{protected: A(){cout<<"A Constructor"<<endl;}};class B:public A{public: B(){ cout<<"B Constructor"<<endl; }};void main(){ B b1;// A a;}观察结果,说明原因。
如果删掉注释符“//”,结果如何,为什么?2、申明一个CPU类,包含等级(rank)、频率(frequence)、电压(V oltage)等属性,有2个共有成员函数:run(),stop()。
其中,rank为枚举类型CPU_Rank,申明为enum CPU_Rank{P1=1, P2, P3, P4, P5, P6, P7},frequence的单位为MHZ的整型数,Voltage为浮点型的电压值。
观察构造函数及析构函数的调用顺序。
3、申明一个简单的Computer类,有数据成员芯片(Cpu)、内存(Ram)、光驱(Cdrom)等等。
有两个共有成员:run(),stop()。
C语言课程实习(优秀范文5篇)第一篇:C语言课程实习课程实习一、C程序上机操作方法及运行环境编写一个C程序,输入a, b, c,d四个值,输出其中最小者。
#includemain(){int a,b,c,d,t;printf(“Please input numbers:”);scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);t=min(min(min(a,b),c),d);printf(“min number is:%dn”,t);}int min(int x,int y){int z;if(xz=x;elsez=y;return(z);}运行结果:Please input numbers:4,6,3,9min number is:3课程实习二、C程序上机操作方法及运行环境从键盘输入三个字符,要求输出这三个字符,并输出它们的ASCII 码及其ASCII码的平方根和的平方。
#include#includevoid main(){char ch1,ch2,ch3;float t;scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);t=sqrt(ch1)+sqrt(ch2)+sqrt(ch3);printf(“%c,%dn”,ch1,ch1);printf(“%c,%dn”,ch2,ch2);printf(“%c,%dn”,ch3,ch3);printf(“%fn”,t*t);}运行结果:a,b,ca,97b,98c,99881.984683课程实习三、循环结构程序设计1)输入两个正整数m和n;2)如果m=n输出最大公约数m程序结束;3)若m>n则m=m-n否则n=n-m;4)返回到2)(循环)。
#includevoid main(){int m,n;scanf(“%d%d”,&m,&n);while(m!=n){if(m>n)m=m-n; else n=n-m;}printf(“%dn”,m); }运行结果:34,24课程实习四、循环结构程序设计打印下面的图案# # # # ## # # ## # ## ##includevoid main(){int i,j;for(i=1;i<=4;i++) {for(j=1;jprintf(“ ”);for(j=5;j>=i;j--) printf(“*”); putchar('n');}}课程实习五、数组的应用输入一个0到150之间的十进制整数,要求把此数转化为二进制形式。
C语言程序设计实习报告一、实习目的1. 巩固和加深对C语言程序设计的理解。
2. 掌握C语言编程的基本技巧和方法。
3. 提高分析问题、解决问题的能力。
4. 学会将理论知识应用于实际编程中。
二、实习内容XXX语言基础语法练习变量、数据类型、运算符、表达式等基础语法练习。
控制结构(顺序、分支、循环)的实现。
函数的定义和调用方式练习。
2. 模块化程序设计将一个大的程序分解成多个模块,每个模块完成特定的功能。
通过模块间的调用和传递数据来实现整个程序的功能。
3. 文件操作与文件读写文件的打开、关闭、读写操作练习。
文件格式的转换和数据统计处理。
4. 预处理指令与宏定义使用预处理指令进行条件编译和宏定义替换。
练习使用常见的预处理指令如include、define、ifdef等。
5. 结构体、链表与指针结构体的定义和使用。
链表的创建、插入、删除、遍历等操作。
指针的概念和指针运算。
深入理解指针与数组、结构体等数据结构的关系。
6. 位运算与嵌入式系统编程学习位运算符的使用和位段操作的实现。
嵌入式系统的基本概念和编程方法。
7. 综合项目实践参与或独立完成一个综合性C语言程序设计项目。
项目可以包括基于命令行参数的程序设计、基于文件操作的程序设计、基于网络编程的程序设计等。
三、实习过程1. 理论学习:通过教材、网络资源等途径学习C语言的基础知识和编程技巧。
2. 上机实践:在计算机上编写和调试C语言程序,不断巩固所学知识。
3. 问题解决:遇到问题时,通过查阅资料、请教老师或同学等方式解决问题。
4. 团队合作:在小组项目中与他人协作,共同完成任务。
四、实习收获1. 知识技能方面:深入理解了C语言的基本概念和编程技巧,掌握了模块化程序设计和文件操作等常用算法。
2. 解决问题能力方面:学会了如何分析问题、寻找解决方案并通过实践验证解决方案的正确性。
3. 团队协作能力方面:学会了与他人合作,共同完成任务,提高了团队协作能力。
4. 职业素养方面:培养了耐心、细致的工作态度和勇于尝试、敢于创新的探索精神。
长江大学工程技术学院C语言课程设计实习报告个人通讯录模拟系统的设计学生姓名:周影学号:201061199序号:34专业班级:勘工61002指导老师:张继成报告日期:2011年12月28日个人通讯录模拟系统的设计第一部分课程设计的题目与要求1.问题的提出这次课程设计的题目是个人通讯录的模拟,这个系统实现了对手机通讯信息的管理。
如何实现手机通讯信息的管理系统?先要分析题目的要求,将一个比较复杂的问题分解成若干个相对容易的小问题,并设计好解决每个小问题的函数框架(函数功能、函数名、入口参数及返回值)设计出完整的主函数程序;其次将这些小的问题细节化然后利用一些函数来完成整个程序,手机通讯信息管理系统主要通过以下函数构成:查询功能函数,显示功能函数,添加功能函数,拨号功能函数,修改功能函数以及删除功能函数以上六个大的函数构成在个人通讯录中实现根据姓名进行查询、删除、修改通讯录中已有人的信息,在通讯录管理系统中实现模拟拨号并显示所有人的信息。
要实现各功能函数和主函数之间很好链接。
2功能要求:(1)、实现查询功能:利用函数的查询功能函数来实现查询功能而查询功能里面又分几个小型的函数构成,它由:①按姓名查询○2显示全部存储信息,只要满足查询条件的整条记录,其查询的相关内容就将显示在屏幕上。
(2)、实现添加功能:通过相应的程序与操作添加新数据。
当要添加新数据时,首先判断该姓名是否存在,如果不存在,则提示可进行数据录入并可依次输入办公电话等信息。
(3)、实现修改功能:利用修改函功能函数对文件里面的东西进行修改,然后修改的内容在文件里面显示出来。
(4)、实现删除功能:输入要删除的人的姓名时,可将此人的相应数据进行删除。
(5)实现拨号功能:能显示通讯录中所有人的姓名和对应的电话,当选中某个人的姓名和电话种类时,屏幕上可以显示出电话号码中的各个数字。
第二部分课程设计题目功能1.系统功能模块框图设计系统功能模块框图(1)箭头表示数据传递的方向。
C语言程序设计上机实验报告(精选5篇)第一篇:C语言程序设计上机实验报告黔南民族师范学院 C语言程序设计上机实验报告系部:计算机科学系年级:2013 级班级:姓名:学号:实验时间:实验成绩:2013年月日实验三顺序结构程序的设计一实验名称:顺序结构程序的设计二.实验环境:windows XP系统,VC++6.0软件三.实验目的:四.实验内容:五.算法描述流程图六.源程序七.测试数据及运行结果八.实验心得实验成绩评分要求1、原创性发现抄袭或雷同成绩为0分2、正确性程序正确60分3、可读性格式清楚,有注释,变量命名规范20分4、健壮性对特殊测试数据有考虑有测试10分5、效率程序运行效率高10分第二篇:《c语言程序设计》上机实验报告要求《c语言程序设计》上机实验报告要求1.实验环境:软件系统:使用的软件环境硬件系统:机型说明2.实验目的:掌握如何编辑、编译、链接调试运行c程序3.实验内容:(1)掌握顺序结构程序设计.P26 ,p49,p62 3.2~3.7(2)掌握选择结构程序设计(if 和switch语句的用法)p4.2~(3)循环结构程序设计(while, dowhile,for语句的用法)。
(4)掌握数组的定义、输入和输出的方法,字符数组、字符串函数的使用。
(5)了解函数的定义,熟悉函数实参与形参的“值传递”方式,掌握函数的嵌套调用和递归调用方法。
(6)熟悉指针含义及其使用。
(7)熟悉结构体和共用体的使用。
(8)熟悉文件的使用。
4.实验要求:(1)输入编写的源程序,检查程序有无错误(语法和逻辑错误),有则改之。
(2)编译和连接,仔细分析编译信息,如有错误应找出原因并改正。
(3)运行程序,输入数据,分析结果。
5.实验结果:输出程序清单和运行结果。
(要求把原题内容,调试好的程序和其结果一并打印),6.实验体会分析运行结果,本次调试程序取得的经验(遇到的问题,解决的方法等)。
第三篇:C程序设计上机实验报告10C程序设计实验报告实验名称:指针与数组学时安排:2课时实验类别:上机操作型实验要求:1人1组 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的1.理解指针、地址和数组间的关系;2.掌握通过指针操作数组元素的方法;3.掌握数组名作为参数的编程方式。
长江大学工程技术学院C语言课程设计实习报告简易图书信息管理系统学生姓名:***学号:*********序号:9专业班级:通信61002指导老师:***报告日期:2011.7.9第一部分课程设计的题目与要求1.问题的提出使用C语言程序设计一个简易图书信息管理系统。
系统可通过登陆后,调用指定的存储数据文件,利用程序设计好的各功能选项,实现对记录的查询、排序、修改、统计以及数据分类等等功能。
用记事本新建一个文本文件,文件名为:“DX+班号+序号”,如电信01班的12号同学所建的文件名应为:DX0112.txt.将N本书的信息(可在图书馆或网上查询书籍信息,要求数据中包含有相同的作者名和出版社的记录),输入到这个文件中,建议按如下形式存放:编号分类书名作者名出版社数量单价1 社会科学寻觅科学余秋雨作家出版社 1 38.002 自然科学 C程序设计谭浩强清华大学出版社 2 26.003 英文书籍博弈_The_Game Jones OverseaPublishing House 1 87.004 工具书牛津字典 Thompson 外语教学 3 119.005 社会科学文化苦旅余秋雨东方出版社 3 22.006 工具书实用字典门顺德外语教学 3 26.007 自然科学 C++ 谭浩强清华大学出版社 2 26.002. 功能要求在主函数中读入原始数据文件的内容,保存在对应的结构体数组中,然后显示菜单,利用菜单调用各个函数,分别完成如下功能:(注意:若文件DX0112存放在D盘的ABC文件夹中,则在fopen()函数中的文件名为:”D:\\ABC\\DX0112.txt”).(1).实现查询和功能:①按书名查询②按作者名查询。
将满足查询条件的整条记录显示在屏幕中。
(2).实现排序功能:①按种类排序②按作者名排序。
将排序的结果显示在屏幕上(3).统计每本书的总价及所有图书的总价。
用C语言创建一个数据文件,文件名为:“ZJ+班号+序号”,如电信01班的12号同学所建的文件名应为:ZJ0112.txt。
长江大学计算机上机实习报告题目:学生成绩管理系统姓名:吴磊学院:化学与环境工程专业:化学班级:化学10902学号:指导教师:熊老师2010年12月27日目录一设计目的 (1)二课程设计摘要 (2)三课程设计的任务与数据 (3)四系统功能模块 (4)五详细设计(各功能模块的具体实现算法——流程图) (5)六调试分析(包含各模块的测试用例及测试结果) (6)七总结 (7)N xx y iN i 21) (-=∑=一、设计目的1.进一步熟悉VC6.0的开发环境,掌握基本的编程方法,熟悉用C语言完成一个应用程序的设计过程、掌握有关编辑和调试程序的方法和技巧;2.主要掌握C语言中的结果提、指针及文件操作等内容;3.了解开发简单应用程序的全过程,包括:分析、设计、编程、调试和编写报告。
二、课程设计摘要第一步原始数据(建立两个数据文件)1.文件1用来存放学生成绩2.文件2用来存放课程学分第二步程序设计思想1.定义两个结构体数组用来存放文件1和文件2的内容。
2.编写各个函数对应各个应实现的功能。
3.编写第一个函数ReadDat1( )读取文件1(hx.txt)读取学生成绩4.编写第二个函数ReadDat2( )读取文件2(hx02KC.txt)读取课程学分5.编写第三个函数function1()计算各个同学的加权平均值和名次,同时创建txt文本文件MC.txt写入数据,包括各个学生的学号、名次、姓名、各科成绩、加权平均值。
6.编写第四个函数function2()统计全班每门课程的平均分和标准差,并计算各分数段(60分以下;60~69;70~79;80~89;90分以上的学生人数)。
课程设计的计算公式为:式中:y为课程标准差,x i 为第i个学生成绩,为本门课程的算术平均成绩,N为学生数。
创建txt文本文件hx.txt写入数据,包括课程编号、课程名称、标准差、分数段人数统计。
7.编写第五个函数function3()打印每名学生的成绩条,同时创建txt文本文件CJT.txt写入成绩条内容。
#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<string.h>#include<math.h>struct student{ long num;char name[10];int score[5];float average;int rank;}stud[35];struct xuefen{ long num;char kecheng[20];float xuefen1;}xf[5];struct studnt2{char name[20];long num[5];}stud2[5]={{">=90"},{">=80"},{">=70"},{">=60"},{"<60"}}; struct xsxx{long num;char name[20];char sex[5];int age;char zhiwu[40];}xinxi[35];float average[5];char str[100],str1[100],str4[100];int i,j,sum;function1_1() /*读入原始数据*/{ int i,j;FILE *fp,*fp1,*fp2;char f0[10],f1[10],f2[10],f3[10],f4[10];printf("加入读原始数据并显示的程序内容\n\n");if((fp=fopen("c:\\成绩.txt","r"))==NULL){ printf("cannot open file1\n");exit(0); }if((fp1=fopen("c:\\课程学分.txt","r"))==NULL){ printf("cannot open file1\n");exit(0); }if((fp2=fopen("c:\\学生信息.txt","r"))==NULL){printf("cannot open file3\n");exit(0);}for(i=0;i<35;i++)fscanf(fp,"%d%s%d%d%d%d%d",&stud[i].num,stud[i].name,&stud[i].score[0],&stud[i].score[ 1],&stud[i].score[2],&stud[i].score[3],&stud[i].score[4]);for(j=0;j<5;j++)fscanf(fp1,"%d%s%f",&xf[j].num,&xf[j].kecheng,&xf[j].xuefen1);printf("学号姓名体育读写政策毛概高数 \n");for(i=0;i<35;i++){ printf("%-14d%-10s%-8d%-8d%-8d%-8d%-8d\n",stud[i].num,stud[i].name,stud[i].score[0], stud[i].score[1],stud[i].score[2],stud[i].score[3],stud[i].score[4]);}printf("----------------------------------*******------------------------------------\ n");printf("编号课程学分\n");for(j=0;j<5;j++){ printf("%-6d%-10s%-2.1f",xf[j].num,xf[j].kecheng,xf[j].xuefen1);printf("\n");}printf("----------------------------------*******------------------------------------\n");fscanf(fp2,"%s%s%s%s%s",f0,f1,f2,f3,f4);for(i=0;i<35;i++)fscanf(fp2,"%-14d%-10s%-8s%-8d%-8s\n",&xinxi[i].num,xinxi[i].name,xinxi[i].sex,&xinxi[ i].age,xinxi[i].zhiwu);printf("%-14s%-10s%-8s%-8s%-8s\n",f0,f1,f2,f3,f4 );for(i=0;i<35;i++)printf("%-14d%-10s%-8s%-8d%-8s\n",xinxi[i].num,xinxi[i].name,xinxi[i].sex,xinxi[i].age ,xinxi[i].zhiwu);fclose(fp);fclose(fp1);fclose(fp2);printf(" \n*********按Enter键继续**********\n");getchar();getchar();}function1_2(){printf("加入计算平均分及名次的程序内容\n\n");float sum1,sum2;FILE *fp;for(i=0;i<35;i++){for(j=0,sum1=0,sum2=0;j<5;j++){ sum1+=stud[i].score[j]*xf[j].xuefen1;sum2+=xf[j].xuefen1;}stud[i].average=sum1/sum2; /*求加权平均分算法*/}for(i=0;i<35;i++){ stud[i].rank=1;for(j=0;j<35;j++){ if(stud[i].average<stud[j].average)stud[i].rank++;}}if((fp=fopen("c:\\平均分.txt","w+"))==NULL){ printf("cannot open this file\n");exit(0);}fprintf(fp,"学号姓名性别职务体育读写政策毛概高数平均分名次\n");printf( "学号姓名性别职务体育读写政策毛概高数平均分名次\n\n");for(i=0;i<35;i++){ fprintf(fp,"%-14d%-10s%-4s%-10s%-6d%-6d%-6d%-6d%-6d%-8.2f%-2d\n",stud[i].num,stud[i] .name,xinxi[i].sex,xinxi[i].zhiwu,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].score[3],stu d[i].score[4],stud[i].average,stud[i].rank);printf("%-14d%-10s%-4s%-10s%-6d%-6d%-6d%-6d%-6d%-8.2f%-2d\n",stud[i].num,stud[i].name, xinxi[i].sex,xinxi[i].zhiwu,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].score[3], stud[i].score[4],stud[i].average,stud[i].rank);}fclose(fp);printf(" \n*********按Enter键继续**********\n");getchar(); getchar();}function1_3(){printf("加入计算课程平均分和分数段人数程序内容\n\n");FILE *fp5;int t;FILE *fp6;for(i=0,sum=0;i<35;i++)for(j=0;j<5;j++)if(stud[i].score[j]>=90) /*计算分数段*/stud2[0].num[j]++;else if(stud[i].score[j]>=80)stud2[1].num[j]++;else if(stud[i].score[j]>=70)stud2[2].num[j]++;else if(stud[i].score[j]>=60)stud2[3].num[j]++;else stud2[4].num[j]++;if((fp5=fopen("c:\\成绩分段分布表.txt","w+"))==NULL){printf("cannot open this file\n");exit(0);}fputs("范围体育读写政策毛概高数\n",fp5);printf("范围体育读写政策毛概高数\n");for(i=0;i<5;i++){ fprintf(fp5,"%4s",stud2[i].name);printf("%4s",stud2[i].name);for(j=0;j<5;j++){fprintf(fp5,"%10d",stud2[i].num[j]);printf("%12d",stud2[i].num[j]);}fputs("\n",fp5);printf("\n\n");}fclose(fp5);if((fp6=fopen("c:\\课程平均分.txt","w+"))==NULL){ printf("cannot open this file\n");exit(0);}fputs("课程体育读写政策毛概高数\n平均分",fp6);printf("课程体育读写政策毛概高数\n\n平均分");for(j=0;j<5;j++){ sum=0;for(i=0;i<35;i++){ t=stud[i].score[j];sum+=t;average[j]=sum/(35*1.0);}fprintf(fp6,"%9.1f",average[j]);printf("%9.1f",average[j]);}fclose(fp6);printf("\n\n");printf(" \n*********按Enter键继续**********\n");getchar();getchar();}function1_4(){printf("加入计算男生和女生课程平均成绩程序内容\n\n ");int i=0,j=0,m=0,n=0;float sum1[5]={0.0},sum2[5]={0.0};FILE*fp6;if((fp6=fopen("c:\\男女课平.txt","w"))==NULL){printf("cannot open file\n");exit(0);}for(i=0;i<35;i++){ if(strcmp(xinxi[i].sex,"男")==0){ m=m+1;for(j=0;j<5;j++)sum1[j]=sum1[j]+stud[i].score[j];}if(strcmp(xinxi[i].sex,"女")==0){n=n+1;for(j=0;j<5;j++)sum2[j]=sum2[j]+stud[i].score[j];}}printf("男生和女生的平均分为:\n\n");printf("性别体育读写政策毛概高数\n");printf("男 %-5.2f %-5.2f %-5.2f %-5.2f %-5.2f\n",sum1[0]/m,sum1[1]/m,sum1[2]/m,sum1[3]/m,sum1[4]/m);printf("女 %-5.2f %-5.2f %-5.2f %-5.2f %-5.2f\n",sum2[0]/n,sum2[1]/n,sum2[2]/n,s um2[3]/n,sum2[4]/n);fprintf(fp6,"男生和女生的平均分为:\n");fprintf(fp6, "性别体育读写政策毛概高数\n");fprintf(fp6,"男 %-5.2f %-5.2f %-5.2f %-5.2f %-5.2f\n",sum1[0]/m,sum1[1]/m,sum1[2] /m,sum1[3]/m,sum1[4]/m);fprintf(fp6,"女 %-5.2f %-5.2f %-5.2f %-5.2f %-5.2f\n",sum2[0]/n,sum2[1]/n,sum2[2] /n,sum2[3]/n,sum2[4]/n);fclose(fp6);printf("\n *********按Enter键继续**********\n");getchar();getchar();}function1_5() /*统计不及格*/{printf("加入统计不及格情况程序内容\n\n");FILE *fp7;if((fp7=fopen("c:\\不及格表单.txt","w+"))==NULL){printf("can not open this file\n");exit(0);}fputs("学号姓名性别不及格课程名称课程学分成绩\n",fp7); printf("学号姓名性别不及格课程名称课程学分成绩\n");for(i=0;i<35;i++){for(j=0;j<5;j++)if(stud[i].score[j]<60){ fprintf(fp7,"%-14d %-10s %-8s %-12s %-10.1f %-5d\n",stud[i].num,stud[i].name,xinx i[i].sex,xf[j].kecheng,xf[j].xuefen1,stud[i].score[j]);printf("%-14d %-10s %-8s %-12s %-10.1f %-5d\n",stud[i].num,stud[i].name,xinxi[i].s ex,xf[j].kecheng,xf[j].xuefen1,stud[i].score[j]);}}fclose(fp7);printf("\n *********按Enter键继续**********\n");getchar();getchar();}function1_6() /*统计优秀学生*/{printf("加入输出优秀学生程序内容\n\n");int m=0,k=0;FILE *fp8,*fp;char title2[130];if((fp=fopen("c:\\平均分.txt","r"))==NULL){printf("cannot open this file\n");exit(0);}fgets(title2,130,fp);for(i=0;i<35;i++){fscanf(fp,"%d%s%s%s%d%d%d%d%d%f%d\n",&stud[i].num,stud[i].name,xinxi[i].sex,xinxi[i].z hiwu,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2],&stud[i].score[3],&stud[i].score[4],& stud[i].average,&stud[i].rank);}if((fp8=fopen("c:\\优秀学生表单.txt","w+"))==NULL){ printf("can not open this file\n");exit(0);}fprintf(fp8,"学号姓名性别体育读写政策毛概高数平均分名次 \n");printf( "学号姓名性别体育读写政策毛概高数平均分名次 \n");for(i=0;i<35;i++){ m=0;k=0;for(j=0;j<5;j++){ if(stud[i].score[j]==95) k++;if(stud[i].score[j]>=90) m++;}if(stud[i].average>=90||stud[i].rank<=3||(stud[i].average>=85&&(k>=1))||(stud[i].avera ge>=85&&(m>=2))){fprintf(fp8,"%d%s%s%d%d%d%d%d",stud[i].num,stud[i].name,xinxi[i].sex,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].score[3],stud[i].score[4]);printf("%-12d%-10s%-6s%-6d%-6d%-6d%-6d%-6d",stud[i].num,stud[i].name,xinxi[i].sex,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].score[3],stud[i].score[4]); fprintf(fp8,"%8.1f%d\n",stud[i].average,stud[i].rank);printf(" %-8.2f%-2d\n",stud[i].average,stud[i].rank);}}fclose(fp8);fclose(fp);printf(" *********按Enter键继续**********\n");getchar();getchar();}function1_7(){printf("加入输出优秀学生干部的名单\n\n");int m=0,n=0;FILE *fp9,*fp;char title2[130];if((fp=fopen("c:\\平均分.txt","r"))==NULL){printf("cannot open this file\n");exit(0);}fgets(title2,130,fp);for(i=0;i<35;i++){fscanf(fp,"%d%s%s%s%d%d%d%d%d%f%d\n",&stud[i].num,stud[i].name,xinxi[i].sex, xinxi[i].zhiwu,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2],&stud[i].score[3],&stud[i].score[4],&stud[i].a verage,&stud[i].rank);}if((fp9=fopen("c:\\优秀干部.txt","w+"))==NULL){printf("can not open this file\n");exit(0);}fprintf(fp9,"学号姓名性别职务体育读写政策毛概高数平均分名次\n");printf( "学号姓名性别职务体育读写政策毛概高数平均分名次\n");for(i=0;i<35;i++){ m=0;n=0;for(j=0;j<5;j++){ if(stud[i].score[j]>=95) m++;if(stud[i].score[j]>=90) n++;}if(((stud[i].average>=85)&&(strcmp(xinxi[i].zhiwu,"无")!=0))||((stud[i].rank<=35*0.2)&&((strcmp(xinxi[i].zhiwu,"无")!=0)))||((stud[i].average>=80&&(m>=1)&&((strcmp(xinxi[i].zhiwu,"无")!=0))))||((stud[i].average>=80&&(n>=2)&&((strcmp(xinxi[i].zhiwu,"无")!=0))))){fprintf(fp9,"%d%s%s%s%d%d%d%d%d",stud[i].num,stud[i].name,xinxi[i].sex,xinxi[i].zhiwu,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].score[3],stud[i]. score[4]);printf("%-12d %-10s %-4s %-5s %-5d %-5d %-5d %-5d %-5d",stud[i].num,stud[i].name,xinxi [i].sex,xinxi[i].zhiwu,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].score[3],stud[i].score[4]);fprintf(fp9,"%-6.2f%-2d\n",stud[i].average,stud[i].rank);printf("%-8.2f%-2d\n",stud[i].average,stud[i].rank);}}fclose(fp9);fclose(fp);printf("\n *********按Enter键继续**********\n");getchar();getchar();}void function2_1() /*破译密码*/{printf("加入破译密码的程序内容\n\n");{ FILE *fp1;double k;int i,j,a[21],e=0,t[3];int x=0;char A1[200];char A[200];if((fp1=fopen("c:\\密码.txt","r"))==NULL){printf("can't open the file!\n");exit(0);}fgets(A1,100,fp1);for(i=101;i<200;i+=2){ k=sqrt(i);for(j=2;j<=k;j++)if(i%j==0) break;if(j>k) a[e]=i,e++;}for(e=0;e<21;e++)printf("%d ",a[e]);printf("\n");for(e=0;e<21;e++){ strcpy(A,A1);t[0]=a[e]/100;t[1]=a[e]/10-t[0]*10;t[2]=a[e]%10;for(x=0,i=0; A[x]!='\0';x++){if(A[x]!=' '&&A[x]!=','){A[x]-=t[i++%3];if(!((A[x]>='a'&&A[x]<='z')&&(A1[x]>='a'&&A1[x]<='z')||(A[x]>='A'&&A[x]<='Z')&&(A1[x]> ='A'&&A1[x]<='Z')))A[x]=A[x]+26;}}printf("%d:\t%s\n",a[e],A);}getch();}printf(" \n*********按Enter键继续**********\n");}function3_1() /*显示心形*/{printf("加入显示心形的程序内容\n");#define pi 3.14159float a,r;int x,y,i,j;char cs[50][52];for(i=0;i<50;i++)for(j=0;j<52;j++)cs[i][j]=' ';for(a=0;a<=2*pi;a+=0.08){r=20*(1-sin(a));y=r*cos(a)+26;x=5-r*sin(a);cs[x][y]='H';}for(i=0;i<50;i++)for(j=0;j<52;j++){printf("%c",cs[i][j]);if(j==51) printf("\n");}printf(" *********按Enter键继续**********\n");getchar();getchar();}section1() /*第1个级菜单*/{ char ch21;do{ system("cls"); printf("\n\n\n\n");printf(" ********************学生成绩管理系统**********************\n");printf("----------------------------------------------------------\n\n");printf(" 1. 读入原始数据并显示 2. 计算平均分及名次\n\n");printf(" 3. 输出课程平均分和各分数段人数 4 输出男生和女生课程平均成绩\n\n");printf(" 5. 统计不及格情况 6. 输出优秀学生\n\n");printf(" 7. 输出优秀学生干部 8. 返回上级菜单\n\n");printf(" 输入选择序号\n");while((ch21=getchar(),ch21!='1'&&ch21!='2'&&ch21!='3'&&ch21!='4'&&ch21!='5'&&ch21!='6' &&ch21!='7'&&ch21!='8')) ;switch(ch21){case '1' : function1_1(); break;case '2' : function1_2(); break;case '3' : function1_3(); break;case '4' : function1_4(); break;case '5' : function1_5(); break;case '6' : function1_6(); break;case '7' : function1_7(); break;case '8' : return(0);}}while(1);}section2() /*第2个级菜单*/{ char ch22;do{ system("cls");printf("\n\n\n\n");printf(" *****************破译密码****************\n");printf(" -----------------------------------------\n");printf(" 1. 运行\n\n");printf(" 2. 返回上级菜单\n\n");printf(" 输入选择序号\n");while( (ch22=getchar(), ch22!='1'&& ch22!='2')) ;switch(ch22){case '1' : function2_1(); break;case '2' : return(0);}}while(1);}section3() /*第3个级菜单*/{ char ch23;do{ system("cls");printf("\n\n\n\n");printf(" *****************显示心形****************\n");printf(" ------------------------------------------\n");printf(" 1. 运行\n\n");printf(" 2. 返回上级菜单\n\n");printf(" 输入选择序号\n");while( (ch23=getchar(), ch23!='1'&& ch23!='2') );switch(ch23){case '1' : function3_1(); break;case '2' : return(0);}}while(1);}#define pi 3.141592653589794void main() /*主菜单*/{int i,j;char title[130],title1[130],title2[130];FILE *fp,*fp1,*fp4;char f0[10],f1[10],f2[10],f3[10],f4[10];if((fp=fopen("c:\\成绩.txt","r"))==NULL){printf("cannot open file1\n");exit(0);}if((fp1=fopen("c:\\课程学分.txt","r"))==NULL){printf("cannot open file1\n");exit(0);}if((fp4=fopen("c:\\学生信息.txt","r"))==NULL){printf("cannot open file3\n");exit(0);}fgets(title,130,fp);fgets(title1,130,fp1);for(i=0;i<35;i++)fscanf(fp,"%d %s %d %d %d %d %d",&stud[i].num,stud[i].name,&stud[i].score[ 0],&stud[i].score[1],&stud[i].score[2],&stud[i].score[3],&stud[i].score[4]);for(j=0;j<5;j++)fscanf(fp1,"%d%s%f",&xf[j].num,&xf[j].kecheng,&xf[j].xuefen1);fscanf(fp4,"%s%s%s%s%s",f0,f1,f2,f3,f4);for(i=0;i<35;i++)fscanf(fp4,"%d%s%s%d%s\n",&xinxi[i].num,xinxi[i].name,xinxi[i].sex,&xinxi[i].age,xinxi [i].zhiwu);char ch1;do{ system("cls"); /*清屏*/printf("\n\n\n\n");printf(" **************2012 C语言程序设计上机实习**************\n\n");printf(" 装备11101班第一组成员制\n\n");printf(" 成员表:xx xx xx \n\n");printf(" xx xx xx \n");printf("-------------------------------------------------\n\n");printf(" 1 学生成绩管理\n\n");printf(" 2 破译密码\n\n");printf(" 3 显示心形\n\n");printf(" 4 退出\n\n");printf(" 输入选择序号\n");while( (ch1=getchar(), ch1!='1'&& ch1!='2' &&ch1!='3'&&ch1!='4' )) ;switch(ch1){case '1' : section1(); break;case '2' : section2(); break;case '3' : section3(); break;case '4' : printf("\n\n\n\n\n\n\n\n\n\n\n\n\n ************* 谢谢使用!!! *************\n\n\n\n\n\n\n\n\n\n\n\n");exit(0); }}while(1);}。