中南大学
C语言程序设计实践报告
题 目 学 生 成 绩 管 理 系 统
学生姓名 木雕小象
指导教师 × × ×
学 院 信 息 科 学 与 工 程 学 院
专业班级 电 气 0900 班
完成时间 2010 年 7 月 8 日
系统描述 ………………………
功能模块结构……………………
数据结构设计……………………
主要模块的算法说明………………
运行结果……………………………
课程设计总结………………………
附录(源代码)……………………
一、系统描述
1. 学生成绩管理系统对日常学生的基本成绩信息进行管理,能实现对学生多种信息的存储,可以对多种数据进行各种各样的操作。
2. 管理系统首先能实现数据的输入。学生的各种信息(比如:班级,学号,姓名,性别,年龄,选修课程编号,名称,考试成绩,平时成绩,综合成绩)能正确的输入,从而可以进行处理。
3. 待所有学生信息输入以后,如果发现输入有误或者需要修改一些学生的信息,可以利用修改函数进行修改,并且可以修改任意需要修改的信息。
4. 同时当学生管理系统需要进行学生的添加时(比如:新生转学时),利用添加函数能及时的补充所需要的信息。
5. 当所需的学生信息正确而完整的输入后,该信息系统可以进行信息的查询(本系统可按学生姓名和学号查询),当输入正确的查询信息后,该管理系统可以显示出该生的所有信息。当输入信息不正确时,系统会提示错误,并允许重新输入。
6. 此系统同时可以进行信息的删除,当有学生退学或休学时,利用删除函数可以删除特定的学生信息,从而减少冗余的信息。
7. 该系统可以显示输入的所有信息。
8. 利用该系统可以同时计算每个同学的平均成绩,并对所有的学生按平均成绩高低进行排序,同时输出排序后的成绩表。
9. 此系统同时还可以列出不及格学生的学号,姓名,课程和成绩,便于进行统一的管理。
二、功能模块结构
1. 该系统的模块设计清晰,各模块的算法简单,高效,整个系统由主函数调用各个模块而组成。可以把函数分为数据录入模块,数据修改模块,数据添加模块,数据查询模块(可分文姓名和学号查询),数据删除模块,数据统计模块(成绩显示模块,成绩计算及排序模块,成绩分类模块),文件保存模块共七大模块,其中主函数中包含界面模块
2. 主要模块的结构图如下:
模块功能描述
1. 主控模版:主控模版是整个系统的模块交汇点,使用者使用系统时先进入主控模版,通过主控模版可以调用任意的模块,达到预期的功能。
2. 数据录入模块:该模块可以实现学生多种数据的录入,录入的信息储存在数组中,其他模块能够调用。
3. 数据模块修改:该模块可以实现数据的修改。当输入修改的学生信息时,模块会自动找寻,未找到则显示不存在,若找到则进入下级列表,操作者可以根据界面标号进行任意的修改
4. 数据添加模块:该模块将学生的信息完整的存入一个结构体数组中,其他模块可以调用。
5. 数据模块查询:该模块可以对信息进行检索,挑选出符合要求的信息,并显示列表,如果没有搜索的信息,则显示未找到。(1)按姓名查询(2)按学号查询
6. 数据删除模块:该模块可以删除任意指定学生的信息,模块首先会提醒操作者输入特定的学号,数据输入后进行搜寻,若无此学生的信息,则显示不能找到,若找到此生信息,则显示删除成功。
7. 数据统计模块
(1)成绩显示模块:输入选择号后,该模块可以显示已经输入系统的学生信息。
(2)成绩计算及排序模块:该模块可以利用平均成绩函数计算每位学生的平均成绩,并按学生平均成绩的高低进行排序,然后将学生姓名列表显示。
(3)成绩分类模块:该模块可以查找系统中不及格学生的信息,然后将该生的学号,姓名,不及格科目及分数显示出来。
8、退出系统模块
三、数据结构设计
学生成绩管理系统在使用中用到了众多的数据,数据多,数据类型复杂,给数据的管理和使用带来了很大的麻烦。所以我使用了数组来存放数据。定义了结构体来存放学生的各种类型的数据,使存放更合理,便于管理。
为避免学生基本信息结构体stu太长,嵌套定义了一个选修课程结构体course
struct course
{
课程编号 整型 int num;
课程名 字符串 char name[10];
考试成绩 浮点型 float score;
平时成绩 浮点型 float usual;
综合成绩 浮点型 float integral;
};
struct stu
{
专业班级 整型 int class;
学生编号 整型 int num;
学生姓名 字符串 char name[10];
性别 字符串 char sex[2];
年龄 整型 int age;
嵌套定义课程信息 struct course course[2];
平均成绩 浮点型 float avescore;
}
程序后面的模块都会要用到以上结构体的信息,控制好循环结构,能随时调用结构体中的信息。
四:数据模块结构说明
本系统的功能都是由主函数调用各个模块来实现,每个模块都是一个特定的自定义函数,能分别实现不同的功能。采用的思想也就是“化整为零”,将一个问题分解为一个个的小问题,各自来攻破。下面将分写介绍每个模块的实现过程及功能。在最开始,定义了一个全局变量m,m是结构体数组stu的有效长度,能够对后面的插入,删除等范围进行控制。
1. void menu()
改函数为主控函数,起到功能菜单的作用,每个功能从这个界面选择,实现功能后返回改界面,进而选择其他功能。
2. void input();
此函数实现最开始数据的输入功能。在屏幕的提示下,操作者能输入相应学生的信息,采用的是双重循环:外层循环for(i=0;i<m-1;i++)来控制学生的个数,输入基本信息;内循环for(j=0,sum=0;j<COURSENUM;j++)控制课程门数,此处COURSENUM是一个宏定义,指的是课程门数,能相应的输入学生的选修课程信息。stu[i].course[j].integral=stu[i].course[j].usual*0.3+stu[i].course[j].score*0.7,此式为综合成绩的计算表达式,当integral<60时,为“Y”(由条件语句if来判断实现)。平均分也在此模块求:总分sum为各科的综合成绩之和,除以课程数,就是平均分。
3. void modify();
此函数实现修改功能。在屏幕提示下,操作者可选择修改基本信息或课程信息,接着输入相关的信息。修改成功会提示,否则显示“无学生信息”。
4. void insert()
此函数实现插入功能。在屏幕提示下,操作者输入要增加的学生信息,此时,信息被放在数组元素stu[m]中(即最后一个,m为全局变量)。插完一个人之后,m自增,屏幕会显示“插入成功”,还会询问操作者“继续添加吗?”此处定义了一个字符型变量ch,当ch为Y或y时,继续输入,当ch为其他字符时,停止添加。
5. void search()
此函数实现查询功能。定义了一个字符串数组来存放输入的学生姓名。操作者在屏幕提示下输入要查询的名字或学号,本模块采用了字符串比较函数,当输入的字符串(名字或学号)与程序中的相同时,输出该生的所有信息(包括基本信息,选修信息),由for循环控制。此处采用了查询标志p:当查询正确时,p被赋值为1,显示信息;当没有查询信息时,p被赋值为0,在if语句控制下,显示“无学生信息”。由for语句控制循环。
6.void delete()
此函数实现删除功能。定义了字符串变量name[15],删除标志p。运用了字符串比较函数,当输入的字符串name与数据中的名字相同时,删除分两种情况:
a. 被删除的学生不是最后一个。由for语句控制循环,运用了字符串比较函数,当输入的姓名存在时,从此学生开始,将后面的数组元素依次赋值给前面的数组元素(即覆盖掉),实现了删除的功能。同时,全局变量m会自减,p被赋值为1,显示“删除成功”。
b. 被删除的学生是最后一个时,直接m自减,在后面的输出函数output()的for(i=0;i<m-1;i++)语句中,m已经减1了,于是不输出最后一名同学的信息,没有实现物理内存上的删除,但实现了删除的功能。此时,p被赋值为1,显示“删除成功”。
当输入的字符串name找不到相匹配的名字时,p被赋值为0,显示“没有学生档案”。
7.void tongji()
(1)void output()
此函数实现输出功能。由printf函数将一系列的表格框架、表头及相关的信息输出,for(i=0;i<m-1;i++)语句控制基本信息循环。当前面插入了学生信息时,m自增,此时,输出函数会将加入的学生信息显示出来;当删除了某生的信息时,m自减,此时,输出函数不会显示被删学生信息。两个for语句控制课程信息的循环,输出对应学生的课程信息。
(2)void average()
在前面输入函数input()中已经计算过平均分,此处实现输出平均分的功能,并按平均分的高低实现从高到低的排序输出。运用选择法排序,定义了中间结构体变量temp, for(i=0;i<m-1;i++)控制外层循环(排序的趟数),for(j=i+1;j<=m-1;j++) 控制内层循环(某趟中排序的次数)。当stu[i].avescore<stu[j].avescore时,运用中间变量,将二者的信息交换,以实现高分在前,低分“沉”到最后。在外层循环中,输出学生姓名,实现从高到低的排序。
(3)void unpassed()
此函数实现输出不及格学生信息的功能。由if语句判断,当stu[i].course[j].integral<60(综合分小于60)时,在for语句控制下,输出相关信息(包括学生姓名,课程名称,综合分数),便于对学生进行安排。
8.void anykey();
此函数实现缓冲的功能,为操作者提供时间进行其他操作。 当某个模块运行完之后,屏幕显示“按任意键继续”,按键之后,回到操作界面可以进行其他操作。
主函数main()说明
1) 主模块:首先输入一个数字进入主菜单。包括输入信息,修改信息,插入信息,查询信息,删除信息,信息统计(全部输出,平均成绩信息及排序,不及格名单),退出。在屏幕提示下,选择一个数字,实现相应的功能,实现之后,按任意键又回到主菜单,来实现下一个功能。直到按退出键“7”退出界面。此处由一个switch语句及它的多个case语句来完成,每个case语句中调用各个不同的数据模块,调用结束后,由break函数跳出,返回主菜单,继续执行下一个任务。
2) 主菜单:一个选择表格输出来,末行会提示输入相应的数字。以进入相应的模块
3) 录入模块:调用input()函数,输入信息。
4) 修改模块:调用modify()函数,修改信息。
5) 插入模块:调用insert()函数,插入信息。
6) 查找模块:调用search()函数,查找信息。
7) 删除模块:调用delete()函数,删除信息。
8) 统计模块:全部输出output()函数,输出全部学生信息;平均分模块调用average()函数,输出平均分信息及按平均分排序;输出不及格名单 unpassed()函数,输出综合分<60的名单。
9) 退出系统。
五、运行结果
1、主界面
×××
2、选择数据输入
3、修改数据界面,可分别修改学生基本信息和课程信息
4、插入数据,可添加新的信息
5、数据查询界面
(1)下面是按姓名查询结果
6、数据删除
7、数据统计
(1)显示全部数据
(2)计算平均成绩并排序
(3)输出不及格名单
六、课程设计总结
两个星期的计算机实践终于圆满的完成了。能够完整的将自己编的程序运行一遍,这是一件多么美妙的事情!从对C语言浅显的认识到更深刻的体会,这是一个从量变到质变的过程。每一个人都会有很大的进步。
说远比动手容易!这是我最深的体验。刚拿到题目,觉得没什么大不了,不就是定义几个函数,在主函数中运用一个switch语句,然后再调用嘛。随便的想了一想,也没太在意。之后的上机过程真的是给我泼了冷水,把我浇醒。一系列的变量定义,函数定义,输入输出,将我理想中的简单程序变得越来越复杂……不是把数据类型弄错,就是漏了什么东西,或者又打错了什么,反正十次中有九次不能运行,还有一次运行结果不对。编程序很需要耐心,各个细节都很重要,一个小错误将会导致整个系统的错误。最更要命的是,我偷了一下懒,只给每位学生安排了一门课程,所以在这个地方,思路就错了。综合分变成了自己输入,而不是按百分比计算,每个人的平均分也没有。还好问的及时,老师指出了错误,不至于错误继续延续下去,很值得庆幸。
对课本上的知识不熟悉也导致了我编程进度缓慢。考试只是让我把知识进行简单的记忆,并没有真正转变成自己的,而这次的编译程序过程做到了,经历之后,我还可以很熟练的写出语句,很快的检查出一些简单的错误。
这次的实践,我很有收获!
七、源程序代码
#include<stdio.h>
#include"stdlib.h"
#define COURSENUM 2 /*宏定义课程数目*/
void menu();
void input();
void delet();
void insert();
void modify();
void search();
void tongji();
void output();
void average();
void unpassed();
void anykey();
static int m=3; /*全局变量*/
struct course /*定义课程结构体*/
{
int num;
char name[10];
float credit;
float score;
float usual;
float integral;
};
struct stu /*定义学生结构体*/
{
int class;
int num;
char name[10];
char sex[2];
int age;
struct course course[2];
float avescore;
} stu[50];
void input() /*输入函数*/
{
int i,j,sum;
for(i=0;i<m;i++)
{
printf("请输入学生基本信息:\n");
printf("班级:\n");
scanf("%d",&stu[i].class);
printf("学号:\n");
scanf("%d",&stu[i].num);
printf("姓名:\n");
scanf("%s",stu[i].name);
printf("性别:\n");
scanf("%s",&stu[i].sex);
printf("年龄:\n");
scanf("%d",&stu[i].age);
printf("请输入课程基本信息:\n");
for(j=0,sum=0;j<COURSENUM;j++)
{
printf("课程编号:\n");
scanf("%d",&stu[i].course[j].num);
printf("课程名称:\n");
scanf("%s",stu[i].course[j].name);
printf("学分:\n");
scanf("%f",&stu[i].course[j].credit);
printf("考试成绩:\n");
scanf("%f",&stu[i].course[j].score);
printf("平时成绩:\n");
scanf("%f",&stu[i].course[j].usual);
stu[i].course[j].integral=stu[i].course[j].usual*0.3+stu[i].course[j].score*0.7; /*计算综合分*/
sum=sum+stu[i].course[j].integral;
}
stu[i].avescore=sum/COURSENUM; /*求平均成绩*/
}
anykey();
}
void modify() /*数据修改函数*/
{
int i,j,q,p=0,sum;
char name[15];
printf("---------------------------------------\n");
printf("| 1.修改基本信息: |\n");
printf("| 2.修改课程信息: |\n");
printf("---------------------------------------\n");
scanf("%d",&q);
switch(q) /*选择项目*/
{
case 1:printf("输入被修改者姓名:\n");
scanf("%s",name);
printf("请输入学生基本信息:\n");
for(i=0;i<m;i++)
{
if(strcmp(stu[i].name,name)==0)
{
printf("班级:\n");
scanf("%d",&stu[i].class);
printf("学号:\n");
scanf("%d",&stu[i].num);
printf("姓名:\n");
scanf("%s",stu[i].name);
printf("性别:\n");
scanf("%s",stu[i].sex);
printf("年龄:\n");
scanf("%d",&stu[i].age);
printf("修改成功\n");
p=1;
}
}
if(p==0) printf("不存在");break;
case 2: printf("输入被修改者姓名:\n");
scanf("%s",name);
for(i=0;i<m;i++)
{
if(strcmp(stu[i].name,name)==0)
{ printf("请输入课程基本信息:\n");
for(j=0,sum=0;j<COURSENUM;j++)
{
printf("课程编号:\n");
scanf("%d",&stu[i].course[j].num);
printf("课程名称:\n");
scanf("%s",stu[i].course[j].name);
printf("学分:\n");
scanf("%f",&stu[i].course[j].credit);
printf("考试成绩:\n");
scanf("%f",&stu[i].course[j].score);
printf("平时成绩:\n");
scanf("%f",&stu[i].course[j].usual);
stu[i].course[j].integral=stu[i].course[j].usual*0.3+stu[i].course[j].score*0.7;
sum=sum+stu[i].course[j].integral;
printf("修改成功\n");
}
}p=1;
}
if(p==0) printf("不存在");break;
default: printf("不存在该学生信息\n");
}
anykey();
}
void insert() /*插入函数*/
{
int j,sum;
char ch;
do
{
printf("请输入学生基本信息:\n");
printf("班级: ");
scanf("%d",&stu[m].class);
printf("学号: ");
scanf("%d",&stu[m].num);
printf("姓名 : ");
scanf("%s",stu[m].name);
printf("年龄:");
scanf("%d",&stu[m].age);
printf("性别:");
scanf("%s",stu[m].sex);
printf("请输入课程基本信息:\n");
for(j=0,sum=0;j<COURSENUM;j++)
{
printf("课程编号:");
scanf("%d",&stu[m].course[j].num);
printf("课程名称:");
scanf("%s",stu[m].course[j].name);
printf("学分:");
scanf("%f",&stu[m].course[j].credit);
printf("考试成绩:");
scanf("%f",&stu[m].course[j].score);
printf("平时成绩:");
scanf("%f",&stu[m].course[j].usual);
stu[m].course[j].integral=stu[m].course[j].usual*0.3+stu[m].course[j].score*0.7;
sum=sum+stu[m].course[j].integral;
}
stu[m].avescore=sum/COURSENUM;
m++; /*人数增加*/
printf("插入成功\n");
printf("是否继续插入信息?(y/n)\n");
ch=getch();
}while(ch=='Y'||ch=='y');
anykey();
}
void search() /*查询数据*/
{ int i,j,p=0,a,num;
float integral;
char s[15];
printf("-----------------------------------------\n");
printf("| 1、按姓名查询 |\n");
printf("| 2、按学号查询 |\n");
printf("-----------------------------------------\n");
printf("请选择:\n");
scanf("%d",&a);
switch(a)
{
case 1:
printf("请输入姓名\n"); /*输入查询数据*/
scanf("%s",s);
for(i=0;i<m;i++)
{
if(strcmp(stu[i].name,s)==0)
{
printf("基本信息:\n");
printf("------------------------------------------------------\n\
| 班级 | 学号 | 姓名 | 性别 | 年龄 |\n");
printf("|%6d|%6d|%6s|%6s|%6d|\n",
stu[i].class,stu[i].num,stu[i].name,stu[i].sex,stu[i].age); /*输出表格*/
printf("------------------------------------------------------\n");
printf("课程基本信息:\n\
------------------------------------------------------------\n");
printf("| 课程编号 | 课程名称 | 学分 | 考试成绩 | 平时成绩 | 综合成绩 |\n");
for(j=0;j<COURSENUM;j++)
{
printf("|%10d|%10s|%6.2f|%10.2f|%10.2f|%10.2f|\n",stu[i].course[j].num,stu[i].course[j].name,stu[i].course[j].credit,stu[i].course[j].score,
stu[i].course[j].usual,stu[i].course[j].integral);
}
printf("------------------------------------------------------------\n");
p=1; anykey();
}
}
if(p==0) printf("不存在该学生信息\n");
break;
case 2:printf("请输入学号\n");
scanf("%d",&num);
for(i=0;i<m;i++)
{
if(strcmp(stu[i].num,num)==0)
{
printf("基本信息:\n");
printf("-----------------------------------------\n\
| 班级 | 学号 | 姓名 | 性别 | 年龄 |\n");
printf("|%6d|%6d|%6s|%6s|%6d|\n",
stu[i].class,stu[i].num,stu[i].name,stu[i].sex,stu[i].age); /*输出表格*/
printf("-----------------------------------------\n");
printf("课程信息:\n\
-----------------------------------------------------------\n");
printf("| 课程编号 | 课程名称 | 学分 | 考试成绩 | 平时成绩 | 综合成绩 |\n");
printf("-----------------------------------------\n");
for(j=0;j<COURSENUM;j++)
{
printf("|%10d|%10s|%6.2f|%10.2f|%10.2f|%10.2f|\n",stu[i].course[j].num,stu[i].course[j].name,stu[i].course[j].credit,stu[i].course[j].score,
stu[i].course[j].usual,stu[i].course[j].integral);
printf("------------------------------------------------------------\n");
}
p=1; anykey();
break;
}
}
if(p==0) printf("不存在该学生信息\n"); break;
}
}
void delet() /*删除函数*/
{
int i,j,p=0;
char name[15];
printf("输入需要删除的学生姓名 :\n");
scanf("%s",&name);
for(i=0;i<m-1;i++)
{
if(strcmp(stu[i].name,name)==0)
{
stu[i]=stu[i+1];
m--; /*人数减少*/
p=1;
printf("删除成功\n");
}
else if(strcmp(stu[m-1].name,name)==0)
{
m--;p=1;
printf("删除成功\n");
}
}
if(p==0) printf("不存在该学生信息\n");
anykey();
}
void tongji() /*数据统计函数*/
{
int p;
printf("-----------------------------------\n");
printf("| 1.全部输出: |\n");
printf("| 2.计算平均成绩 |\n");
printf("| 3.不及格名单 |\n");
printf("-----------------------------------\n");
scanf("%d",&p);
switch(p)
{
case 1:output();break;
case 2:average();break;
case 3:unpassed();break;
}
}
void output() /*输出函数*/
{
int i,j;
printf("学生基本信息:\n"); /*输出表格和数据*/
printf("--------------------------------------\n| 班级 | 学号 | 姓名 | 性别 | 年龄 |\n");
printf("--------------------------------------\n");
for(i=0;i<m;i++)
{
printf("|%6d|%6d|%6s|%6s|%6d|\n",
stu[i].class,stu[i].num,stu[i].name,stu[i].sex,stu[i].age);
printf("--------------------------------------\n");
}
printf("课程信息:\n\--------------------------------------------------------------\n");
printf("| 课程编号 | 课程名称 | 学分 | 考试成绩 | 平时成绩 | 综合成绩 |\n");
printf("--------------------------------------------------------------\n");
for (i=0;i<m;i++)
{
for(j=0;j<COURSENUM;j++)
{
printf("|%10d|%10s|%6.2f|%10.2f|%10.2f|%10.2f|\n",stu[i].course[j].num,stu[i].course[j].name,stu[i].course[j].credit,stu[i].course[j].score,
stu[i].course[j].usual,stu[i].course[j].integral);
printf("--------------------------------------------------------------\n");
}
}
}
void average() /*平均分和排序函数*/
{
int i,j;
struct stu temp;
printf("平均分信息:\n");
printf("--------------------------\n");
printf("| 姓名 | 平均分 |\n");
printf("--------------------------\n");
for(i=0;i<m;i++)
{
printf("|%10s|",stu[i].name);
printf(" %10.3f|\n",stu[i].avescore);
printf("--------------------------\n");
}
printf("从高到低排列:\n");
printf("--------------------------\n");
printf("| 姓名 | 平均分 |\n");
printf("--------------------------\n");
for(i=0;i<m;i++)
{
for(j=i+1;j<=m-1;j++)
{
if(stu[i].avescore<stu[j].avescore)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
printf("|%10s|",stu[i].name);
printf(" %10.3f|\n",stu[i].avescore);
printf("--------------------------\n");
}
anykey();
}
void unpassed() /*不及格名单*/
{
int i,j,k=0,sum;
printf("不及格名单:\n");
printf("--------------------------------\n");
printf("| 姓名 | 课程名称 | 综合成绩 |\n");
printf("--------------------------------\n");
for(i=0;i<m;i++)
{
for(j=0,sum=0;j<COURSENUM;j++)
{
if(stu[i].course[j].integral<60)
{
k=1;
printf("|%6s|%10s|%10f|\n",stu[i].name,stu[i].course[j].name,stu[i].course[j].integral);
stu[i].course[j].integral=stu[i].course[j].usual*0.3+stu[i].course[j].score*0.7;
sum=sum+stu[i].course[j].integral;
printf("--------------------------------\n");
}
else k=0;
}
stu[i].avescore=sum/COURSENUM;
}
if(k==0) printf("没有不及格学生\n");
anykey();
}
void anykey() /*任意键函数*/
{
printf("按任意键继续:");
getch();
printf("\n");
}
void menu()
{
int j;
float i;
scanf("%f",&i);
while(1)
{
printf("--------------------------------------------------------------------\n");
printf("| 1、录入数据 5、数据删除 |\n");
printf("| 2、修改数据 6、数据统计 |\n");
printf("| 3、插入数据 7、退出系统 |\n");
printf("| 4、数据查询 |\n");
printf("----------------------------------------------------------------------\n");
printf("请选择以上功能:");
scanf("%d",&j); /*选择功能*/
switch(j)
{
case 1:input();break;
case 2:modify();break;
case 3:insert();break;
case 4:search();break;
case 5:delet();break;
case 6:tongji(); break;
case 7:exit(0);
}
}
}
main()
{
int i;
printf("-------------------------------------------------------------------------\n");
printf("| 教 务 信 息 管 理 系 统 |\n");
printf("| |\n");
printf("| 设计者:木雕小象 |\n");
printf("| |\n");
printf("| 指导老师:××× |\n");
printf("| |\n");
printf("| 20##年7月3日 |\n");
printf("-------------------------------------------------------------------------\n");
printf("进入系统请输入:1\n");
menu();
getch();
}
题名学生:*****电子**学号****实验地点:现代教育技术中心***房间实验日期和时间:20##年*月*日-*月*日实验类别:…
西安科技大学C语言课程设计报告题目学生成绩管理系统班级测控技术与仪器1102班学号姓名20xx年6月C语言课程设计实验报告C语言课…
C语言课程设计报告题目1文件移位加密与解密2学生成绩管理系统班级电子信息工程班学号姓名艾依河里的鱼20xx年7月C语言课程设计说明…
华中科技大学计算机科学与技术学院C语言程序设计课程设计实验报告题目汽车租赁信息管理系统专业班级学号完成日期20xx年10月21日指…
综合性实验报告课程名称C语言程序设计实验题目班级成绩管理系统的设计与实现姓名学号组长系别专业班级指导教师实验日期20xx年06月0…
C程序设计实验报告实验名称控制结构综合程序设计学时安排2课时实验类别上机操作型实验要求1人1组一实验目的1熟练掌握分支结构循环结构…
C课程设计报告题目小学算术运算测试设计者刘星刘俊良凌锋专业班级计算机网络0901班学号343337指导教师任长安所属系部计算机与信…
海南大学三亚学院信息管理与信息系统专业课程设计实验报告题目C语言程序设计实习分院管理分院专业信息管理与信息系统班级信管0902姓名…
程序设计基础课程设计C课程设计报告贪吃蛇院系:计算机学院网络工程系班级:122班姓名:指导教师:20##年12月25日程序设计基础…
C语言程序设计实验报告专业班级日期11月26日成绩实验组别第327次实验指导教师李开学生姓名学号同组人姓名实验名称数组实验一实验目…