问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

c语言编写学生信息管理系统

发布网友 发布时间:2022-05-04 18:29

我来回答

5个回答

热心网友 时间:2022-06-24 16:05

/*好吧,其实你可以上网看看,那么多的,你可以自己修改下*/
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <stdlib.h>
#define NULL 0
#define LEN sizeof(struct student)

struct student
{
char name[20];
long int num;
char sex[4];
int age;
char address[30];
double tele_num;
char aihao[20];
struct student *next;
};//定义一个结构题

int TOTAL_NUM = 0;//学生总数
struct student *head = NULL;

void welcome (); //欢迎界面
void mainmenu (); //主界面
void record (); //记录数据
void insert(struct student *stu); //插入数据
void display(struct student *stu); //显示一个学生的信息
void displayAll (); //显示所有学生的信息
void query_by_num (); //按学号查询学生信息
void readData (); //读取文件里学生的信息
void writeData (); //向文件写入学生信息
void freeAll (); //清空链表内容
void del (); //删除学生信息
void change (); //更改学生信息
void devise (struct student *p); //选择更改内容

int main (void)
{
welcome ();
//显示主菜单
mainmenu ();
return 0;
}
//显示欢迎信息
void welcome ()
{
printf ("+----------------------------------------------------+\n");
printf ("| |\n");
printf ("| 欢迎使用网络工程学院信息安全092班学生信息管理系统 |\n");
printf ("| |\n");
printf ("+----------------------------------------------------+\n");
}

