用C语言编程学生籍贯管理系统

 时间:2024-10-14 17:18:36

编制一个学生籍贯信息管理系统,用于记录每个学生的籍贯信息,包括学号、姓名、出生年月、籍贯、联系电话等。

工具/原料

VisualC++6.0

电脑

需求分析

1、本学生籍贯信息管理系统采用外狒芙梨VisualC++6.0作为开发环境,处理对象为学生,主要功能对学生籍贯信息进行录入、删除、查找、修改、显示输出等。本系统给用户提供了一个简易的操辑湃形傥作界面,以便根据提示输入操作项,调用相应函数来完成系统提供的各项管理功能。

2、人机操控平台:用户通过选择不同选项来操作系统,包括退出系统,导入学生信息,删除学生信息,查询学生信息,修改学生信息,游览学生信息以及作者信息。

用C语言编程学生籍贯管理系统

3、导入学生信息:用户根据提示输入学生的学号、姓名、性别、出生日期、手机号码、籍贯等信息。本系统一次只录入一个联系人信息,当需要录入多个学生信息时,可采用多次添加方式。

用C语言编程学生籍贯管理系统

用C语言编程学生籍贯管理系统

用C语言编程学生籍贯管理系统

用C语言编程学生籍贯管理系统

4、删除学生信息:根据系统提示,用户输入要删除的学生信息的学号,系统根据用户的输入进行查找,若没有查找到相关记录,则提示“此联系人不存在”;否则,系统将直接删除该联系人的全部信息。

用C语言编程学生籍贯管理系统

用C语言编程学生籍贯管理系统

5、查询学生信息佼沣族昀:本系统提供三种查找学生信息的方式,即按学号查找、按姓名查找和按籍贯查找。用户根据系统提示选择相应的查找方式,若选择按学号查找,则需要输入枷讹般身相应学生的学号以完成信息查找;若选择按姓名查找,则需要输入相应学生的姓名以完成信息查找;若选择按籍贯查找,则需要输入想要查找的机关。系统中若存在待查找的联系人,则输出该联系人的信息;否则提示“此联系人不存在”。

用C语言编程学生籍贯管理系统

用C语言编程学生籍贯管理系统

用C语言编程学生籍贯管理系统

用C语言编程学生籍贯管理系统

6、修改学生信息:根据系统提示,用户输入待修改学生信息的学号,若没有查到相关记录,则提示“此学生不存在”;否则提示用户逐一输入修改后的姓名、性别、出生日期、手机号码、籍贯等信息。

用C语言编程学生籍贯管理系统

7、游览学生信息:若系统中存在学生记录,则逐一输出所有学生信息;否则输出“该系统中无学生信息”。

用C语言编程学生籍贯管理系统

源程序

