c program

开源PACS系统Orthanc(DICOM服务器)配置 PACS(Picture Archiving and Communication System)是医学影像的数字化存储、检索和传输系统,用于管理和存储医学图像和相关信息,如放射学、核医学、超声、病理学等各种医学影像。PACS系统通过数字化技术取代了传统的胶片方式,使医疗机构能够更高效地存储、传输和查看医学图像,从而提高了医疗图像的管理和工作流程。 阅读详情

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MaxRec 10
typedef struct
{
 char num[4];
 int offset;
} IdxType;

typedef struct
{
 char num[4];
 char name[8];
 char sex;
 int age;
 char address[12];
 char department[12];
 char speciality[12];
}StudType;

void GetMainFile()
{
 int n = 2;
 FILE *mfile;
 StudType st[MaxRec] = {{"106", "WangHua", 'f', 23, "new street", "science", "Computer"},
       {"123", "HanLie", 'M', 24, "Old Street", "Culture", "China"}};
 if((mfile = fopen("main.file", "wb")) == NULL)
 {
  printf("  >>CAN'T OPEN MAIN DATA FILE!/n");
  exit(0);
 }

 fwrite(st, sizeof(StudType), n, mfile);
 fclose(mfile);
}

void DispMainFile()
{
 int i, n, len;
 FILE *mfile;
 StudType st;
 if((mfile = fopen("main.file", "rb")) == NULL)
 {
  printf("    >>CAN'T OPEN MAIN DATA FILE!/n");
  exit(0);
 }

 fseek(mfile, 0, SEEK_END);
 len = ftell(mfile);
 n = len / sizeof(StudType);
 rewind(mfile);
 printf("    >>MAIN DATA FILE:/n");
 for(i = 0; i < n; i++)
 {
  fread(&st, sizeof(StudType), 1, mfile);
  printf("    >>%-3d%-5s%-8s%c%3d %-13s%-13s%-13s/n",i + 1, st.num, st.name, st.sex, st.age, st.address,
    st.department, st.speciality);
 }
 
 fclose(mfile);
}

void DispIdxFile()
{
 int i, n, len;
 FILE *idxfile;
 IdxType idx;
 if((idxfile = fopen("index.file", "rb")) == NULL)
 {
  printf(" >>CAN'T OPEN INDEX FILE!/n");
  exit(0);
 }
 
 fseek(idxfile, 0, SEEK_END);
 len = ftell(idxfile);
 n = len / sizeof(IdxType);
 rewind(idxfile);
 printf(" >>INDEX FILE:/n");
   for(i = 0; i < n; i++)
 { 
  fread(&idx, sizeof(IdxType), 1, idxfile);
  printf(" >>%8s%8d/n", idx.num, idx.offset);
 }
 
 fclose(idxfile);
}

void BubbleSort(IdxType idx[], int n)
{
 int i, j;
 IdxType tmp;
 int exchange;
 for(i = 0; i < n - 1; i++)
 {
  exchange = 0;
  for(j = n - 2; j >= i; j--)
  {
   if(strcmp(idx[j + 1].num, idx[j].num) < 0)
   {
    tmp = idx[j + 1];
    idx[j + 1] = idx[j];
    idx[j] = tmp;
    exchange = 1;
   }
   if(exchange == 0)
    return;
  }
 }
}

void BuildIdxFile()
{
 FILE *mfile, *idxfile;
 IdxType idx[MaxRec];
 StudType st;
 int i, len, n, j = 0;

 if((mfile = fopen("main.file", "rb")) == NULL)
 {
  printf(" >>CAN'T OPNE MAIN DATA FILE!/n");
  exit(0);
 }
 if((idxfile = fopen("index.file", "wb")) == NULL)
 {
  printf(" >>CAN'T FOUND INDEX DATA FILE!/n");
  exit(0);
 }
 fseek(mfile, 0, SEEK_END);
 len = ftell(mfile);
 n = len / sizeof(StudType);
 rewind(mfile);
 for(i = 0; i < n; i++)
 {
  fread(&st, sizeof(StudType), 1, mfile);
  strcpy(idx[j].num, st.num);
  idx[j].offset = i + 1;
  j++;
 }
 
 fclose(mfile);
 BubbleSort(idx, n);
 fwrite(idx, sizeof(IdxType), n, idxfile);
 fclose(idxfile);
}
 
void ReadIdxFile(IdxType idx[], int *n)
{
 int len;
 FILE *idxfile;
 if((idxfile = fopen("index.file", "rb")) == NULL)
 {
  printf(" >>CAN'T OPEN INDEX FILE!/n");
  exit(0);
 }
 fseek(idxfile, 0, SEEK_END);
 len = ftell(idxfile);
 rewind(idxfile);
 *n = len / sizeof(IdxType);
 fread(idx, sizeof(IdxType), *n, idxfile);
 fclose(idxfile);
}

