当前位置:文档之家› 学生成绩管理系统实验报告(附C语言源码)

学生成绩管理系统实验报告(附C语言源码)

学生成绩管理系统实验报告(附C语言源码)
学生成绩管理系统实验报告(附C语言源码)

程序设计训练报告

(附源码)

题目学生成绩管理系统

学生姓名

学生学号

专业班级

指导老师

2012年7 月

目录

一、设计目的要求 (1)

二、设计功能简介 (1)

三、本人工作 (2)

四、详细设计方案 (2)

1.需求分析 (2)

2.模块详细设计 (2)

(1)模块功能 (2)

(2)定义函数功能说明 (4)

(3)模块算法流程图 (6)

3.核心模块源程序 (10)

4.实验结果 (16)

五、使用说明 (21)

六、程序设计心得体会 (21)

七、附录 (22)

附录1:参考文献 (22)

附录2:主要变量及自定义函数说明 (22)

附录3:源程序代码 (22)

一、设计目的要求

通过C语言程序设计这门课程,我想,我们应该达到的目的与要求应该有以下内容:

1.在编辑应用程序过程中,逐步加深对C语言编程的理解,

掌握结构化程序设计的基本思路和方法;

2.加强实践的能力,动手能力,同时进一步对所学的知识进

行巩固,为以后的学习奠定基础;

3.增强学生我们利用自己所学知识解决实际问题的能力

4.掌握书写程序设计说明文档的能力

二、设计功能简介

本程序针对登录系统的不同身份(有管理员、学生两个身份)有不同的功能。管理员的功能有以下几个:

1.管理用户:其中包括浏览用户、增添用户、修改用户、删

除用户四个功能;

2.管理成绩:其中包括浏览成绩、增添成绩、修改成绩、删

除成绩、成绩排序五个功能;

3.个人密码修改。

学生的功能有:

1.查看成绩:其中可直接查看各科成绩,也可查看单科、总

分成绩的排名;

2.查看个人信息:

3.修改个人密码。

三、本人工作

虽然编程本身是一件辛苦的事,但作为一个爱好电脑学科的我来说,并不在意。我在这个系统上,花了两天时间。为了这个系统,我反复查资料,调试,纠错……最终完成了这整个系统。

四、详细设计方案

1.需求分析

为了管理员能方便了解、管理班上学生的成绩与其他信息,也同时为了学生能够自主查询自己的成绩的具体情况与其他信息且不能查看别人的私密信息,设计了这个学生成绩管理系统。此系统能对相关信息进行录入、查询、显示、修改并保存在user.dat 和score.dat这两个文件里。

2.模块详细设计

(1)模块功能

◆管理员:

●浏览成绩(SurfScore()):可以浏览已经录入系统的所有成绩

●增添成绩(AddScore()):可以添加学生的成绩

●修改成绩(ReviseScore()):对已录入系统的成绩进行修改

●删除成绩(DelSocre()):通过提供姓名和ID号,删除对应成

●排名(OutPut()):管理员可以选择科目,对相应成绩进行

排序(用冒泡排序法实现),也输出对应科目的没及格人数和及格率

●浏览用户(SurfUser()):浏览所有的用户信息

●增添用户(AddUser()):增添用户信息,并提供以后用户

登录依据,每个用户拥有唯一的ID号

●修改用户(ReviseUser()):管理员可以通过此功能修改

任何用户的资料,包括密码

●删除用户(DeleteUser()):通过姓名和唯一ID号,删除

对应用户资料

●密码修改(ReviseSecre()):管理员仅可以修改自己的登

录密码

◆学生:

●查看成绩(ChaScore()):学生只能查看各科成绩,不能查看名

●成绩排名(OutPut()):学生只能在此查看自己的成绩,和对应

科目的排名

●查看个人信息(ChaInfo()):学生只能查看自己的个人信息●修改个人密码(ReviseSecre()):这和管理员用的同一函数,

只能修改自己的密码

(2)定义函数功能说明

结构体说明:

struct userinfo{

char id[5]; //学生的学号,或教职工的工号

char name[10]; //姓名

char secre[7]; //密码

char sex[1]; //性别

int flag; //权限标识 1为管理员 2为学生

char year[5]; //注册时间

}user;

struct score{

char name[10];

char id[5];

int scor[5]; //保存5单科成绩

float ave; //平均分

int all; //5单科成绩总分

};

全局变量说明:

