首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
代写CMPT 125、c++设计编程代做
项目预算:
开发周期:
发布时间:
要求地区:
Assignment 3 CMPT 125 Intro. To Computing Science & Programming II Fall 2023
Assignment 3 (10% of Course Total)
Due date: 11:59pm, Nov 10, 2023
At least part of the assignment will be graded automatically. Make sure that your code compiles without
warnings/errors and produces the required output. Also use the file names and structures indicated as
requested. Deviation from that might result in 0 mark.
Your code MUST compile and run reasonably efficiently in the CSIL machines with the Makefile provided.
It is possible that even with warnings your code would compile. But this still indicates there is something
wrong with you code and you have to fix them, or marks will be deducted.
Your code MUST be readable and have reasonable documentation (comments) explaining what it does.
Use your own judgement, for example, no need to explain i += 2 is increasing i by 2, but explain how
variables are used to achieve something, what a certain loop is doing, and the purpose of each #include.
Description
There is only 1 question in this assignment. However, there are several files you need to submit. Write
your answer in the corresponding file as instructed along with your student information. You can include
any libraries that are covered in class (i.e., stdio, stdlib, string, math, stdbool). You can also write your own
helper functions. Only one of these files should contain the main function.
Question 1 [16 marks]
In this question you are going to extend the program you made in Assignment 2 by providing more
functionalities. You are again going to write your own main function so the program runs.
Create a program that reads all the talk information from a file and provide an interface for the user to
query talk entries. Your program must support the following functionalities as options:
Option 1: to load a talksfile C ask the user to input the name of the file containing talk information
and load the entries from that file (report # of entries). Note that the file can be non-existent (if
so the program should print the error and keep running), but if it exists you can assume the format
inside that file is consistent (duration, talk title, overview, ---), with each line having at most 300
characters. It is possible for the user to load a different file by choosing this option again, which
will replace the previously loaded entries. You can assume the filename as at most 50 characters.
Option 2: to list talks sorted by duration C list the talk entries from shortest to longest. If with the
same duration there are more than one talk entry, any order within that duration is acceptable.
Option 3:to list talks sorted by title C list the talk entries sorted by title (as determined by strcmp).
If with the same title there are more than one talk entry, any order within that title is acceptable.
Option 4: to lookup a talk C ask the user for a talk title for at most 50 characters (space included),
then report all entries containing the input as a substring. There can be more than one entry from
the file. The lookup is case-sensitive (i.e., computer and Computer are not the same).
o If one or more entries are found, print all the information. Any order is acceptable.
o If no entry is found, print No such talk on record.
You can assume the user will always enter at most 50 characters.
Option 5: to terminate the program C thank the user and end the program.
Assignment 3 CMPT 125 Intro. To Computing Science & Programming II Fall 2023
Page 2 of 5 ? , 2023
Your program must meet these requirements:
Include the provided header file (.h file) and use the functions defined in the corresponding
implementation file (.c file) in your driver file (where main is), do not redefine those functions.
Use a dynamic array of Talk struct pointers to store the talk information. This is the recommended
approach (instead of a static array with a fixed size) as we might change the number of entries in
the provided file, and dynamic arrays can accommodate that variation.
There must be no memory leaks (e.g., your program requests some memory but does not release
them all before it terminates). In CSIL you can use the Valgrind tool as described to check for that.
Start with a fancy banner. There is no specific requirement besides it must include your name, 9-
digit SFU ID, and your SFU email address. Let your creativity shine, just nothing offensive.
If a functionality (e.g., list, lookup) is requested by the user but no file has been loaded, the
program should print an error message telling the user that no talks file have been loaded and
prompt the user to do so.
The sorting for Options 2&3 must be done using the built-in qsort. Meaning you have to write
your own compare functions for qsort to use (see a3_talklib.h and a3_talklib.c).
And here are some hints for you to write your code:
The interface is essentially a do-while loop where in each iteration it asks for an option and
determines what to do, with a repeating conditional of the terminating option has not been
inputted. It is a common approach for menu-based interfaces.
Since each item in the dynamic array for the talk entries are pointers, be careful with how you
are casting the pointer variables in the compare functions (they are pointers to the items) C
suppose the dynamic array has the type Talk**, then the variables should be cast to Talk**.
The scanf() function works slightly differently between different formats. One difference is how
it handles leading and trailing newlines (look up dangling newline character if you are curious).
One option to get around this is put a space in front of the format string (e.g., %d , %s ). You
are encouraged to explore different ways to get around this issue.
*The entries are randomly generated using ChatGPT with a specific format and then lightly modified.
Hence, the content might not make sense and have very similar wording patterns C no need to worry.
Include the function definitions corresponding to a3_talklib.h (and your helper functions, if any) in a
source file named as a3_talklib.c. Remember the .h file declares the functions and the .c file define them.
Include your main function (and your helper functions, if any) in another source file named as
a3_talkLookupSystem.c. We call this the driver file because this is where the program starts.
To determine where to place a helper function, think about its purpose. If it provides functionality with
the Talk structs (e.g., create/clear Talks, compare Talks), it is a library function; if it provides functionality
of the program (e.g., print a fancy banner), it is a program function. Incorrectly placing these functions
will lead to mark deductions in the Coding Style category.
Assignment 3 CMPT 125 Intro. To Computing Science & Programming II Fall 2023
Page 3 of 5 ? , 2023
Here are some sample input and output (you can assume user input is always valid, but could be incorrect):
Figure 1. Opening a non-existent file (incorrect input) then an existing file.
Figure 2. Listing talks sorted by title.
Assignment 3 CMPT 125 Intro. To Computing Science & Programming II Fall 2023
Page 4 of 5 ? , 2023
Figure 3. Looking up for Quantum Computing C yes there are actually duplicates in the file!.
Coding Style [4 marks]
Your program should be properly indented, have clear and meaningful variable names (e.g., no single?letter variable names except loop iterators) and enough white space and comments to make it easy to
read. Named constants should be used where appropriate. Each line of code should not exceed 80
characters. White space should be used in a consistent manner.
Keep your code concise and efficient. If your code is unnecessarily long or inefficient (e.g., hard-code for
all possible cases, extraneous function calls), we might deduct marks. To help you to get into the habit of
good coding style, we will read your code and marks will be deducted if your code is not styled properly.
Using the Makefile and Other Supplied Files
The Makefile provided in this assignment is used by a command in the CSIL machines called make to
quickly compile your code. It is especially useful if you have multiple source files. To use it, type the
following command in the prompt (make sure you are in the directory with all the files of Assignment 3):
$ make test1
The example above illustrates how Question 1 is compiled into an executable called test1 when using
the Makefile. Replace the test1 with test2 , test3 , etc. for other questions. You can then run the
executable by typing ./test1 to test your code for Question 1. If you make changes to your code, use the
make command again. You can also use make all if you want to compile all your code at once.
The header file a3_talklib.h is there to make the compilation work. Take a look at it for information about
how each function should work. You might have to modify it and you will have to submit it this time.
Submission
Submit only the 3 source files (a3_talklib.h, a3_talklib.c, a3_talkLookupSystem.c) to CourSys. Refer to the
corresponding Canvas assignment entry for details.
Assignment late penalty: 10% per calendar day (each 0 to 24 hour period past due), max 2 days late.
Academic Honesty
It is expected that within this course, the highest standards of academic integrity will be maintained, in
keeping with SFU s Policy S10.01, Code of Academic Integrity and Good Conduct. In this class,
collaboration is encouraged for in-class exercises and the team components of the assignments, as well
Assignment 3 CMPT 125 Intro. To Computing Science & Programming II Fall 2023
Page 5 of 5 ? , 2023
as task preparation for group discussions. However, individual work should be completed by the person
who submits it. Any work that is independent work of the submitter should be clearly cited to make its
source clear. All referenced work in reports and presentations must be appropriately cited, to include
websites, as well as figures and graphs in presentations. If there are any questions whatsoever, feel free
to contact the course instructor about any possible grey areas.
Some examples of unacceptable behavior:
Handing in assignments/exercises that are not 100% your own work (in design, implementation,
wording, etc.), without a clear/visible citation of the source.
Using another student's work as a template or reference for completing your own work.
Using any unpermitted resources during an exam.
Looking at, or attempting to look at, another student's answer during an exam.
Submitting work that has been submitted before, for any course at any institution.
All instances of academic dishonesty will be dealt with severely and according to SFU policy. This means
that Student Services will be notified, and they will record the dishonesty in the student's file. Students
are strongly encouraged to review SFU s Code of Academic Integrity and Good Conduct (S10.01) available
online at: http://www.sfu.ca/policies/gazette/student/s10-01.html.
Use of ChatGPT or Other AI Tools
As mentioned in the class, we are aware of them. I see them as helpers/tutors from which you can look
for inspiration. However, these tools are not reliable and they tend to be overly confident about their
answers, sometimes even incorrect. It is also very easy to grow a reliance to them and put yourself at risk
of not actually learning anything and even committing academic dishonesty. Other issues include:
When it comes to uncertainty, you won t know how to determine what is correct.
If you need to modify or fine tune your answer, you won t know what to do.
You will not be able to learn the materials and thus will not ne able to apply what you learn in
situations where no external help is available, for example, during exams and interviews.
For introductory level courses and less sophisticated questions, it is likely that you ll get an almost perfect
answer from these tools. But keep in mind if you can get the answer, everyone can also get the answer.
Bottomline is, if you ask these tools to give you an answer and you use the answer as yours, you are
committing academic dishonesty by claiming work that is not done by you as yours.
Note that different instructors might have different policies regarding the use of these tools. Check with
them before you proceed with assignments from other courses.
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
urba6006代写、java/c++编程语...
2024-12-26
代做program、代写python编程语...
2024-12-26
代写dts207tc、sql编程语言代做
2024-12-25
cs209a代做、java程序设计代写
2024-12-25
cs305程序代做、代写python程序...
2024-12-25
代写csc1001、代做python设计程...
2024-12-24
代写practice test preparatio...
2024-12-24
代写bre2031 – environmental...
2024-12-24
代写ece5550: applied kalman ...
2024-12-24
代做conmgnt 7049 – measurem...
2024-12-24
代写ece3700j introduction to...
2024-12-24
代做adad9311 designing the e...
2024-12-24
代做comp5618 - applied cyber...
2024-12-24
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!