int BinSearch(IdxType idx[], int n, char no[])
{
 int mid, low, high, comp;
 low = 0;
 high = n - 1;
 while(low <= high)
 {
  mid = (low + high) / 2;
  comp = strcmp(idx[mid].num, no);
  if(comp > 0)
   high = mid - 1;
  else if(comp < 0)
   low = mid + 1;
  else
   return idx[mid].offset;
 }
 return -1;
}

void Find()
{
 FILE *mfile;
 IdxType idx[MaxRec];
 StudType st;
 char no[4];
 int i, n;
 if((mfile = fopen("main.file", "rb+")) == NULL)
 {
  printf(" >>CAN'T OPEN MAIN DATA FILE!/n");
  exit(0);
 } 
 ReadIdxFile(idx, &n);
 printf(" >>INPUT NUMBER: ");
 scanf("%s", no);
 rewind(mfile);
 i = BinSearch(idx, n, no);
 if(i == -1)
 {
  printf(" >>NOT EXIST STUDENT OF NUMBER!/n");
  exit(0);
 }
 fseek(mfile, (i - 1)*sizeof(StudType), SEEK_SET);
 fread(&st, sizeof(StudType), 1, mfile);
 fseek(mfile, (i - 1) * sizeof(StudType), SEEK_SET);
 printf(" >>%-3d%-5s%-8s%c%3d%-13s%-13s%-13s/n", i, st.num, st.name, st.sex,
  st.age, st.address, st.department, st.speciality);
 fclose(mfile);
}

void Update()
{
 FILE *mfile;
 IdxType idx[MaxRec];
 StudType st;
 char no[4], newaddr[30];
 int i, n;
 if((mfile = fopen("main.file", "rb+")) == NULL)
 {
  printf(" >>CAN'T OPEN MAIN DATA FILE!/n");
  exit(0);
 }
 
 ReadIdxFile(idx, &n);
 printf(" >>INPUT NUMBER:");
 scanf("%s", no);
 rewind(mfile);
 i = BinSearch(idx, n, no);
 if(i == -1)
 {
  printf(" >>NOT EXIST THE STUDENT!/n");
  exit(0);
 }
  
 fseek(mfile, (i - 1) * sizeof(StudType), SEEK_SET);
 fread(&st, sizeof(StudType), 1, mfile);
 printf(" >>NEW ADDRESS:");
 scanf("%s", newaddr);
 strcpy(st.address, newaddr);
 fseek(mfile, (i - 1) * sizeof(StudType), SEEK_SET);
 fseek(mfile, -(long)sizeof(StudType), SEEK_CUR);
 fwrite(&st, sizeof(StudType), 1, mfile);
 printf(" >>%-3d%-5s%-8s%c%3d%-13s%-13s%-13s/n", i, st.num, st.name,
  st.sex, st.age, st.address, st.department, st.speciality);
 fclose(mfile);
}
int main(int argc, char **argv)
{
 int sel = 1;
 while(sel != 0)
 {
  printf("1:NEW 2:DISPLAY MAIN FILE 3:DISPLAY INDEX FILE 4:SELECT 5:CHANGE ADDRESS 0:QUIT/n");
  scanf("%d", &sel);
  switch(sel)
  {
   case 1:
    GetMainFile(); 
    BuildIdxFile();
    break;
   case 2:
    DispMainFile();
    break;
   case 3:
    DispIdxFile();
    break;
   case 4:
    Find();
    break;
   case 5:
    Update();
    break;
  }
 }
 return 0;
}

【TC3xx芯片】TC3xx DMA模块详解 TC3xx DMA模块详解 阅读详情

相关推荐

Replay音频转换时samplerate缺失的解决方案指南

Replay音频转换时提示"No module named 'samplerate' This error is lazily reported, having originally occured in File"的解决方案

weixin_47445543的博客 2130

解决报错:‘C:/Program‘ 不是内部或外部命令,也不是可运行的程序

Android Studio使用的JDK版本(11),和电脑中安装的JDK版本(1.8)不一致。

tianhongfan10106的专栏 5469

Vue路由守卫实战:利用token实现跨项目免登录跳转(最新版)

本文详细介绍了如何利用Vue路由守卫和Token验证实现跨项目免登录跳转方案。通过核心架构设计、路由守卫精细化控制及Token交换安全实践,有效解决了多系统跳转中的认证问题,提升用户体验和系统连贯性。

