2016.5.10 2

#include"stdio.h"     张鑫源   150809109

#include"stdlib.h"

#include"string.h"

#include"conio.h"

#define PAGE 3

#define MAX 1000

#define N 5

int k=0;

/*结构体类型*/

typedef struct

{   int num;/*宿舍门牌号*/

char name[20];/*姓名*/

char sex[5];/*性别*/

int age;/**/

char studentclass[20];/*所属班级*/

int score;/*宿舍人数*/

}STUDENTS;

int read_file(STUDENTS stu[])

{FILE *fp;

int i=0;

if((fp=fopen("stu.txt","rt"))==NULL)

{printf("\n\n*****库存文件不存在!请创");

return 0;

}

while(feof(fp)!=1)

{

fread(&stu[i],sizeof(STUDENTS),1,fp);

if(stu[i].num==0)

break;

else

i++;

}

fclose(fp);

return i;

}

void save_file(STUDENTS stu[],int sum)

{FILE*fp;

int i;

if((fp=fopen("stu.txt","wb"))==NULL)

{printf("写文件错误!\n");

return;

}

for(i=0;i<sum;i++)

if(fwrite(&stu[i],sizeof(STUDENTS),1,fp)!=1)

printf("写文件错误!\n");

fclose(fp);

}

/*创建学生信息*/

int input(STUDENTS stu[])

{  int i,x;

for(i=0;i<1000;i++)

{

system("cls");

printf("\n\n                 录入学生信息  (最多%d个)\n",MAX);

printf("               ----------------------------\n");

printf("\n                     第%d个学生",k+1);

printf("\n 请输入学生的宿舍门牌号:");

scanf("%d",&stu[k].num);

printf("\n 请输入学生的姓名:");

scanf("%s",stu[k].name);

printf("\n 请输入学生的性别:");

scanf("%s",stu[k].sex);

printf("\n 请输入学生的年龄:");

scanf("%d",&stu[k].age);

printf("\n 请输入学生的所属班级:");

scanf("%s",stu[k].studentclass);

printf("\n 请输入学生的宿舍人数:");

scanf("%d",&stu[k++].score);

printf("\n 请按1键返回菜单或按0键继续创建");

scanf("%d",&x);

if(x)

break;

}

return k;

}

/*删除学生信息*/

void deletel(STUDENTS stu[])

{ system("cls");

char Stuname2[20];

int i,j;

printf("请输入学生姓名:");

scanf("%s",Stuname2);

printf("\n");

for(i=0;i<k;i++)

if(strcmp(stu[i].name,Stuname2)==0)

for(j=0;j<20;j++)

stu[i].name[j]=stu[i+1].name[j];

k--;

printf("删除成功\n");

printf("按任意键加回车返回主菜单!");

scanf("%d",&i);

getchar();

}

/*打印学生信息*/

void output(STUDENTS stu[])

