1.在写程序之前,我想告诉大家,这个程序初学者很可能可能看不懂,但是这很正常,因为这是我在学习完C语言之后写的。所以大家好好学习吧!

由于这是在我大一刚学到数组时编写的程序,有许多冗余的部分,但当时做出来还是很高兴的。

#include<stdio.h>
#include<string.h>
\\注意老师登录的密码是123456
\\注意管理员登陆的密码是654321
struct kecheng
{
long int num;
char id[];
int cj;
char name[];
};
struct student
{
long int num;
char name[];
int age;
char sex[];
char b[];
char p[];
};
int n,w,q;
char c1,c2,c3,c4,c5,c6;
char n1,n2,n3,n4,n5,n6;
struct student stu[];
struct student *p;
struct kecheng ke[];
struct kecheng *a;
void lr();
void ll();
void lls();
void lrs();
void cx();
void cxs();
void xg();
void xgs();
void sc();
void scs();
void jm();
void jms();
void main()\\主界面显示
{
int m=;
do
{
int z;
m+=;
printf("+------------------------+\n");
printf("|欢迎进入学生成绩信息系统|\n");
printf("+------------------------+\n");
printf("提示:请按照提示操作^_^\n");
printf("+---------------------+\n");
printf("|+[1]---登陆学生界面 |\n");
printf("|+[2]---登录教师界面 |\n");
printf("|+[3]---登陆管理员界面|\n");
printf("|+--------------------+\n");
printf("请输入您的选择:\n");
scanf("%d",&z);
if(z==)
{
int a;
printf("+---------------------------+\n");
printf("|+[1]---学生成绩的查询 |\n");
printf("|+[2]---学生个人信息的查询 |\n");
printf("|+[3]---学生成绩单的打印 |\n");
printf("|+[0]---退出 |\n");
printf("+---------------------------+\n");
printf("请输入您想查询功能的编号\n");
scanf("%d",&a);
switch(a)
{
case :cxs();break;
case :cx();break;
case :lls();break;
case :break;
default:printf("无效选项\n");
}
}
if(z==)
{
int b,i=;
do
{
jm();
i+=;
if(w==)continue;
if(w==)break;
}while(i<);
printf("\n");
printf("+-------------------------+\n");
printf("|+[1]---学生信息的录入 |\n");
printf("|+[2]---课程成绩信息的录入|\n");
printf("|+[3]---学生课程成绩单查询|\n");
printf("|+[4]---学生信息单查询 |\n");
printf("|+[5]---退出 |\n");
printf("+-------------------------+\n");
printf("请输入您想查询功能的编号\n");
scanf("%d",&b);
switch(b)
{
case :lr();break;
case :lrs();break;
case :lls();break;
case :ll();break;
case :break;
default:printf("无效选项\n");
}
}
if(z==)
{
int c,i=;
do
{
jms();
i+=;
if(q==)continue;
if(q==)break;
}while(i<);
printf("+------------------------------+\n");
printf("|+[1]---学生信息的删除 |\n");
printf("|+[2]---学生课程成绩信息的删除 |\n");
printf("|+[3]---初始密码的管理 |\n");
printf("|+[4]---学生信息的修改 |\n");
printf("|+[5]---课程成绩信息的修改 |\n");
printf("|+[0]---退出 |\n");
printf("+-------------------------+\n");
printf("请输入您想查询功能的编号\n");
scanf("%d",&c);
switch(c)
{
case :sc();break;
case :scs();break;
case :break;
case :xg();break;
case :xgs();break;
case :break;
default:printf("无效选项\n");
}
}
}while(m<=);
}
void jm()\\给老师加密的部分
{
int i=;
do
{
printf("请输入您的密码\n");
i+=;
c1=getch();printf("*");
c2=getch();printf("*");
c3=getch();printf("*");
c4=getch();printf("*");
c5=getch();printf("*");
c6=getch();printf("*");
if(c1==''&&c2==''&&c3==''&&c4==''&&c5==''&&c6=='')
{
printf("登录成功\n");
return w=;
}
if(c1!=''||c2!=''||c3!=''||c4!=''||c5!=''||c6!='')
{
printf("登录失败\n");
return w=;
}
}while(i<=);
}
void jms()\\给管理员加密的部分
{
int i=;
do
{
printf("请输入您的密码\n");
i+=;
n1=getch();printf("*");
n2=getch();printf("*");
n3=getch();printf("*");
n4=getch();printf("*");
n5=getch();printf("*");
n6=getch();printf("*");
if(n1==''&&n2==''&&n3==''&&n4==''&&n5==''&&n6=='')
{
printf("登录成功\n");
return q=;
}
if(n1!=''||n2!=''||n3!=''||n4!=''||n5!=''||n6!='')
{
printf("登录失败\n");
return q=;
}
}while(i<=);
}
void ll()
{
int i,j;
if(n!=)
{ printf("学生总数:%d\n", n);
printf("学号\t姓名\t年龄\t性别\t地址\t\t电话\n");
printf("-----------------------------------------------------\n");
for(i=;i<n;i++)
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
}
else printf("提示:无学生数据,请输入数据!");
}
void cx()\\查询功能
{
int c;
int w,i,j=;
char name[];
if(n!=)
{
do{ printf("\n");
printf("+--------------------+\n");
printf("| 按学号查询 请按 1 |\n");
printf("| 按姓名查询 请按 2 |\n");
printf("| 取消 请按 0 |\n");
printf("+--------------------+\n");
printf("请输入您的选择:");
scanf("%d", &c);
switch(c)
{
case :break;
case :
printf("请输入学生的学号;");
scanf("%ld", &w);
printf("\n");
for(i=;i<n;i++)
if(stu[i].num==w)
{
printf("\n学号\t姓名\t年龄\t性别\t地址\t\t电话\n");
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
j=;
}
if(j==)
printf("提示:没有该学生记录,请核对!");
break;
case :
printf("请输入学生的姓名:");
scanf("%s", name);
printf("\n");
for(i=;i<n;i++)
if(strcmp(name,stu[i].name)==)
{
printf("\n学号\t姓名\t年龄\t性别\t地址\t\t电话\n");
j=;
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
}
if(j==)
printf("提示:没有该学生记录,请核对!");
break;
default:
printf("\n提示:无效选项!");
break;
} }while(c!= );
} else printf("提示:无学生数据,请输入数据!");
return;
}
void lr()\\录入功能
{
int y;
if(n==)
p=stu;
do
{
printf("--------------------\n");
printf("请输入学生的学号:");
scanf("%ld",&p->num);
printf("请输入学生的姓名:");
scanf("%s",p->name);
printf("请输入学生的年龄:");
scanf("%d",&p->age);
printf("请输入学生的性别:");
scanf("%s",p->sex);
printf("请输入学生的地址:");
scanf("%s",p->b);
printf("请输入学生的电话:");
scanf("%s",p->p);
n++;
p++;
printf("\n1.继续输入.\n0.输入完毕.\n");
printf("请选择:");
scanf("%d",&y);
}
while(y==);
printf("提示:输入完毕!你一共输入%d个\n",n); }
void lrs()管理员界面的录入功能
{
int y;
if(n==)
a=ke;
do
{
printf("--------------------\n");
printf("请输入课程的编号:");
scanf("%ld",&a->num);
printf("请输入课程名称:");
scanf("%s",&a->id);
printf("请输入课程的成绩:");
scanf("%d",&a->cj);
printf("请输入课程的代课老师:");
scanf("%s",&a->name);
n++;
a++;
printf("\n1.继续输入.\n0.输入完毕.\n");
printf("请选择:");
scanf("%d",&y);
}
while(y==);
printf("提示:输入完毕!你一共输入%d个\n",n); }
void sc()\\删除功能
{
long int num;
int i,j,e;
if(n!=)
{
printf("学号\t姓名\t年龄\t性别\t地址\t\t电话\n");
printf("-----------------------------------------------------\n");
for(i=;i<n;i++)
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
printf("请输入您要删除的学生的学号:");
scanf("%ld", &num);
printf("\n");
for(i=;i<n;i++)
if(num==stu[i].num)
j=i;
if(j!=(n-))
{
for(e=i-;e<n;e++,j++)
{
stu[j].num=stu[j+].num;
strcpy(stu[j].name,stu[j+].name);
strcpy(stu[j].sex,stu[j+].sex);
stu[j].age=stu[j+].age;
strcpy(stu[j].b,stu[j+].b);\\直接将数组中的这个位置跳过,这样就可以实现删除功能
strcpy(stu[j].p,stu[j+].p);
n--;p--;
}
}else {n--;p--;}
printf("提示:删除完毕!");
}else printf("提示:无学生数据,请输入数据!");
}
void lls()
{
int i,j;
if(n!=)
{
printf("课程总数:%d\n", n);
printf("课程编号\t课程名\t成绩\t代课老师\n");
printf("-----------------------------------------------------\n");
for(i=;i<n;i++)
printf("%ld\t%s\t%d\t%s\n",ke[i].num,ke[i].id,ke[i].cj,ke[i].name);
}
else printf("提示:无课程成绩数据,请输入数据!");
}
void cxs()\\查询
{
int c;
int w,i,j=;
char name[];
if(n!=)
{
do{ printf("\n");
printf("+--------------------+\n");
printf("| 按学号查询 请按 1 |\n");
printf("| 按姓名查询 请按 2 |\n");
printf("| 取消 请按 0 |\n");
printf("+--------------------+\n");
printf("请输入您的选择:");
scanf("%d", &c);
switch(c)
{
case :break;
case :
printf("请输入学生的学号;");
scanf("%ld", &w);
printf("\n");
for(i=;i<n;i++)
if(ke[i].num==w)
{
printf("\n课程编号\t课程名称\t成绩\t代课老师\n");
printf("%ld\t%s\t%d\t%s\n",ke[i].num,ke[i].id,ke[i].cj,ke[i].name);
j=;
}
if(j==)
printf("提示:没有该课程成绩记录,请核对!");
break;
case :
printf("请输入学生的姓名:");
scanf("%s", name);
printf("\n");
for(i=;i<n;i++)
if(strcmp(name,stu[i].name)==)
{
printf("\n学号\t姓名\t年龄\t性别\t地址\t\t电话\n");
j=;
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
}
if(j==)
printf("提示:没有该学生记录,请核对!");
break;
default:
printf("\n提示:无效选项!");
break;
} }while(c!= );
}else printf("提示:无课程成绩数据,请输入数据!");
return;
}
void scs()\\在管理员界面实现删除功能
{
long int num;
int i,j,e;
if(n!=)
{
printf("课程编号\t课程名称\t课程成绩\t代课老师\n");
printf("-----------------------------------------------------\n");
for(i=;i<n;i++)
printf("%ld\t%s\t%d\t%s\n",ke[i].num,ke[i].id,ke[i].cj,ke[i].name);
printf("请输入您要删除的课程的编号:");
scanf("%ld", &num);
printf("\n");
for(i=;i<n;i++)
if(num==ke[i].num)
j=i;
if(j!=(n-))
{
for(e=i-;e<n;e++,j++)
{
ke[j].num=ke[j+].num;
strcpy(ke[j].id,ke[j+].id);
strcpy(ke[j].cj,ke[j+].cj);
strcpy(ke[j].name,ke[j+].name);
n--;a--;
}
}else {n--;a--;}
printf("提示:删除完毕!");
}else printf("提示:无学生数据,请输入数据!");
}
void xg()\\实现修改功能
{
long int num;
int i,j,c;
if(n!=)
{
printf("请输入您要修改的学生的学号:");
scanf("%ld", &num);
printf("\n");
for(i=;i<n;i++)
if(stu[i].num==num)
j=i;
do{
printf("请选择您要修改的学生的信息内容:\n");
printf("+----------------------+\n");
printf("| 姓名 请按 1 |\n");
printf("| 年龄 请按 2 |\n");
printf("| 性别 请按 3 |\n");
printf("| 学号 请按 4 |\n");
printf("| 地址 请按 5 |\n");
printf("| 电话 请按 6 |\n");
printf("| 取消 请按 0 |\n");
printf("+----------------------+\n");
printf("请输入您的选择:");
scanf("%d", &c);
printf("\n");
switch(c)
{
case :break; case :printf("请输入新姓名:");
scanf("%s",stu[j].name);
break;
case :printf("请输入新年龄:");
scanf("%d",&stu[j].age);
break;
case :printf("请输入新性别:");
scanf("%s",stu[j].sex);
break;
case :printf("请输入新学号:");
scanf("%ld",&stu[j].num);
break;
case :printf("请输入新地址:");
scanf("%s",stu[j].b);
break;
case :printf("请输入新电话:");
scanf("%s",stu[j].p);
break;
default:
printf("\n无效选项!");
break;
} }while(c!= );
}else printf("提示:无学生数据,请输入数据!");
}
void xgs()
{
long int num;
int i,j,c;
if(n!=)
{
printf("请输入您要修改的课程的编号:");
scanf("%ld", &num);
printf("\n");
for(i=;i<n;i++)
if(ke[i].num==num)
j=i;
do{
printf("请选择您要修改的课程成绩的信息内容:\n");
printf("+----------------------+\n");
printf("| 课程编号 请按 1 |\n");
printf("| 课程名 请按 2 |\n");
printf("| 成绩 请按 3 |\n");
printf("| 代课老师 请按 4 |\n");
printf("+----------------------+\n");
printf("请输入您的选择:");
scanf("%d", &c);
printf("\n");
switch(c)
{
case :break; case :printf("请输入新课程编号:");
scanf("%ld",&ke[j].num);
break;
case :printf("请输入新课程名称:");
scanf("%s",ke[j].id);
break;
case :printf("请输入成绩:");
scanf("%d",&ke[j].cj);
break;
case :printf("请输入新代课老师:");
scanf("%s",ke[j].name);
break;
default:
printf("\n无效选项!");
break;
} }while(c!= );
}else printf("提示:无课程成绩数据,请输入数据!");
}

