C语言 学生信息管理系统(完整版)
C语言课程设计--学生成绩管理系统

*题目七:学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。
主要功能:(1)能按学期、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩,求学生的总分及平均分(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单要求:使用二进制文件方式存储数据,系统以菜单方式工作源代码:#include<stdio.h>#include<ctype.h>#include<stdlib.h>#include<string.h>struct Student{int cls;char nam[10];char num[10];int chinese;int english;int computer;int math;}stud1[100],stud2[100];{char a;while(a>'7'||a<'0'){system("cls");printf(" 欢迎使用学生成绩管理系统\n");printf(" 制作人:章建\n");printf("********************** 学生成绩管理系统************************\n");printf(" 1.输入学生成绩\n");printf(" 2.输出学生成绩\n");printf(" 3.查找并显示学生成绩\n");printf(" 4.按姓名查找,修改学生资料\n");printf(" 5.显示所有学生名单\n");printf(" 6.查找并删除学生信息\n");printf(" 7.从文件读取数据\n");printf(" 0.储存学生资料并退出系统\n");printf("********************************************************************* *\n");printf("请选择(0-7)\n");a=getchar();}return(a-'0');}/******************************************************************************int Input(Student stud[],int n) //输入数据(第一学期)。
学生籍贯信息管理系统c

学生籍贯信息管理系统(c>.txt吃吧吃吧不是罪,再胖地人也有权利去增肥!苗条背后其实是憔悴,爱你地人不会在乎你地腰围!尝尝阔别已久美食地滋味,就算撑死也是一种美!减肥最可怕地不是饥饿,而是你明明不饿但总觉得非得吃点什么才踏实.编制一个学生籍贯信息管理系统,每个学生信息包括:学号、姓名、籍贯.具体功能:<1〕创立信息链表并以磁盘文件保存;<2〕读取磁盘文件并显示输出所有学生地籍贯信息;<3〕按学号或姓名查询其籍贯;<4〕按籍贯查询并输出该籍贯地所有学生;<5〕能添加、删除和修改学生地籍贯信息#include<stdio.h>#include<malloc.h>#defineLENsizeof(structstudent>#defineNULL0structstudent{longnum。
charname[20]。
charjg[20]。
structstudent*next}。
intn=0 。
voidsave(structstudent*head>{FILE*fp 。
charfilename[20] 。
structstudent*p1 。
printf("Pleaseinputthefilename\ n">scanf("%s",filename> 。
if((fp=fopen(filename,"w">>==NU LL>{printf("can'topenfile\n">return 。
}for(p1=head。
p1!=NULL。
p1=p1->next>{fprintf(fp,"%ld",p1->num> 。
fputc('\t',fp> 。
fprintf(fp,"%s",p1->name> 。
C语言程序设计实习报告学生信息管理系统

C语言程序设计实习报告学生信息管理系统C 语言课程设计题目:学生信息管理系统设计者:梁天江专业:机械设计制造及其自动化班级学号: 072084-31所属院系:机电学院指导教师:吴湘宁7月17日1.题目和要求:1.1问题提出与要求:学生成绩管理系统[要求]设计一个学生成绩管理系统,对在校某班学生几门课程的考试成绩进行统一管理。
每个学生记录包括学号、姓名、年龄、数学、英语、物理成绩,默认以学号为序存放。
(1)一个文件按以班为单位存储学生记录。
(2)将允许的操作分为六种A:插入一个新的学生记录(录入学生信息)B:修改学生记录C:删除一个学生记录D:登记成绩E:修改成绩F:浏览全班成绩(3)计算学生的总成绩(4)输出全班成绩表1.2需求分析.根据题目要求,由于学生信息是存放在文件中,因此应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.2.功能实现设计:2.1总体设计:分析系统:根据题目的需求分析,可将这个系统设计为六大模块(见下图):插入学生信息,修改,删除,登记,浏览,统计。
2.2详细设计:1、主函数主函数设计得比较简洁,只提供输入、功能处理和输出部分的函数调用。
其中各功能模块用菜单方式选择;其流程图如下:[程序]void main(){int a;do{printf("\t\t\t\t\n");printf("\t\t\t\t学生成绩管理系统\n");printf("\n");printf("\t\t\t作者:梁天江班级:072084-31 学号: 1004528\n"); printf("\t\t\t-------------------------------------------\n\n");printf("\t 1.插入新的学生记录\n");printf("\t 2.修改学生记录\n");printf("\t 3.删除学生记录\n");printf("\t 4.显示学生成绩和总分\n");printf("\t 5.浏览全班成绩\n");printf("\t 6.退出\n\n");。
学生信息管理系统

学生信息管理系统1.数据库结构的实现1)创建系统用户表格user_infoCREATE TABLE [dbo].[user_info] ([user_ID] [char] (10) COLLATEChinese_PRC_CI_AS NOT NULL,[user_PWD] [char] (10) COLLATEChinese_PRC_CI_AS NULL ,[user_DES] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,) ON [PRIMARY]2)创建学生基本信息表Student_infoCREATE TABLE [dbo].[ Student_info] ([student_ID] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[student_Name] [varcharchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,[student_Sex] [char] (2) COLLATEChinese_PRC_CI_AS NULL ,[born_Date] [datetime] COLLATEChinese_PRC_CI_AS NULL ,[ClassName] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,[Telephone] [char] (20) COLLATEChinese_PRC_CI_AS NULL ,[Enroll_date] [datetime] COLLATEChinese_PRC_CI_AS NULL ,[Address] [varchar] (50) COLLATEChinese_PRC_CI_AS NULL ,[comment] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,) ON [PRIMARY]3)创建课程基本信息表Course_infoCREATE TABLE [dbo].[course_info] ([course_NO] [varchar](10) COLLATEChinese_PRC_CI_AS NOT NULL,[course_Name] [char] (20) COLLATEChinese_PRC_CI_AS NULL ,[course_Type] [char] (20) COLLATEChinese_PRC_CI_AS NULL ,[course_credit] [int] COLLATEChinese_PRC_CI_AS NULL ,[course_des] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,) ON [PRIMARY]4)创建选课成绩信息表Student_course_infoCREATE TABLE [dbo].[student_course_info] ( [student_ID] [varchar](10) COLLATEChinese_PRC_CI_AS NOT NULL ,[course_NO] [varchar](10) COLLATEChinese_PRC_CI_AS NOT NULL ,[score] [int] COLLATE Chinese_PRC_CI_AS NULL ,) ON [PRIMARY]2.学生信息管理系统主窗体的创建1)创建工程项目Student_MIS2)创建学生信息管理系统主窗体3)创建公用模块在“工程资源管理器”中添加一个Module,保存为Module1.bas,其程序如下:Public username_OK As String '记录登录用户名'定义连接字符串函数Public Function ConnectString() As StringConnectString ="Provider=SQLOLEDB.1;Password=sa;User ID=sa; "+"Initial Catalog=pubs; Data Source =127.0.0.1"'设置SQL Server2000数据库链接字符串,此字符串可保存在目录文件中End Function'ExecuteSQL函数执行SQL语句,返回结果集Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) _As ADODB.RecordsetDim cnn As ADODB.ConnectionDim rst As ADODB.RecordsetDim sTokens() As StringOn Error GoTo ExecuteSQL_ErrorsTokens = Split(SQL)Set cnn = New ADODB.Connectioncnn.Open ConnectStringIf InStr("INSERT,DELETE,UPDATE,EXECUTE", UCase$(sTokens(0))) Thencnn.Execute (SQL)MsgString = sTokens(0) & " query successful"ElseSet rst = New ADODB.Recordsetrst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimisticSet ExecuteSQL = rstMsgString = "查询到" & rst.RecordCount & "条记录 "End IfExecuteSQL_Exit:Set rst = NothingSet cnn = NothingExit FunctionExecuteSQL_Error:MsgString = "查询错误: " & Err.DescriptionResume ExecuteSQL_ExitEnd Function3.系统用户管理模块的创建1)用户登录窗体设计当用户输入完用户名和用户密码后,单击“确定”按钮将对用户输入的信息进行判断。
C语言课程设计—学生成绩管理系统

#include ”stdio.h”#include ”string.h”#include "stdlib.h"#include "conio.h"#include ”string.h”#include "fcntl。
h"typedef struct student{int num;char grade[10];char classroom[10];char name[10];float score_math;float score_chinese;float score_english;float average;float sum;}STU;typedef struct Node{STU data;struct Node *next;}*linklist;void menu();char *loginpassword(char password[],int n);//登录验证密码函数声明//linklist createstulist(linklist head);//创建学生链表即学生信息录入函数声明// void printstulist(linklist head);//学生信息输出函数声明//void searchstu_namelist(linklist head);//学生信息查询函数声明(按姓名)// void searchstu_numlist(linklist head);//学生信息查询函数声明(按学号) linklist modifystulist(linklist head);//学生信息修改函数声明//linklist delatestulist(linklist head);//学生信息删除函数声明//void savestulist(linklist head);//学生信息保存到文件函数声明// linklist loadstulist();//从文件中读取学生信息函数声明// void sortstulist(linklist head); //成绩排名函数(按年级)声明//void sort(STU stu[],int flag); //学生分班函数声明//void sortstuclass(linklist head); //成绩排名函数(按班级)声明////*************************************//void main(){char admin[]=”zhangqiong";char password[]=”123456";char person[20];char password1[10];int i;printf(”********************************************************************************\n”);printf("\t\t **********欢迎来到学生成绩管理系统**********\n\n");printf(”********************************************************************************\n\n”);printf(”\t\t\t\t用户登录\n\n\n\n");for(i=0;i<3;i++){printf("用户名:”);gets(person);fflush(stdin);printf(”\n\n\n”);loginpassword(password1,10);printf("\n\n\n”);if(strcmp(admin,person)==0&&strcmp(password,password1)==0){printf(”\t\t\t\t成功登录,亲!\n”);printf("\n\n”);printf(”按任意键继续!”);getch();menu();break;}elseprintf("\t用户名或者密码输入错误\n”);}if(i==3)printf("\t对不起,您今天输入次数太多,已被强制退出!\n”);}//**********************************************************////**********************************************************//char *loginpassword(char password[],int n)//登录密码函数,隐藏密码可见//{int i=0;int m=0;char ch;printf("用户密码:”);while((ch=getch())!='\r’&&m〈n){password[i++]=ch;printf(”*");}password[i]='\0';return password;}//***************************************************// void menu()//主界面函数//{system("cls");linklist L;L=(linklist)malloc(sizeof(Node));L—>next=NULL;int ch;do{printf(”\t -——-----—-******——--——--—---******—————-————-******-—-—-—-—-—\n\n");printf("\t\t\t**********学生成绩管理系统***********\n\n”);printf("\t ——----——--******-—-——------—******—---———--—-******—---———-——\n\n\n\n\n");printf("\t1。
C语言课程设计报告(学生成绩管理系统)

C语言课程设计报告:学生成绩管理系统系统需求一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息。
二、学生成绩查询: 输入一个学号,在文件中查找此学生, 若找到则输出此学生的全部信息和成绩;若找不到则输出查找失败的信息。
同时也可以全部把各科的平均成绩,最高和最低分输出.三、新生插入:通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来.四、输出全部学生信息和全部学生成绩。
五、退出系统.六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。
总体设计一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。
2、查询模块:可用stu *lookdata(stu *p1)来实现。
找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。
3、插入模块:可用insert( )函数来实现。
其中通过学号的大小来比较的,并且以此来排序.4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。
5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
二、系统主模块结构图:详细设计一、界面设计此系统界面采用图形和数字化菜单设计。
主界面设计如下:学生成绩管理系统请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、数据结构设计:程序设计中用到的结构体类型:学生信息结构体类型:typedef struct student{char name[MAX];int num[MAX];char sex[MAX];int chinese;int mathematic;int english;int computer;struct student *next;}程序代码://原始密码是123456#include"stdio.h”#include"stddef.h"#include"stddef。
C语言课程设计实验报告学生信息管理系统

课程设计课程名称C语言程序课程设计题目名称学生信息管理系统设计_____学生学院_自动化学院_______________专业班级__自动化X__________________ 学号__311100XXXX______________ 学生姓名_____________________指导教师2013年10月20日广东工业大学课程设计任务书题目名称学生信息管理系统设计____学生学院___自动化学院____________专业班级___自动化X_______________学号___3111000XXX____________学生姓名___谢XX_________________1.目的与要求:学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 等。
试设计一学生信息管理系统,使之能提供以下功能:1.系统以菜单方式工作2.学生信息录入功能---输入3.学生信息浏览功能---输出4.查询、排序功能---算法按学号查询按姓名查询5.学生信息的删除与修改(可选项)2.总体设计:程序设计组成框图学生信息录入学生信息浏览3>参数说明editname(int n)、editage(int n)、editsex(int n) 、editbir(int n) 、editadd(int n) 、edittel(int n)、editemail(int n)、last(int n)、edit(int n)、del(int n)、editpr(int n) 函数中的n都为检索中确定的学生数组下标。
4.调试与测试:1>调用pr2()函数(检索界面)一闪而过。
解决方法:添加getchar()语句使程序暂停。
2>无法有效的控制输出函数循环终止。
解决方法:添加全局变量“stunum”,使用该全局变量来记录学生总数,从而控制输出循环的次数。
3>查询函数数据量过多时同时输出,先输出的内容无法查看,或需用户自行查看。
c语言-学生宿舍管理系统(难度系数:3级)

C语言:学生宿舍管理系统(难度系数:3级)(附加清屏操作)设计一个学生宿舍管理程序。
该程序应该具有以下功能:(1)录入学生宿舍信息;(2)修改、删除学生宿舍信息;(3)统计当前未住学生宿舍的个数并显示宿舍编号;(4)统计当前空闲的男生、女生床位数;(5)按宿舍编号由小到大显示已住学生的宿舍信息;(6)分别显示男生、女生有空床位的宿舍信息;(7)按宿舍编号、可住人数、空床数、宿舍性质(男生还是女生)等信息进行查询,若查询信息不存在,输出没找到的信息。
题目要求:(1)按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序,即在程序中加入异常处理,检查用户输入数据的有效性,以保证程序的健壮性;(2)宿舍信息应该包括宿舍编号、可住人数、空床数、宿舍性质等;(3)为各项操作功能设计一个菜单,应用程序运行后,先显示这个菜单,然后用户通过菜单选项选则所需进行的操作项目,菜单要界面友好、清晰;(4)将所有宿舍信息存储在一个文件中,并实现文件的读写操作,即将输入的数据以文件的形式存盘,将原来已经存盘的文件读入内存,进行管理;(5)应保证测试用例测试程序的各种边缘情况。
输入要求:应用程序运行后,在屏幕上显示一个菜单。
用户可以根据需要,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
输出要求:(1)应用程序运行后,在屏幕上显示一个菜单。
(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
代码:#include"stdio.h"#include"stdlib.h"#include"conio.h"#include"process.h"#define max 2 //最大容量//#define k 6 //每个宿舍最多可住人数typedef struct node{int num;int ke;int empty;int yi;int sex; //1-女0-男//struct node *next;}doc; //宿舍信息应该包括宿舍编号、可住人数、空床数、宿舍性质等; //int q=0; //已入住的房间数-1doc dcm[max];void a() //1.录入学生宿舍信息{int q;printf("\n\n\t现在执行录入学生宿舍信息\n");for(q=0;q<max;q++)// printf("请输入要录入的宿舍个数:\n");// scanf("%d",&j);// while(j<=0)// {// printf("输入错误!请重新输入:");// scanf("%d",&j);// }// else// while(j>0){printf("请输入该宿舍的宿舍号:\n");scanf("%d",&dcm[q].num);printf("请输入该宿舍的最大住人数:\n");scanf("%d",&dcm[q].ke);printf("请输入该宿舍的已住人数:\n");scanf("%d",&dcm[q].yi);while(dcm[q].yi>dcm[q].ke){printf("输入错误!已住人数大于最大入住人数!\n请重新输入: "); scanf("%d",&dcm[q].yi);}dcm[q].empty=dcm[q].ke-dcm[q].yi;printf("请输入宿舍性质(0代表男宿舍,1代表女宿舍):\n"); scanf("%d",&dcm[q].sex);while(dcm[q].sex!=1&&dcm[q].sex!=0){printf("非法输入宿舍性质!请重新输入!\n");scanf("%d",&dcm[q].sex);}// q++;// j--;}}void xianshi()//显示所有宿舍信息{for(int j=0;j<max;j++){printf("宿舍号为:%d 可住人数为:%d 空床数为%d ",dcm[j].num,dcm[j].ke,dcm[j].empty);if(dcm[j].sex==0)printf("宿舍性质:男宿舍\n");elseprintf("宿舍性质:女宿舍\n");}}void xs(int j){printf("宿舍号为:%d 可住人数:%d 空床数%d\n",dcm[j].num,dcm[j].ke,dcm[j].empty);if(dcm[j].sex==0)printf("宿舍性质:男宿舍\n");elseprintf("宿舍性质:女宿舍\n");}void b() //2.修改、删除学生宿舍信息{int j,m,h;doc k;while(1){printf("****************************************\n"); printf("*************1、修改宿舍信息************\n"); printf("*************2、删除宿舍信息************\n"); printf("*************3、退出返回顶层菜单********\n"); printf("****************************************\n"); printf("请输入对应命令:");scanf("%d",&j);printf("****************************************\n"); printf("以下为目前的宿舍信息:\n");xianshi();if(j==1){// case 1:printf("请输入要修改的宿舍的宿舍号:"); scanf("%d",&m);for(int i=0,k=0;i<max;i++){if(m==dcm[i].num)k=i+1;}if(k==0){printf("在记录中没有找到这个宿舍!\n"); continue;}printf("请输入该宿舍的最大住人数:\n"); scanf("%d",&dcm[k-1].ke);printf("请输入该宿舍的已住人数:\n"); scanf("%d",&dcm[k-1].yi);dcm[m].empty=dcm[k-1].ke-dcm[k-1].yi;printf("请输入宿舍性质(0代表男宿舍,1代表女宿舍): \n"); scanf("%d",&dcm[k-1].sex);while(dcm[k-1].sex!=1&&dcm[k-1].sex!=0){printf("非法输入宿舍性质!请重新输入!\n");scanf("%d",&dcm[k-1].sex);}printf("\t操作成功!已经修改完毕\n");break;}// break;// case 2:else if(j==2){printf("请输入要删除的宿舍号:");scanf("%d",&h);for(int i=0,k=0;i<max;i++){if(h==dcm[i].num)k=i+1;}if(k==0){printf("在记录中没有找到这个宿舍!\n"); continue;}for(i=k-1;i<max-1;i++){dcm[i]=dcm[i+1];}dcm[max-1].empty=NULL;dcm[max-1].ke=NULL;dcm[max-1].num=NULL;dcm[max-1].sex=NULL;dcm[max-1].yi=NULL;printf("\t操作成功!已经删除完毕\n");}// break;// default:else if(j==3)break;else{printf("输入错误!请重新输入。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学成都学院程序综合设计论文论文题目学生信息管理系统学生姓名魏国学号1340840625专业机械设计制造及其自动化系(分院)电子工程系授课教师杜娥2015年12月制摘要随着经济的发展,社会的进步,计算机越来越深入到我们日常的工作学习及生活中,成为我们日常生活不可或缺的辅助工具。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已成为人们深刻认识,它已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
现在由于学校规模进一步扩大,学生人数逐渐上升,在学校的学生信息管理中,虽然已经存在许多学生信息管理系统,但由于学校之间的管理差异很信息的不同,各个学校的学生信息管理的要求不一致,这样我们需要根据具体学习的具体要求来开发学生信息管理系统以方便学生管理。
本系统主要对学生各种信息进行处理。
本系统采用C语言编写,设计从实用性出发,设计开发出一个操作简单且符合实际需要的学生信息管理系统。
本文设计出一个可以添加、修改、查询、删除、统计的学生信息管理系统;最后,通过测试分析,力求将学到的只是在学生信息管理系统的得到全面运用,并使系统在实际的操作中能按照设计的要求安全有效的正确运行。
学生信息管理系统是为了实现学校对学生信息管理的系统化、规范化和自动化,从而提高学校管理效率而设计的。
它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成学生信息管理提供了强有力的工具和管理手段。
学生信息管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生信息管理的要求。
学生信息管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了学生信息管理计算机化。
关键字:学生信息,管理系统,数据库,C语言编写第一章系统功能和组成模块1.1系统功能学生信息管理系统存放了每个学生的学号,姓名,性别,年龄,出生年月,家庭住址,政治面貌等信息的数据库。
每个人的信息定义在一个结构体变量中。
其结构如下:系统通过录入信息程序,浏览信息程序,删除信息程序,修改信息程序,查找信息程序统计信息程序来实现学生信息管理系统的录入功能,浏览功能,删除/修改功能,查找、统计功能。
各个功能的调用通过主函数menu中的switch语句来实现。
1.2模块组成1.2.1输入显示模块通过设计一个模块,来实现学生信息的输入,同时来实现菜单界面的显示。
用以作为系统显示界面。
1.2.2删除模块通过设计一个模块,来实现删除全部输入的学生信息或者某一个特定的学生信息,用户可以通过选择进行操作。
在删除特定人员信息时,只需要输入该学生的学号就可以进行删除。
以后该学生的信息将不会再出现在数据库中。
1.2.3修改模块通过设计一个模块,当某个学生的信息发生变化时,可以通过修改模块来进行修改。
1.2.4浏览模块通过设计一个模块,可以将已经输入到数据库当中的信息调出显示。
以便查看或者进行修改。
通过设计一个模块,这个模块可以按学生的学号、姓名来查询学生所有的信息,并显示学生的所有信息,以便查询者阅读。
1.2.6统计模块通过设计一个模块,可以将所有输入过得数据库当中的信息以某个特定分类来进行统计,输出该特征的总人数。
图1-1总体模块框图第二章系统功能的实现2.1各模块主要功能的实现2.1.1输入显示模块程序通过一个printf函数和scanf函数来进行数据库的显示输出,输出的时候,通过定义数字、字符的长度大于本身的长度来实现输出信息的排版和隔开,使输出的信息排版美观。
程序通过定义一个字符整形来判别是全部删除(all)或者是删除某个特定学生(one)的信息,删除特定学生的信息需要先定义一个变量来判别是否有信息需要删除,如果有,则输入需要删除的学生的学号,进而进行删除,成功则显示“删除成功”,如果输入有误,则删除失败,显示“输入数据错误”。
图2-1 删除程序框图程序实现步骤:首先,定义全局变量char xinxi[20];int choice;然后,定义一个char Del[10];然后清屏,接着用printf指示是删除(all/one);然后用scanf输入,接着用if函数判别,用strcmp(Del,"all")==0比较,然后输出人数等于0,则删除成功;然后用else if函数判别strcmp(Del,"one")==0,然后定义一个字符型变量char choice[20];定义i,j,k,然后用printf提示输入学号,用scanf输入,然后定义一个指针变量p并初始化。
然后用for语句进行循环,然后用if比较判别输入学号和数据库中所存信息的关系,当含有这个人的信息的时候,把变量k赋值为1,并把此人再内存的顺序号i赋给j,然后则跳出循环。
然后判别k,如果数据库中只有一人的信息,则由指针p指向它,然后释放,达到清除效果。
如果有多人信息,则用for语句循环,用student[i]=student[i+1];renshu=renshu-1;来替换以达到删除效果。
如果是其他形式,则报错。
2.1.3查找模块程序通过输入字符(1或者2)来实现是按学号还是按姓名来查找。
当输入完学号或者姓名的时候,再通过一个for循环来实现此人信息的查找。
当含有这个人的信息的时候,把变量k赋值为1,并把此人再内存的顺序号赋给i。
如果不含这个人的信息的时候,变量k的值仍为0。
再通过一个if 语句,如果k的值为1,则打印第j个人的所有信息,如果k的值为0,则打印“输入信息有误”。
图2-2 查找程序框图程序实现步骤:首先,进行清屏,然后用if语句判别renshu==0,则用printf输出“无任何学生信息”,然后返回主界面。
接着用printf提示输入查找方式(1.学号,2.姓名),然后用scanf输入数字1,2(此处使用声明过得变量choice),然后用if语句判别输入choice是否等于1 ,然后提示输入学号(出处使用全局声明变量xinxi),然后用if语句判别,用strcmp(xinxi,student[i].id)==0比较,当含数据库中有这个人的信息的时候,把变量k赋值为1,并把此人再内存的顺序号赋给i,然后跳出循环。
如果不含这个人的信息的时候,变量k的值仍为0。
再通过一个if 语句,如果k的值为0,则用printf输出“输入信息有误”;如果k的值为1,则输出第j个人的所有信息。
第二种查找方式:用if语句判别输入choice是否等于2 ,然后提示输入姓名(出处使用全局声明变量xinxi),然后用if语句判别,用strcmp(xinxi,student[i].name)==0比较,当含数据库中有这个人的信息的时候,把变量k赋值为1,并把此人再内存的顺序号赋给i,然后跳出循环。
如果不含这个人的信息的时候,变量k的值仍为0。
再通过一个if 语句,如果k的值为0,则用printf输出“输入信息有误”;如果k的值为1,则输出第j个人的所有信息,其他的输入则报错。
2.1.4浏览模块程序通过定义两个变量i,j来实现信息的浏览功能,如果数据库内没有输入任何的数据,则显示(“系统里面没有任何学生的信息!”),如果数据库内有学生信息存在,则用printf显示出学生的各项信息。
2.1.5修改模块程序定义一个变量来确定到底输入的是学号还是姓名。
通过一个for循环来确定数据库到底是否含有此人的信息。
如果含有此人的信息,则把此人的信息打印再屏幕上。
再显示二级菜单,是修改这个人的学号、姓名、性别、年龄、出生年月、家庭地址、政治面貌和各科成绩。
通过一个switch语句来实现某个信息地修改。
如果不含有此人的信息,则打印“输入信息错误!”。
2.1.6统计模块程序通过定义一个变量cot来进行人数统计,使用count函数来按性别进行学生人数统计。
2.2程序调试及说明2.2.1结构体构建学生信息管理系统采用一个结构体数组,学生信息数据库结构如下:学生信息包括:学号,姓名,性别、年龄,出生年月,家庭地址,政治面貌,C语言成绩,VB成绩,英语成绩。
char id[20]; char name[30]; char sex[10];char zzmm[20];char addr[20]; char age[3]; char bir[9];int score[M];2.2.2子程序函数申明void menu();(菜单)void input();(信息录入); void ShanChu(); (删除)void LiuLan();(浏览)void ChaZhao();(查找)void Edit();(修改)void TongJi();(统计)2.2.3程序调试首先启动程序,弹出如下所示界面:图2-3 主界面此时可以选择输入1-7的数字,分别对应不同功能,我们首先输入1,选择登记学生信息,界面如下:图2-4 输入界面我们选择输入4位学生的信息,首先输入4,然后按照提示依次输入每位学生的各项信息,输入完成后,系统提示继续或者退出(1/0)选项,此时我们输入1,返回主界面,然后输入3,浏览数据库中我们已经存入的数据,如下图:图2-5 浏览界面此时系统仍然提示继续或者退出,我们选择1,返回主界面然后继续,然后我们在主界面输入4,进行查找功能测试,首先我们选择(1,学号)查找,然后输入学号(0102),系统显示如下:图2-6 学号查找界面然后我们输入1返回主界面继续输入4进行姓名(2.姓名)查找测试,我们输入(王五),此时系统显示如下:图2-7 姓名查找界面此时我们选择1返回主界面,然后输入5,进行修改指令测试,本系统只提供输入学号修改信息,则我们输入一个需要修改信息的学号(“0101”),此时系统弹出以下界面:图2-8 修改界面如果没有输入任何信息,则报错。
图2-9 修改报错此时本系统提供一个二级菜单,使用switch语句输入想要修改的内容,然后输入新信息。
我们选择2进行姓名修改,输入(赵四),然后输入1返回主界面,再输入3进行修改后的浏览,结果图如下:图2-10 修改后效果图此时我们输入1返回主界面/再输入2进行删除功能测试,首先我们选择删除特定学生的信息,输入(one),然后输入学号(0102),然后进行删除,图示如下:图2-11 特定删除功能然后我们再按1返回主界面,再选3进行删除结果浏览,结果如下:图2-12 特定删除结果浏览然后我们再输入1返回主界面,进行全部删除测试,输入2,回车,再输入(all),显示全部删除,结果显示如下:图2-13 全部删除此时我们再输入1,返回主界面,然后输入6,进行人数统计,本系统是按性别来进行人数统计的,显示结果如下:图2-14 性别统计人数由于前面我们删除了所有学生信息,所以显示为0。