华中科技大学实验:用C语言实现飞机售票系统

版权申诉
0 下载量 43 浏览量 更新于2024-10-22 收藏 725B ZIP 举报
资源摘要信息: "华中科技大学操作系统实验之飞机售票模拟系统的C语言实现" 根据提供的文件信息,我们可以推断出以下知识点: 1. 实验项目背景: 本实验项目背景为华中科技大学的操作系统课程,旨在通过实际编程练习加深学生对操作系统相关概念的理解和应用。 2. 飞机售票模拟系统: 飞机售票模拟系统是一个模拟现实世界中购买飞机票过程的软件系统。这类系统的目的是为了让学生更好地理解数据结构、算法以及并发控制等操作系统中的核心概念。 3. C语言实现: C语言是一种广泛使用的编程语言,特别适合系统编程和对硬件底层的控制。在这个项目中选择使用C语言实现,能够帮助学生深入理解操作系统的内存管理、进程调度、同步机制等原理。 4. 关键知识点: - 数据结构:在机票预订系统中,合理地组织和管理数据是非常重要的。例如,需要有效地存储航班信息、座位信息以及用户信息等。 - 算法:算法部分包括对航班信息的快速检索、对座位的动态分配与管理等。 - 并发控制:在多用户同时操作的系统中,需要实现对共享资源的有效访问控制,以避免出现数据不一致等问题。在C语言中,这通常涉及到使用互斥锁(mutexes)、信号量(semaphores)等同步机制。 - 内存管理:涉及动态内存分配和回收,如使用malloc和free函数动态创建和销毁数据结构。 - 进程调度:如果系统需要支持多任务处理,可能需要设计进程调度算法来协调多个任务的执行。 - 输入输出(I/O)操作:对于售票系统来说,处理用户输入和输出是非常重要的一部分,需要高效且友好的用户交互界面。 5. 具体实现: - 文件名“Sell_Ticket.c”表明源代码文件名,说明整个系统是通过编写C语言代码实现的。 - 在代码中可能包含了多个函数,例如初始化系统、显示航班信息、预订机票、取消预订、支付处理、用户验证等。 - 可能还需要设计用户界面,方便用户进行操作。 6. 学习目标: - 通过该项目,学生可以学习如何将理论知识应用到实际的软件开发中。 - 能够加深对操作系统基本概念的理解,如进程管理、内存管理、文件系统等。 - 可以提升解决问题的能力,例如如何在有限的座位资源下实现公平高效的售票机制。 - 可以提高编程能力,尤其是在C语言的熟练运用上。 通过这个实验项目,学生不仅能够掌握操作系统的基本概念和原理,还能够提升自己的编程实践能力和软件工程能力。这对于未来无论是继续深造还是步入IT行业工作,都是极其宝贵的经验积累。
2023-05-31 上传

import tushare as ts import datetime # 设置 token,用于认证 ts.set_token('530fbc2b682d65696dbeec010a893f70d6953fbb6842151003c3e12f') # 初始化 tushare pro = ts.pro_api() df = pro.daily(fields = 'ts_code,trade_date,open,close',start_date='20180701', end_date='20180718') def get_stock_poll(df): stock_pool=[] for code in df['ts_code'].unique(): temp_df = df[df['ts_code'] == code ] for i in range(len(temp_df)-3): if (temp_df.iloc[i + 3]['close'] > temp_df.iloc[i + 2]['close']) and \ (temp_df.iloc[i + 2]['close'] > temp_df.iloc[i + 2]['open']) and \ (temp_df.iloc[i + 1]['close'] > temp_df.iloc[i + 1]['open']) and \ (temp_df.iloc[i]['close'] > temp_df.iloc[i]['open'])and \ (temp_df.iloc[i + 3]['close'] > temp_df.iloc[i + 2]['close'])and \ (temp_df.iloc[i + 2]['close'] > temp_df.iloc[i + 1]['close']) and\ (temp_df.iloc[i + 1]['close'] > temp_df.iloc[i]['close']): stock_pool.append(code) break return stock_pool def buy_stock(stock_pool,df): buy_list = [] for code in stock_pool: temp_df = df[df['ts_code']==code] for i in range(len(temp_df-2)): if(temp_df.iloc[i + 2]['close'] < temp_df.iloc[i + 2]['open']) and \ (temp_df.iloc[i + 1]['close'] < temp_df.iloc[i + 1]['open']) and \ (temp_df.iloc[i]['close'] < temp_df.iloc[i]['open'])and \ (temp_df.iloc[i + 2]['close'] < temp_df.iloc[i + 1]['close'])and \ (temp_df.iloc[i + 1]['close'] < temp_df.iloc[i]['close']): buy_list.append(code) break return buy_list def sell_stock(buy_stock,df): sell_list = [] for stock in buy_list: buy_date=dateime.datetime.strptime(stock[1],"%Y-%m-%d") current_date = datetime.datetime.today() days_held = (current_date - buy_date).days if days_held >=3: sell_list.append(stock[0]) print("sell list:",sell_list)要求上述代码在聚宽上运行

2023-06-01 上传