记得曾经有一周每天都是晚上2:00才睡,虽然并不完善但是当程序做出来的时候心里还是很兴奋的,希望与大家共同努力!

C程序范例(1)——学生管理系统”数组“实现的更多相关文章

  1. Java基础进阶:学生管理系统数组方式分包源码实现,教师管理系统集合和数组两种方式源码实现,图书馆管理系统源码实现,现附重难点,代码实现源码,课堂笔记,课后扩展及答案

    1.案例驱动模式 1.1案例驱动模式概述 (理解) 通过我们已掌握的知识点,先实现一个案例,然后找出这个案例中,存在的一些问题,在通过新知识点解决问题 1.2案例驱动模式的好处 (理解) 解决重复代码 ...

  2. C程序范例(2)——学生管理系统”链表“实现

    1.对于学生管理系统,能够实现的方法有许多,但是今天我们用链表的方法来实现.虽然初学者很可能看不懂,但是不要紧,这是要在整体的系统的学习完C语言之后,我才编写出的程序.所以大家不必要担心.在这里与大家 ...

  3. Android For JNI(四)——C的数组,指针长度,堆内存和栈内存,malloc,学生管理系统

    Android For JNI(四)--C的数组,指针长度,堆内存和栈内存,malloc,学生管理系统 好几天每写JNI了,现在任务也越来越重了,工作的强度有点高,还有好几个系列的博客要等着更新,几本 ...

  4. Java 9天入门(黑马程序员) 课程收尾 ------学生管理系统 (9.13)

    1 实现功能 2 结构概述 分为两个包,各自一个类 Student.java 为学生类,目的是储存学生信息 StudentManager.java 是主程序的代码 3 Student.java 的代码 ...

  5. 【IOS开发笔记02】学生管理系统

    端到端的机会 虽然现在身处大公司,但是因为是内部创业团队,产品.native.前端.服务器端全部坐在一起开发,大家很容易做零距离交流,也因为最近内部有一个前端要转岗过来,于是手里的前端任务好像可以抛一 ...

  6. 学生管理系统-火车订票系统 c语言课程设计

    概要: C 语言课程设计一---学生管理系统 使使用 C 语言实现学生管理系统.系统实现对学生的基本信息和考试成绩的 管理.采用终端命令界面,作为系统的输入输出界面.采用文件作为信息存储介质. 功能描 ...

  7. JDBC-简单的学生管理系统-增删改查

    结构:三层架构--mvc 三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序员更加专注的处理某阶段的业务逻辑. 比如将数据库操作代码封装到一层中,提供一些方法根据参数直 ...

  8. Java写一个简单学生管理系统

    其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组.List等等来写出一个简易的学生管理系统,二.牛逼一点的大神则用数据库+swing来 ...

  9. 使用C++实现学生管理系统

    我在前面的博客中分别使用C语言的动态数组和链表实现了学生成绩管理系统.近期正好在学习C++,于是我便使用C++实现了学生成绩管理系统.算法和前面的C语言的动态数组实现的学生成绩管理系统几乎相同,仅仅是 ...

