C语言程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
课程设计
——班级成绩管理系统
院系: ****学院
专业: ****专业
班级: * 级*班
姓名: ***
学号:*********
导师: ***
目录
1.设计目的
2.设计任务
3.设计内容与步骤
3-1.实现的功能
3-2.数据存储方式
3-3.功能目录
3-4.程序
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图
3-5.测试与评价
3-6.体会与收获
4.参考文献
5.附录
5-1.用户手册
5-2.源代码清单
1.设计目的
(1) 熟练掌握C 语言的基本知识和技能
(2) 基本掌握结构化程序设计的思路和方法
(3) 熟练掌握指针的用法和用链表存储数据的方法
(4) 能够利用所学的基本知识和技能,发挥自学能力和查找资料的能
力,解决稍微复杂的结构化程序设计问题
(5) 培养创新能力和良好的思维能力。
2.设计任务
(1)编写一个班级成绩管理系统,以文件形式保存班级学生的基本信息。
(2) 能运用自己编写的程序对学生信息进行一定的处理。
从设计目的之后奇数页开始撰写。
调试环境 :VC6.0
完成人:***
3.设计内容与步骤
3.1实现的功能
a.学生成绩登记
b.学生信息删除
c.学生信息修改
d.学生信息查询
e.学生成绩排序
f.密码功能
3.2数据存储方式
用结构数组存储数据,以可执行文件形式保存学生信息。
3.3功能目录
本系统首先设计出了主函数,然后根据去要实现的功能分别设计了密码系统,学生信息录入、显示、查询、删除、修改、添加功能的子函数。在显示的函数设计过程中首先运用拉文件的读取等必要的知识通过把文件的内容读取到内存然后打印出来。删除函数的设计是首先从文件内找到要删除的人,然后通过写一个实现删除目的的FOR循环将该人从内存里删除,然后再用写的方式打开文件,将内存内的信息写入文件,实现删除。查找也是先打开文件,用一个字符串对比的方法找出用户要查找的人,然后打印出来。修改也大体和删除相同,添加函数在设计时通过申请一片空间,然后通过指针将需要添加的信息添加进去,从而实现添加功能。
3-4.程序
流程图
破产流程图 免费下载数据库流程图下载数据库流程图下载研究框架流程图下载流程图下载word
3-5.测试与评价
1.运行进入程序主菜单
主选单具有所有函数的功能实现的选择功能,通过主选单的操作进入各个功能。主选单主要由主函数提供,其功能由子函数实现。
a. 班级成绩管理主界面
密码为:123456
1学生信息输入,按回车
学号
姓名
性别
年龄
成绩
b.学生信息显示
c学生信息查询
d学生信息删除
e学生信息排序
f学生信息修改
g退出系统
3-6.体会与收获
通过这次课程设计,我对很多的函数有新的认识,也学会运用多种函数,我也明白写软件的基本过程和基本方法。写软件的过程中我又学到曾经自己不知道的函数或是自己不会的函数的用法。特别是文件的开启和关闭,读与写。这次课程设计课总的来说让我受益匪浅。
4.参考文献
【1】谭浩强。C程序设计(第三版)。北京:清华大学出版社,2005
【2】谭浩强。C程序设计题解与上机指导。第三版。北京:清华大学出版社,2005
【3】C语言程序设计 北京 高等教育出版社
【4】其他网络资源
5.附录
5-1.用户手册
执行软件
首先进入主界面时输入密码:123456
1当软件中总有输入人员信息时:
A.请输入你要选择的功能:
根据提示输入1 按回按回车
输入学生学号,姓名,性别,年龄,成绩;按回车
B.学生信息查询
根据提示输入 2 按回车
输入需要查询人员学号:按回车
没有信息。
C. 删除人员信息:
根据提示输入3 按回车
输入需要删除的人员学号,姓名,按回车
D.排序人员信息 :
根据提示输入 4 按回车
显示班级成绩的名次。
E.修改学生信息
根据提示输入5 按回车
根据提示可修改学号,姓名,性别,年龄,成绩等。
F.退出系统
根据提示输入 6按回车,接着输入密码 按回车。
5-2.源代码清单
//软件中使用结构体和结构体数组
#include
#include
#include
#include //来源于网络资源
#define N 30
int M=0;
struct student
{
char num[10];// 对用户的信息进行保存,他们都以二进制的形式读写。
其中:
char name[20];
char sex[10];
int age;
float score1;
float score2;
float score3;
float score4;
float sum;// 分别对姓名、学号、性别、、年龄、成绩进行储存
在子函数中还使用了结构体数组:
}stu[N];
void menu();
void Input();
void Search();
void Del();
void Sort();
void Modi();
void main()
{
int n,k;
char str[10];
printf( "\n ");//主菜单系统
printf( "*********************************************\n ");
printf( "* 欢 迎 进 入 *\n ");
printf( "* 学 生 成 绩 管 理 系 统 *\n ");
printf( "*********************************************\n ");
printf(" \n");
printf( "请输入密码继续!");//密码系统,密码为123456
printf("\n");
for(k=0;k<3;k++)
{
printf("请输入密码:");
for(n=0;(str[n]=getch())!='\r';n++)
putchar('*');
printf("\n");
str[n]='\0';
if(strcmp(str,"123456")==0)
{
printf("密码正确!");
menu();
}
else
printf("密码错误!\n请重新输入!\n你已输入%d次",k+1);
}
printf("\n\n\n");
system("cls"); menu();
}
void menu()
{
int as;
printf( "************************************************\n ");
printf( " 欢迎进入主菜单! *\n ");
printf( "************************************************\n ");
printf("1.学生信息的录入");
printf("2.学生信息的查询");
printf("3.学生信息的删除");
printf("4.学生信息的排序");
printf("5.学生信息的修改");
printf("6.退出系统");
printf("请选择操作:");
scanf("%d",&as);
if(as<1||as>6)as=0;
switch(as)
{
case 0 :printf("输入错误!\n");break;
case 1 :Input();break;
case 2:Search();break;
case 3:Del();break;
case 4:Sort();break;
case 5:Modi();break;
case 6:break;
default: menu();
}
}
void Input()
{
int num[20];
static int i=0;
int flag=1;
char l;
system("cls");
printf("***********欢迎进入学员信息的录入!***********\n");
while(flag)
{
i++; printf("AA%dAA",i);
printf("\n输入第%d个学员学号:",i);
scanf("%s",stu[i].num);
printf("\n输入第%d个学员姓名:",i);
scanf("%s",stu[i].name);
printf("\n输入第%d个学员性别:",i);
scanf("%s",stu[i].sex);
printf("\n输入第%d个学员年龄:",i);
scanf("%d",&stu[i].age);
printf("\n输入第%d个学员成绩1:",i);
scanf("%f",&stu[i].score1);
printf("\n输入第%d个学员成绩2:",i);
scanf("%f",&stu[i].score2);
printf("\n输入第%d个学员成绩3:",i);
scanf("%f",&stu[i].score3);
printf("\n输入第%d个学员成绩4:",i);
scanf("%f",&stu[i].score4);
stu[i].sum+=stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4;
printf("学号:%s\n",stu[i].num);
printf("姓名:%s\n",stu[i].name);
printf("性别:%s\n",stu[i].sex);
printf("年龄:%d\n",stu[i].age);
printf("成绩1:%f\n",stu[i].score1);
printf("成绩2:%f\n",stu[i].score2);
printf("成绩3:%f\n",stu[i].score3);
printf("成绩4:%f\n",stu[i].score4);
printf("总分:%f\n",stu[i].sum);
printf("是否继续输入?(Y/N)");
getchar();
scanf("%c",&l);
if(l=='n'||l=='N')
flag=0;
else if(l=='Y')
Input();
else break;
}
system("cls");
menu();
}
void Search()//子函数SEARCH
{
int i=0,flag=1;
char cn;
char str[20];
system("cls");
printf("***********欢迎进入学员信息查询系统!***********\n");
printf("请输入要查找的学号:"); scanf("%s",str);
while(flag)
{
if((strcmp(str,stu[i].num))==0)
{
printf("学号 姓名 性别 年龄 成绩1 成绩2 成绩3 成绩4\n");
printf("%s %s %s %d %f %f %f %f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4);
break;
} i++;
if(i==N)
printf("无此学号!\n");
if(i==N)flag=0;
}
printf ("是否继续输入(Y/N)?");
getchar();
if(getchar()=='Y')Search();
menu();
}
void Del()
{
int i,j,flag=1;
char cn;
char str[20];
system("cls");
printf("***********欢迎进入学员信息删除系统!***********\n");
while(flag)
{printf("请输入要删除的学员学号:");
scanf("%s",&str);
for(i=0;isum[p])
{
x=p;
g=sum[k];
sum[k]=sum[x];sum[x]=g;
t=stu[k];
stu[k]=stu[x];
stu[x]=t;
}}
printf("学号\t姓名\t性别\t年龄\t成绩1\t成绩2\t成绩3\t成绩4\t总分\n");
for(i=N;i>0;i--)
if(stu[i].age!=0)
printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].sum);
printf("是否返回主菜单(y/n):");
getchar();
scanf("%c",&cn);
if(cn=='y'||cn=='Y')flag=0;
}
system("cls");
menu();
}
void Modi()
{
int i=0,flag=1;
char k;
char str[20];
printf("***********欢迎进入学员信息修改系统!***********\n");
while(flag)
{
i++;
printf("请输入要修改的学生的学号:\n");
scanf("%s",str);
if(strcmp(str,stu[i].num)==0)
{
printf("学号\t姓名\t性别\t年龄\t成绩1\t成绩2\t成绩3\t成绩4\t总分\n");
printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].sum);
printf("\n请输入修改内容\n");
printf("请修改学生学号:");
scanf("%s",stu[i].num);
printf("请修改学生姓名:");
scanf("%s",stu[i].name);
printf("请修改学生性别:");
scanf("%s",stu[i].sex);
printf("请修改学生年龄:");
scanf("%d",&stu[i].age);
printf("请修改成绩1:");
scanf("%f",&stu[i].score1);
printf("请修改成绩2:");
scanf("%f",&stu[i].score2);
printf("请修改成绩3:");
scanf("%f",&stu[i].score3);
printf("请修改成绩4:");
scanf("%f",&stu[i].score4);
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4; printf("AA%fAA",stu[i].sum);
printf("请输出修改后的学员信息:\n");
printf("学号\t姓名\t性别\t年龄\t成绩1\t成绩2\t成绩3\t成绩4\t总分\n");
printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].sum);
break;
}
if(i==N)
printf("无此学号!\n");
printf ("是否继续输入(Y/N)?");
getchar();
scanf("%c",&k);
if(k=='n'||k=='N')flag=0;
system("cls");
}
menu();
getchar();
}
开始
执行printf()函数
选择(a)
调用
Void
input()
函数
调用
void Search()函数
调用
void Del()函数
调用
void Sort()函数
调用
void Modi()函数
执行printf()
退出系统
2011/0701
PAGE
XXVII