●int cho:用于用户在各个界面的选项

●struct https://www.doczj.com/doc/6912543539.html, g_user:在各个函数中,根据登陆者的

信息,实现某些功能输出一些信息

●在结构体struct https://www.doczj.com/doc/6912543539.html,中也定义了全局变量user

自定义函数、变量说明

(3)模块算法流程图

总图

管理员_菜单

菜单的流程图都与管理员_菜单类似,就不在画菜单的流程图了。

Y

学生个人信息查询

学生成绩查询查询

与此类似,不再画了。

管理员_增加用户

管理员_删除用户

管理员_修改用户

管理员的成绩管理下的功能与用户管理下的功能十分类似,就不在画成绩管理下

功能的流程图了。

输出排名

备注:查看成绩界面是学生用

的、成绩管理界面管理员用

管理员、学生_修改密码 3.核心模块源程序

登录模块:

void Login() {

FILE *fp; int j=0; Welcome(); g_user.flag=0;

printf("请登录:\n\n 姓名:"); scanf("%s",g_https://www.doczj.com/doc/6912543539.html,);

printf("密码:");

while((g_user.secre[j]=getch())!='\r') //读取一个不在屏幕上显示的字符,如果该字符不为回车执行下面的内容

{

if(g_user.secre[j]=='\b') //如果是退格

{

printf("\b \b"); //退格,但没有消除*

j--;

}

else

{

printf("*"); //打印*

j++;

}

}

g_user.secre[j]='\0'; //最后加结尾符

fp=fopen("user.dat","ab+");

fseek(fp,0L,SEEK_SET);

while(!feof(fp))

{

fseek(fp,0L,SEEK_CUR);

fscanf(fp,"%s%s%s%s%d%s",https://www.doczj.com/doc/6912543539.html,,user.id,user.sex,user.year,&user.flag,us er.secre);

if(!strcmp(g_https://www.doczj.com/doc/6912543539.html,,https://www.doczj.com/doc/6912543539.html,)&&!strcmp(g_user.secre,user.secre))

{

g_user.flag=user.flag;

strcpy(g_user.id,user.id);

break;

}

}

if(g_user.flag==0)

{

Welcome();

printf("对不起,用户名与密码不匹配!");

printf("\n\n1.重新登录\n2.退出\n\n请选择:");

scanf("%d",&cho);

if(cho==1)

Login();

else

exit(0);

}

fclose(fp);

switch(g_user.flag)

{

case 1:Manager(); //管理员界面

break;

case 2:Student(); //学生界面

break;

}

}

增加用户模块:

void AddUser() //添加用户

{

char a[7],c;

struct userinfo one;

int tempflag;

FILE *fp;

user.flag=0;

Welcome();

printf("温馨提示:\n1.ID为四位数\n2.密码最多为6位\n3.填写性别时,1代表女,2代表男\n4.权限 1为管理员,2为学生\n");

printf("请填写以下信息:\n\n姓名:");

scanf("%s",https://www.doczj.com/doc/6912543539.html,);

printf("ID号:");

scanf("%s",user.id);

fp=fopen("user.dat","ab+");

fseek(fp,0L,SEEK_SET);

while(!feof(fp))

{

fseek(fp,0L,SEEK_CUR);

fscanf(fp,"%s%s%s%s%d%s",https://www.doczj.com/doc/6912543539.html,,one.id,one.sex,one.year,&one.flag,one.sec re);

if(!strcmp(one.id,user.id))

{

printf("该ID号已有人使用!请另换!\n按任意键继续……");

getchar();

AddUser();

}

}

fclose(fp);

printf("注册时间:");

scanf("%s",user.year);

printf("请输入密码:");

scanf("%s",user.secre);

printf("请确认密码:");

scanf("%s",a);

if(strcmp(a,user.secre)) //判断两次密码是否相同

{

printf("两次密码不一致!\n按任意键重新填写……\n");

getchar();

AddUser();

}

printf("性别:");

scanf("%s",user.sex);

getchar(); //对付回车

if(g_user.flag==-1)

tempflag=1;

else

{

Welcome();

tempflag=Identy();

}

printf("请确认你的信息:\n\n");

printf("姓名\t\tID号\t\t性别\t\t注册时间\t身份\n");

printf("%s\t\t%s\t\t%s\t\t%s\t\t%d",https://www.doczj.com/doc/6912543539.html,,user.id,user.sex,user.year,te mpflag);

printf("\n\n保存吗?(Y/N)");

if(g_user.flag==1)

getchar();

scanf("%c",&c);

getchar();

if(c=='Y'||c=='y')

{

fp=fopen("user.dat","ab+");

if(fp==NULL)

printf("文件打开失败!");

fprintf(fp," %s %s %s %s %d %s",https://www.doczj.com/doc/6912543539.html,,user.id,user.sex,user.year,tem pflag,user.secre);

fclose(fp);

}

if(g_user.flag==-1)

Login();

printf("\n继续添加用户吗?(Y/N)");

scanf("%c",&c);

if(c=='Y'||c=='y')

else

ManageUser();

}

修改用户模块:

void ReviseUser()

{

struct userinfo user[maxuser],temp;

char tempid[5],tempname[10],a[7];

int i,n,flag,k=0,pd=0;

FILE *fp;

SurfUser1();

printf("请输入要修改用户的姓名和ID号:\n\n");

printf("姓名:");

scanf("%s",tempname);

printf("ID号:");

scanf("%s",tempid);

fp=fopen("user.dat","ab+");

fseek(fp,0L,SEEK_SET);

for(i=0;i

{

fscanf(fp,"%s%s%s%s%d%s",user[i].name,user[i].id,user[i].sex,user[i].year,& user[i].flag,user[i].secre);

if(feof(fp))

break;

}

fclose(fp);

n=i;

Welcome();

printf("温馨提示:\n1.ID号为四位数;\n2.密码最多为6位;\n3.填写性别时,1代表女,2代表男;\n4.权限 1为管理员,2为学生;\n");

printf("5.设置不符合要求可能会直接退出界面。\n\n");

printf("请重新输入该用户的全部信息:");

printf("\n\n姓名:");

scanf("%s",https://www.doczj.com/doc/6912543539.html,);

printf("ID号:");

scanf("%s",temp.id);

pd=PanDuan(temp.id);

if(pd==1)

{

printf("对不起,该ID以有人使用,请另换!\n按任意键重来……");

ReviseUser();

}

printf("注册时间:");

scanf("%s",temp.year);

printf("输入密码:");

scanf("%s",temp.secre);

printf("确认密码:");

scanf("%s",a);

if(strcmp(a,temp.secre)) //判断两次密码是否相同

{

printf("两次密码不一致!\n按任意键重来……\n");

getchar();

ReviseUser();

}

printf("性别:");

scanf("%s",temp.sex);

temp.flag=Identy();

getchar();

fp=fopen("user.dat","wb+");

for(i=0;i<=n;i++)

{

if(!strcmp(tempname,user[i].name)&&!strcmp(tempid,user[i].id))

{

strcpy(user[i].name,https://www.doczj.com/doc/6912543539.html,);

strcpy(user[i].id,temp.id);

strcpy(user[i].sex,temp.sex);

strcpy(user[i].year,temp.year);

strcpy(user[i].secre,temp.secre);

user[i].flag=temp.flag;

k=1;

}

fprintf(fp," %s %s %s %s %d %s",user[i].name,user[i].id,user[i].sex,user [i].year,user[i].flag,user[i].secre);

}

fclose(fp);

if(k==1)

printf("修改成功!\n按任意键返回上一层菜单……");

else

printf("对不起,姓名与ID号不一致!\n修改失败!\n按任意键返回……"); getchar();

ManageUser();

}

4.实验结果

登录

管理员主菜单

确定添加用户

删除用户

浏览用户

确定添加成绩

大一上期C语言实验报告1熟悉实验环境

成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)熟悉C语言运行环境,了解和使用Visual6.0++集成开发环境(2)熟悉Visual6.0++环境的功能键和常用的功能菜单命令 (3)掌握C语言程序的书写格式和C语言程序的结构 (4)掌握C语言上机步骤,以及编辑、编译和运行一个C语言程序的方法 (5)熟悉Visual6.0++环境下的程序调试方法 2.实验内容 (1)按照实验步骤编辑、编译、运行第一个”Hello World”程序(2)利用实验指导中的第二个程序熟悉调试工具,在已知x,y值的情况下,计算出x和y的和、差、积、商,并显示出来(3)编写一个程序,输入a、b、c三个值,输出它们的和与平均值c 3.源程序 (1)#include void main() {printf(”Hello World”);} (2)#include void main() {int x=5,y=2; int s,d,p,q; s=x+y; d=x-y; p=x*y; q=x/y; printf(“和:%d差:%d积%d商:%d“,s,d,p,q);}

(3)#include void main() {int a,b,c.sum; float ave; Printf(“Please enter the a,b,c:”); scanf(“%d%d%d”,&a,&b,&c); sum=a+b+c; ave=(float)sum/3; printf(“sum=%d,ave=%f\n”,sum,ave);} 4.运行结果 (1) (2) (3)输入18、46、69测试得出答案如下

c语言学生成绩管理系统含源代码

C 语言程序设计作业 一设计项目:学生成绩管理系统 二总体设计: 2:模块功能说明: 1 输入功能:输入学生姓名学号及成绩。 2 查看功能:输出姓名学号及各科成绩。 3 查询功能:通过学号查询学生姓名及各科成绩。 4 统计功能:统计班级学生及格率,优秀率,各个学生成绩方差等。 5 修改功能:通过输入学号修改指定学生的错误信息。 6添加功能:添加学生信息。 7删除功能:通过输入学号输入指定学生信息。 8保存功能:将学生信息保存。 9 退出系统。 3:主要函数之间的调用关系及各自功能: 主要函数的函数原型 void inputscore(void); void savescore(void); void avergescore(void); void modifyscore(void); void lookscore(void); void searchscore(void); void statistic(void); void add(void); void modify(void);

void delscore(void); void menu(void); i.在菜单界面输入1,调用函数inputscore( )实现输入学生成绩信息功能。ii.在菜单界面2,调用函数lookscore( )实现学生成绩按平均分高低排序输。 出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计 算。 iii.在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。 iv.在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生名单。 v.在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能vi.在菜单界面输入6,调用add()函数实现添加学生成绩。 vii.在菜单界面输入7,调用delscore()函数实现删除指定学生成绩。 viii.在菜单界面输入8,调用savescore()函数将学生成绩信息保存。 ix.在菜单界面输入9,退出成绩管理系统。

C语言实验报告《函数》

C语言实验报告《函数》 C语言实验报告《函数》 学号: __________ 姓名: __________ 班级: __________ 日期: __________ 指导教师: __________ 成绩: __________ 实验四函数 一、实验目的 1、掌握函数定义、调用和声明的方法 2、掌握实参和形参之间的传递方式 3、函数的嵌套调用 二、实验内容 1、写一个函数,将两个字符串连接。(习题 8. 6) 2、编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。(习题 8.9)

3、请将实验三中的实验内容三改正后,再改写成函数形式(排序部分)。物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板 三、实验步骤与过程 四、程序调试记录 一、实验目的 1.观察植物细胞有丝分裂的过程,识别有丝分裂的不同时期。 初步掌握制作洋葱根尖有丝分裂装片的技能。 3.初步掌握绘制生物图的方法。 二、实验原理在植物体中,有丝分裂常见于根尖、茎尖等分生区细胞,高等植物细胞有丝分裂的过程,分为分裂间期和分裂期的前期、中期、后期、末期。可以用高倍显微镜观察植物细胞的有丝分裂的过程,根据各个时期细胞内染色体(或染色质)的变化情况,识别该细胞处于有丝分裂的哪个时期,细胞核内的染色体容易被碱性染料着色。 三、材料用具洋葱根尖、显微镜、载玻片、盖玻片、滴管、镊子、培养皿、铅笔、质量分数为15%的盐酸、体积分数为95%的酒精、质量分数为0.01gml的龙胆紫(或紫药水) 四、实验过程(见书P39) 1.洋葱根尖的培养(提前3—4天) 2.解离: 5min 3.漂洗: 10min 4.染色: 5min

C语言实验报告参考答案 原

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include main() {

int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include main() { int a,b,c,d; float x; a=160; b=46; c=18;

d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7

c语言实验报告

C语言实验报告 说明 1,所有程序均用VC6.0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。 2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。 实验2 数据类型、运算符和表达式 一、实验目的: (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。 (2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。 (3)掌握C语言的输入和输出函数的使用 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。 三、程序调试与问题解决: (1)输人并运行下面的程序 #include void main() { char c1,c2; c1='a'; c2='b'; printf("%c %c\n",c1,c2); } ○1运行此程序。 ○2在上面printf语句的下面再增加一个printf语句。

printf("%d %d\n",c1,c2); 再运行,并分析结果。 输出结果如图,编译成功,无错误。 ○3将第3行改为 int c1,c2; 再运行,并分析结果。 ○4再将第4、5行改为 c1=a; c2=b; 再运行,并分析结果。 a,b没有定义,编译报错。 ○5再将第4、5行改为 c1=‘’a‘’; c2=‘’b‘’; 再运行,并分析结果。 ○6再将第4、5行改为 c1=300; c2=400; 再运行,并分析结果。 以字符型输出时,输出的将是300,400对应的字符。 (2)输人并运行教材第3章习题3. 6给出的程序 #include main () { char c1='a',c2='b',c3='c',c4='\101',c5='\116';

C语言程序设计学生成绩管理系统实验报告

计算机学院 C语言程序设计报告书设计名称:学生成绩管理系统 专业:软件工程 指导老师: 班级: 姓名: 学号: 座号: 2011-6-15

一、实验目的 1.在编辑应用程序过程中,逐步加深对C语言编程的理解; 2.加强实践的能力,动手能力,同时进一步对所学的知识 进行巩固; 3.培养初步编程的能力,为以后的学习奠定基础。 二、实验内容 运用所学的C语言知识编辑一个应用程序:学习成绩管理系统 三.系统软件环境: 本程序主要运行在:Visual C++ 6.0 Turbo C/C++ 3.0 四.课程设计题目: 学生成绩管理系统 程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能: (1)主菜单

(2)各菜单项功能 ①成绩录入:输入学生的学号、姓名及三门课的成绩; ②成绩查询: *按学号查询学生记录。 ③成绩统计: *计算学生的平均分; *根据学生的平均分高低,对学生的数据进行排序后输出; ④退出系统:退出整个系统(即主菜单) 。 五.数据结构设计描述: ↓ ↓

六.各变量的定义和作用 int num; /*定义学号,变量为整型*/ char name; /*定义姓名,变量为字符型*/ int score; /*定义课程的成绩,变量为整型*/ float average; /*定义平均分,变量为浮点型*/ 七.系统各函数的功能,、相互调用关系 1.函数实现功能说明: (1)menu函数 是定义一个菜单函数,其功能在于输出菜单界面供使用者选择。 (2)input函数 是定义用于输入学生信息。 (3)select 函数 是定义用于查询学生信息。包括学号、姓名及各科成绩。(4)statistics 函数 计算学生的平均分。 根据学生的平均分高低,对学生的数据进行排序输出。2.相互调用关系: Main函数调用menu函数。 Menu 函数可以调用input 函数、select函数和statistics函数八.心得体会

C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,b,c,x,y; a=150; b=20; c=45;

x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句

学生成绩管理系统源代码

学生成绩管理系统源代码-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

#include #include #include #include #include #include #include #include #define PRINT1 textcolor(12); cprintf("\r 请按任意键返回主菜单 \n\r");textcolor(10); getch();clrscr(); break; int shoudsave=0; struct student /* 学生信息结构体定义*/ { char num[10],name[20],cla[4]; int score1,score2,score3,total,ave; }; typedef struct node { struct student data; struct node *next; }Node,*L; void print1() { cprintf("\r============================================================= ==================="); } void print2() { cprintf("\n\r 1.输入学生成绩信息在这里你可以按照提示输入学生的班级,学号,姓名及各科成绩.\n"); cprintf("\n\r 2.注销学生成绩信息在这里你可以按照学号或姓名将某名学生的信息从本系统中删除.\n"); cprintf("\n\r 3.查询学生成绩信息在这里你可以按照学号或姓名查询某一名学生的信息.\n"); cprintf("\n\r 4.修改学生成绩信息在这里你可以按照提示修改某一名学生的学号,姓名及各科成绩."); cprintf("\n\r 5.学生成绩信息排序在这里你可以看到所有学生的各科成绩.\n"); cprintf("\n\r 6.学生成绩信息统计在这里本系统将为你显示所有科目的最高分及最低分所得学生.\n"); cprintf("\n\r 7.显示学生成绩信息在这里你可以看到系统中所有学生的信 息.\n"); cprintf("\n\r 8.保存学生成绩信息在这里你可以将学生你信息保存到内存 中.\n");

游戏C语言实验报告

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录 一、实验目的和要求 .................................................................................................................................................... 二、实验环境、内容和方法 ........................................................................................................................................ 三、程序设计 ................................................................................................................................................................ 四、源代码 .................................................................................................................................................................... 五、调试与运行结果.................................................................................................................................................... 六、总结........................................................................................................................................................................

2010C语言实验报告参考答案

2010C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a;

哈工大(威海)c语言实验报告册答案

实验1简单判定性问题求解 一、实验学时 完成本实验需4学时。 二、实验目的 1、阅读程序题 (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法; (2)掌握不同的类型数据之间赋值的规律; (3)掌握数据在内存中的存储方式; (4)学会输入、输出函数的基本格式和使用方法; (5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。 2、编程题 (1)如何运用if-else判定性结构进行程序设计; (2)如何运用switch判定性结构进行程序设计。 3、调试题 (1)熟悉C程序的编辑、编译、连接和运行的过程。 三、实验指导 为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。 1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。 2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。要注意简单判定性问题的结构选择。 3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

四、实验内容 1、阅读程序题 (1)main( ) { /*定义字符型变量*/ char c1,c2; /*向字符变量赋以整数*/ c1=97; c2=98; printf("%c %c\n",c1,c2); /*以字符形式输出*/ printf("%d %d\n",c1,c2); /*以整数形式输出*/ } 思考:可否改成int c1,c2;输出结果是?相同 (2)main() { int a=7,b=5; printf("%d\n",b=b/a); } 思考:若将printf语句中%d变为%f,可否输出分式的值?可以(3)main() { int a=9; a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/ printf("%d\n",a); } 思考:赋值表达式a+=a-=a+a的求解步骤? 第一步:a=a-(a+a)=-9 第二步a=a+a=18 (4)main() { int k=-1; printf("%d,%u\n",k,k);

用java编写的学生成绩管理系统代码

; public class Student { private String id; private String name; private int math; private int english; private int java; private int computer; public String getId() { return id; } public void setId(String id) { = id; } public String getName() { return name; } public void setName(String name) {

= name; } public int getMath() { return math; } public void setMath(int math) { = math; } public int getEnglish() { return english; } public void setEnglish(int english) { = english; } public int getJava() { return java; } public void setJava(int java)

{ = java; } public int getComputer() { return computer; } public void setComputer(int computer) { = computer; } public static void main(String[] args) throws Exception { String id; String cid; String name; int math; int english; int java; int computer; String DBDriver = ""; String conStr = "jdbc:odbc:student"; Connection con = null; Statement stmt = null; ResultSet rs = null;

C语言实验报告

实验一进制转换 一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、VC6.0的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。 五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制的转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。

七、实验步骤 #include char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void fun(int n, int m) { int i=-1, a[100]; if(m!=16) { while(n) { a[i++]=n%m; n=n/m; } while(i!=-1) printf("%d",a[--i]); printf("\n"); } else { while(n) { a[++i]=num[n%16]; n/=16; } while(i!=-1) printf("%c",a[i--]); printf("\n"); } } int main() { int a, c; char cIn = 0; do { printf("\n输入正整数,转换的进制:"); scanf("%d %d",&a,&c); fun(a,c); printf("Go on? (Y/N):"); cIn = getchar( ); if(cIn == 'N' || cIn == 'n') return 0; } while(1);fun(a,c);

C语言实验报告参考源代码

实验5三种基本结构的综合应用 4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=100;i<=999;i++) {for(j=2;j=i) /*三位数是素数时*/ {k=i%100; /*去掉百位数字*/ if(k>=10) /*十位数字不是0时*/ {for(m=2;m=k) /*两位数是素数时*/ {p=i%10; /*p为个位数字*/ for(q=2;q=p)n++;}}}} printf("%d\n",n);} Key:57 5.求[2,400]中相差为10的相邻素数对的对数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=2;i<=400;i++) {for(j=2;j=i) /*i是素数时*/ {for(k=i+1;k=k)break;} /*k是素数时终止if语句的外层循环*/ if(k>=i+10) /*[i+1,i+9]不是素数时*/ {for(q=2;q

学生成绩管理系统(数据结构C语言版源代码)54843943

天天都是一个出发点,每天都有一点提高,每天都有一点收成! #include #include #include struct students{ char Sex[3]; /*字符型学生性别*/ double English; /*双精度实型英语成绩*/ double Java; /*双精度实型Java成绩*/ double Sjjg; /*双精度实数据结构*/ double Szdl; /*双精度实型数字电路*/ double Jsj; /*计算机组成原理*/ struct students *next; /*用与构建连表指向下一结点*/ }; FILE *fp; /*定义全局变量fp*/ void Revisemenu();/*修改菜单*/ void Sortmenu();/*排序菜单*/ void menu();/*主菜单*/ void secret();/*安全验证*/ struct students * Input();/*新建学生信息*/ void fprint(struct students *head);/*将信息导入文件可追加*/ void fprint_(struct students *head);/*将信息导入文件并覆盖*/ void Browse(struct students *head);/*浏览全部学生信息*/ struct students * create(struct students *head int *n);/*从tushu_list中读取数据构建链表*/ void SortEnglish(struct students * head);/*按英语成绩排序*/ void SortJava(struct students * head);/*按Java成绩排序*/ void SortSjjg(struct students * head);/*按数据结构成绩排序*/ void SortSzdl(struct students * head);/*按数字逻辑电路成绩排序*/ void SortJsj(struct students * head);/*按计算机组成原理成绩排序*/ struct students * Delete(struct students * head struct students * Revise();/*修改学生信息(按编号修改)*/ /*主菜单*/ void menu() { printf("\n\n"); printf("***************************************************\n"); printf(" 学生成绩管理系统 \n"); printf(" 1-添加新同学 2-浏览学生信息 \n"); printf(" 5-按成绩排序 6-修改学生信息 \n"); printf(" 7-删除学生信息 0-退出系统 \n"); printf("___________________________________________________\n");

C语言实验报告(四)

C语言实验报告(四) 一、实验目的 1.掌握C语言中函数和模块 2.掌握怎样定义函数,如何调用或使用函数,如何声明函数 3.掌握函数的参数,了解在函数调用时,参数是如何传递的 4.在使用函数的过程中怎样确定函数的参数 5.如何使用局部变量和全局变量 二、实验内容 1. 偶数判断 描述: 编写一个用户自定义函数,该函数有一个整型参数,函数的功能是:当这个整型数的值是偶数时,函数的返回值为0,当这个整型数的值是奇数时,返回值为1 。编写一个程序,从键盘输入m个整数,分别调用用户自定义函数来判断这m个整数的奇偶性。 输入: 第一行为一个整数m,表示要判断m个整数的奇偶性;紧接着是m行,每行一个整数。 输出:有m行,分别对应输入的第2到第m+1行的整数的奇偶性样例输入: 2 1 6 样例输出: 奇数 偶数

·程序代码: #include"stdio.h" int isEven(int a) { if(a%2==0) return 1; else return 0; } int main() { int m,i,b; scanf("%d",&m); for(i=1;i<=m;i++) { scanf("%d",&b); if(isEven(b)==1) printf("偶数\n"); else printf("奇数\n"); } return 0; } 2.温度转换 描述: 编写一个用户自定义函数,函数的功能是:将华氏温度转F换为摄氏温度C。转换公式为:C=5*(F-32)/9。编写一个程序,输出指定范围的华氏温度与摄氏温度的对照表,其中华氏温度步长为4。 输入: 两个空格隔开的整数n,m(且0

学生成绩管理系统基本C语言编写

//代码版权所有,不要 #include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" copy,仅供参考学习。//标准输入输出函数库 //标准函数库 //字符串函数库 //屏幕操作函数库 #define p->data.num,p->https://www.doczj.com/doc/6912543539.html,,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.total,p->data.a ve,p->data.mingci int saveflag=0; //是否需要存盘的标志变量 //定义与学生有关的数据结构 typedef struct student { char num[12]; char name[15]; int cgrade; int mgrade; int egrade; int total; float ave; int mingci; }sqlist; //定义每条记录或结点的数据结构,标记为:node typedef struct node { struct student data;// 数据域 struct node *next; //指针域 }Node,*Link; //Node 为node 类型的结构变量,*Link 为node 类型的指针变量 void menu() //主菜单 { system("cls"); //调 用 DOS 命令,清屏.与clrscr() 功能相同 printf(" \n"); printf(" 学生成绩管理信息系统主菜单\n\n"); printf(" **************************************************\n"); printf(" $ 1 、添加记录6、统计记录$\n"); #define HEADER1 " ********************** ***** 学生成绩信息 ****************************** \n\n" #define HEADER2 " 学号姓名计算机数学英语总分平均分名次\n\n" #define FORMAT " %-10s %-10s %5d %5d %5d %5d %.3f %4d \n" DATA //标记为student //学号 //姓名//计 算机成绩// 数学成绩// 英语成绩 //总分 //平均分 //名次

C语言实验报告范文

实验名称:指针及其应用日期:得分:指导老师: 专业:班次:姓名:学号: 实验目的 (1)掌握变量的指针及其基本用法。 (2)掌握一维数组的指针及其基本用法。 (3)掌握指针变量作为函数的参数时,参数的传递过程及其用法。一.实验内容( 1)运行以下程序,并从中了解变量的指针和指针变量的概念。 (2)运行以下程序,观察 &a[0] 、&a[i] 和 p 的变化,然后回答以下问题: 1.程序的功能是什么? 2.在开始进入循环体之前, p 指向谁? 3.循环每增加一次, p 的值(地址)增加多少?它指向谁? 4.退出循环后, p 指向谁? 5.你是否初步掌握了通过指针变量引用数组元素的方法?( 3)先分析以下程序的运行结果,然后上机验证,并通过此例掌握通过指针变量引用数组元素的各种方法。 ( 4)编写函数,将 n 个数按原来的顺序的逆序排列(要求用指针实现),然后编写主函数完成: ①输入 10 个数; ②调用此函数进行重排; ③输出重排后的结果。 二.分析与讨论 ( 1)指针的定义方法,指针和变量的关系。 定义方法: 数据类型 * 指针变量名 ; 如定义一个指向 int 型变量的指针—— int *p; 则我们可以继续写如下代码—— int a = 4; p = &a; printf("%d", *p); 在这里,我们定义了一个变量a,我们把它理解为内存空间连续的 4个字节(int 型占用 4字节),则这 4个字节的空间保存着一个数 4。&是取地址符号,即把变量a的地址(即这4个字节的首地址)赋给指针p (记住指针p的类型和变量a的类型要保持一致,否则的话,要进行类型转换)。这样子,指针p就保 存着变量a的地址。我们如果把指针p当做内存空间里面另外一个连续的 4个字节,那么这4个字节保存的数就是变量a的地址。printf("%d",*p)和 printf("%d",a)的结果是一样的。这里的*是取变量符号(与&刚好作用相反,通过变量的地址找到变量),与定义时 int *p 的*号作用不同(定义时的 *表示该变量是个指针变量,而非是取它指向的变量)。 ( 2)数组和指针的关系。 指针与数组是 C 语言中很重要的两个概念,它们之间有着密切的关系,利用这种

c语言课程设计学生成绩管理系统

目录 ——学生成绩管理程序题目要求 (2) 设计目的 (2) 总体设计 (3) 详细设计 (3) 调试与测试 (12) 源程序 (14) 总结 (30)

学生成绩管理程序 一.题目要求 1.问题描述: 对在校学生几门课程的考试成绩进行统一管理.每个学生记录包括学号,姓名,年龄,数学,英语,物理成绩,默认以学号为序存放. 2.要求: (1)一个文件按以班为单位存储学生记录. (2)将允许的操作分为四种,以A,B ,C,D,E,F为标志: A:插入一个学生记录; B:修改学生记录; C:删除一个学生记录; D:查找一个学生记录; E:浏览学生成绩: F:退出 3.计算学生的总成绩. 4.按学号排序输出全班学生成绩表 . 二.设计目的 根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.

三.总体设计 根据上面的需求分析,可以将这个系统分为以下模块:输入模块,修改模块,删除模块,查找模块,显示模块. 四.详细设计 1.主函数: 主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用,其中各功能模块用菜单方式选择. 流程图:

[程序]: //#include "head.h" int menu_select() { char c; printf("\n\n"); printf(" | 1. 增加学生记录 5.统计信息|\n"); printf(" | 2. 查询学生记录 6.打开文件|\n"); printf(" | 3. 修改学生记录7.保存文件|\n"); printf(" | 4. 学生纪录排序8.显示记录|\n"); printf(" | 0. 退出系统|\n"); printf("\n\n"); printf("请选择(0-8):"); c=getchar(); getchar(); return (c-'0'); } 2.输入模块: [分析]: 单独看各数据信息,学号,姓名是字符型,可以采用字符型数组;分数为整数,采用整数;数据信息存放在文件中,一条记录对应一个学生,既符合习惯又方便信息管理. 如果要存放若干学生信息就用结构体数组: void addrecord(student stud[]) { int i=0,j,num; char str[5]; if(numstus!=0) {

相关主题
文本预览
相关文档 最新文档