//系统主菜单
void mainmenu ()
{
int choice;
choice = -1;
readData ();
printf ("\n温馨提示:为保证您的操作得到保存,请按正常顺序退出系统^_^\n");
do
{
printf ("\n\n\n");
printf ("\t\t\t--------------------------------------------\n");
printf ("\t\t\t+ 信息安全092班学生信息管理系统 |\n");
printf ("\t\t\t--------------------------------------------\n");
printf ("\t\t\t+ [1]----录入学生信息 |\n");
printf ("\t\t\t+ [2]----浏览学生信息 |\n");
printf ("\t\t\t+ [3]----查询学生信息 |\n");
printf ("\t\t\t+ [4]----删除学生信息 |\n");
printf ("\t\t\t+ [5]----修改学生信息 |\n");
printf ("\t\t\t+ [0]----退出系统 |\n");
printf ("\t\t\t+*·*·*·*·*·*·*·*·*·*·*·*·*·*·*|\n");
printf ("\t\t\t--------------------------------------------\n");
printf ("请输入您的选择:");
scanf ("%d", &choice);
switch (choice)
{
case 0:
writeData ();
freeAll ();
exit (0);
case 1:
record ();
break;
case 2:
displayAll ();
break;
case 3:
query_by_num ();
break;
case 4:
del ();
break;
case 5:
change ();
break;
default:
printf ("\n无效选项!");
break;
}
}
while (choice != 0);
}
//录入学生信息
void record ()
{
struct student *p0;

p0 = (struct student *)malloc(LEN);
printf ("请输入学生的姓名:");
scanf ("%s",p0->name);
printf ("请输入学生的学号:");
scanf ("%ld",&p0->num);
printf ("请输入学生的性别:");
scanf ("%s",p0->sex);
printf ("请输入学生的年龄:");
scanf ("%d",&p0->age);
printf ("请输入学生的地址:");
scanf ("%s",p0->address);
printf ("请输入学生的电话:");
scanf ("%lf",&p0->tele_num);
printf ("请输入学生的爱好:");
scanf ("%s",p0->aihao);

insert (p0);
printf ("该学生的信息为:\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("姓名\t学号\t\t年龄\t性别\t地址\t\t电话\t\t爱好\n");
display (p0);
}

void insert (struct student *stu)
{
struct student *p0, *p1, *p2;

p1 = head;
p0 = stu;

if (head == NULL)
{
head = p0;
p0->next = NULL;
}
else
{
while ((p0->num > p1->num)&&(p1->next != NULL))
{
p2 = p1;
p1 = p1->next;
}
if (p0->num <= p1->num)
{

if (head == p1)
head = p0;
else
p2->next = p0;
p0->next = p1;
}
else
{
p1->next = p0;
p0->next = NULL;
}
}
TOTAL_NUM++;
}

void display (struct student *p)
{
printf ("%s\t%ld\t%d\t%s\t%s\t\t%.0f\t%s\n", p->name, p->num, p->age, p->sex, p->address, p->tele_num, p->aihao);
}
//浏览学生信息
void displayAll()
{
struct student *p;

printf("学生总数:%d\n", TOTAL_NUM);
p = head;
if (head != NULL)
{
printf("\n姓名\t学号\t\t年龄\t性别\t地址\t\t电话\t\t爱好\n");
printf("-------------------------------------------------------------------------------\n");
do
{
display(p);
p = p->next;
}
while(p != NULL);
}
printf ("\n");
}
//按学号查询学生信息
void query_by_num ()
{
int num;
struct student *p1;

printf("请输入学生的学号:");
scanf("%ld", &num);
if(head==NULL)
{
printf("无学生记录!\n");
return;
}
p1 = head;
while (num!=p1->num && p1->next!=NULL)
p1 = p1->next;
if (num == p1->num)
{
printf ("姓名\t学号\t\t年龄\t性别\t地址\t\t电话\t\t爱好\n");
printf ("-------------------------------------------------------------------------------\n");
display (p1);
}
else
printf ("没有该学生记录,请核对!");
}

//写入文件
void writeData ()
{
FILE* fp;//文件指针
struct student *p;

fp = fopen("1.txt", "w");
if (!fp)
{
printf("文件打开错误!");
return;
}

fprintf(fp,"%d\n", TOTAL_NUM);
for(p = head; p!= NULL; p= p->next)
{
fprintf(fp,"%s\t%ld\t%s\t%d\t%s\t%.0f\t%s\n", p->name, p->num, p->sex, p->age, p->address, p->tele_num, p->aihao);
}
fclose (fp);
}

void freeAll ()
{
struct student *p1, *p2;

p1 = p2=head;
while(p1)
{
p2=p1->next;
free (p1);
p1 = p2;
}
}
//读取文件
void readData ()
{
FILE* fp;//文件指针
struct student *p1, *p2;
fp = fopen("1.txt", "r");
if (!fp)
{
printf("文件打开错误!");
return;
}

fscanf(fp,"%d\n", &TOTAL_NUM);
head = p1 = p2 = (struct student *)malloc(LEN);
fscanf(fp,"%s\t%ld\t%s\t%d\t%s\t%lf\t%s\n", p1->name, &p1->num, p1->sex, &p1->age, p1->address, &p1->tele_num, p1->aihao);
while(!feof(fp))
{
p1 = (struct student *)malloc(LEN);
fscanf(fp,"%s\t%ld\t%s\t%d\t%s\t%lf\t%s\n", p1->name, &p1->num, p1->sex, &p1->age, p1->address, &p1->tele_num, p1->aihao);
p2->next = p1;
p2 = p1;
}
p2->next = NULL;
fclose(fp);
}
//删除学生信息
void del ()
{
struct student *p1, *p2;
long int num;

if (head == NULL)
{
printf("无学生记录!\n");
return;
}

printf("请输入您要删除的学生的学号:");
scanf("%ld", &num);
p1 = head;

while (num != p1->num && p1->next != NULL)
{
p2 = p1;
p1 = p1->next;
}
if(num == p1->num)
{
if(p1 == head)
head = p1->next;
else p2->next = p1->next;
free(p1);
TOTAL_NUM--;
}
else
printf("没有该学生记录,请核对!\n");
}
//修改学生信息
void change ()
{
struct student *p1, *p2;
long int num;
if (head == NULL)
{
printf ("无学生记录!\n");
return;
}
printf ("请输入您要修改的学生的学号:");
scanf ("%ld", &num);
p1 = head;
while (num != p1->num && p1->next != NULL)
{
p2 = p1;
p1 = p1->next;
}
if(num == p1->num)
devise (p1);
else
printf("没有该学生记录,请核对!\n");
}

void devise (struct student *p)
{
int choice;
choice = -1;
do
{
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("请输入您的选择:");
scanf("%d", &choice);

switch (choice)
{
case 0:
return;
case 1:
printf("请输入新姓名:");
scanf("%s", p->name);
break;
case 2:
printf("请输入新学号:");
scanf("%d", &p->num);
break;
case 3:
printf("请输入新性别:");
scanf("%s", p->sex);
break;
case 4:
printf("请输入新年龄:");
scanf("%s", &p->age);
break;
case 5:
printf("请输入新地址:");
scanf("%s", p->address);
break;
case 6:
printf("请输入新电话:");
scanf("%lf", &p->tele_num);
break;
case 7:
printf("请输入新爱好:");
scanf("%s", p->aihao);
break;
default:
printf("\n无效选项!");
break;
}
}
while(choice != 0);
}

热心网友 时间:2022-06-24 16:06

不是我说你,象你这种问题,求了一个完整的程序,本来就不好弄,人家费力给你解决,还不给高分,看了就没兴趣答了,本来有个年前用MFC做的数据库管理系统,偏不发,哼~~

热心网友 时间:2022-06-24 16:06

C语言
,学生信息管理系统 我有做好的
网上没有的
原创作品

采纳哦!

热心网友 时间:2022-06-24 16:07

稍微用了点c++(你给的分太低)
如下图所示:
studf.txt
操作日志文件:

热心网友 时间:2022-06-24 16:08

用个*数组,共用体。。。。。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
sony笔记本我无线网络开关无法开启 索尼电脑如何开启无线索尼笔记本无线网开关在哪 索尼电脑的无线开关在哪索尼笔记本电脑wifi开关在哪个位置 起床气严重的孩子怎么办 什么叫起床气 【维达纸巾】维达是哪个国家的?维达和洁柔哪个好?维达纸业怎么样_百 ... 维达集团是哪个国家的 买宾利车需要什么条件? 电梯里的b层和m层是什么意思 在家里应该养多少金鱼? 我男朋友老喜欢摸我胸部,我好难接受呀 为什么男生喜欢摸女朋友的胸部?? - 信息提示 黄粱梦镇的旅游景点 没有支付宝可以注册淘宝账号 已经有一个淘宝账号了,还没有支付宝账号,如何注册支付宝账号 315A电焊机工作时有多少千瓦。 315电焊机,380V,功率多少 在C#中如何实现图中的树形结构? 沙门氏菌 鸡肉 只有银行帐号,没有存折或卡,可以到柜台存钱吗 没有存折可以存钱吗 定期存折可以存钱吗 交医疗保险明明是交了大队上说没有交还是自己的叔伯哥哥,需不需要查监控? xps 样品要求 居民基本医疗保险去年没买,今年去大队买还要补去年的,国家给交每人500元也要自己交,谁知道是什么情 我在村大队上的医疗保险可以申请失业补助金吗? 农村医保是父母缴给大队的,我怎么在手机上查询大队是不是给缴了? 我的合作医疗2019年已交大队,大队今年才给办,医疗保险还可以报吗? 电信手机怎么查询流量? 农村大病医疗保险被大队给弄错了交了十几年该怎么办? C语言简单的学生信息管理系统 用C++编写一个学生信息管理系统 四年级下册第二单元看图写话的作文怎么写 四年级下册第四单元看图写话作文 800字 五年级下册看图写话作文之足球比赛三百字 小学四年级语文下册第八单元作文看图写话 四百字谢谢! 求正则表达式任意五位数字和姓名的匹配 EX表格里可以让姓名配对电话吗? 每天要做个表想把数字和姓名固定起来, 关于姓名笔画配对的一些知识 姓名笔画缘分配对 数字和文字在同一个单元格内,如何进行匹配? VLOOKUP匹配数字加名字的组合的问题 开店申请了腾讯地图怎么不显示出来店名 呆毛如何弄出来 梦见闺蜜开车带自己 这里出cos奈亚子,假发什么的都修好了但是头上的呆毛要怎么弄? 梦见闺蜜开车带着我速度很快 南小鸟假毛买的时候没拍自带呆毛的现在这个我想自己弄个呆毛要怎么办qwq 梦见骑车走夜路,开灯也看不见前方。 如果梦见我和闺蜜还有她男朋友骑自行车在自己家路上转悠是什么寓意?
  • 焦点

最新推荐

猜你喜欢

热门推荐