-
2021-05-20 12:41:15
学生证的管理程序
——C语言课程设计报告
题目要求
该程序应该具有下列功能:
1、录入某位学生的学生证信息。学生证应该包照自含的信息请参己的学生证;
2、给定学号,显示某位学生的学生信息;
3、给定某个班级的班号,显示该班所有学生的学生证信息
4、给定某位学生的学号,修改该学生的学生信息;
5、给定某位学生的学号,删除该学生的学生信息;
6、提供一些统计各类信息的功能。
[输入要求]
使用程序后,在屏幕上显示一个菜单。用户可以根据要求选定相应的操作项目。进入每个操作后,根据使用程序的提示信息,从键盘输入相应的信息。
[输出要求]
使用程序运行后,要在屏幕上显示一个菜单;
要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
[提示]
设计一个结构体类型和一维数组类型,用来保存学生证内容;
需求分析
根据题目要求,因为学生信息是一个有不同类型的变量组成,因此,应提供结构体操作,在程序中需要浏览学生信息,应提供显示、查找、修改、删除、统计等操作。另外还应该提供键盘式的选择菜单实现功能选择。
总体设计
学生证的管理程序主要包含学生信息的录入、修改、删除、查询、统计等模块。为了各模块的独立性,将显示模块分别镶嵌在录入、修改、删除、查询、统计等模块中。
学生证管理程序
学生证管理程序
录 入
模 块
查 询
模 块
修 改
模 块
删 除
模 块
统 计
模 块
详细分析
主函数
[分析]
主函数的设计简洁,只提供加录入、修改、删除、查询、统计和显示等函数的调用和加载功能。其中各功能模块用菜单方式选择。并将main(>函数体内的界面选择部分部分语句单独抽出来做一个独立的函数,目的在于系统执行完每部分功能模块后能更方便返回到系统界面。menu(>函数从主函数中独立出来后,表面的主函数只是起一个程序开始的作用,其主要功能被独立出来的被调用的menu(>函数所取代。menu
[流程图]
显示一系列功能选项
显示一系列功能选项
加载已有信息
输入n,判断n是否是1-6
根据的值调用各功能模块函数
N
Y
[程序]
//***************************menu*************************/
menu(>
{int n,w,i,j。
STU *st。
FILE *fp。
fp=fopen("student1.txt","wb+">。
if(!fp>
{printf("Document error! ">。
exit(0>。}
else
{fread(&i,2,1,fp>。
fclose(fp>。
j=i+1。
st=(STU*>malloc(j*sizeof(STU>>。
do
{printf("\n\t\t********************MENU********************\n\n">。
printf("\t\t\t1.Input information of student\n">。//输入学生信息
printf("\t\t\t2.Inquiries information of student\n">//显示学生信息。
printf("\t\t\t3.Changes information of student\n">。//修改学生信息
printf("\t\t\t4.Delete information of student\n">。//删除学生信息
printf("\t\t\t5.Statistic information of student\n">。//统计学生信息
printf("\t\t\t6.Exit">。//结束
printf("\n\n2\t\t********************************************\n">。
printf("Choice your number(1-6>[ ]\b\b\b\b\b\b\b">。
scanf("%d",&n>。
if(n<1&&n>6>
{w=1。getchar(>。}
else
{w=0。free(st>。}
} while(w==1>。
switch(n>
{case 1:input(i,st>。break。
case 2:inquiries(i,st>。bre
更多相关内容 -
学生证管理系统C语言版
2013-08-17 09:18:56作为计算机应用的一部分,使用计算机对学生档案进行管理,有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。...本系统就是所说的学生证管理系统。 -
学生证管理系统 C语言项目实战
2018-04-19 18:15:23大学c语言课程大作业课程设计 可改为图书管理系统 教师管理系统 -
C语言课设,学生证管理系统
2019-01-23 22:22:55内涵完整代码,以及测试过程,通过菜单进行管理,各个模块流程图俱全,流程分析俱全,含有总体模块图。 -
学生证管理系统 C语言
2008-09-09 22:48:30这是一个C语言编写的程序,在winTC下调试 用其他的编译程序的话 需要进行少量的修改~! -
c语言程序 学生证管理系统
2021-05-24 07:53:39退出成绩管理系统 |\n"); printf("\t\t ╰————————————————————╯\n"); printf("\t\t 请您正确选择: "); if(!(scanf("%d",&in)==1)) { while((ch=getchar())!='\n') putchar(ch); printf(" ...匿名用户
1级
2008-12-18 回答
/*************************************************************************
学 生 成 绩 管 理 系 统 (结构版)
开发者:07042T 陈影
开发时间:2007-6-21
Compiler: Microsoft visual C++ 6.0
System Loginpassword:chenying
本系统支持每个学员录入学号、姓名、以及三门课成绩,且计算总分、平均成绩
插入、删除、修改、排序、查询个人成绩 浏览所有学生成绩。
1、使用结构保存每个学员的信息。
2、通过函数实现各个功能模块。
3、使用对文件的写操作记录成绩文件.默认保存在程序所在的目录下
4、不管是用户怎样操作数据都会有文件记录,实现了实时记录数据,但是给用户
看到的文件是用户对数据操作好之后保存下来的数据.
Copyright ? 2007 北大青鸟APTECH重庆足下 Inc. All Rights Reserved ChenYiWan
/*************************************************************************/
#include //标准输入输出
#include //其它操作
#include //windows相关
#include //字符串操作
#include //系统输入输出
#include //时间相关操作
/**********************下面是对用到的全局常量声明*************************/
#define NAME 10 //学生姓名长度
#define PASSWORD " " //系统登陆密码
int input=0; //全局变量标记当前录入学员个数
float ave,sum; //平均成绩和总分
FILE *fp; //声明一个文件指针
/**************************结构体定义************************************/
struct student{ //学生成绩结构
char name[NAME]; //学生姓名
int num; //学生学号
float score1; //记录学生成绩1
float score2; //记录学生成绩2
float score3; //记录学生成绩3
float ave; //平均分
float sum; //总分
}*pp; //声明一个结构指针
/**********************下面是对用到的函数声明*****************************/
void Password(); //密码验证函数
void Save(struct student stu[]); //保存信息函数
void InputStu(struct student stu[]); //录入信息函数
void DelStu(struct student stu[]); //删除信息函数
void ModifyStu(struct student stu[]); //修改信息函数
void FindStu(struct student stu[]); //查找信息函数
void InsertStu(struct student stu[]); //插入信息函数
void SortStu(struct student stu[]); //排 序 函 数
void ListStu(struct student stu[]); //显示学员成绩信息
//**************************程序主体**************************************
void main() //程序入口
{
system("color 02"); //设置当前窗口的背景色和前景色
struct student stu[50]; //最大学员人数
struct student *p; //声明一个结构指针
p=stu; //指针指向结构变量stu
int in; //接收用户的选择
char ch; //用于判断是否继续
Password(); //调用密码验函数
do
{
system("cls");
printf("\n\n");
printf("\t\t ╭————————————————————╮\n");
printf("\t\t | 学 生 个 人 成 绩 管 理 |\n");
printf("\t\t |————————————————————|\n");
printf("\t\t | 1. 录入学生个人成绩 |\n");
printf("\t\t | |\n");
printf("\t\t | 2. 修改学生个人成绩 |\n");
printf("\t\t | |\n");
printf("\t\t | 3. 查询学生个人成绩 |\n");
printf("\t\t | |\n");
printf("\t\t | 4. 浏览所有学生成绩 |\n");
printf("\t\t | |\n");
printf("\t\t | 5. 删 除 学 生 成绩 |\n");
printf("\t\t | |\n");
printf("\t\t | 6. 插 入 学 生 成绩 |\n");
printf("\t\t | |\n");
printf("\t\t | 7. 学 员 成 绩 排序 |\n");
printf("\t\t | |\n");
printf("\t\t | 8. 学 员 成 绩 保存 |\n");
printf("\t\t | |\n");
printf("\t\t | 9. 退出成绩管理系统 |\n");
printf("\t\t ╰————————————————————╯\n");
printf("\t\t 请您正确选择: ");
if(!(scanf("%d",&in)==1))
{
while((ch=getchar())!='\n')
putchar(ch);
printf(" 没有此选项,请正确选择!");
getch();
continue;
}
fflush(stdin);
switch(in)
{
case 1:
InputStu(stu); //调用录入成绩函数
break;
case 2:
ModifyStu(stu); //调用修改成绩函数
break;
case 3:
FindStu(stu); //调用查询个人成绩函数
break;
case 4:
ListStu(stu); //调用浏览所有学生成绩函数
break;
case 5:
DelStu(stu); //调用删除学生成绩函数
break;
case 6:
InsertStu(stu); //插入学员成绩信息
break;
case 7:
SortStu(stu); //调用排序函数
break;
case 8:
Save(stu); //保存学员成绩函数
break;
case 9: //退出系统
return;
default:
printf("没有此选项,请正确选择!");
getch();
break;
}
}while(1);
}
void InputStu(struct student stu[]) //录入学员成绩函数原形
{
pp=stu; //指针指向结构
system("cls"); //清屏
int i;
printf("请问你要输入几个学生的信息:");
scanf("%d",&input);
if((fp=fopen("inputdata.sys","wb+"))==NULL) //当前目录下是否存在inputdata.sys文件
{ //"wb+":读写打开或建立一个二进制文件,允许读和写
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fprintf(fp,"学号 姓名 计算机应用 Java \tC语言 \tA v e\tS u m\n");
for(i=0;i
{
printf("输入学生学号:"); //输入学号
fflush(stdin);
scanf("%d",&stu[i].num);
printf("输入学生姓名:"); //输入姓名
fflush(stdin);
gets(stu[i].name);
printf("输入学生3科成绩\n");
printf("——————————————————————————————\n");
printf("\n计算机应用: "); //第一科成绩
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\nJava 语言: "); //第二科成绩
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\nC 语言: "); //第三科成绩
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("——————————————————————————————\n");
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
//下面这句代码的意思是写文件操作,后面遇到这样的代码是一样的意思
fprintf(fp," %d %s \t%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);
}
}
void ModifyStu(struct student stu[])
{
pp=stu;
int id,i=0; //id为接收用户输入的学号
if((fp=fopen("modifydata.sys","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fprintf(fp,"学号 姓名 计算机应用 Java \tC语言 \tA v e\tS u m\n");
printf("\n请输入你要修改的学生的学号:");
scanf("%d",&id);
Sleep(500);
printf("\n\t查找相关数据.");
for(i=0;i<=15;i++)
{
Sleep(250);
printf(".");
}
for(i=0;i
{
if(stu[i].num==id) //如果找到了就执行下面语句 ,找不到直接回主界面
{
printf("\n输入学生新学号:"); //输入学号
fflush(stdin);
scanf("%d",&stu[i].num);
printf("\n输入学生新姓名:"); //输入姓名
fflush(stdin);
gets(stu[i].name);
printf("输入学生3科新成绩\n");
printf("——————————————————————————————\n");
printf("\n计算机应用: ");
scanf("%f",&stu[i].score1);
fflush(stdin);
printf("\nJava 语言: ");
scanf("%f",&stu[i].score2);
fflush(stdin);
printf("\n C 语言: ");
scanf("%f",&stu[i].score3);
printf("——————————————————————————————\n");
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp," %d %s \t%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);
}
}
}
void FindStu(struct student stu[]) //查询个人成绩信息
{
int i=0,id; //循环变量和用于接收学号
printf("请输入你要查询的学生学号:");
scanf("%d",&id);
for(i=0;i
{
if (stu[i].num==id) //如果找到你查询的数据就执行下面语句
{ //如果找不到。直接回程序主界面
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
printf("\n学号 姓名 计算机应用 java语言 C 语言 总 分 平均成绩\n");
printf("\n%d %s %.1f\t %.1f\t %.1f\t %.1f\t %.1f\n\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);
system("pause");
}
}
}
void InsertStu(struct student stu[]) //插入学员成绩信息
{
int flag=1;
pp=stu;
int i,id;
if((fp=fopen("insertdata.sys","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fprintf(fp,"学号 姓名 计算机应用 Java \tC语言 \tA v e\tS u m\n");
printf("输入你插入的学号:");
scanf("%d",&id);
for(i=0;i
{
if(stu[i].num==id) //判断学员的学号信息否存在?
{
printf("学号信息已经存在!\n");
flag=0;
getch();
break;
}
}
if (flag!=0)
{
input++; //插入一个,原来的总数增加1
printf("请确认输入要插入学生的学号:");
scanf("%d",&stu[input-1].num); //如果不存在..那么就把插入的信息放到结构数组最后
printf("输入学生姓名:");
fflush(stdin);
gets(stu[input-1].name);
printf("输入学生3科成绩\n");
printf("——————————————————————————————\n");
printf("\n计算机应用: ");
fflush(stdin);
scanf("%f",&stu[input-1].score1);
printf("\nJava 语言: ");
fflush(stdin);
scanf("%f",&stu[input-1].score2);
printf("\nC 语言: ");
fflush(stdin);
scanf("%f",&stu[input-1].score3);
printf("——————————————————————————————\n");
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp," %d %s \t%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n",stu[input-1].num,stu[input-1].name,stu[input-1].score1,stu[input-1].score2,stu[input-1].score3,stu[input-1].ave,stu[input-1].sum);
Sleep(500);
printf("插入数据成功!\n");
getch();
}
}
void ListStu(struct student stu[]) //浏览所有学生成绩
{
int i=0;
for(i=0;i
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
}
printf("\n学号 姓名 计算机应用 java语言 C 语言 平均成绩 总 分\n");
for(i=0;i
{
printf("\n %d %s %.1f\t %.1f\t %.1f\t %.1f\t %.1f",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave, stu[i].sum);
}
getch();
}
void DelStu(struct student stu[]) //删除学员信息函数
{
pp=stu;
struct student temp;
int delnum;
char ask;
int i,j;
if((fp=fopen("Deldata.sys","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fprintf(fp,"学号 姓名 计算机应用 Java \tC语言 \tA v e\tS u m\n");
system("cls");
printf("\n\n\t请输入你要删除的学员的学号:");
fflush(stdin);
scanf("%d",&delnum);
printf("\n\t是否确认删除学员%d的信息(y/n)",delnum);
fflush(stdin);
ask = getchar();
if(ask != 'n')
{
for(i=0;i
{
if(stu[i].num == delnum)
break;
}
if(i > input)
printf("\n\t没有你要删除的学员!\n");
else
{
for(j=i;j
{
temp = stu[j];
stu[j] = stu[j+1];
stu[j+1] = temp;
}
input--; //删掉一个学员信息后学员总数相应-1
system("cls");
printf("\n\n删除成功!\n");
}
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp," %d %s \t%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);
getch();
}
}
void SortStu(struct student stu[]) //排序函数
{
int i,j,chose; //i,j为循环变量 chose为接收用户输入的排序方式
struct student temp;
printf("排序前的数据为\n");
printf("\n学号 姓名 计算机应用 java语言 C语言 平均成绩 总 分\n");
for(i=0;i
{
printf("\n %d %s %.1f\t %.1f\t %.1f\t %.1f\t %.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);
}
printf("\n1.按学号排序\t2.按总分(高→低)排序\n");
printf("\n请您正确选择:");
fflush(stdin);
scanf("%d",&chose);
if(chose==1)
{
for(i=0;i
{
for(j=i+1;j
{
if(stu[i].num>stu[j].num)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
printf("\n学号 姓名 计算机应用 java语言 C语言 平均成绩 总 分\n");
for(i=0;i
{
printf("\n %d %s %.1f\t %.1f\t %.1f\t %.1f\t %.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);
}
system("pause");
}
else if(chose==2)
{
for(i=0;i
{
for(j=i+1;j
{
if(stu[i].ave
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
printf("\n学号 姓名 计算机应用 java语言 C语言 平均成绩 总 分\n");
for(i=0;i
{
printf("\n %d %s %.1f\t %.1f\t %.1f\t %.1f\t %.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);
}
system("pause");
}
}
void Password() //密码验证函数
{
char *pass=NULL; //初始化指针
int i,count;
time_t start,end; //时间函数
pass=(char *)malloc(255*sizeof(char)); //分配内存
while(1)
{
count=0;
printf("\n\n\n\n\n\t\t\t学 生 成 绩 管 理 系 统 \n");
printf("\n\t\t UserName:ChenYiWan \n");
printf("\n\t\t PassWord:");
while((count>=0)&&(pass[count++]=getch())!=13) //密码输入
{
if(pass[0]=='\b')
{
count=0;
continue;
}
else if(pass[count-1]=='\b')
{
printf("%c%c%c",'\b','\0','\b');
count-=2;
}
else
putchar('*');
}
pass[--count]='\0';
if(!strcmp(pass,PASSWORD)) //开始验证
{
printf("\n\n\t\t\t\t\t\tLoading");
for(i=0;i<=25;i++)
{
Sleep(250);
printf(".");
}
system("cls");
printf("\n\n\n\n\n\n\n\n\n\t\t\t");
printf(" 欢 迎 登 陆 学 生 成 绩 管 理 系 统 !");
start=time(NULL);
end=time(NULL);
while(end-start<2) //延时2秒执行以下程序
{
end=time(NULL);
}
system("cls");
free(pass); //释放储存密码的内存
return ;
}
free(pass); //释放密码错误的那块内存
pass=(char *)malloc(255*sizeof(char)); //重新分配储存密码内存
system("cls");
printf("\a\n\n\n\n\n\n\n\n\t\t\t\t密 码 错 误 !");
getch();
system("cls");
}
}
void Save(struct student stu[]) //成绩保存函数
{
int i,j;
pp=stu; //指针指向结构
system("cls");
printf("\n\n\n\n\t\t\tSaving");
for(j=0;j<20;j++)
{
Sleep(300);
printf(".");
}
if((fp=fopen("stu_list2.doc","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fprintf(fp,"学号 \t姓名 计算机应用\tJava \tC语言 \tA v e\tS u m\n");
for(i=0;i
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp," %d \t%s \t%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);
}
}
-
学生信息管理系统C语言课程设计作业
2019-12-28 23:32:51一、学生信息存放在文件中,提供文件的输入、输出等...充分体现两者权限的不同,学生信息管理系统中需要管理员实现学生信息的录入、显示、修改、删除、查询、统计等功能。而学生身份只需拥有查询自己信息的功能即可。 -
学生证管理系统c语言代码
2011-09-02 09:48:22设计一个学生证的管理程序。该程序应该具有以下功能: (l)录入某位学生的学生证信息(学生证应该包含的位息请参看自己的学生证); (2)给定学号,显示某位学生的学生证信息; (3)给定某个班级的班号,按学号由... -
C语言程序设计课设报告_学生证管理系统.docx
2021-05-20 12:41:41MERGEFORMAT1学生证管理程序报告学号:姓名:完成日期: 2012年 5 月题目内容的提出与描述学生证的有效管理是学校的重要工作,这项工作的工作重点是需要学校建立一个简明高效,便于操作和处理信息的学生证管理系统。...PAGE \* MERGEFORMAT1
学生证管理程序报告
学号:
姓名:
完成日期: 2012年 5 月
题目内容的提出与描述
学生证的有效管理是学校的重要工作,这项工作的工作重点是需要学校建立一个简明高效,便于操作和处理信息的学生证管理系统。这样,学校就可以从全局上掌控、修改、统计学生信息,为学生管理工作提供极大的便利,本程序的目的旨在于管理大量学生的学生证信息,大大提高学校和教师的工作效率。
本程序的具体功能包括:1)通过键盘输入某位学生的学生证信息。
2) 给定学号,显示某位学生的学生证信息。
3) 给定某个班级的班号,显示该班所有学生的学生证信息。
4) 给定某位学生的学号,修改该学生的学生证信息。
5) 给定某位学生的学号,删除该学生的学生证信息。
6) 提供一些统计各类信息的功能。
二.软件的需求分析描述
本软件要实现对学生证信息的有序程序化管理,操作人员可以输入学生的学生证信息并存储,修改学生证信息,删除学生证信息,并通过不同方式查找到学生,从而简化学生证的管理工作,方便进行相关操作。
本软件要达到的性能,存储至少100位同学的学生证信息,并可以查找指定学生的学生证信息,修改,删除指定学生的学生证信息,可输出已存储的全部学生的相关信息。
三. 开发工具的介绍—C语言的优点
简洁紧凑、灵活方便。
运算符丰富。
数据类型丰富。
C是结构式语言。
语法限制不太严格,程序设计自由度大。
允许直接访问物理地址,对硬件进行操作。
生成目标代码质量高,程序执行效率高。
适用范围大,可移植性好。
四.软件的总体设计和详细设计
1.软件的总体设计部分画出结构图。
2.软件的详细设计部分画出流程图,并写出个函数之间参数的定义和传递方式、输入数据类型、格式和内容限制。
①Main函数
函数从主函数开始运行,首先进行选择要操作的函数,引导用户执行操作。而后通过全局变量在进行具体操作
②Setup函数
用户选择执行Setup()函数,首先引导用户确定录入人数,之后通过循环语句判断,一次录入每个学生的学生卡信息,包括姓名,性别,学院,以及学号。
③Correct函数
用户选择执行Correct()函数,首先程序引导输入指定学生的学号,判断输入学号的学生是否存在,如果存在则引导用户重新将该学生的学生卡各项信息输入并覆盖原信息,修改结束后自动返回主菜单等待用户操作,否则直接返回主菜单。
④Delete函数
⑤Find函数
用户选择Find函数,首先引导用户选择查询方式,确认后调用执行响应程序段,最后将查询结果全部打出。
⑦.统计功能
五.资源描述
凡装有Free-C5的程序皆可完美运行此程序
六.程序的源代码
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"conio.h"
struct information{
char name[10];
char sex;
char num[8];
int academy;
};
typedef struct information INFORMATION;
struct sqlisttp{
INFORMATION student[100];
int last;
};
typedef struct sqlisttp SQLISTTP;
SQLISTTP v; /*建立一个全局变量,线性表*/
void Setup(){
int i;
printf("请输入你要建立数据的人数\n");
scanf("%d",&v.last);
for(i=0;i
printf("请输入第%d位的姓名\n",i+1);
scanf("%s",v.student[i].name);
printf("请输入第%d位的性别(MorF)\n",i+1);
scanf("%s",&v.student[i].sex);
printf("请输入第%d位的学号\n",i+1);
scanf("%s",v.student[i].num);
printf("请输入第%d位的学院(1-15)\n",i+1);
scanf("%d",&v.student[i].academy);
}
getch();
}
void Add(){
v.last++;
printf("请输入第%d位的姓名\n",v.last);
scanf("%s",v.student[v.last-1].name);
printf("请输入第%d位的性别(MorF)\n",v.last);
scanf("%s",&v.student[v.last-1].sex);
-
c语言课程设计报告——学生证管理系统
2021-05-19 18:07:491、高级语言程序设计课程设计报告学生证管理系统题 目:班 级: 软件工程学生学号: 5学生姓名: 罗国辉提交时间:2012年4月8日成 绩:优华南农业大学 信息学院一、需求分析1、系统概述:.随着时代的发展,教育事业...1、高级语言程序设计课程设计报告学生证管理系统题 目:班 级: 软件工程学生学号: 5学生姓名: 罗国辉提交时间:2012年4月8日成 绩:优华南农业大学 信息学院一、需求分析1、系统概述:.随着时代的发展,教育事业的进步,如今的大学并不像过去那样,只有几百或上千人,一般的大学都有上万人之多,对于一个学生的信息如何去管理呢?有纸质版去保存明显是不实际的。这样不但占空间,更是容易丢失损坏,更重要是修改起来很麻烦。采用计算机来管理学生信息,如学生证信息,不但可避免以上所说的不足,尤其在信息查询方面有显著十分简单方便。我所介绍的是学生证管理系统。本系统具有添加、修改、删除、查询、统计、显示、查看以往操作。
2、等功能。2、系统运行环境:(1)硬件环境: CPU:奔腾3以上内存:64M以上显卡:集成显卡硬盘:10M(2)软件环境: 操作系统:windows 98/me/2000/XP/vistaDOS系统支持中文输出3、功能需求描述: (1)登录模块:若为首次使用本系统,则会允许注册一个管理员。若非首次使用本系统,则直接进入登陆界面。登陆时,管理员登陆需要用户名及密码,否则不用密码,直接进入。当然,管理员登陆与普通登陆后的功能是不一样的。普通登陆只有查询、统计、显示全部的功能。而管理员登陆则还有添加、删除、修改、查看以往操作的功能。管理员登陆输入密码时,显示的是*号,输错和返回的,这样可以防止密码被盗。
3、。(2)添加模块:只允许管理员操作。可以逐个录入学生信息,当地一个学生信息录入名保存后,系统会问你是否继续录入学生信息。在录入一个学生信息过程中,如果发现前一项录错了或不想录入了,可以按“0”(零)键即可返回主菜单。(3)删除模块:只允许管理员操作。本模块有3种删除方式,分别是按学号删除、按班级名删除及按入学年份删除。可按用户需要选择删除方式,非常方便!(4)修改模块:只允许管理员操作。只能通过学号找到该学生信息,然后进行修改。(5)查询模块:本模块分为4种方式查询,有学号查询、姓名查询、班级查询、按入学年份查询。特别的,在按姓名查询及按学号查询时,只知道学号中的连续几位数字,或只知道姓名中的。
4、一个或两个字也能查询出来,使查询得条件简单。(6)统计模块:统计学生总人数,男生人数,女生人数,总平均年龄,男生平均年龄,女生平均年龄,个入学年份人数。(7)显示模块:显示全校所有人的学生证信息。由于数据可能非常多,为了使所有数据都能显示出来。因此加了分页功能。(8)备份模块:仅管理员使用。将过去删除过的,添加过的,修改过的学生的原本信息保存起来,方便删除错误或修改错误时还原。二、总体设计1、总体开发思想:(1)主要的数据结构:系统对数据操作的主要数据结构是一个一维链表(如图),头指针head指向第一个节点。尾指针指向NULL。head NULL(2)数据存贮方式:用文本文档(txt格式)将数。
5、据储存。当然,在存储数据之前会对其进行加密,使之变成乱码。以起保密功能。(3)使用的语言: C语言。2、系统模块结构图:登陆模块添加模 块修改模 块删除模 块统计模 块显示模 块查询模 块查看操作模块按入学年份删除按班级名删除按学号删除按入学年份查询按班级名查询按姓名查询按学号查询清空所有被操作过的信息被修改过的信息被删除过的信息被添加过的信息3、模块设计:以下为各个功能模块的流程图首次登 录模 块注册管理员输 入密 码检 验密 码非首次添 加模 块输入所要添加的学生信息保存学生信息删除模块入学年份删除班级删除学号删除输入入学年份输入班级名输入学号修 改模 块输入修改学号重新输入信息修改成功统。
6、 计模 块输出统计所得的信息,如校总人数,男女人数,总平均年龄,男女各平均年龄,各个级的学生人数显 示模 块 分页输出全校学生信息查看以往操作模块查看被添加过的查看被删除过的查看被修改过的清空备份数据输出被删除过的学生信息输出被修改过的学生信息清空所有数据输出被添加过的学生信息三、功能实现1、主要函数:函数名及参数含义;(1)链表模块主要函数:void cjlb(); /创建新链表 struct student *insert1(struct student *head,struct student *stud); /按入学年份插入节点 struct student *insert2(stru。
7、ct student *head,struct student *stud); /按班级名顺序插入节点 void rxnfpx(); /按入学年份排序 void bjpx(); /按班级排序 void tj(); / 添加 void sc(); /删除 void xhsc(); /按学号删除 void bjsc(); /按班级删除 void rxnfsc(); /按入学年份删除 void xg(); /修改 void cx(); /查询 void xhcx(); /学号查询 void xmcx(); /姓名查询 void bjcx(); /班级查询 void rxnfcx(); /入学年份查询。
8、 void tjj(); /统计 void xs(); /显示 void cx1(); /非管理员查询 void xhcx1(); /非管理员学号查询 void xmcx1(); /非管理员姓名查询 void bjcx1(); /非管理员班级查询 void rxnfcx1(); /非管理员入学年份查询 void tjj1(); /非管理员统计 void xs1(); /非管理员显示 void cd1(); /管理员菜单 void cd2(); /学生菜单 void zc(); /注册管理员 void dl(); /管理员登陆 void caozuo(); /操作 int main(); /主函。
9、数 (2)密码加密部分:有加密功能,但加密并非用一个特定函数实现,而是在打印到文本之前对信息进行加密,读取文本信息时进行解密。2、使用界面(1)登陆画面:(2)密码输入界面:(3)各菜单界面:(4)添加学生信息:(5)修改学生信息:(6)查询学生信息:(7)删除界面:(8)统计界面:(9)显示所有信息界面:(10)查看以往操作界面:四、总结一开始做的时候,根本不知道学生证管理系统是怎样的,更不知道它有什么功能。经过跟同学谈论并上网查找一些资料之后,基本知道学生证管理系统的功能。于是就根据功能去编代码。由于我们对链表知识掌握的不是很透彻,所以呢,在编代码的时候遇到很多困难。有时候,很容易范逻辑错。
10、误,如本来head=NULL,但是很容易会这样if(head-rxnf= =a)这样就范逻辑错误了。而且这些错误是很难发现的,所以你会被卡很长时间。还有很多细节是要注意的。编完这个系统之后,我学会了很多注意细节的问题。经过长时间的努力之后,我终于把这个程序编完了,于是去提前答辩,结果过是过了,但是分数不是很理想,因为我只是实现了基本功能,整体来说,程序没有什么亮点。老师说可以添加一些新功能之后再次申请答辩。于是我就又把代码重新编了一次。我的新程序除了实现基本功能以外还添加了以下功能:(1) 分页功能:我们都遇到过这样的情况,当我们要在编译运行框里打印很多行东西的时候,我们最后只能看到末尾的一小。
11、部分,而分页功能就很好的解决了这个问题。(2) 备份:是对被添加、删除、修改的学生信息进行记录保存,以备删除或修改错误时寻回的需要。(3) 在按学号查询、按姓名查询的时候,若只知道该学生的姓名中的一个或两个连续的字时,或只知道该学生学号的连续的几个数字,也可以进行查询,只是查询的结果可能不唯一。(4) 在添加一个学生的信息时,如果我不行录入这位同学的信息了,随时都可以退出,但有很多同学的是不能做到的,要么非法关闭,要么先把这个学生的信息录完才能进行其他功能。(5) 还有是一些代码的精简,在读取文件信息的时候,我只读取了一遍(定义一个头指针的全局变量便可实现),而之前我的代码是每个函数都要读取一。
12、遍。只读一遍就能少了很多不必要的操作。(6) 在注册函数和登录函数中,输入密码是,显示的是*号,并且输错了可以返回。重新编一次代码,我不仅对所学知识巩固了许多,还懂得了,在编一个系统的时候.有什么想法应尽量去实现。作为一个软件设计师,不但要是软件满足客户的需求,还要想到一些客户想不到的,这样才能成为一个优秀的软件设计师。评分表题目:学号: 姓名: 评分项目 分数1实现情况(15):完成课程设计要求的情况2系统分析(10):对系统的理解及分析的深入程度。3系统设计(20):总体设计、具体设计、数据结构设计等。4程序设计(30):C语言的运用能力、算法能力等。5界面设计(15):操作简便、界面友好程度等。6报告撰写(10):报告撰写的规范性、合理性等等。总成绩:评语:评阅老师: 评阅时间: 年 月 日。
-
C语言课程设计-学生证管理系统
2014-05-16 22:46:19题目:学生证管理程序 设计一个学生证管理程序。该程序应该具有下列功能: (1)录入某位学生的学生证信息(学生证应该包含的信息请参看自己的学生证); (2)给定学号,显示某位学生的学生证信息; (3)给定某个... -
C语言课程设计---学生证管理程序.pdf
2020-06-09 20:18:54报告题目学生证管理程序 题目要求 功能要求 该程序应该具有下列功能 (1) 录入某位学生的学生证信息学生证应该包含的信息参见自己的学生证 (2) 给定学号显示某位学生的学生证信息 (3) 给定某个班级的班号显示该班所有... -
C语言学生管理系统源代码
2020-10-13 21:28:07新人博主不易,希望看完点赞 ```c /** *autor:旋尘 *time:2020.4.20 */ #includeint Menu() ...printf("\t学生成绩管理系统*\n"); printf("\t*| 1. 添加学生信息 \n"); printf("\t| 2. 显示学生信息 \ -
C语言课程设计---学生证管理程序(22页)-原创力文档
2021-05-19 14:55:38报告题目:学生证管理程序题目要求【功能要求】该程序应该具有下列功能:(1) 录入某位学生的学生证信息。学生证应该包含的信息参见自己的学生证。(2) 给定学号,显示某位学生的学生证信息。(3) 给定某个班级的班号,... -
学生证管理系统 C语言上机实习
2009-09-06 15:21:16C语言实习用过的,学生证管理系统,保证没有错误 -
C语言学生证管理系统
2014-09-15 19:14:33设计一个学生证的管理程序。该程序具有以下功能: (1)录入某位学生的学生证信息(学生证应该包括的内容请参看自己的学生证); (2)给定学生的学号,修改该学生的学生证信息; (3)给定学生的学号,删除该... -
学生证管理系统(C语言课程设计).doc
2022-06-27 12:42:50学生证管理系统(C语言课程设计).doc -
SCAU c语言程序设计课设/学生证管理程序
2022-04-10 20:23:20设计一个学生证的管理程序。该程序具有以下功能: (1)录入某位学生的学生证信息(学生证应该包括的内容请参看自己的学生证); (2)给定学生的学号,修改该学生的学生证信息; (3)给定学生的学号,删除... -
C语言课程设计-学生证管理系统(源码+报告)
2022-06-23 16:17:46大一C语言课程设计,很简单,简单到没有数据存储。 -
学生信息管理系统C语言源代码
2021-05-24 06:57:01文档是C语言编写的学生信息管理系统。我已经在vs2005上运行过,没有错误。大家可放心使用这个是用链表写的,功能应该比较全的,用链表可实现动态内存分配,方便存储人数不确定的信息#include#include#include#include... -
学生信息管理系统(C语言)
2022-04-02 18:03:08” TNND 源码参上: main.c文件 #include"student.h" int main() { printf("\t\t\t\t\t迎使用学生信息管理系统\n"); Menu(); STU *head=NULL; while(1) { printf("\t\t\t请输入操作指令: "); char str[32]... -
学生成绩管理系统 C语言 C++ 详细注释 可运行 结构体数组 链表 课程设计
2017-07-19 15:50:48学生成绩管理系统 课程设计 C语言 c++实现 有详细的注释 经验证可运行 -
C语言实现学生信息管理系统(文件版)
2021-01-19 23:49:49本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 下面是我自己用写的学生信息管理系统,为了增加数据的利用率,分为学生端和教师端,同时实现账号密码登录,以文件的形式将其... -
C语言课设之学生证管理系统.doc
2022-06-20 07:04:47C语言课设之学生证管理系统 -
C语言实现学生信息管理系统
2019-04-08 14:40:48使用C语言对学生管理系统进行优化 -
学生管理系统V1.0,主要使用C语言实现
2021-08-17 22:36:47文件主要包括:main.c、JSYStudentMsg.txt、UserIni.ini、学生管理系统数据结构解析图.png、学生管理系统思维导图.png。该项目内置典型C语言继承逻辑以及动态数组和链表数据结构。主要实现功能为:登录用户名和密码... -
C语言版学生证管理系统综合性实验源码+详细实验报告
2015-01-10 10:26:07该学生证管理系统能够保存学生一些基本的信息,如:姓名、学号、身份证、户籍、班级、专业、学院等信息,同时能够添加、删除、修改学生的信息,还能够快速统计、分类查阅学生的信息,极大程度上减少了传统的方式录入...