C语言实现班档案管理系统课程设计

本文实例为大家分享了C语言班档案管理系统的具体代码,供大家参考,具体内容如下

做的挺长时间的课程设计,当作参考吧

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 20
struct student
{
 long num;
 char name[20];
 char sex[10];
 int age;
 char bz[40];
 struct student *next;
};
int i,j,n,num2,num3,age3,k,m;
char name3[20],sex3[20],bz3[20],ch;
FILE *fp;
int login() //登陆函数
{
 char key[20];
 printf("\t  ********************请输入系统密码********************\n");
 do
 {
 scanf("%s",key);
 if((strcmp("a",key))==0)
 {
 printf("\t        password correct ,welcome !\n");
 return 1; //当密码正确时,返回1,进入系统
 }
 printf("\t        password incorrect,please input again!\n");
 }while(key!=1);//当返回值不为1时,重新输入密码,直到输入真确为止
 system("cls");
}
int menu() //菜单
{
 int c;
 printf("\t\t**********欢迎进入通讯客户端!************\n\n");
 printf("\t\t|—————1.录入学生的基本信息—————|\n");
 printf("\t\t|----------2.显示学生的基本信息----------|\n");
 printf("\t\t|----------3.保存学生的基本信息----------|\n");
 printf("\t\t|----------4.删除学生的基本信息----------|\n");
 printf("\t\t|----------5.修改学生的基本信息----------|\n");
 printf("\t\t|----------6.查询学生的基本信息----------|\n");
 printf("\t\t|—————7.退出系统——————————|\n");
 printf("\t\t请选择您要进行的功能(0~7) ");
 scanf("%d",&c);
 return c;
}
struct student *creat() //录入信息函数
{
 struct student *head,*p1,*p2;
 n=0;
 p1=p2=(struct student *)malloc(sizeof(struct student));
 head=NULL;
 printf("请输入学生信息学号,姓名,性别,年龄,备注(键入学生学号为0时结束)\n");
 while(1) //为1表真,p2->next不为0;
 {
 scanf("%d",&p1->num);
 if(p1->num==0) //判断学生的学号是否为0,如果为0则停止输入数据;
 {
  break;
 }
 scanf("%s%s%d%s",p1->name,p1->sex,&p1->age,p1->bz);
 n=n+1;
 if(n==1)
 {
  head=p1;
 }
 else
 {
  p2->next=p1;
 }
 p2=p1;
 p1=(struct student *)malloc(sizeof(struct student));
 }
 p2->next=NULL;
 system("cls");
 return(head);
}
void print(struct student *head) //输出信息函数
{
 struct student *p;
 printf("\t\t这里有 %d 个学生的数据信息\n",n);
 p=head;
 if(head!=NULL)
 {
 do
 {
 printf("\t\t学号:%d\t姓名:%s\t性别:%s\t年龄:%d\t备注:%s\n",p->num,p->name,p->sex,p->age,p->bz);
 p=p->next;
 }while(p!=NULL);
 }
 else
 {
 return 0;
 }
 printf("\n");
}
int save(struct student *p) //保存信息函数
{
 FILE *fp;
 if((fp=fopen("keshe.txt","wb"))==NULL)
 {
 printf("open file fail\n");
 }
 fp=fopen("stud","wb");
 do
 {
 fwrite(p,sizeof(struct student),1,fp);
 p=p->next;
 }while(p!=NULL);
 printf("\t\t\t保存成功!\n");
 fclose(fp);
 return 0;
}
struct student *del(struct student *head)
{
 struct student *p1,*p2;
 printf("\t\t请输入要删除学生的学号\n");
 scanf("%d",&num2);
 p1=head;
 if(head->num==num2)
 {
 head=head->next;
 free(p1);
 n--;
 }
 else
 {

 p2=head;
 while(p2->num!=num2&&p2->next!=NULL)
 {
  p1=p2;
  p2=p2->next;
 }
 if(p2->num==num2)
 {
  p1->next=p2->next;
  n--;
 }
 printf("delete:%ld\n",num2);
 }
 return (head);
}
int mod(struct student *head); //修改信息函数
struct student *modify(struct student *head)
{
 if(login()==0)
 {
 return 0;
 }
 else
 {
 struct student *p1;
 j=0;
 p1=(struct student *)malloc(sizeof(struct student));
 printf("\t\t\t请输入你要更改的学号\n");
 scanf("%d",&num2);
 printf("\t\t\t学号\n");
 scanf("%d",&num3);
 printf("\t\t\t姓名\n");
 scanf("%s",name3);
 printf("\t\t\t性别\n");
 scanf("%s",sex3);
 printf("\t\t\t年龄\n");
 scanf("%d",&age3);
 printf("\t\t\t备注\n");
 scanf("%s",bz3);
 p1=head;
 if(head->num==num2)
 {
  head->num=num3;
  strcpy(head->name,name3);
  strcpy(head->sex,sex3);
  head->age=age3;
  strcpy(head->bz,bz3);
  j=1;
 }
 else
 {
  p1=head->next;
  if(p1!=NULL)
  {
  while(p1->num!=num2)
  {
   p1=p1->next;
  }
  p1->num=num2;
  strcpy(p1->name,name3);
  strcpy(p1->sex,sex3);
  p1->age=age3;
  strcpy(p1->bz,bz3);
  j=1;
  }
 }
 if(j==0)
 {
  printf("\t\t\t更改失败\n");
 }
 else
 {
  printf("\t\t\t更改成功\n");
 }
 }
 system("cls");
 mod(head);
}
int mod(struct student *head)
{
 printf("\t\t\t请选择\n");
 printf("\t\t\t1:按学号修改学生信息\n");
 printf("\t\t\t2:输出修改后的学生信息\n");
 printf("\t\t\t3:返回主菜单\n");
 scanf("%d",&m);
 switch(m)
 {
 case 1:head=modify(head);break;
 case 2:print(head);break;
 case 3:menu();break;
 default:printf("\t\t\tinput error!\n");
 mod(head);
 }
}
int find(struct student *head);
int find1(struct student *head) //以学号方式查找
{
 struct student *p1;
 p1=(struct student *)malloc(sizeof(struct student));
 printf("\t\t\t请输入你要查询的学生学号\n");
 scanf("%d",&num2);
 p1=head;
 while(p1!=NULL)
 {
 if(p1->num==num2)
 {
  k=1;
  printf("\t\t\t学号:%d\t姓名:%s\t性别:%s\t年龄:%d\t备注:%s\n\n",p1->num,p1->name,p1->sex,p1->age,p1->bz);
  break;
 }
 p1=p1->next;
 }
 if(k==0)
 {
 printf("\t\t\t没有查询到您要找的学生信息\n\n");
 }
 else
 {
 printf("\t\t\t这就是您要找的学生信息\n\n");
 }
 find(head);
}
int find2(struct student *head) //以姓名方式查找
{
 struct student *p1;
 p1=(struct student *)malloc(sizeof(struct student));
 printf("\t\t\t请输入您要查询的学生姓名\n");
 scanf("%s",name3);
 p1=head;
 while(p1!=NULL)
 {
 if((strcmp(p1->name,name3))==0)
 {
  k=1;
  printf("\t\t\t学号:%d\t姓名:%s\t性别:%s\t年龄:%d\t备注:%s\n\n",p1->num,p1->name,p1->sex,p1->age,p1->bz);
  break;
 }
 p1=p1->next;
 }
 if(k==0)
 {
 printf("\t\t\t没有找到该学生信息\n\n");
 }
 else
 {
 printf("\t\t\t这就是您要查询的学生信息\n\n");
 }
 find(head);
}
int find3(struct student *head) //以性别方式查找
{
 struct student *p1;
 p1=(struct student *)malloc(sizeof(struct student));
 printf("\t\t\t请输入你要查询的学生的性别\n");
 scanf("%s",sex3);
 p1=head;
 while(p1!=NULL)
 {
 if((strcmp(p1->sex,sex3))==0)
 {
  k=1;
  printf("\t\t\t学号:%d\t姓名:%s\t性别:%s\t年龄:%d\t备注:%s\n\n",p1->num,p1->name,p1->sex,p1->age,p1->bz);
  break;
 }
 p1=p1->next;
 }
 if(k==0)
 {
 printf("\t\t\t没有找到该学生信息\n\n");
 }
 else
 {
 printf("\t\t\t这就是您要查询的学生的信息\n\n");
 }
 find(head);
}
int find4(struct student *head) //以年龄方式查找
{
 struct student *p1;
 p1=(struct student *)malloc(sizeof(struct student));
 printf("\t\t\t请输入您要查询的学生的年龄\n");
 scanf("%d",&age3);
 p1=head;
 while(p1!=NULL)
 {
 if(p1->age==age3)
 {
  k=1;
  printf("\t\t\t学号:%d\t姓名:%s\t性别:%s\t年龄:%d\t备注:%s\n\n",p1->num,p1->name,p1->sex,p1->age,p1->bz);
  break;
 }
 p1=p1->next;
 }
 if(k==0)
 {
 printf("\t\t\t没有找到该学生的信息\n\n");
 }
 else
 {
 printf("\t\t\t这就是您要找的学生的信息\n\n");
 }
 find(head);
}
int find(struct student *head)
{
 printf("\t\t\t请选择您要查询学生信息的方式\n");
 printf("\t\t\t1:按学生学号查询\n");
 printf("\t\t\t2:按学生姓名查询\n");
 printf("\t\t\t3:按学生性别查询\n");
 printf("\t\t\t4:按学生年龄查询\n");
 printf("\t\t\t5:返回主菜单\n");
 scanf("%d",&m);
 switch(m)
 {
 case 1:find1(head);break;
 case 2:find2(head);break;
 case 3:find3(head);break;
 case 4:find4(head);break;
 case 5:system("cls");menu();break;
 default:printf("\t\t\tinput error,please input again\n");
 }
}
int main() //主函数
{
 struct student *phead;
 if(login()==0)
 {
 return 0;
 }

 printf("\n");
 while(1)
 {
 switch(menu())
 {
 case 1:system("cls");phead=creat();break;
 case 2:system("cls");print(phead);break;
 case 3:system("cls");save(phead);break;
 case 4:system("cls");phead=del(phead);break;
 case 5:system("cls");mod(phead);break;
 case 6:system("cls");find(phead);break;
 case 7:system("cls");printf("\t\t\t欢迎使用,再见!\n");return 0;
 default:printf("\t\t\t输入有错,请重新输入\n");
 }
 }
}

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言学生管理系统源码分享

    本文实例为大家分享了C语言学生管理系统源码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> //结构体可以存放的学生信息最大个数,不可变变量 int const MAX_LENGTH=100; //学生信息结构体数组,最多可以存放100个学生信息 struct student{ int id; //学号 char *name; //姓名 int age; //年龄 float c_score; //C语言成绩 float engl

  • C语言职工信息管理系统源码

    本文实例为大家分享了C语言职工信息管理系统的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> struct worker { char ID[20];//工号 char name[20];//姓名 char sex[5];//性别 char born[20];//生日 char edu[20];//学历 char po

  • C语言学生成绩管理系统源代码

    大学C语言实训课,C语言学生成绩管理系统,供大家参考,具体内容如下 #include<stdio.h> #include<string.h> #include<math.h> struct student { int num; char name[20]; float pingshi; float shiyan; float kaoshi; double zongping; }stu[4]; void main() { void a(); void b(); void

  • 学生信息管理系统C语言版

    C语言学生信息管理系统包括以下功能: 1.学生信息的整体注册 2.学生信息的修改 3.学生成绩信息的录入 4.学生信息的添加 5.恢复误删的学生信息 6.学生信息的删除 7.密码修改保存函数 8.学生信息的查询 9.密码修改函数 10.学生信息管理系统的菜单函数 #include "stdio.h" #include "malloc.h" #include "string.h" #include "stdlib.h" #inc

  • C语言利用结构体数组实现学生成绩管理系统

    要求: 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入).定义结构体类型描述学生信息,每个学生信息包括:学号.姓名.多门课的成绩.总成绩和平均成绩.用结构体数组作为函数参数,编程实现如下菜单驱动的学生成绩管理系统. (1) 录入每个学生的学号.姓名和各科考试成绩. (2) 计算每门课程的总分和平均分. (3) 计算每个学生的总分和平均分. (4) 按每个学生的总分由高到低排出名次表. (5) 按学号由小到大排出成绩表. (6) 按姓名的字典顺序排出成

  • 学生成绩管理系统C语言代码实现

    C语言实现了学生成绩管理系统,可以进行学生成绩的增加,删除,更新,查询,计算和展示. 完整代码如下: #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct person //定义结构体 { char num[10]; //学号 char name[20]; //姓名 float cyuyan; //C语言成绩 float en; //物理学成绩 float ji; //原子物理成绩

  • C语言通讯录管理系统完整版

    C语言实现了通讯录的录入信息.保存信息.插入.删除.排序.查找.单个显示等功能.. 完整的代码如下: #include <stdio.h> #include <malloc.h> //得到指向大小为Size的内存区域的首字节的指针// #include <string.h> #include <stdlib.h> //标准库函数// #define NULL 0 #define LEN sizeof(struct address_list) //计算字节//

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

    用C语言编写学生成绩管理系统代码,供大家参考,具体内容如下 C语言实现学生成绩管理系统实战教学 https://www.jb51.net/article/154767.htm (1)给出所选课程设计题目以及本题目具体所要完成的功能要求说明. 1.课程设计题目:学生成绩管理系统 2.完成的功能要求: (1).主要实现的功能: 1---学生输入 2---学生插入 3---学生查询(按学号) 4---学生删除 5---学生输出 6---计算每名学生的平均分并输出 7---计算每科的平均分并输出 8--

  • C语言图书管理系统简洁版

    DOS界面的图书管理系统,具体内容如下 程序分为两块:管理员操作(收录图书.删除图书等)和会员操作(注册.借书.还书等): 1.管理员操作界面 2.会员操作界面 global.h头文件:(程序中只使用了一个编写的头文件,在这里存放了所有的接口函数以及需要使用到的头文件,还有结构体的定义) #include "iostream" #include "string" #include "fstream" #include "conio.h&

  • C语言实现班档案管理系统课程设计

    本文实例为大家分享了C语言班档案管理系统的具体代码,供大家参考,具体内容如下 做的挺长时间的课程设计,当作参考吧 #include<stdio.h> #include<stdlib.h> #include<string.h> #define N 20 struct student { long num; char name[20]; char sex[10]; int age; char bz[40]; struct student *next; }; int i,j,

  • C语言实现学生学籍管理系统课程设计

    目录 设计要求 完整代码 运行结果 本文实例为大家分享了C语言实现学生学籍管理系统的具体代码,供大家参考,具体内容如下 设计要求 设计学籍管理系统 1.添加学生信息2.浏览学生信息3.查询学生信息4.修改学生信息5.册J除学生信息6.排序学生信息7.读取文件学生8.保存到文件 完整代码 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<math.h> #includ

  • C语言实现酒店客房管理系统课程设计

    本文实例为大家分享了C语言实现酒店客房管理系统的具体代码,供大家参考,具体内容如下 设计目标:设计一个酒店客房管理系统,用C语言实现.对该系统的要求如下: 一.需求描述 系统角色: 1.总台服务员 能够根据住客需求完成住客登记任务,并完成客房管理功能. 1)登记入住功能2)结账功能3)查询房间功能4)客房信息打印5)统计功能 2.系统管理员 能够添加.删除和修改系统用户(总台服务员),设置用户权限.包括 1)添加新用户2)删除用户3)修改用户权限 二.系统流程描述 系统启动则进入登陆菜单. 1.

  • C语言实现超市信息管理系统课程设计

    本文实例为大家分享了C语言实现超市信息管理系统的具体代码,供大家参考,具体内容如下 一. 需求分析 目前商品市场的商品信息玲琅满目,货物信息的储存以及更新就变的越来越重要.因此,我们小组设计的“超市信息管理程序”旨在解决货物的信息和购买商品信息的储存问题以及实现建立库存信息,对购物车添加商品.结算并修改库存等操作,同时也能实现对库存信息的读取和显示. 我们设计的程序要实现以下要求: 1. 使用两个不同的结构体分别保存货物信息和购物车中的商品信息,可在商品信息结构体中嵌套货物信息结构体.2. 将货

  • C语言实现学生成绩管理系统课程设计

    目录 设计要求 完整代码 运行结果 本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 设计要求 设计学生成绩管理系统 要求如下: 1.输入学生信息2.统计学生成绩3.查找并显示学生成绩4.按姓名查找,修改学生资料5.显示所有学生名单6.查找并删除学生信息7.输出个科目成绩最高的学生 完整代码 #include<stdio.h> #include<ctype.h> #include<stdlib.h> #include<string

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

    学生成绩管理系统是比较适合初学者的.它涵盖了c语言几乎知识.对于学了c语言的人,把这个课程设计搞好(当然自己能设计出来是要有很好的基础).不管自己能不能够完成,最重要的是能弄懂.参考其他资料,试着自己编写是不错的选择.这个课程设计也是我参照资料,自己编写的.自己适当地增加了一些功能.不过,编的不够那么专业吧. #include<stdio.h> #include<string.h> #include<stdlib.h> #define size 100 char* cl

  • C语言通讯录管理系统课程设计

    本文实例为大家分享了C语言通讯录管理系统课程设计,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <windows.h> struct Sign{ char name[8]; char sex[4]; char birthday[12]; char phone[11]; char postcode[7]; char addr[30]; struct Sign *next; }pe; char Ph

  • C++实现图书管理系统课程设计(面向对象)

    本文实例为大家分享了C++实现图书管理系统课程设计,供大家参考,具体内容如下 1.题目: [1]:工作人员登录后,可以进行的操作 添加学生的信息(学号,姓名,院系,最大借阅的图书数量等):修改学生的信息(学号,姓名,院系,最大借阅的图书数量等):删除学生的信息(学号,姓名,院系,最大借阅的图书数量等):如果某个学生退学,就要清除他的信息:查看学生的信息:添加图书的信息(图书号,书名,作者,出版社,数量等):修改图书的信息(图书号,书名,作者,出版社,数量等):删除图书的信息(图书号,书名,作者,

  • C语言实现学生档案管理系统

    本文实例为大家分享了C语言实现学生档案管理系统的具体代码,供大家参考,具体内容如下 /*     课程设计项目名称:学生档案管理系统     作者:施瑞文      时间:2018.3.3  */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include<conio.h> #include<windows.h> #define N sizeof(struct Student)

  • C语言实现销售管理系统课程设计

    本文实例为大家分享了C语言实现销售管理系统的具体代码,供大家参考,具体内容如下 一.C程序设计课程设计题目简介 该设计要求学生以某公司销售管理业务为背景,设计.开发一套“销售管理系统”软件. 通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,针对c语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格.得到软件工程的综合训练,提高解决实际问题的能力. 二.C程序设计课程设计的任务 1.查阅文献资料,一般在5篇

随机推荐