n7o8p的博客 138

解决‘C:\Program‘ 不是内部或外部命令,也不是可运行的程序或批处理文件

解决'C:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件   发生 解决'C:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。 的原因,是因为在使用绝对路径运行程序时,如果程序在目录 C:\Program Files 或其子目录下,由于此路径带空格,Windows 命令行会误将第一个空格前的 C:\Program 当做用户输入的一个完整的程序路径,因此发生此报错。   解决办法有很多,这里只给出其中一种。 使用英文双引号来标识此路径。如果原来希望输入的命令为:

暗诺星刻的博客 3万+

Python-OpenCV及cv2,numpy库最新安装教程[最全步骤]

安装教程目录前言OpenCV-Python安装教程报错解决cv2安装numpy安装opencv安装(附加)总结 前言 首先,我知道一些看到我的Blog的人已经在网上找了很多歪路子,现在已经火冒三丈了(我也是这样过来的hhhh),那么现在,深呼吸,跟着我的教程,不要着急,每一步都要读一遍。完整安装过程需要1个小时左右(仅供参考,本人第一次安装python花了一天(确信)) OpenCV-Python...

qq_45425286的博客 7431

模型检测--工具KeYmaera

论文:KeYmaera: A Hybrid Theorem Prover for Hybrid Systems 作者:Andre Platzer and JanKeYmaera摘要1 介绍2用于混合系统的KeYmaera验证工具3混合系统,混合自动机和混合程序 摘要 KeYmaera是一种用于混合系统的混合验证工具,它结合了演绎,实数代数和计算机代数证明者技术。它是自然的自动和交互式定理证明器 混合系统的规范和验证逻辑。 KeYmaera支持差分动态逻辑,它是用于混合程序的实值一阶动态逻辑,是混合自动机的程

ziigea的博客 1077

'C:\Program' 不是内部或外部命令,也不是可运行的程序问题的解决方案

在cmd中想进入C:\Program Files (x86)\PICT路径,但是一直提示'C:\Program' 不是内部或外部命令,也不是可运行的程序解决方案。网上查了一下原因是Program Files中间有空格,导致了该路径被作为一条命令被执行了,解决方法是给Program Files加上双引号,或者是改成program~1。我都试过了,但是还是不好使。灵机一动,干脆直接用cd,然后把整个路...

yoga0617的博客 7万+

基于jeecgboot3.9.0的项目管理——项目工作台(二)

基于jeecgboot3.9.0的项目管理——项目工作台(二)

宁波阿成的博客 206

‘C:\Program‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

最近在学java,昨天遇到一个很吊诡的问题,搞了我一个晚上都没解决,现在算是解决了。正如标题所示,这是我在vscode里运行java程序,企图调出外部控制台时,在终端显示的问题。我上网一通搜索,感觉跟我的问题八杆子打不到一起,于是我只能自己想着怎么解决,虽然花了一个晚上,不过结果终究是好的。

秋窗的博客 3991

128、点云配准与ICP:经典配准算法与深度学习配准

上周调试一台双臂协作机器人,左手持结构光相机扫描桌面上的随机堆叠工件,右手准备执行抓取。问题出在“对齐”这一步——相机扫描得到的点云和CAD模型点云之间差了大约15度的旋转,导致抓取姿态计算出来直接怼到桌面上。我第一反应是“ICP跑一下不就行了”,结果跑了三分钟,误差纹丝不动,甚至越迭代越发散。后来查了日志才发现,初始位姿给得太离谱,ICP直接掉进了局部最优。这个场景太典型了——很多人以为点云配准就是调个ICP库函数,实际工程里坑比想象中多得多。今天这篇笔记,咱们把点云配准这件事从头捋一遍。

sundong_81的博客 42

【硬刚Hadoop】HADOOP MAPREDUCE(1):概述

本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的Hadoop部分补充。 1 MapReduce定义 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 2MapReduce优缺点 2.1 优点 1)MapReduce易于编程 它简单的实现一些接口,就可以完成一个分布式程序..

微信搜:import_bigdata,大数据领域硬核原创作者 462

C HOW TO PROGRAM!中

最近在看>...

gui597651737的专栏 553

卸载python弹框报错:Could not set file security for file ‘D:\Config.Msi\abd5.rbf‘. Error: 5. Verify...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 6487

探索C程序设计的艺术:dhengyi/c-program-design

探索C程序设计的艺术:dhengyi/c-program-design 去发现同类优质开源项目:https://gitcode.com/ 在这篇文章中,我们将深入探讨一个GitHub上的开源项目——。该项目是一个全面的C语言编程教程,旨在帮助新手和经验丰富的程序员更好地理解和掌握C语言的魅力。 项目简介 dhengyi/c-program-design 是一个精心编排的学习资源集合,它涵盖了C语言...