1、//文件包含#include<stdio.h>//标准输入输出函数库#坡纠课柩include<稆糨孝汶;stdlib.h>//标准函数库#include<string.h>//字符串函数库#include<conio.h>//控制台输入输出函数库//学生信息长度宏定义#defineMAX_ID12//学号最大长度#defineMAX_NAME11//姓名最大长度#defineMAX_SEX3//性别最大长度#defineMAX_BIRTH11//出生年月日最大长度#defineMAX_ADDR101//籍贯最大长度#defineMAX_TEL12//手机号码最大长度//系统菜单选项宏定义#defineEXIT0//退出系统#defineINPUT1//导入学生信息#defineDELETE2//删除学生信息#defineSEARCH3//查询学生信息#defineUPDATE4//修改学生信息#defineOUTPUT5//游览学生信息#defineABOUT6//关于作者//学生籍贯信息查找方式宏定义#defineSEARCH_ID1//按学号查找#defineSEARCH_NAME2//按姓名查找#defineSEARCH_ADDR3//按籍贯查找//学生籍贯信息结构体typedefstruct_StuInfo{ charid[MAX_ID];//学号 charname[MAX_NAME];//姓名 charsex[MAX_SEX];//性别 charbirth[MAX_BIRTH];//出生年月 charaddr[MAX_ADDR];//籍贯 chartel[MAX_TEL];//手机号码}StuInfo;//学生籍贯信息单链表结构体typedefstruct_StuNode//链表结点{ StuInfostu; struct_StuNode*next;}StuNode;typedefStuNode*StuList;//链表//全局变量定义,用于保存所有联系人信息的单链表StuListstudent=NULL;//初始化链表为空//人机界面操作函数列表voidShowMenu();//人机界面函数voidAddStu();//导入学生信息voidDeleteStu();//删除学生信息voidSearchStu();//查询学生信息voidSearchStuID();//按学号查找voidSearchStuName();//按姓名查找voidSearchStuAddr();//按籍贯查找voidUpdateStu();//修改学生信息voidOutputStu();//游览学生信息voidExit();//退出系统voidAbout();//作者信息//辅助函数列表voidReadFile();//从文件读出学生信息voidWriteFile();//将学生信息写入文件//查找学生在系统是否存在,存在返回1,不存在返回0intFindStu(char*id);voidShowMenu(){ inttypeID=0; ReadFile();//启动程序前从文件student.txt读出通讯录中联系人信息 while(1) { system("cls");//清屏 printf("******************************\n"); printf("*学生籍贯信息管理系统*\n"); printf("******************************\n"); printf("**0-退出系统**\n"); printf("**1-导入学生信息**\n"); printf("**2-删除学生信息**\n"); printf("**3-查询学生信息**\n"); printf("**4-修改学生信息**\n"); printf("**5-游览学生信息**\n"); printf("**6-关于作者**\n"); printf("******************************\n"); printf("->请选择操作:"); scanf("%d",&typeID); if(typeID==EXIT) { WriteFile();//程序退出前将学生籍贯信息导入文件 Exit();//退出系统 break; } switch(typeID) { caseINPUT: system("cls"); AddStu();//导入学生信息 system("pause");//程序暂停 break; caseDELETE: system("cls"); DeleteStu();//删除学生信息 system("pause"); break; caseSEARCH: SearchStu();//查询学生信息 break; caseUPDATE: system("cls"); UpdateStu();//修改学生信息 system("pause"); break; caseOUTPUT: system("cls"); OutputStu();//游览学生信息 system("pause"); break; caseABOUT: system("cls"); About();//作者信息 system("pause"); break; default: printf("输入有误!\n"); system("pause"); break; } }}voidAddStu(){ //分配存储空间 StuNode*p=(StuNode*)malloc(sizeof(StuNode)); printf("****************************************\n"); printf("**请输入学生籍贯信息**\n"); printf("@请输入学号(最大长度为%d个字符)\n->",MAX_ID-1); scanf("%s",p->stu.id); while(FindStu(p->stu.id)==1) { printf("@此学生信息已经存在,请重新输入\n->"); scanf("%s",p->stu.id); } printf("@请输入姓名(最大长度为%d个字符)\n->",MAX_NAME-1); scanf("%s",p->stu.name); printf("@请输入性别(男或女)\n->"); scanf("%s",p->stu.sex); printf("@请输入出生日期(格式为1984-01-10)\n->"); scanf("%s",p->stu.birth); printf("@请输入籍贯(最大长度为%d个字符)\n->",MAX_ADDR-1); scanf("%s",p->stu.addr);printf("@请输入手机号码\n->"); scanf("%s",p->stu.tel); p->next=student; student=p; printf("**学生籍贯信息添加成功!**\n"); printf("**************************************\n");}voidDeleteStu(){ StuNode*pre=student;//前一结点 StuNode*p=student;//当前结点 charid[MAX_ID]; printf("*******************************\n"); printf("**请输入要删除学生的学号:\n->"); scanf("%s",id); while(p)//查找待删除结点 { if(strcmp(p->stu.id,id)==0) break; pre=p; p=p->next; } if(!p) printf("**此学生不存在!**\n"); else { if(p==student)student=p->next; elsepre->next=p->next; free(p); printf("**删除成功!**\n"); } printf("****************************************\n");}voidSearchStu(){ inttype,flag=1; while(flag) { system("cls"); printf("****************************\n"); printf("*1-按学号查找*\n"); printf("*2-按姓名查找*\n"); printf("*3-按籍贯查找*\n"); printf("->选择查找方式:"); printf("****************************\n"); scanf("%d",&type); switch(type) { caseSEARCH_ID: system("cls"); SearchStuID();//按学号查找 flag=0; break; caseSEARCH_NAME: system("cls"); SearchStuName();//按姓名查找 flag=0; break; caseSEARCH_ADDR: system("cls"); SearchStuAddr();//按籍贯查找 flag=0; break; default: printf("输入有误!\n"); break; } system("pause"); }}voidSearchStuID(){ StuNode*p=student; charid[MAX_ID]; printf("****************************\n"); printf("**请输入要查找学生的学号:\n->"); scanf("%s",id); while(p)//检查待查找学生是否存在 { if(strcmp(p->stu.id,id)==0) break; p=p->next; } if(!p) { printf("**此学生不存在!**\n"); printf("*******************************\n"); } else//待查找学生存在则输出信息 { printf("****************************\n"); printf("*学生籍贯信息*\n"); printf("****************************\n"); printf("$学号:%s\n",p->stu.id); printf("$姓名:%s\n",p->stu.name); printf("$性别:%s\n",p->stu.sex); printf("$出生日期:%s\n",p->stu.birth); printf("$籍贯:%s\n",p->stu.addr); printf("$手机号码:%s\n",p->stu.tel); printf("****************************\n"); }}voidSearchStuName(){ StuNode*p=student; charname[MAX_NAME]; printf("****************************\n"); printf("**请输入要查找学生的姓名:\n->"); scanf("%s",name); while(p)//检查待查找学生是否存在 { if(strcmp(p->stu.name,name)==0) break; p=p->next; } if(!p) { printf("**此学生不存在!**\n"); printf("*******************************\n"); } else//待查找学生存在则输出信息 { printf("****************************\n"); printf("*学生籍贯信息*\n"); printf("****************************\n"); printf("$学号:%s\n",p->stu.id); printf("$姓名:%s\n",p->stu.name); printf("$性别:%s\n",p->stu.sex); printf("$出生日期:%s\n",p->stu.birth); printf("$籍贯:%s\n",p->stu.addr); printf("$手机号码:%s\n",p->stu.tel); printf("****************************\n"); }}voidSearchStuAddr(){ StuNode*p=student; charaddr[MAX_NAME]; printf("****************************\n"); printf("**请输入要查找学生的籍贯:\n->"); scanf("%s",addr); while(p)//检查待查找学生是否存在 { if(strcmp(p->stu.addr,addr)==0) break; p=p->next; } if(!p) { printf("**此学生不存在!**\n"); printf("*******************************\n"); } else//待查找学生存在则输出信息 { printf("****************************\n"); printf("*学生籍贯信息*\n"); printf("****************************\n"); printf("$学号:%s\n",p->stu.id); printf("$姓名:%s\n",p->stu.name); printf("$性别:%s\n",p->stu.sex); printf("$出生日期:%s\n",p->stu.birth); printf("$籍贯:%s\n",p->stu.addr); printf("$手机号码:%s\n",p->stu.tel); printf("****************************\n"); }}voidUpdateStu(){ StuNode*p=student; charid[MAX_ID]; printf("****************************\n"); printf("**请输入要更新学生的学号:\n->"); scanf("%s",id); while(p)//查找待修改结点 { if(strcmp(p->stu.id,id)==0) break; p=p->next; } if(!p) { printf("**此学生不存在!**\n"); printf("*******************************\n"); } else { printf("-$原姓名:%s\n",p->stu.name); printf("->新姓名:"); scanf("%s",p->stu.name); printf("-$原性别:%s\n",p->stu.sex); printf("->新性别:"); scanf("%s",p->stu.sex); printf("-$原出生日期:%s\n",p->stu.birth); printf("->新出生日期:"); scanf("%s",p->stu.birth); printf("-$原联系地址:%s\n",p->stu.addr); printf("->新联系地址:"); scanf("%s",p->stu.addr); printf("-$原手机号码:%s\n",p->stu.tel); printf("->新手机号码:"); scanf("%s",p->stu.tel); printf("**修改成功!**\n"); printf("*******************************\n"); }}voidOutputStu(){ inti=0; StuNode*p=student; if(!p)//链表为空 { printf("****************************\n"); printf("**系统中无学生人记录**\n"); printf("****************************\n"); return; } while(p) { printf("**********************************\n"); printf("*学生%d信息*\n",++i); printf("**********************************\n"); printf("****************************\n"); printf("*学生籍贯信息*\n"); printf("****************************\n"); printf("$学号:%s\n",p->stu.id); printf("$姓名:%s\n",p->stu.name); printf("$性别:%s\n",p->stu.sex); printf("$出生日期:%s\n",p->stu.birth); printf("$籍贯:%s\n",p->stu.addr); printf("$手机号码:%s\n",p->stu.tel); printf("****************************\n"); p=p->next; }}voidExit(){ StuNode*p=student; while(p)//释放通讯录每一个结点内存空间 { student=p->next; free(p); p=student; }}voidReadFile(){ StuNode*p; charid[MAX_ID]; FILE*pf=fopen("student.txt","r");//以读方式打开文件 if(!pf)return;//打开文件失败 //从文件中逐一读出每一联系人信息 while(fscanf(pf,"%s",id)!=EOF) { p=(StuNode*)malloc(sizeof(StuNode)); strcpy(p->stu.id,id); fscanf(pf,"%s",p->stu.name); fscanf(pf,"%s",p->stu.sex); fscanf(pf,"%s",p->stu.birth); fscanf(pf,"%s",p->stu.addr); fscanf(pf,"%s",p->stu.tel); //每一联系人加入到链表中 p->next=student; student=p; p=NULL; } fclose(pf);//关闭文件}voidWriteFile(){ StuNode*p=student; FILE*pf=fopen("student.txt","w");//以写方式打开文件 if(!pf)return;//打开文件失败 while(p)//将链表中的每一结点写入文件 { fprintf(pf,"%s",p->stu.id); fscanf(pf,"%s",p->stu.name); fscanf(pf,"%s",p->stu.sex); fscanf(pf,"%s",p->stu.birth); fscanf(pf,"%s",p->stu.addr); fscanf(pf,"%s",p->stu.tel); p=p->next; } fclose(pf);//关闭文件}intFindStu(char*id){ StuNode*p=student; while(p)//在链表中以学号方式查找某一联系人是否存在 { if(strcmp(id,p->stu.id)==0) return1;//存在则返回1 p=p->next; } return0;//不存在则返回0}voidAbout(){ printf("********************************\n"); printf("**\n"); printf("*作者:依筱糯流*\n"); printf("**\n"); printf("********************************\n"); system("pause");}voidmain(){ ShowMenu();}

C语言输入一个小写字母要求输出一个大写字母。 怎样利用克莱姆法则解线性方程组 英语四级做题顺序有什么技巧 C语言如何打印九九乘法表? c语言如何输入10个整数求其平均值?
热门搜索
黑巷少女 汤芳人体艺术图片 终结的炽天使漫画 可爱女生图片 鸭跖草图片