{  system("cls");

int i;

for(i=0;i<k;i++)

printf("宿舍门牌号:%d,姓名:%s,性别:%s,年龄:%d,所属班级:%s,宿舍人数: %d\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].age,stu[i].studentclass,stu[i].score);

printf("按任意键加回车返回主菜单!");

scanf("%d",&i);

getchar();

}

/*查询学生信息*/

void inquire(STUDENTS stu[])

{ int i;

int num;

system("cls");

printf("     \n\n请输入您要查找的学生的宿舍门牌号");

scanf("%d",&num);

for(i=0;i<k;i++)

if(num==stu[i].num)

printf("\n\n\n宿舍门牌号:%d,姓名:%s,性别:%s,年龄:%d,所属班级:%s,宿舍人数: %d\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].age,stu[i].studentclass,stu[i].score);

printf("按任意键加回车返回主菜单!");

scanf("%d",&i);

getchar();

}

/*修改学生信息*/

void change(STUDENTS stu[])

{  int num,i,choice;

system("cls");

printf("\n\n\n      请输入您要修改的学生的宿舍门牌号");

scanf("%d",&num);

for(i=0;i<k;i++)

{ if(num==stu[i].num)

printf("\n宿舍门牌号:%d,姓名:%s,性别:%s,年龄:%d,所属班级:%s,宿舍人数: %d\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].age,stu[i].studentclass,stu[i].score);

printf("\n\n\n     ********请输入您想要修改的数据********\n\n");

printf("                1. 学生宿舍号\n\n");

printf("                2. 姓名\n\n");

printf("                3. 性别\n\n");

printf("                4. 年龄\n\n");

printf("                5. 所属班级\n\n");

printf("                6. 宿舍人数\n\n");

printf("                 请选择(1-6):");

scanf("%d",&choice);

switch(choice)

{case 1:{

printf("\n   请输入你改的新学生宿舍号");

scanf("%d",&stu[i].num);

break;

}

case 2:{

printf("\n   请输入你改的新姓名");

scanf("%s",stu[i].name);

break;

}

case 3:{

printf("\n   请输入你改的新性别");

scanf("%s",stu[i].sex);

break;

}

case 4:{

printf("\n   请输入你改的新年龄");

scanf("%d",&stu[i].age);

break;

}

case 5:{

printf("\n   请输入你改的新所属班级");

scanf("%s",stu[i].studentclass);

break;

}

case 6:{

printf("\n   请输入你改的新宿舍人数");

scanf("%d",&stu[i].score);

break;

}

}

printf("宿舍门牌号:%d,姓名:%s,性别:%s,年龄:%d,班级:%s,宿舍人数: %d\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].age,stu[i].studentclass,stu[i].score);

printf("按任意键加回车返回主菜单!");

scanf("%d",&i);

break;

}

}

/*学生成绩信息排名*/

void sort(STUDENTS stu[])

{  int i,j,n=1,x;

system("cls");

int t;

for(i=0;i<k-1;i++)

for(j=i+1;j<k;j++)

if(stu[i].score<stu[j].score)

{ t=stu[i].score;

stu[i].score=stu[j].score;

stu[j].score=t;

t=stu[i].num;

stu[i].num=stu[j].num;

stu[j].num=t;

}

for(i=0;i<k;i++)

printf("排名    学号    成绩\n %d       %d       %d\n",n++,stu[i].num,stu[i].score);

printf("按任意键加回车返回主菜单!");

scanf("%d",&x);

getchar();

}

void pagedis()

{

printf(" \n\n\n                   **********************************\n");

printf("                   *                                *\n");

printf("                   *                                *\n");

printf("                   *                                *\n");

printf("                   *     欢迎进入学生宿舍信息管理系统   *\n");

printf("                   *                                *\n");

printf("                   *                                *\n");

printf("                   *                                *\n");

printf("                   **********************************\n");

}

void check()

{

char userName[5];/*用户名*/

char userPWD[5];/*密码*/

int i,sum;

system("color 4E");

for(i = 1; i < 4; i++)

{

/*用户名和密码均为abcde;*/

printf("   用户名和密码均为abcde\n\n");

printf("\n       请输入您的用户名:");

gets(userName);

printf("\n       请输入您的密码:");

gets(userPWD);

if ((strcmp(userName,"abcde")==0) && (strcmp(userPWD,"abcde")==0))/*验证用户名和密码*/

{

printf("用户名和密码正确,显示主菜单");

return;

}

else

{

if (i < 3)

{

printf("用户名或密码错误,提示用户重新输入");

printf("用户名或密码错误,请重新输入!");

}

else

{

printf("连续3次输错用户名或密码,退出系统。");

printf("您已连续3次将用户名或密码输错,系统将退出!");

exit(1);

}

}

}

}

void menu()

{

STUDENTS stu[20];

int choice,k,sum;

sum=read_file(stu);

if(sum==0)

{  printf("首先录入基本库存信息!按回车后进入*****\n");

getch();

sum=input(stu);

}

do

{  system("cls");

printf("\n\n\n               ********学生宿舍信息管理系统********\n\n");

printf("                      1. 创建学生信息\n\n");

printf("                      2. 打印学生信息\n\n");

printf("                      3. 查询学生信息\n\n");

printf("                      4. 修改学生信息\n\n");

printf("                      5. 删除学生信息\n\n");

printf("                      6. 学生成绩信息排名\n\n");

printf("                      0. 退出系统\n\n");

printf("                       请选择(0-6):");

scanf("%d",&choice);

switch(choice)

{

case 1: k=input(stu); break;/*创建学生信息*/

case 2: output( stu) ; break;/*打印学生信息*/

case 3: inquire(stu); break;/*查询学生信息*/

case 4: change(stu); break;/*修改学生信息*/

case 5: deletel(stu); break;/*删除学生信息*/

case 6: sort(stu); break;/*学生成绩信息排名*/

case 0: break;

}

}while(choice!=0);

save_file(stu,sum);

}

int main()

{

int i,sum;

pagedis();

check();

menu();

}

时间: 2024-10-01 11:01:00

2016.5.10 2的相关文章

【读书笔记】2016.12.10 《构建高性能Web站点》

本文地址 分享提纲: 1. 概述 2. 知识点 3. 待整理点 4. 参考文档 1. 概述 1.1)[该书信息] <构建高性能Web站点>: -- 百度百科 -- 本书目录: 第1章 绪论 1.1 等待的真相 1.2 瓶颈在哪里 1.3 增加带宽 1.4 减少网页中的HTTP请求 1.5 加快服务器脚本计算速度 1.6 使用动态内容缓存 1.7 使用数据缓存 1.8 将动态内容静态化 1.9 更换Web服务器软件 1.10 页面组件分离 1.11 合理部署服务器 1.12 使用负载均衡 1.1

武汉北大青鸟解读2016年10大IT热门岗位

武汉北大青鸟解读2016年10大IT热门岗位 2016年1月5日 13:37 北大青鸟 这是IT从业者的辉煌时代,IT行业的失业率正处在历史的低点,而且有的岗位——例如网络和安全工程师以及软件开发人员——甚至出现徘徊在1%的失业率.最新调查显示,81%的IT领导者表示很难找到IT人才.即使你不是安全专家也不是软件开发人员,依然也有大量的就业机会.下面武汉北大青鸟徐东校区为你介绍2016年10个热门的IT技能,这些技能是由在IT人力咨询公司Mondo,自由职业者和签约市场Upwork,以及IT教育

2016年10个最热门 IT 职业岗位

北京尚学堂提供 IT时代已经开启.下面就是2016年需求最高的这10项技术. 这是IT从业者的辉煌时代.IT行业的失业率正处在历史的低点,而且有的岗位——例如网络和安全工程师以及软件开发人员——甚至出现徘徊在1%的失业率.根据最近的TEKsystems调查,81%的IT领导者表示很难找到IT人才. 即使你不是安全专家也不是软件开发人员,依然也有大量的就业机会.下面我们要介绍2016年10个热门的IT技能,这些技能是由在IT人力咨询公司Mondo,自由职业者和签约市场Upwork,以及IT教育和培

2016年10月数据库流行度排行榜

DB-Engines Ranking发布了2016年10月最新数据库流行度排行: db趋势

Murano Weekly Meeting 2016.05.10

Meeting time: 2016.May.10 1:00~2:00 Chairperson:  Serg Melikyan, from Mirantis Meeting summary: 1. murano contributors rules Six usage rule: use it only when really necessary (for example if existing code will now work in Py3 at all. If it is a matte

海豚驾考2016年10月8日系统升级公告

海豚驾考2016年10月8日系统升级公告 功能概述: 1.学员报名支付成功后 2.相关人员登陆后台为学员指派一个教练(后面系统完善后,由系统自动指派) 3.在后台[教练列表页]可以查看所有教练各个阶段下的学员人数 4.教练在微信端个人中心页,进入[我的学员]列表页,可以查看各个阶段下的学员 5.教练根据学员的阶段,安排学员学习(包括准备资料.科目一.科目二.... 直到拿本) 6.教练可以在微信上给学员约车(以及取消预约).设置学员的进度 1.微信 - 教练端个人中心页升级(查看我的学员 ->

2016年10月10日--穷举、迭代、while循环

穷举 将所有可能性全部全部走一遍,使用IF筛选出满足的情况 练习: 1.单位给发了一张150元购物卡, 拿着到超市买三类洗化用品. 洗发水15元,香皂2元,牙刷5元. 求刚好花完150元,有多少种买法, 没种买法都是各买几样? int i = 0; int j = 0; for (int x = 0; x <= 10; x++) { for (int y = 0; y <= 30; y++) { for (int z = 0; z <= 75; z++) { j++; if (x * 1

2016.6.10 考试总结

汽艇(Boat.cpp/c/pas) [问题描述] 有 n 个人要去坐 1 汽艇,每个人单独坐汽艇的快乐程度是 Ci,每多一个人,他的快乐程度会减去 Di,请求出使快乐程度之和达到最大的方案.(假设汽艇的容量足够大). [输入格式] 输入文件共有 3 行: 第1 行是一个整数 n: 第2 行有n 个整数,依次表示每个人单独坐汽艇的快乐程度 Ci(1<=Ci<=10000): 第3 行有n 个整数,依次表示每多 1 人,每个人快乐程度的下降值 Di(1<=Di<=10). [输出格式

2016/1/10 实例 1,控制台 输入人数 2,控制台 输入对应人数的成绩 3,求成绩总和以及最大值 最小值 平均值

1 import java.util.Scanner; 2 3 4 public class KongZhitai { 5 6 7 public static void main(String[] args) { 8 // TODO 自动生成的方法存根 9 10 //第一步 输出 扫描 接收 人数 11 int number=0; //定义变量 12 System.out.println("请输入人数:"); 13 Scanner arr=new Scanner(System.in);

2016年10月27日--css样式表

CSS样式表 样式表分类 1.内联样式表 和html联合显示,控制精确,但是可重用性差,冗余多. !doctype html> <html> <head> <meta charset="UTF-8"> <title>css内嵌样式</title> </head> <body> <style type="text/css"> #div{width:100px;heig