GVKun编程网logo

CMSC 216 Project #3 Spring 2019

25

本文将带您了解关于CMSC216Project#3Spring2019的新内容,另外,我们还将为您提供关于2018mostunderpricedblockchainprojects?、AirtestP

本文将带您了解关于CMSC 216 Project #3 Spring 2019的新内容,另外,我们还将为您提供关于2018 most underpriced blockchain projects?、Airtest Project亮相UWA Day 2019、Cirru Project in 2015、CMPUT 291 (Fall 2018 LAB LEC): Mini-Project的实用信息。

本文目录一览:

CMSC 216 Project #3 Spring 2019

CMSC 216 Project #3 Spring 2019


CMSC 216 Project #3 Spring 2019
User Interface Due: Mon, Mar 11 / Thu, Mar 14, 2019, 11:30PM
1 Overview
1.1 user interface program
For this project you will write a text-based user interface to the document manager system you implemented
in project #2. In addition, you will add some extra functionality to your system. There are two deadlines
associated with the project. Those deadlines are:
Mon, Mar 11, 11:30PM - Your code must pass the first two public tests (public01, public02). That is the
only requirement for this deadline. We will not grade the code for style. This first part is worth .5% of
your course grade (NOT .5% of this project grade). Notice you can still submit late for this part.
Thu, Mar 14, 11:30PM - Final deadline for the project. Notice you can still submit late (as usual).
Remember that you need to satisfy the good faith attempt for every project in order to pass the class (see
syllabus). The good faith attempt information for this project (e.g., requirements and deadline) will be posted
on the class web page later on.
Make sure you read the class syllabus. Some students are not clear about the rules associated with this course.
2 Objectives
To practice text parsing and file I/O.
2.1 Obtain the project files
To obtain the project files copy the folder project3 available in the 216 public directory to your 216 directory.
Keep in mind that the Makefile and document.h files for this project are different from the ones used in
project2.
2.2 Fixing problems with your project #2 code
After the late deadline for project2 you will be able to see results for release/secret tests in the submit server. A
TA during office hours (and only during office hours) will be able to show you any test and why the test failed
(if that is the case). You are responsible for fixing your code before submitting this project. Keep in mind that
if you passed all the project2 tests that does not mean you don’t have bugs. In this project we will be testing
your document functions again so it is in your best interest to test your code thoroughly.
3 Specification
3.1 Document manager update
You need to add two functions to your document manager system. Remember to use the provided document.h
file (not the one from project #2).
1. int load_file(Document *doc, const char *filename) - This function is similar to load document,
except data will will be loaded from a file instead of using an array. By default a paragraph will be
added and any blank lines (line with only spaces as defined by isspace()) will mark the beginning of
a new paragraph. The function will fail and return FAILURE if doc is NULL, filename is NULL, or if
opening the file failed; otherwise the function will return SUCCESS. Notice no error message will be
generated if the file cannot be opened.
1
2. int save_document(Document *doc, const char *filename) - This function will print the paragraphs
associated with a document to the specified file (overwriting the file). Each paragraph will be separated
by a newline. The function will fail and return FAILURE if doc is NULL, filename is NULL, or the
file cannot be opened; otherwise the function will return SUCCESS. Notice no error message will be
generated if the file cannot be opened.
3.2 Method of operation
Your program will be in a file named user_interface.c. A user calls your program in one of two ways
(assuming the executable is named user interface):
user_interface
user_interface filename
The program should have zero or one arguments (in addition to the executable name) on the command line;
if there are more the program prints the following usage message to standard error, and exits with exit code
EX_USAGE 1
.
Usage: user_interface
Usage: user_interface <filename>
If there is no file specified when the program is started, the program should read its data from standard input.
The program will display a prompt (represented by >) after which commands will be entered. If a file is
named, however, the program reads its data from that file; in this case no prompt will be used.
In case of an error opening the file your program should print (to standard error) the message ”FILENAME
cannot be opened.” where FILENAME represents the file name. The program will then exit with the exit code
EX_OSERR.
Upon starting execution your program should initialize a single document with the name ”main document”,
and perform operations on that document as instructed by the commands the program reads.
Make sure you name the file with your program user interface.c. This program will include document.h (the
version provided for this project and not the one from project #2).
3.3 File format
3.3.1 Valid Lines
An input file (or input coming from standard input) contains multiple lines with commands, and the commands
are executed in the order they are encountered. No valid line can be more than 1024 characters (including
the newline character). A valid line takes one of three forms:
1. a comment, where the first non-whitespace character is a hash symbol (‘#’)
2. a command, where the line is composed of one or more strings of non-whitespace characters
3. a blank line, where the line contains 1 or more spaces (as defined by the isspace() function in ctype.h)
For example, the following file contains valid lines:
# creating a paragraph and inserting some lines
add_paragraph_after 0
add_line_after 1 0 *first line of the document
1This and the other exit codes beginning with EX mentioned here are all obtained by including <sysexits.h> in your C program
file.
2
add_line_after 1 1 *second line of the document
# let''s print it
print_document
quit
Valid commands must follow one of the formats specified in Section 3.4 below.
3.3.2 Invalid Lines/Commands
If your program encounters an invalid line it should print the message ”Invalid Command” to the standard
output. Make sure you print to the standard output and not to the standard error. An invalid line includes not
only an invalid command, but a command without the expected values. For example, the add paragraph after
command requires an integer. If the value provided is not an integer the command will be considered invalid.
Notice the program will not end when an invalid command is provided.
3.4 Commands
Unless output is associated with a command the successful execution of a command will not generate any con-
firmation message (similar to successful execution of commands in Unix). If a command cannot be succesfully
executed the message ”COMMAND NAME failed”, where COMMAND NAME represents the command,
should be printed to standard output (and not to the standard error).
Any number of spaces can appear between the different elements of a command, and before and after a
command. A blank line (as defined above) and a comment will be ignored (no processing). When a comment
or blank line is provided, and standard input is being used, a new prompt will be generated.
The quit and exit commands will end/terminate the command processor. The command processor will also
terminate when end of file is seen. The commands quit or exit need not be present in a file.
1. add_paragraph_after PARAGRAPH_NUMBER
This command will add a paragraph to the document. The ”Invalid Command” message will be generated
when:
a. PARAGRAPH NUMBER does not represent a number
b. PARAGRAPH NUMBER is a negative value
c. PARAGRAPH NUMBER is missing
d. Additional information is provided after the PARAGRAPH NUMBER
If the command cannot be successfully executed the message ”add paragraph after failed” will be generated.
2. add_line_after PARAGRAPH_NUMBER LINE_NUMBER * LINE
This command will add a line after the line with the specified line number. The line to add will appear
after the * character. The ”Invalid Command” message will be generated when:
a. PARAGRAPH NUMBER does not represent a number
b. PARAGRAPH NUMBER is a negative value or 0
c. PARAGRAPH NUMBER is missing
d. LINE NUMBER does not represent a number
e. LINE NUMBER is a negative value
f. LINE NUMBER is missing
g. * is missing
3
If the command cannot be successfully executed the message ”add line after failed” will be generated.
3. print_document
This command will print the document information (print document function output). The ”Invalid
Command” message will be generated if any data appears after print document.
4. quit
This command will exit the user interface. The ”Invalid Command” message will be generated when
any data appears after quit.
5. exit
This command will exit the user interface. The ”Invalid Command” message will be generated when
any data appears after exit.
6. append_line PARAGRAPH_NUMBER * LINE
This command will append a line to the specified paragraph. The line to add will appear after the *
character. The ”Invalid Command” message will be generated when:
a. PARAGRAPH NUMBER does not represent a number
b. PARAGRAPH NUMBER is a negative value or 0
c. PARAGRAPH NUMBER is missing
d. * is missing
If the command cannot be successfully executed the message ”append line failed” will be generated.
7. remove_line PARAGRAPH_NUMBER LINE_NUMBER
This command will remove the specified line from the paragraph. The ”Invalid Command” message
will be generated when:
a. PARAGRAPH NUMBER does not represent a number
b. PARAGRAPH NUMBER is a negative value or 0
c. PARAGRAPH NUMBER is missing
d. LINE NUMBER does not represent a number
e. LINE NUMBER is a negative value or 0
f. LINE NUMBER is missing
g. Any data appears after the line number
If the command cannot be successfully executed the message ”remove line failed” will be generated.
8. load_file FILENAME
This command will load the specified file into the current document. The ”Invalid Command” message
will be generated when:
a. FILENAME is missing
b. Any data appears after FILENAME
If the command cannot be successfully executed the message ”load file failed” will be generated.
9. replace_text "TARGET" "REPLACEMENT"
This command will replace the string ”TARGET” with ”REPLACEMENT”. The ”Invalid Command”
message will be generated when:
a. Both ”TARGET” and ”REPLACEMENT” are missing
4
b. Only ”TARGET” is provided
For this command you can assume that if ”TARGET” and ”REPLACEMENT” are present there is no
additional data after ”REPLACEMENT”.
If the command cannot be successfully executed the message ”replace text failed” will be generated.
10. highlight_text "TARGET"
This command will highlight the string ”TARGET”. The ”Invalid Command” message will be generated
when ”TARGET” is missing.
For this command you can assume that if ”TARGET” is present there is no additional data after it. Notice
no fail message is associated with this command; either the text was highlighted or not.
11. remove_text "TARGET"
This command will remove the string ”TARGET”. The ”Invalid Command” message will be generated
when ”TARGET” is missing.
For this command you can assume that if ”TARGET” is present there is no additional data after it. Notice
no fail message is associated with this command; either a deletion took place or not.
12. save_document FILENAME
This command will save the curent document to the specified file. The ”Invalid Command” message
will be generated when:
a. FILENAME is missing.
b. Any data appears after the filename.
If the command cannot be successfully executed the message ”save document failed” will be generated.
13. reset_document
This command will reset the curent document. The ”Invalid Command” message will be generated
when any data appears after reset document. Notice no fail message will be associated with reset document.
3.5 Important Points and Hints
1. Data should only be allocated statically. You may not use malloc() etc.
2. Do not use perror to generate error messages; use fprintf and stderr instead.
3. IMPORTANT: You may not use memset, strtok, strtok r, memcpy in this project.
4. IMPORTANT. You may not use regular expressions for this project; if you do you will lose at least 30
points. Regular expressions can be used in the format string of a scanf statement in order to recognize
string patterns. The following are characters typically associated with regular expressions:
[,],*,^,-,$,?
See your lab TA or instructor if you have doubts as to what represents a regular expression.
5. Do not include .c files using #include.
6. You can assume a filename will not exceed 80 characters.
7. If you remove a line that line should not be printed (no blank line for it).
8. If you remove all the lines from a paragraph, the paragraph will not be removed (paragraph count will
stay the same).
5
4 Grading Criteria
Your project grade will be determined with the following weights:
Results of public tests 20%
Results of release tests 45%
Results of secret tests 25%
Code style grading 10%
4.1 Style grading
For this project, your code is expected to conform to the following style guidelines:
Your code must have a comment at the beginning with your name, university ID number, and UMD
Directory ID (i.e., your username on Grace).
Do not use global variables.
Feel free to use helper functions for this project; just make sure to define them as static.
Follow the C style guidelines available at:
http://www.cs.umd.edu/~nelson/classes/resources/cstyleguide/
5 Submission
You can submit your project by executing in your project directory the submit command.
6 Academic Integrity
Please see the syllabus for project rules and academic integrity information. All programming assignments in
this course are to be written individually (unless explicitly indicated otherwise in a written project handout).
Cooperation between students is a violation of the Code of Academic Integrity.

因为专业,所以值得信赖。如有需要,请加 QQ99515681 或邮箱:99515681@qq.com 

微信:codinghelp

2018 most underpriced blockchain projects?

2018 most underpriced blockchain projects?

There are many reasons why the market has fallen in recent weeks. Some of these reasons include the US Securities and Exchange Commission’s decision to issue subpoenas to several blockchain projects, the Mt. Gox Foundation, Google and Facebook announcing a total ban on encrypted advertising, and the US Congress’ hearing on crypto supervision.

However, there are still some projects that can attract the attention of some investors. The following is a list of these best projects.

Viberate(VIB

Viberate is a platform that integrates the entire live music ecosystem. Currently, Viberate''s role is live music "Internet Movie Database", which ranks singers based on their popularity on the Internet. This database is created and managed by the Viberate user community. Viberate’s ultimate goal is to become the world’s largest artist brokerage platform and to subvert the music industry we all know. The four elements of Viberate''s database, its community, its ability to integrate resources, and its market capabilities make its services unique and innovative. The Viberate platform allows artists and brokers to search for program resources through the platform. The Viberate platform hopes that the directness and decentralization of blockchain technology will be the highlight of the centralization of the music industry. The development of the entertainment industry has always been better with the improvement of people’s living standards.

Cpchain(CPC

Cpchain is a new type of decentralized infrastructure that has a profound effect on building IoT data networks using distributed storage, blockchain technologies, and so on. CPChain will solve the problems of the current Internet of Things system. To better develop the system, a virtual token CPChain (CPC) was also created. CPChain intends to combine distributed storage, cryptographic computing, and blockchain technologies to build the basic data platform for the IoT system and provide a full-process solution for data collection, storage, sharing, and application.

MobileGo(MGO

Mobile games are becoming more and more popular. The mobile game industry still has great potential to tap. At present, this is an excellent opportunity to promote and develop new technologies. In this process, the blockchain will play an important role. It will connect players from all over the world in a decentralized way. MobileGo is a smart contract token that is published on the blockchain of Ethereum and Waves. It will become the core of several new mobile gaming technologies. In this market, players can trade virtual goods and game content. This technology also allows gamers to spread their games and tournaments to allow players to run smart contracts.

Seele(Seele

Seele established a bridge between the real world and the digital world by proposing a heterogeneous forest network architecture. In the network, each piece of forest is only suitable for the relevant minimum business. In other words, each cohesive business runs in one chain. The advantages of this design not only ensure safe isolation and resource optimization, but also provide cross-chain access capabilities to allow value transfer.

Airtest Project亮相UWA Day 2019

Airtest Project亮相UWA Day 2019

    2019年4月13至14日,UWA Day 2019 大会在上海隆重举行。网易游戏 Airtest Project 团队作为合作伙伴受邀参加。


    在大会开场演讲上,UWA 的 CEO 张鑫先生发布了与 Airtest Project 合作推出的自动化性能测试服务:

    UWA 此次推出的自动化性能测试服务,能够将传统的人工跑测过程替换成自动化的测试用例执行,从而能够更高效准确地进行性能测试和分析。

    现场参会的游戏开发者们对我们团队提供的自动化解决方案表现出浓厚兴趣。我们在展台提供了现场 Demo 和答疑,帮助开发者们更好地了解整套解决方案。

    除了自动化测试方案,大家对我们展示的 AirLab 云测试服务关注度也很高。AirLab 目前已经累计为 150+ 款外部手游和 App 完成测试服务。

AirLab官网为:https://airlab.163.com  ,  目前用户可以免费注册试用。

    

    再次感谢 UWA 的邀请,希望通过本次自动化性能测试服务的合作,能够帮助游戏开发者们节省测试人力成本,更精准高效地发现问题,保障产品质量。


    如果想要了解更多 Airtest Project 的技术细节,欢迎关注我们的 github 开源地址:

本文分享自微信公众号 - AirtestProject(AirtestProject)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

Cirru Project in 2015

Cirru Project in 2015

看到 Vue 总结过去, 于是也想梳理下 Cirru 过去一年的进展
相对来说, Cirru 几乎是无人问津的项目, 只有我在坚守
然而无论怎样, 我都觉得 Cirru 依然是非常有趣的项目
2015 年相对从前收获的也算是更多, 因为终于投入实践当中了
细节可以看 Twitter 上的记录, 我正文发散梳理一下
https://twitter.com/cirrulang

Logo

Cirru 的 Logo 经过了重新设计, 更简单了, 联想一下 Cr
辨识度也许未必高, 但我想这个 Logo 是更加明确的


编辑器

编辑器支持有了一些增加, 一个是 Vim, 另一个是 LightTable
另外由于 Atom 基于 Webkit, 我尝试了一次非常夸张的主题
让语法高亮从文字颜色移开, 而是高亮背景, 瞬间风格就不同了

Parser

Parser 扩展到了更多的语言, 虽然没有本质的变化
现在大概有十种语言了, 基本都是函数式语言和脚本语言
目前的 Parser 是需要递归支持的, 所以底层语言实现起来有压力
另一方面我尝试了 Parser Combinators 方案解析
虽然目前没有完美, 但进展也还不错, 至少简单缩进是能运行的

Sepal

Sepal 是编译 Cirru 语法树到已有语言 AST 的方案
目前支持的是一些动态语言, 主要是 JavaScript, Clojure
另外 Elixir, Ruby, Lua 我仅仅是做了简单的尝试, 验证可行性
其实精力足够的话, 更多有定义 AST 的语言都能跟上
而编译到 LLVM 的方案失败了, WebAssembly 还在进行中

CirruScript

http://script.cirru.org/

CirruScript 原本是手写的, 生成了 Source Maps
后来觉得效果不佳, 后端改成用 Babel 生成 ES5 代码
中间一段时间其实非常顺手, AST 的效果也不错
相应的生态, CLI, Gulp, Webpack, 算是都支持了
直到 Babel 6 发布的一次, 发生了较大的更改, AST 改变了
我纠结了挺久最后还好完成了兼容, 只是性能有些损失
总体看来 CirruScript 还是可靠的, 可以在个人项目继续用

Sepal.clj

https://github.com/Cirru/sepal.clj/

下半年上手了 Clojure 和 lein 环境, 于是尝试 Cirru 语法
幸运的是, Clojure 版本得益于 Macro 的强大, 很容易就完成了
只是 Sepal.clj 不支持生成 Macro, 因为本分通过 Macro 实现
即便这样, 使用 Sepal.clj 已经可以书写常用的代码, 实践下来也舒服
另外相关的编译, REPL 工具链也初步实现, 玩得起来了

WebAssembly

Cirru 中期目标是编译到 WebAssembly, 作为其中活跃的语言
我在观察 WebAssembly 的 AST 后发现 Cirru 非常合适
这里还只是用 Cirru 语法手写 WebAssembly 文本格式而已
于是我实现了基本的 Cirru 语法生成 S 表达式的方案
另外借助 indutny 的 wasm-jit 实现, 还能用 Cirru 运行最简单的代码
https://github.com/Cirru/cirru-wasm-cli

结尾

其他比较有意思的进展是 Twitter 上引起了一些人的注意
我也在 Medium 上放了简单的文章介绍 Cirru 的细节
https://medium.com/cirru-project/
现在 Cirru 的首页每天都会有一两个访问量, 总比没有要好
期待随着 WebAssembly 进展, 我能进一步推广 Cirru

CMPUT 291 (Fall 2018 LAB LEC): Mini-Project

CMPUT 291 (Fall 2018 LAB LEC): Mini-Project

代写CMPUT 291作业、代做Python/Java实验设计作业、代写C/C++编程实验作业、代做File and Database作业
2018/11/4 CMPUT 291 (Fall 2018 LAB LEC): Mini-Project 1
https://eclass.srv.ualberta.ca/mod/page/view.php?id=3273240 1/5
Dashboard / My courses / CMPUT 291 (Fall 2018 LAB LEC)
/ 8 October - 14 October / Mini-Project 1
CMPUT 291 - File and Database
Management (Fall 2018)
Mini-Project 1
CMPUT291 - Fall 2018
Mini Project I
(group project)
Due: Nov 5 at 5pm
Clarifications:
You are responsible for monitoring the course news and discussion forums in eclass and this
section of the project specification for more details and clarifications. No clarification will be
posted after 5pm on Nov 4.
Oct 26. To get the timestamp in sqlite, you will need datetime(''now''). The function date(''now'')
will give date but not time.
Oct 31. At demo time, you will be given a database file name (that has our test data) and you
will be passing it to your application as a command line argument. Don''t hard-code the
database name in your application since you cannot change your code at demo time.
Oct 31. Member A can book member B only on the rides offered by member A (i.e. member A
is the driver of the ride).
Oct 31. All string matches are case-insensitive except when matching the password. You
cannot make any assumption on the case of the strings in the database. The database can
have strings in uppercase, lowercase or any mixed format.
Oct 31. When booking a member on a ride, the pickup and the drop off locations can be any
locations from the locations table. They don''t have to match the pickup, drop off or the
enroute locations of the ride.
2018/11/4 CMPUT 291 (Fall 2018 LAB LEC): Mini-Project 1
https://eclass.srv.ualberta.ca/mod/page/view.php?id=3273240 2/5
Nov 2. Regarding error checking, every good programmer should do some basic error
checking to make sure the data entered is correct. We cannot say how much error checking
you should or should not do, or detail out all possible checkings. We won''t be trying to break
down your system but your system also should not break down when the user makes a
mistake.
Introduction
The goal of this assignment is twofolds: (1) to teach the use of SQL in a host programming
language, and (2) to demonstrate some of the functionalities that result from combining SQL
with a host programming language.
Your job in this project is to build a system that keeps the enterprise data in a database and to provide
services to users. You will be storing data in a SQLite database and will be writing code in Python (or
similarly Java/JDBC, C, etc.) to access it. Your code will implement a simple command line interface.
You are free to implement a GUI interface instead but there will be no support nor bonus for doing that.
You are also free to write your code in Python, Java, C, C++, Perl or any other language that is suited
for the task. If you decide to use any language other than Python, discuss it with the instructor first.
Your project will be evaluated on the basis of 84% of the mark for implementing the functionalities listed
in this specification; this component will be assessed in a demo session. Another 12% of the mark will
be assigned for both the documentation and the quality of your source code. 4% of the mark is assigned
for the quality of your group coordination and the project break-down between partners.
Group work policy
You will be doing this project with one or two other partners from the 291 class. Register your
group at the group registration page. It is assumed that all group members contribute
somewhat equally to the project, hence they would receive the same mark. In case of difficulties
within a group and when a partner is not lifting his/her weight, make sure to document all your
contributions. If there is a break-up, each group member will get credit only for his/her portion
of the work completed.
Database Specification
You are given the following relational schema.
members(email, name, phone, pwd)
cars(cno, make, model, year, seats, owner)
locations(lcode, city, prov, address)
rides(rno, price, rdate, seats, lugDesc, src, dst, driver, cno)
bookings(bno, email, rno, cost, seats, pickup, dropoff)
enroute(rno, lcode)
requests(rid, email, rdate, pickup, dropoff, amount)
inbox(email, msgTimestamp, sender, content, rno, seen)
Tables are derived from the specification of Assignment 1 and are identical to those in Assignment 2
except (1) the field pwd which is added to members, and (2) table inbox which is new. The table inbox
will keep the messages exchanged between members. For example, the tuple <m1,t,m2,c,r,s> in inbox
indicates that member m1 has a message from member m2 with a timestamp t (this is of type date and
includes date and time) and content c, and the message is regarding ride r. The last column indicates
2018/11/4 CMPUT 291 (Fall 2018 LAB LEC): Mini-Project 1
https://eclass.srv.ualberta.ca/mod/page/view.php?id=3273240 3/5
whether the message is seen or not and can take one of the values ''y'' and ''n''. Each time a message is
sent, the timestamp is set by your system to current date and time (i.e. date(''now'') in sqlite), rno is set to
the current ride number and seen is set to ''n''. The SQL commands to create the tables of the system
are given here (right click to save as a file). Use the given schema in your project and do not change
any table/column names.
Login Screen
The first screen of your system should provide options for members to login and for new members to
register. Existing members should be able to login using a valid email and password, denoted
with email and pwd in table members. After a login, all unseen messages of the member will be
displayed, and the status of the messages will be set to seen (i.e, the seen column is set to ''y'').
Unregistered members should be able to sign up by providing a unique email, a name, a phone, and a
password. Proper messages should be given if the provided email is not unique. After a successful login
or signup, members should be able to perform the subsequent operations (possibly chosen from a
menu) as discussed next.
Members should be able to logout and there must be also an option to exit the program.
System Functionalities
Members should be able to perform all of the following tasks. All string matches must be caseinsensitive
(e.g., edmonton will match Edmonton, EDMONTON, edmontoN and edmonton).
1. Offer a ride.The member should be able to offer rides by providing a date, the number of
seats offered, the price per seat, a luggage description, a source location, and a
destination location. The member should have the option of adding a car number and any
set of enroute locations. For locations (including source, destination and enroute), the
member should be able to provide a keyword, which can be a location code. If the
keyword is not a location code, your system should return all locations that have the
keyword as a substring in city, province or address fields. If there are more than 5
matching locations, at most 5 matches will be shown at a time, letting the member select
a location or see more matches. If a car number is entered, your system must ensure that
the car belongs to the member. Your system should automatically assign a unique ride
number (rno) to the ride and set the member as the driver of the ride.
2. Search for rides.The member should be able to enter 1-3 location keywords and retrieve
all rides that match all keywords. A ride matches a keyword if the keyword matches one of
the locations source, destination, or enroute. Also a location matches a keyword if the
keyword is either the location code or a substring of the city, the province, or the address
fields of the location. For each matching ride, all information about the ride (from the
rides table) and car details (if any) will be displayed. If there are more than 5 matches, at
most 5 will be shown at a time, and the member is provided an option to see more. The
member should be able to select a ride and message the member posting the ride that
h/she wants to book seats on that ride.
3. Book members or cancel bookings.The member should be able to list all bookings on
rides s/he offers and cancel any booking. For any booking that is cancelled (i.e. being
deleted from the booking table), a proper message should be sent to the member whose
booking is cancelled. Also the member should be able to book other members on the
rides they offer. Your system should list all rides the member offers with the number of
2018/11/4 CMPUT 291 (Fall 2018 LAB LEC): Mini-Project 1
https://eclass.srv.ualberta.ca/mod/page/view.php?id=3273240 4/5
available seats for each ride (i.e., seats that are not booked). If there are more than 5
matching rides, at most 5 will be shown at a time, and the member will have the option to
see more. The member should be able to select a ride and book a member for that ride by
entering the member email, the number of seats booked, the cost per seat, and pickup
and drop off location codes. Your system should assign a unique booking number (bno)
to the booking. Your system should give a warning if a ride is being overbooked (i.e. the
number of seats booked exceeds the number of seats offered), but will allow overbooking
if the member confirms it. After a successful booking, a proper message should be sent to
the other member that s/he is booked on the ride.
4. Post ride requests.The member should be able to post a ride request by providing a date,
a pick up location code, a drop off location code, and the amount willing to pay per seat.
The request rid is set by your system to a unique number and the email is set to the email
address of the member.
5. Search and delete ride requests.The member should be able to see all his/her ride
requests and be able to delete any of them. Also the member should be able to provide a
location code or a city and see a listing of all requests with a pickup location matching the
location code or the city entered. If there are more than 5 matches, at most 5 matches will
be shown at a time. The member should be able to select a request and message the
posting member, for example asking the member to check out a ride.
Groups of size 3 must counter SQL injection attacks and make the password non-visible at the time of
typing.
Testing
At development time, you will be testing your programs with your own data sets (but
conforming to the project specification). At demo time, we will be creating the database
using these SQL statements (right click to save as a file) and will be populating it with our own
test data set. Your application will be tested under a TA account.
The demo will be run using the source code submitted and nothing else. It is essential to include
every file that is needed to compile and run your code including all source code and any makefile or
script that you may use to compile or run your code. You will neither be able to change your code, nor
use any file other than those submitted. This policy can be altered only in exceptional cases at the
instructor''s discretion and for a hefty penalty. As a test drill, you should be able to set up your application
under someone else''s account (in case of testing, this would be under a TA account) within 3 minutes at
most.
Every group will book a time slot convenient to all group members to demo their projects. At demo
time, all group members must be present.The TA will be using a script to both create and populate
the tables. The TA will be asking you to perform various tasks and show how your application is
handling each task. A mark will be assigned to your demo immediately after the testing.
Instructions for Submissions
Your submission includes (1) the application source code, (2) README.txt, and (3) your design
document Report.pdf.http://www.6daixie.com/contents/3/2103.html
Create a single gzipped tar file with all your source code, additional files you may need for
your demo, README.txt and Report.pdf. Name the file prjcode.tgz.
2018/11/4 CMPUT 291 (Fall 2018 LAB LEC): Mini-Project 1
https://eclass.srv.ualberta.ca/mod/page/view.php?id=3273240 5/5
You are logged in as Dongheng Li (Log out)
CMPUT 291 (Fall 2018 LAB LEC)
Help
Email

因为专业,所以值得信赖。如有需要,请加QQ99515681 或邮箱:99515681@qq.com 

微信:codinghelp

今天的关于CMSC 216 Project #3 Spring 2019的分享已经结束,谢谢您的关注,如果想了解更多关于2018 most underpriced blockchain projects?、Airtest Project亮相UWA Day 2019、Cirru Project in 2015、CMPUT 291 (Fall 2018 LAB LEC): Mini-Project的相关知识,请在本站进行查询。

本文标签:

上一篇Codeforces1132A——Regular Bracket Sequence(水题)

下一篇Kafka Replication: The case for MirrorMaker 2.0