随机推荐

  1. jQuery AJAX 网页无刷新上传示例

    新年礼,提供简单.易套用的 jQuery AJAX 上传示例及代码下载.后台对文件的上传及检查,以 C#/.NET Handler 处理 (可视需要改写成 Java 或 PHP). 有时做一个网站项目 ...

  2. 使用JavaMail创建邮件发送邮件

    一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两个部分,邮件头和邮件体之间使用空行分隔. 邮件头包含的内容有: from字段 ...

  3. angular中的compile和link函数

    angular中的compile和link函数 前言 这篇文章,我们将通过一个实例来了解 Angular 的 directives (指令)是如何处理的.Angular 是如何在 HTML 中找到这些 ...

  4. c#运算表达式

    1.取补运算 操作符:~ 操作数:限定int,uint,long,ulong和枚举类型,返回值于操作数类型相同 sbyte,byte,short,ushort,也可以运算,但运算前都将隐式转换为int ...

  5. 在Linux(ubuntu server)上面安装NodeJS的正确姿势

    上一篇文章,我介绍了 在Windows中安装NodeJS的正确姿势,这一篇,我们继续来看一下在Linux上面安装和配置NodeJS. 为了保持一致,这里也列举三个方法 第一个方法:通过官网下载安装 h ...

  6. EasyUI DataGrid 实用例子(2015-05-22)

    代码经过精心改良,可以直接使用,具体看注释吧. 1,前台,代码如下:         <%@ Page Language="C#" AutoEventWireup=" ...

  7. easyui-datagrid 列单击事件

    首先要注意的就是,先添加一个js方法,名字可以自定义,但是必须得与下面的option里面的onClickRow:后面的一致即可      <script type="text/java ...

  8. 小菜学习设计模式(一)—模板方法(Template)模式

    前言 设计模式目录: 小菜学习设计模式(一)—模板方法(Template)模式 小菜学习设计模式(二)—单例(Singleton)模式 小菜学习设计模式(三)—工厂方法(Factory Method) ...

  9. MVC html.actionlink

    Html.ActionLink 在 LinkExtensions 类中,ActionLink方法参数说明: 简单来说捏 就是这样滴 参数                      类型         ...

  10. 使用Spire.Barcode程序库生成二维码

    使用Spire.Barcode程序库生成二维码 某天浏览网页发现了一个二维码的程序库.它的描述说他可以扫描二维码图像.我很感兴趣,想试试他是不是会有用.所以我就用了些方法扫描二维码图像来测试一下.结果 ...