gitblog_00042的博客 355

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

This is a C program.

本题要求编写程序,输出一个短句“This is a C program.”

shujungege的博客 212

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

攻防世界 Misc高手进阶区 5分题 A-Weird-C-Program

继续ctf的旅程,攻防世界Misc高手进阶区的5分题,本篇是A-Weird-C-Program的writeup

闵行小鱼塘 1305

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C语言-要求在屏幕上输出“This is a C program.”。

#include<stdio.h> int main() { printf("This is a C program.\n"); return 0; }

程序员本员 6641

C盘中的Program Files和Program Files(x86)

64位系统就有这两个文件夹,(系统默认的应用程序安装位置) Program Files 放64位应用程序 Program Files(x86) 放32位应用程序 不要删除

weixin_44416759的博客 5707

C盘里的program files 这个里面有好多命名乱码的

如果 C 盘的。

qq_56463139的博客 2538

VSCode运行C语言,调试时出现launch:program …… does not exist故障的解决方法

主要就是创建launch.jason文件并添加配置,但我和参考文献中的内容又不一样,对参考文献的内容做了一定修改。miDebuggerPath也作了修改,自己系统上原来的 " to/path/gdb "不行,借鉴了参考文献的路径格式。program 有所修改,一开始全盘借鉴参考文献,不成功,然后自己删去了中间一些,就成功了;cwd 借用了参考文献中的内容,我自己电脑上原来的{ "$FileDirname" }不行;其余未改动,然后执行“gdb启动”,运行成功了。

FriendofTime的博客 8365

c 语言 launch.json 的 “program“ 如何设置

在 C 语言项目中,如果你正在使用 Visual Studio Code (VS Code) 并希望通过其内置的调试功能来调试你的 C 程序,你需要配置。文件中定义)来在调试之前构建你的程序。通常,你需要配置一个任务来编译你的 C 代码并生成可执行文件。)位于你的工作区(workspace)的根目录下。你需要根据你的项目设置来修改这个路径。命令来生成一个模板,并根据你的编译器和构建系统来修改它。首先,你需要安装一个支持 C 语言调试的扩展,比如。,这表示你的可执行文件(在这个例子中是。

xie__jin__cheng的博客 909

移动vista系统中的"C:\Program Files"文件夹

最近找了个iso的vista装上玩,可怜原本为xp/2003准备的c盘只有10g大小,又不放心那些调整分区大小的工具,可怜的系统分区装上之后就只剩3g空间了。后来又要装vs.net 2005,这个家伙居然只能装在"C:\Program Files"目录下,可如果装在那的话,硬盘空间就彻底不够了…… 后来在newsoftware@smth上听feuvan说了一个junction的工具可以...

LXM13579929299的博客 263

C语言编译过程中出现形如 error:stray‘\274‘in program 的报错

C语言编译过程中出现形如 error:stray’\274’in program 的报错,一般情况下,我们应该考虑到以下几点: 编写的程序里使用的关键字或变量名不规范而导致错误; 编译器在编译源代码的过程中遇到了不能识别的非法字符,这一个值不在合法的英文字符(0~127)范围内,一般是误输入造成。 既然找到了问题出现的原因,那么我们就需要想办法解决了,接下来我们应该根据编译器所提示的错误来找到...

weixin_44596487的博客 2万+

c语言program,c_program_1C语言

《c_program_1C语言》由会员分享,可在线阅读,更多相关《c_program_1C语言(32页珍藏版)》请在人人文库网上搜索。1、CS61CAnatomy of I/O Devices: Networks Lecture 14,March 5, 1999 Dave Patterson (http.cs.berkeley.edu/patterson) www-inst.eecs.berkel...

weixin_35714577的博客 707

C Program

从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支结构、循环结构。 这三种基本结构可以组成所有的各种复杂程序。 C语言有九种控制语句。 可分成以下三类: (1) 条件判断语句 if语句,switch语句 (2) 循环执行语句 do while语句,while语句,for语句 (3) 转向语句 break语句,goto语句,continu...

weixin_30325793的博客 173

C Program Compilation Process

refer to for more details: https://medium.com/@earthtojhuang/gcc-main-c-9f6ee2e6894b https://www.geeksforgeeks.org/compiling-a-c-program-behind-the-scenes/

243
上一篇: 二分插入排序 和 二分检索
下一篇: 在fedora8中安装bochs及实例程序。
LiYang2087
博客等级 码龄19年 1粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值